next up previous contents
Next: Taszkok közti kommunikáció: Up: A Mach mikrokernel Previous: Taszkok és threadek:

A Mach memóriakezelése:

A Mach kernel biztosítja a nagy, nem feltétlenül összefüggo memória kezeléséhez szükséges mechanizmusokat. Minden taszk rendelkezik egy kernel által manipulált címtérképpel, amely vezérli a virtuális memóriacímek fizikai memóriacímekre történo leképezését. Mint az a virtuális memóriát biztosító rendszerek nagy részére jellemzo, a taszkok virtuális címtartományának mindig van egy-egy része, amely nincs benn a fizikai memóriában egy-egy adott idopillanatban, ezért kell valamilyen mechanizmus a fizikai memóriának a taszkok virtuális címtartományának a cache-elésére való használatára (és valószínuleg ez a Mach-ban megjeleno egyik legnagyobb ötlet). Nem úgy, mint más virtuális memóriát kezelo rendszerek, a Mach kernel nem implementálja ennek a cache-elésnek az összes részletét, ehelyett lehetoséget nyújt felhasználó által készített taszkoknak arra, hogy e cache-elés egyes részleteit megvalósítsák.

Egy taszk allokálhat új memóriaterületeket, deallokálhat memóriaterületeket és módosíthatja a rájuk vonatkozó védelmi információkat. Ezenkívül egy taszk meghatározhatja az egyes memóriarészeinek az öröklési jellemzoit is. Egy új taszk létrehozásakor mindig ki kell jelölni egy már meglevo taszkot, amelyet az új taszk memóriaszerkezetének kialakításakor az operációs rendszer mintának fog tekinteni. Ilyenkor a meglevo (mintaként használandó) taszkban levo egyes memóriarészek öröklési jellemzoi határozzák meg azt, hogy az újonnan létrehozott taszkban a megfelelo memóriarész definiált legyen-e, illetve amennyiben azt a részt az új taszk örökli, akkor a szülotaszkkal egy közös, megosztott memóriaterületként használja azt, vagy pedig saját példányt kell, hogy kapjon.

A Mach rendszerben a legtöbb memóriamásolási muvelet copy-on-write módszerrel van optimalizálva: a másolandó memóriarészek tartalma nem lesz egybol lemásolva, hanem másolás után a haználók a két példányt "írásvédetten" ugyan, de közösen használják tovább. Ha bármelyik használó megpróbálja a közösen használt "írásvédett" memóriarész tartalmát módosítani, akkor a megfelelo rész tényleges lemásolására a módosítás pillanatában kerül sor. Ez a késleltetett memóriamásolás egy fontos hatékonyságot növelo optimalizáció a Mach kernelben.

Bármely memóriarész mögött van egy-egy memória objektum. Egy memória-kezelo taszk biztosítja a (fizikai) memóriában levo lapok tartalma és az ugyanehhez az információtartalomhoz tartozó, nem a fizikai memóriában tárolt információ (egy absztrakt memória objektum) közti kapcsolatot, konverziót. A Mach kernel tartalmaz egy alapértelmezésként használható memória-kezelot, amely olyan memória objektumok létrehozását biztosítja, amelyek kezdetben nulla kódú értékekkel vannak feltöltve, és a rendszer lapozási területére lesznek szükség esetén kilapozva.



next up previous contents
Next: Taszkok közti kommunikáció: Up: A Mach mikrokernel Previous: Taszkok és threadek:



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