2021-07 [seminár] zámky (erratum)

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

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.