2020-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 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.