1 / 10

Comunicarea intre procese Windows folosind zone comune de memorie

Comunicarea intre procese Windows folosind zone comune de memorie. Todea Mirela Damaris An II, Gr 6, Sgr.10. Comunicarea intre procese.

joylyn
Download Presentation

Comunicarea intre procese Windows folosind zone comune de memorie

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Comunicarea intre procese Windows folosind zone comune de memorie Todea Mirela Damaris An II, Gr 6, Sgr.10

  2. Comunicarea intre procese • In unele sisteme de operare procesele care lucreaza impreuna pot sa imparta zone comune de stocare pe care fiecare poate sa le citeasca respectiv sa le scrie. • O zona comuna de stocare poate fi: • memoria principala – RAM; • un fisier.

  3. Race Condition • Race Condition este o situatie in care doua procese incearca sa foloseasca simultan acceasi zona comuna de memorie • Pentru a inlatura aceasta situatie vom folosi excluderea mutuala.

  4. Evitarea Race Condition cu ajutorul excluderii mutuale • Regiunea critica este partea din program unde este accesata memoria comuna; • Pentru a evita Race Condition va trebui sa avem grija ca doua procese sa nu ajunga niciodata in zonele lor critice in acelasi timp.

  5. Evitarea Race Condition cu ajutorul excluderii mutuale • Pentru a avea o solutie buna nu este necesar doar ca doua procese sa ruleze paralel corect si eficient folosind zone comune de memorie. • Este nevoie de inca 4 conditii pentru a avea o solutie buna

  6. Conditii: • Doua procese nu au voie sa fie simultan in zonele lor critice; • Viteza sau numarul de procesoare nu trebuie luata in calcul; • Nici un proces care ruleaza in afara zonei critice nu au voie sa blocheze alte procese; • Nici un proces nu ar trebui sa astepte la infinit sa intre in regiunea lui critica

  7. Memoria partajata(File Mapping) • permite accesul mai multor procese la un fisier ca si cand fisierul ar fi o zona de memorie. • astfel se pot folosi toate operatiile aplicabile asupra memoriei, inclusiv pointeri. • o facilitate speciala a File Mapping-ului este aceea de "named shared memory", sau memorie partajata identificata de un nume.

  8. Crearea unei zone de memorie partajata • crearea se face folosind urmatoarele 2 functii care trebuie apelate in urmatoarea ordine: • CreateFileMapping– este o functie care creeaza un obiect de tipul File Mapping reprezentat de un handle; • MapViewOfFile – este o functie folosita pentru maparea zonei de memorie.Functia intoarce un pointer la zona de memorie partajata

  9. Accesul la o zona de memorie partajata deja creata • Pentru a accesa o zona de memorie partajata, creata de un alt proces sunt utilizate urmatoarele doua functii in ordinea data mai jos: • OpenFileMapping – este o functie care acceseaza un obiect de tipul File Mapping; • MapViewOfFile – este folosita pentru a mapa efectiv zona de memorie.

  10. Demaparea unei zone de memorie partajata • Pentru a demapa o zona de memorie partajata care a fost anterior mapata cu functia MapViewOfFile() folosim urmatoarea functia UnmapViewOfFile();

More Related