a.Comunic intre.proc.prin.zone de mem.partaj

Сделай свою wap-шпаргалку =) попробуй конструктор сайтов http://www.panweb.com/


Procesele pot comunica direct unele cu celelalte prin folosirea оn comun a unor pгrюi din spaюiul lor virtual de memorie ?i prin scrierea ?i citirea datelor memorate оn memoria comunг.
Apelurile sistem pentru manipularea zonelor de memorie comunг sunt similare apelurilor sistem dedicate comunicaюiei prin mesaje:
-apelul sistem shmget creazг o nouг zonг (regiune) comunг de memorie sau оntoarce una existentг;
-apelul sistem shmat ata?eazг la nivel logic o regiune de memorie la spaюiul virtual de adrese al unui proces;
-apelul sistem shmdt deta?eazг o regiune de spaюiul virtual de adrese al unui proces;
-apelul sistem shmctl manipuleazг diver?i parametri asociaюi zonelor comune de memorie.
Procesele scriu оn -?i citesc date din- memoria comunг utilizвnd acelea?i instrucюiuni ma?inг pe care le utilizeazг ?i la scrierea ori citirea din memoria obi?nuitг. Dupг ata?area unei zone de memorie comunг, aceasta devine parte a spaюiului virtual de adrese al procesului, accesibilг оn acela?i mod оn care sunt accesibile ?i celelalte adrese virtuale nu sunt necesare apeluri sistem pentru scrierea sau citirea datelor din zona de memorie comunг.
Sintaxa apelului sistem shmget este:
shmid = shmget(key, size, flag)
unde size reprezintг numгrul de octeюi din regiunea de memorie.
Nucleul cautг cheia key оn tabela cu zonele comune de memorie dacг gгse?te оn aceastг tabelг o intrare care sг corespundг cheii ?i dacг drepturile de acces sunt validate, atunci оntoarce descriptorul acelei intrгri din tabelг. Dacг nu gгse?te o intrare cгreia sг-i corespundг cheia key, ?i dacг utilizatorul a dat indicatorului flag valoarea IPC_CREAT, оn scopul creгrii unei noi regiuni comune de memorie, atunci nucleul verificг dacг valoarea parametrului size se situeazг оntre valorile limitг minimг ?i maximг de memorie ale sistemului ?i apoi alocг o structurг de date pentru o regiune de memorie, utilizвnd algoritmul allocreg.