2021-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 zámkom (locks) v operačných systémoch ako mechanizmu na zabezpečenie integrity zdieľaných dátových štruktúr pri súčasnom behu viacerých tokov riadenia. Na praktickej ukážke v systéme XV6 je demonštrované, čo sa stane po zakomentovaní uzamykania vo funkcii kfree – dochádza k tzv. súbehu (race condition), pri ktorom sa niektoré uvoľnené pamäťové rámce nenávratne stratia zo zoznamu voľných stránok až do reštartu systému. Vysvetľuje sa abstraktný dátový typ zámok, jeho použitie cez dvojicu operácií zamkni/odomkni ohraničujúcu kritickú oblasť, pričom sa zdôrazňuje, že iba jednému vláknu sa naraz podarí zámok získať. Diskutuje sa aj o variante, keď zámok získa jedno vlákno a uvoľní ho iné (napríklad pri koprogramoch), a o obmedzeniach automatického uzamykania na príklade premenovania súboru medzi adresármi, kde je potrebná atomicita celej operácie.
- - Súčasný beh viacerých vlákien nad zdieľanými dátovými štruktúrami vyžaduje synchronizáciu pomocou zámkov
- - Ukážka v XV6: odstránenie zámkov vo funkcii kfree spôsobí stratu voľných pamäťových rámcov (race condition)
- - Zámok je všeobecný abstraktný dátový typ nezávislý od konkrétnej chránenej štruktúry
- - Operácie zamkni/odomkni ohraničujú kritickú oblasť, do ktorej naraz vstúpi len jedno vlákno
- - Zámok môže zamknúť jedno vlákno a odomknúť iné (napr. pri koprogramoch)
- - Použitie zámkov znižuje efektivitu systému, keďže eliminuje súbežné vykonávanie kódu
- - Automatické uzamykanie nefunguje vždy univerzálne – pri operáciách ako premenovanie súboru medzi adresármi je potrebná atomicita celej postupnosti krokov
Zhrnutie pripravené s pomocou AI z prepisu videa.
nechodím na prednášky