2023-07 [seminár] zámky

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

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.