2021-10 [cvičenie] mmap – otázky a odpovede
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
Cvičenie je venované konzultácii otázok k predchádzajúcej úlohe na tému mmap v systéme xv6, konkrétne implementácii systémových volaní mmap, munmap a obsluhe výpadku stránky (page fault) v trape. Diskutuje sa nastavovanie príznakov PTE (V, U, R, W, X) podľa parametra protection a kontrola, či je súbor zapisovateľný a či je mapovanie typu MAP_SHARED alebo MAP_PRIVATE. Rieši sa konkrétny problém s testom two_files, kde dochádza k panike pri volaní uvmunmap, pretože sa odmapúvajú aj stránky, ktoré neboli reálne namapované (nikdy nenastal page fault). Vysvetľuje sa nutnosť kontrolovať pomocou walkaddr pre každú stránku samostatne, či je namapovaná, a preskočiť tie, ktoré nie sú, pred volaním uvmunmap. Zároveň sa upozorňuje na správne nastavenie posledného parametra uvmunmap (do_free) podľa toho, či sa má stránka len odmapovať alebo aj fyzicky uvoľniť.
- - Konzultácia k systémovému volaniu mmap a jeho obsluhe výpadku stránky v xv6
- - Nastavovanie príznakov PTE (V, U, R, W, X) podľa parametra protection pri mapovaní
- - Kontrola zapisovateľnosti súboru v kombinácii s MAP_SHARED pri zápise/odmapovaní
- - Riešenie panic v teste two_files pri volaní uvmunmap
- - Nutnosť overiť cez walkaddr, či je konkrétna stránka namapovaná, pred jej odmapovaním
- - Odmapovanie treba riešiť po jednotlivých stránkach, nie pre celý rozsah naraz
- - Správne nastavenie parametra do_free vo funkcii uvmunmap podľa toho, či sa má pamäť aj uvoľniť
Zhrnutie pripravené s pomocou AI z prepisu videa.
nechodím na prednášky