2020-08 [cvičenie] vlákna - otázky a odpovede

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

Cvičenie je venované konzultácii otázok a odpovedí k téme vlákien v operačných systémoch, nadväzujúc na predchádzajúci lab. Vysvetľuje sa správne fungovanie ukazovateľa zásobníka (SP) pri prepínaní vlákien, vrátane bežnej chyby s výpočtom t_stack + stack_size - 1. Rozoberá sa implementácia bariéry pomocou podmienkových premenných (condition variables) a mutexu, s dôrazom na správne poradie operácií pri broadcast a wait, aby sa predišlo race conditions. Ďalej sa diskutuje o optimalizácii hešovacej tabuľky pomocou samostatných zámkov pre jednotlivé bakety namiesto jedného globálneho zámku, a o nutnosti zamykania aj pri čítacích operáciách kvôli konzistencii dátových štruktúr.

  • - Ukazovateľ zásobníka (SP) vždy ukazuje na aktuálnu (vrcholovú) hodnotu, nie na t_stack+stack_size-1
  • - Pri architektúre RISC-V sa pracuje so 64-bitovými slovami, treba dávať pozor na zarovnanie pamäte
  • - Implementácia bariéry pomocou mutexu a podmienkových premenných zaisťuje korektné poradie vďaka drženiu zámku počas broadcastu
  • - Optimalizácia hešovacej tabuľky: použitie samostatného zámku pre každý baket namiesto jedného globálneho zámku
  • - Pri inicializácii tabuľky treba inicializovať všetky zámky v cykle
  • - Zamykanie je potrebné aj pri čítacích operáciách (get), aby sa predišlo čítaniu nekonzistentných dát počas zápisu
  • - Odporúčanie venovať sa aj voliteľnej úlohe s riešením bez zámkov pomocou intrinsic funkcií

Zhrnutie pripravené s pomocou AI z prepisu videa.