2020-06 [seminár] Copy-on-write fork
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 implementácii mechanizmu copy-on-write fork v operačnom systéme xv6 na architektúre RISC-V. Najprv sa upravuje funkcia uvmcopy tak, aby namiesto alokovania a kopírovania nových stránok iba mapovala existujúce stránky rodiča do adresného priestoru potomka a odstraňovala príznak zápisu PTE_W. Následne sa vytvára nový softvérový príznak PTE_COW pomocou rezervovaných bitov v deskriptore stránky, ktorý označuje stránky zdieľané medzi procesmi. V druhej časti sa upravuje obsluha výnimiek vo funkcii usertrap tak, aby rozoznala výpadok stránky typu Store page fault (kód 15) a zavolala novú funkciu uvmcopy/uvmcowfault, ktorá pri zápise do zdieľanej stránky alokuje novú fyzickú stránku, skopíruje obsah pôvodnej a namapuje ju s obnoveným príznakom zápisu. Prednášajúci priebežne konzultuje technické detaily s poslucháčmi, napríklad počet dostupných rezervovaných bitov v RISC-V oproti architektúre x86.
- - Cieľom je implementovať copy-on-write fork namiesto kopírovania celého adresného priestoru pri forku.
- - Funkcia uvmcopy sa upravuje tak, aby iba mapovala existujúce stránky rodiča do potomka bez alokácie a kopírovania.
- - Príznak PTE_W sa pri zdieľaných stránkach zruší, aby zápis vyvolal výpadok stránky (page fault).
- - Vytvára sa nový softvérový príznak PTE_COW pomocou rezervovaných bitov (RSW) v deskriptore stránky.
- - V usertrap sa rozpoznáva výpadok typu Store page fault (scause = 15) pre zápis do copy-on-write stránky.
- - Pri výpadku sa alokuje nová fyzická stránka, skopíruje sa obsah pôvodnej a namapuje sa s obnoveným príznakom PTE_W.
- - Implementácia je rozdelená do samostatných funkcií vo vm.c pre lepšiu prehľadnosť a znovupoužiteľnosť kódu.
Zhrnutie pripravené s pomocou AI z prepisu videa.
nechodím na prednášky