next up previous contents
Next: UNIX implementációja a Up: A Mach mikrokernel Previous: A Mach memóriakezelése:

Taszkok közti kommunikáció:

A taszkok közötti kommunikáció a Mach eszköztárának egy nagyon fontos elemét alkotja. A Mach egy kliens/szerver alapú rendszerstruktúrát feltételez, ahol egyes taszkok (kliensekként) más taszkok (szerverek) szolgáltatásait érhetik el a az oket összeköto kommunikációs csatornán keresztül küldött üzenetek segítségével. Mivel a Mach kernel önmagában kevés szolgáltatást nyújt (például a fájlkezelési szolgáltatás sem része), ezért egy "átlagos" Mach taszk sok más taszkkal kell, hogy kommunikáljon annak érdekében, hogy hozzáférjen a számára szükséges szolgáltatásokhoz. A taszkok közötti kommunikáció kommunikációs csatornáját portnak nevezik. Egy port egy egyirányú csatorna, amelyen lehet korátos mennyiségu üzenet. Egy üzenet tartalmazhat adatokat, memóriarészeket és portok hozzáférési jogait. Egy port hozzáférési joga egy név, amellyel az adott taszk a porthoz való hozzáférési jogosultságát azonosítja (a Mach kernellel szemben). Egy taszk csak akkor férhet hozzá egy porthoz, ha a portra vonatkozóan a megfelelo hozzáférési jogokkal rendelkezik. Egy adott portra vonatkozóan csak egyetlen taszknak lehet olvasási joga. Ez az egy taszk jogosult a portra küldött üzenetek feldolgozására (beolvasására). Egyidejuleg egy adott portra vonatkozóan több taszknak is lehet adatküldési joga, amivel lehetoségük van az adott portra üzenetek küldésére. Két taszk kommunikációjakor a küldo az elküldendo adatokból felépít egy üzenetet, és egy üzenetküldési muveletet hajt végre egy olyan porton, amelyre adatküldési joggal rendelkezik. Késobb az a taszk, amelynek erre a portra vonatkozóan olvasási joga van, végrehajt egy üzenetolvasási muveletet. Megjegyezzük, hogy ez az üzenetátvitel egy aszinkron muvelet. Az üzenet átmásolása általában a korábban is említett copy-on-write optimalizációs technikával történik.



Csizmazia Balazs
Tue Apr 2 00:06:27 MET DST 1996