2021-07 [seminár] zámky (erratum)
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ášajúci opravuje chybu z predchádzajúceho seminára v XV6, kde jeden zo zámkov (acquire) v cykle for nemal svoj náprotivok release, čím zostával nesprávne držaný. Po oprave demonštruje rozdiel vo výkone testu Bcash pomocou nástroja KM meraním contention na zámkoch — pred opravou dochádzalo k desiatkam tisíc zbytočných čakaní procesora (spinningu), po oprave len k jednému. Súčasná implementácia vyhľadávania bloku v cache však nepoužíva least recently used (LRU) stratégiu, čo je zadaná bonusová úloha pre študentov. Súčasťou úlohy je aj potreba prepracovať zamykanie pri hľadaní najlepšieho kandidáta (odomykanie a opätovné zamykanie) a zváženie použitia atomických operácií namiesto zastaraných sync funkcií GCC.
- - Chyba spočívala v chýbajúcom release po acquire v cykle for
- - Každé zamknutie musí mať zodpovedajúce odomknutie
- - Nástroj KM meria contention (superenie) na zámkoch v XV6
- - Pred opravou test Bcash spôsoboval desiatky tisíc zbytočných čakaní CPU
- - Súčasná cache neimplementuje least recently used (LRU) výber bloku
- - Bonusová úloha: implementovať LRU vrátane správneho zamykania kandidáta
- - Odporúčanie použiť Atomic namiesto zastaraných sync funkcií GCC
Zhrnutie pripravené s pomocou AI z prepisu videa.
nechodím na prednášky