2020-08 [prednáška] Zámky
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
Prednáška sa venuje synchronizačným mechanizmom v operačných systémoch so zameraním na zámky (locks), ktoré sú nevyhnutné pri súbežnom behu viacerých tokov riadenia na viacprocesorových systémoch. Na príklade jadra xv6 a funkcie kfree je demonštrované, čo sa stane pri pridávaní uvoľnených pamäťových rámcov do zoznamu voľných stránok bez použitia zámku – dva procesory môžu súčasne modifikovať zreťazený zoznam, čím dôjde k porušeniu invariantu a nenávratnej strate rámca. Vysvetľuje sa, že operácia pridania do zoznamu pozostáva z viacerých krokov, ktoré nie sú vykonané atomicky, a preto je náchylná na race condition pri prerušení jedného vlákna druhým. Zámky zabezpečujú sériové (nie paralelné) vykonávanie kritickej sekcie, čím sa zachová konzistencia dát za cenu zníženia efektivity paralelizmu. Na záver sa formulujú pravidlá, kedy je nutné použiť zámky – vždy keď viacero tokov pristupuje k zdieľanej pamäti a aspoň jeden z nich zapisuje, zatiaľ čo pri výlučnom čítaní zámky zvyčajne netreba.
- - Zámky sú nutné pri súbežnom prístupe viacerých tokov riadenia k zdieľanej pamäti na viacprocesorových systémoch.
- - Demonštrácia problému na funkcii kfree v xv6 – strata pamäťového rámca pri súčasnom pridávaní do zoznamu voľných stránok bez zámku.
- - Operácia pridania prvku do zreťazeného zoznamu pozostáva z dvoch krokov, ktoré nie sú atomické, čo umožňuje prerušenie a nekonzistenciu.
- - Porušenie invariantu (napr. že len jedno vlákno môže meniť začiatok zoznamu) vedie k strate dát alebo nekonzistentnému stavu.
- - Zámky zaručujú sériové vykonávanie kritickej sekcie, čím sa zachová integrita dát, no znižuje sa efektivita paralelného behu.
- - Programátor sám určuje, ktorý zámok chráni ktorú dátovú štruktúru alebo časť kódu – zámok nie je automaticky viazaný na premennú.
- - Zámky treba používať vždy, keď aspoň jeden z viacerých prístupov k zdieľaným dátam je zápis; pri čisto čítacích operáciách to zvyčajne nie je potrebné.
Zhrnutie pripravené s pomocou AI z prepisu videa.
nechodím na prednášky