Virtuálna pamäť: Rozdiel medzi revíziami
Smazaný obsah Přidaný obsah
→Implementácia VM v OS Linux: preklepy |
Revízia 2738688 používateľa 88.103.147.115 (diskusia) bola vrátená |
||
Riadok 81:
Virtuálna pamäť v operačných systémoch [[Linux]] je implementovaná prostredníctvom stránkovania. V prípade použitia 32 bitovej architektúry systému je možné adresovať 4GB fyzickej pamäte (232). V prípade, že procesor obsahuje implementáciu správy pamäte (MMU – Memory Management Unit), podporuje koncept virtuálnej pamäte. V tomto prípade sú linuxovým [[kernel]]om vytvárané tabuľky stránok (page tables), ktoré mapujú virtuálne adresy na fyzické adresy. Znamená to, že každý proces v systéme môže adresovať až 4GB pamäte, pričom z pohľadu procesu, je on sám jediným procesom bežiacim v systéme.
Linuxový kernel rozdeľuje 4GB virtuálneho adresného priestoru procesu na dve
Mapovanie virtuálnych adries na fyzické adresy sa vykonáva prostredníctvom linuxového kernelu. Pri vytvorení nového procesu (pomocou [[fork]]()), kernel vytvára novú sadu tabuliek stránok (page tables) pre vytvorený proces. Referenčné adresy pre proces sú virtuálnymi adresami. Nie sú nutne mapované na zhodné fyzické adresy v pamäti. Virtuálna adresa je odovzdaná správe pamäte (MMU), ktorá ju skonvertuje na fyzickú adresu založenú na tabuľkách vytvorených kernelom. Teda, dva rôzne procesy sa môžu odkazovať na rovnakú adresu (napr. 0x08329), ale v skutočnosti sa odkazujú na dve odlišné adresy v závislosti od tabuliek stránok.
|