2020-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 tretiemu, najnáročnejšiemu labu z operačných systémov – tabuľkám stránok a adresným priestorom v systéme XV6. Prednášajúci prechádza súbory memlayout.h, vm.c a kalloc.c, vysvetľuje mapovanie fyzickej a virtuálnej pamäte, rozdelenie na priestor jadra a užívateľský priestor, ako aj úlohu trampolíny a trapframe pri prepínaní medzi nimi. Hlavnou úlohou labu je upraviť jadro tak, aby každý proces mal vlastnú tabuľku stránok jadra namiesto jednej globálnej, čo si vyžaduje úpravu funkcie kvminit a vytvorenie novej funkcie (napr. kvmmap/proc_kpt) podľa vzoru proc_pagetable. Zároveň treba upraviť plánovač procesov, aby pri behu procesu prepínal medzi príslušnými tabuľkami stránok. V tejto fáze sa do novej tabuľky jadra ešte nemapuje samotný užívateľský proces, len sa duplikuje mapovanie jadra pre každý proces.
- - Tretí lab je zameraný na tabuľky stránok a adresné priestory v XV6 a patrí medzi najťažšie zadania.
- - V memlayout.h je definované mapovanie fyzickej pamäte, zariadení, jadra, trampolíny a trapframe.
- - Súbor vm.c obsahuje funkcie s predponami kvm (jadro), uvm (užívateľská pamäť) a všeobecné funkcie ako mappages.
- - kalloc.c implementuje alokátor fyzických stránok pracujúci so zoznamom voľných stránok za koncom jadra (symbol end).
- - Cieľom je, aby mal každý proces vlastnú tabuľku stránok jadra vytvorenú podľa vzoru kvminit/proc_pagetable.
- - Treba upraviť funkcie ako kvmmap, aby prijímali tabuľku stránok ako argument namiesto použitia globálnej kernel_pagetable.
- - Plánovač procesov je potrebné upraviť tak, aby pri prepínaní procesov menil aktívnu tabuľku stránok jadra.
- - Po úspešnej implementácii by mali prejsť testy usertests.
Zhrnutie pripravené s pomocou AI z prepisu videa.
nechodím na prednášky