Virtualizace RAM v PC – stránkování, swapování, účel a princip, výpočet adres v protected módu
Níže je uveden pouze náhled materiálu. Kliknutím na tlačítko 'Stáhnout soubor' stáhnete kompletní formátovaný materiál ve formátu PDF.
Nachází se v ní globální kódové i datové segmenty a rovněž deskriptor popisující lokální tabulky
deskriptorů, kdy každý proces může mít vlastní lokální tabulku.
Postup při výpočtu adresy
Proces pracuje s virtuální (logickou adresou) skládající se ze segment selectoru a offsetu. Chce-li se
proces dostat na danou adresu ve vlastní vyhrazené části OP, musí se vykonat následující:
1. ze segment selectoru se zjistí, zda se má vyhledávat segment procesu v GDT nebo LDT
2. v příslušné (GDT/LDT) tabulce se najde příslušný řádek – který konkrétní řádek se má najít
se pozná z indexu ze segment selectoru
1
v GDTR je uloženo 48 bitů – prvních 16 bitů označuje velikost GDT (SIZE), zbylých 32 bitů označuje počátek GDT
v OP (obdobně jako BASE při výběru segmentu)
Maturitní téma č. 7 (2017/18)
4/5
Jan Švábík, V4D
3. z nalezeného řádku v tabulce deskriptorů se dále zjistí, kde začíná segment, ve kterém jsou
data, ke kterým se proces snaží dostat (první 4 B, tzv. BASE, značí adresu ve fyzické OP,
kde segment začíná) a jak je segment velký (následující 3 B z řádku, tzv. LIMIT)
4. provede se kontrola, zda offset (druhá část virtuální adresy) není větší než LIMIT – to by
totiž znamenalo, že se proces snaží přistoupit k datům z jiného segmentu, která mohou
patřit jinému procesu – takový přístup by byl odmítnut
5. pokud kontrola proběhne v pořádku, v daném segmentu se nalezne příslušný řádek s daty
(LIMIT ukazuje na 0x0, k této adrese se přičte offset → řádek ve fyzické OP)