/ / Má virtuálny adresový priestor vo virtuálnej pamäti? - správa pamäte, operačný systém

Obsahuje virtuálny adresový priestor vo virtuálnej pamäti? - správa pamäte, operačný systém

Má virtuálny adresový priestor umiestnený vo virtuálnomPamäť ? Mám zmätok, ako každý proces má vlastnú virtuálnu pamäť a tabuľku stránok a konverzia na fyzickú adresu z virtuálnej adresy prebieha pri jej načítaní do fyzickej pamäte, ale kde sa virtuálny adresový priestor dostane do obrazu? Som prešiel mnohými knihami operačných systémov, ale všade to vysvetľuje konkrétne slovo, nie kde sa nachádza, a aký je vzťah medzi nimi a tým, ako funguje. prosím, vysvetlite mi teoreticky, príklad nie je potrebný. Vopred ďakujem.

odpovede:

0 pre odpoveď č. 1

(Virtuálny) Adresa je priestor povolenýadresy pre danú šírku adries (to znamená 2 ^ 32 bajtov na x86, 2 ^ 64 na x64). Virtuálna pamäť zvyčajne znamená takmer rovnaké. Ide o súbor povolených adries pre určitý proces alebo aplikáciu alebo aj pre celý systém. Virtuálna pamäť pre jednu aplikáciu môže byť nanajvýš taká veľká ako virtuálny priestor adresy systému. Každá aplikácia môže "vidieť" iba virtuálny adresový priestor, ktorý je jej pridelený operačným systémom (a vzhľadom na niektoré triky, je možné, že každá aplikácia môže mať virtuálny adresový priestor rovnakej veľkosti a suma môže byť väčšia ako adresný priestor systému).

Fyzická pamäť (správnejšia: fyzická pamäť RAM) je množstvo efektívne inštalovaných modulov RAM. Je zvyčajne menšia ako virtuálny priestor adries. Operačný systém prevádza všetky potrebné pamäťové stránky z pevného disku do fyzickej pamäte, ak je to potrebné. Pamäťová stránka vo fyzickej pamäti má fyzickú adresu a virtuálny. Normálne aplikácie vidia len virtuálnu adresu a nemajú (a nesmú) starať sa o to, kde je pamäťová stránka fyzicky načítaná. Preto adresa videná v aplikácii alebo debugger je skutočne virtuálna adresa vo virtuálnom adresovom priestore tohto Fyzická adresa je potrebná iba pri priamom prepojení na hardvér, a to aj vtedy, ak sa OS rozhodne tak urobiť.

Dúfam, že to bude trochu jasnejšie.


0 pre odpoveď č. 2

Nie som špecialista, ale myslím, že virtuálneadresovanie a stránkovanie je súčasťou režimu chráneného CPU zavedeného po 80386 a nie je súčasťou operačného systému. Operačný systém riadi tabuľky stránok. Pre virtuálne adresy sú to napríklad iba čísla vo vašom spustiteľnom súbore objdump -d zobrazí ich