„Virtuális memória” változatai közötti eltérés

[ellenőrzött változat][ellenőrzött változat]
Tartalom törölve Tartalom hozzáadva
a 80286 árnyaltabb megközelítése
foglalt tartományok
75. sor:
'''Rezidens lap (szegmens)''': Olyan memórialap (szegmens), amit az operációs rendszer sosem enged a fizikai memóriából kilapozni. Ilyenek a rendszermag legalapvetőbb szintű adat és programterületei (például a megszakításkezelő, lapozó és ütemező rutinok), a lap- illetve szegmenstáblák, IO-pufferek; egyes rendszerekben a felhasználói processzek is rezidenssé tehetnek (korlátozott méretű) memóriatartományokat. (Jellemző példa: gondos programozó a titkos kommunikációhoz generált kulcsot rezidens memóriában tárolja, hogy az ne kerülhessen lemezre.)
 
'''Hibakeresés támogatása''': A programhibák megtalásábanmegtalálásában segít, ha egy inicializálatlan pointer használata érvénytelen laphibát okoz. Mivel az ilyen pointerek gyakran nulla (NULL, nil) értékez tartalmaznak, elterjedt megoldás, hogy a virtuális címtartomány elején és végén 4 KiB-t (vagy akár 64 KiB-t) lefoglalunk, és sosem lapozunk oda fizikai memóriát.
Vannak olyan hibakereső eszközök (pl. Electric Fence), amik hasonló technikát használnak a dinamikusan foglalt memóriatartományok túlcímzésének leleplezésére: a kért memóriát úgy helyezik el, hogy a vége egy memórialap végén legyen, közvetlenül mögötte pedig üres legyen a virtuális memória, vagyis a túlcímzés érvénytelen laphibát okozzon.
 
'''Egyszeres vagy többszörös virtuális memória''' (angol rövidítéssel SVS illetve MVS). A virtuális memória első megvalósításai csak egyetlen virtuális címtartományt biztosítottak, az összes folyamat ezen osztozott. Az utolsó elterjedt rendszer, ami ezen az elven az alapult, a 16 bites Windows 3.x volt, az annál korszerűbb rendszerek minden folyamatnak külön virtuális címtartományt biztosítanak. (Vesd össze az '''Osztott memória''' szócikkel.)
 
'''Rendszermag (kernel) részére lefoglalt címtartomány''': Egyes rendszerekben a logikai címtartomány egy része (tipikusan a legeleje vagy a legvége) fixen le van foglalva a rendszermag számára; például 32-bites Windows rendszereken ez a foglalt rész választhatóan egy vagy két gigabyte (tehát a címtartomány fele vagy negyede) — ez magában foglalja a 'shared code' részére lefoglalt címtartományt is (lásd a következő pontot).
 
'''Osztott kód (shared code) részére lefoglalt címtaromány''': az osztott kódot (DLL, shared library)
támogató rendszerekben tipikusan előre kijelölt címtartományok szolgálnak ezek elhelyezésére, külön az kód- és külön az adatterületeknek: az előbbiek egyszeresek (minden process ugyanazt a kódot használja), az utóbbiak processzenként egy-egy példányban léteznek. Például [[IBM AIX]]-rendszerben a 32-bites címtartomány 16 darab 256 MiB méretű ''szegmensre'' van felosztva, ebből egy van fenntartva a kód és egy az adatterületek számára.
 
'''Újraindítható és folytatható utasítások:'''