2020-07 [cvičenie] copy-on-write fork - otázky a odpovede

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

Cvičenie prebieha formou otázok a odpovedí k implementácii copy-on-write forku vo virtuálnej pamäti. Vysvetľuje sa syntax a sémantika príznakov v tabuľke stránok (PTE) – ako binárne mocniny dvojky kombinované pomocou OR, XOR a AND – ako aj význam dereferencovania smerníka pomocou hviezdičky. Ťažiskom je návrh a implementácia počítadla referencií (cenator_ref) pre fyzické rámce pamäte, vrátane jeho alokácie, výpočtu indexu z fyzickej adresy pomocou zaokrúhlenia a makra, a funkcií na inkrementáciu/dekrementáciu chránených zámkom. Diskutuje sa správne volanie týchto funkcií pri forku (zvýšenie referencie) a pri k_free/copy-on-write handleri (zníženie referencie), pričom ako parameter funkcie uvm_copy sa odporúča fyzická adresa stránky. Na záver sa upozorňuje, že niektoré rámce (napr. samotné pole referencií) nikdy neprejdú medzi voľné rámce, preto sa ich stav v poli nemení.

  • - PTE príznaky sú binárne čísla s jednou jednotkou (mocniny dvojky), kombinujú sa pomocou OR/XOR/AND
  • - Hviezdička pred PTE znamená dereferencovanie smerníka – úprava dát, na ktoré smerník ukazuje
  • - Počítadlo referencií (cenator_ref) sa alokuje ako pole na začiatku voľnej pamäte po konci jadra
  • - Index do poľa referencií sa počíta z fyzickej adresy pomocou zaokrúhlenia a delenia veľkosťou stránky
  • - Referenciu treba zvýšiť pri forku a znížiť pri k_free/copy-on-write handleri, operácie chránené zámkom
  • - Funkcia uvm_copy by mala prijímať fyzickú adresu stránky ako parameter na zvýšenie počítadla
  • - Niektoré rámce (napr. pole referencií) nikdy nie sú súčasťou voľných rámcov, preto sa ich záznam v poli nemení

Zhrnutie pripravené s pomocou AI z prepisu videa.