2023-07 [seminár] 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
Seminár rozoberá riešenie úlohy Cache Buffer (bcache) z operačného systému xv6, zameranej na elimináciu súperenia o zámky pri prístupe k blokovej keške. Vysvetľuje sa rozdiel medzi spinlockmi a sleep zámkami a spôsob merania súperenia (lock contention) pomocou nástroja bcachetest. Hlavnou úlohou je rozdeliť pôvodný jeden globálny zámok kešky na viacero zámkov pre jednotlivé baky hashovacej tabuľky, podobne ako pri predchádzajúcej úlohe s hashovacou tabuľkou, aby vlákna mohli pracovať s rôznymi podmnožinami keše súčasne. Prednášajúci postupne implementuje inicializáciu dátových štruktúr, hashovaciu funkciu (modulo podľa čísla bloku), vytvorenie zreťazených zoznamov pre jednotlivé baky a následne funkcie bget a brelse. Zdôrazňuje sa, že implementácia algoritmu LRU nie je pri tejto úlohe potrebná a odporúča sa naštudovať kapitoly o zamykaní a súborovom systéme z knihy xv6.
- - Téma seminára: implementácia bcache (blokovej kešky) s dôrazom na zníženie súperenia o zámky (lock contention)
- - Rozdiel medzi spinlockmi (aktívne čakanie) a sleep zámkami
- - Cieľom je rozdeliť jeden globálny zámok kešky na viacero zámkov podľa bakov hashovacej tabuľky
- - Hashovacia funkcia je založená na module čísla bloku disku podľa počtu bakov (napr. 13 alebo 17)
- - Implementácia LRU (least recently used) nie je pri tejto úlohe vyžadovaná
- - Postupná implementácia inicializácie zámkov, zreťazených zoznamov a funkcií bget a brelse
- - Odporúčanie naštudovať kapitoly o locking a súborovom systéme (sekcie 8.1–8.3) z knihy xv6
Zhrnutie pripravené s pomocou AI z prepisu videa.
nechodím na prednášky