2021-03 [seminár] Tabuľka stránok
Preber si túto prednášku so svojou AI
Skopíruj pripravený podklad a vlož ho do ChatGPT, Claude alebo inej AI — bude ťa učiť alebo skúšať len z tejto prednášky.
Zhrnutie prednášky
Seminár sa venuje mechanizmu stránkovania v operačnom systéme XV6 na architektúre RISC-V so schémou SV39, kde virtuálna adresa obsahuje tri úrovne indexov do tabuliek stránok a 12-bitový offset do stránky. Prednášajúci prechádza kódom v súbore main.c a vysvetľuje postupnosť inicializácie – najprv alokátor fyzických stránok (kalloc/kfree, funkcia freerange), následne vytvorenie jadrovej tabuľky stránok funkciou kvminit a kvmmake. Ukazuje konkrétne mapovania zariadení (UART, VirtIO disk), textu a dát jadra, ako aj špeciálne mapovanie trampolíny na najvyššiu virtuálnu adresu a zásobníkov procesov s ochrannými (guard) stránkami. Na záver demonštruje funkciu vmprint na výpis obsahu tabuľky stránok priamo v behu systému a nadväzuje na zadanú seminárnu úlohu týkajúcu sa tabuľky stránok.
- - XV6 na RISC-V používa 39-bitové virtuálne adresy (SV39) s trojúrovňovým stránkovaním a 12-bitovým offsetom
- - Inicializácia pamäte prebieha vo funkcii main: kinit (alokátor stránok) → kvminit (tabuľka stránok) → zapnutie stránkovania
- - Funkcia freerange zaokrúhľuje rozsah na stránky a postupne ich vkladá do zoznamu voľných stránok cez kfree
- - kvmmake alokuje a vynuluje stránku pre tabuľku stránok a následne mapuje jednotlivé oblasti (UART, VirtIO, text a dáta jadra)
- - Trampolína sa mapuje na najvyššiu virtuálnu adresu, čím sa prvýkrát líši virtuálna a fyzická adresa
- - Zásobníky procesov sú oddelené guard page, ktorá zabraňuje pretečeniu do inej stránky
- - Funkcia vmprint umožňuje vypísať aktuálny obsah tabuľky stránok pre kontrolu mapovaní
Zhrnutie pripravené s pomocou AI z prepisu videa.
nechodím na prednášky