2021-03 [seminár] Tabuľka stránok

Zdroj
ručne priradené
Pridané

Pozrieť na YouTube →

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.

Otvoriť AI: ChatGPT · Claude · Gemini

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.