b.Comunic.intre proces.prin msg

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


Există patru apeluri sistem pentru comunicarea prin mesaje.
^-msgget întoarce (sau crează) un descriptor de mesaje, care desemnează o coadă de mesaje, utilizat ca parametru în celelalte apeluri sistem.
^-msgctl dispune de opţiuni de setare sau returnare a valorilor parametrilor asociaţi unui descriptor de mesaje, precum şi de o opţiune de eliberare a descriptorilor.
^-msgsnd trimite un mesaj
^-msgrcv recepţionează un mesaj.
Sintaxa apelului sistem msgget este următoarea
^-msgqid = msgget(key, flag)
unde:
-msgqid este descriptorul returnat de apelul sistem;
-key reprezintă cheia ataşată;
-flag (indicator) indică acţiunea de creare şi drepturile de acces.
Nucleul memorează mesajele sub forma unei liste înlănţuite (queue - coadă de mesaje) căreia îi corespunde un descriptor, şi foloseşte un descriptor de coadă de mesaje -msgqid- ca index într-un tabelă de antete de cozi de mesaje. În plus faţă de câmpul de permisiuni generale de comunicare între procese, menţionat mai sus, structura de date asociată unei cozi de mesaje conţine următoarele câmpuri
-Pointeri către primul şi către ultimul mesaj din lista înlănţuită.
-Numărul de mesaje şi numărul total de octeţi de date din lista înlănţuită.
-Numărul maxim de octeţi de date pe care îi poate conţine lista înlănţuită.
-Identificatorii ultimelor procese care au trimis şi, respectiv recepţionat, mesaje.
-Momentele de timp ale ultimelor operaţii msgsnd, msgrcv şi msgctl.
Atunci când un utilizator invocă apelul sistem msgget pentru a crea un nou descriptor, nucleul caută în tabela de cozi de mesaje pentru a vedea dacă există vreuna care să corespundă specificaţiei dată prin cheie. Dacă nu există nici o intrare care să corespundă cheii, nucleul alocă o nouă structură de date de tip coadă de mesaje, o iniţializează şi returnează utilizatorului un identificator pentru această nouă structură. Dacă există deja o astfel de coadă de mesaje, atunci nucleul verifică drepturile de acces şi revine din apelul sistem.