Begreper & formler
Alle nøkkelbegrepene og formlene fra Tråder, locks og condition variables, samlet på én side. Bruk denne som oppslag når du leser, øver flashcards eller tar quiz.
Begreper
Sentrale begreper fra kapittelet med korte definisjoner.
En utførelsesstrøm med egen stack og registertilstand, men som deler prosessens adresseområde med andre tråder.
Feil som oppstår når korrekthet avhenger av en bestemt, ukontrollert interleaving.
Kode som leser eller skriver delt tilstand og derfor må beskyttes.
Egenskapen at høyst én tråd om gangen er inne i kritisk seksjon.
Mekanisme for å vente på at en tilstand blir sann, typisk sammen med en lås.
Feil der et signal sendes uten at mottakeren faktisk venter riktig, slik at oppvåkningen går tapt.
Formler
Hver formel: hva den heter, hvordan den ser ut, og hva symbolene betyr.
Korrekt tellerverdi
Et klassisk eksempel på race condition: uten gjensidig utelukkelse blir sluttverdien ofte lavere enn forventet.
Ventemønster med condition variable
Må være `while`, ikke `if`, fordi tråden kan vekkes uten at betingelsen faktisk er sann når den får låsen tilbake.
Krav til en god lås
Låser må både være riktige og praktiske under ekte last.
Læringsmål
Hva du skal kunne etter å ha lest kapittelet.
- 01Forklare hvordan en race condition oppstår på en delt teller og hvorfor counter++ ikke er én instruksjon
- 02Sammenligne spinlocks og blocking locks og argumentere for når hver er riktig
- 03Bruke en condition variable med while-løkke og lås-disciplin for å unngå lost wakeup
- 04Vurdere en låseimplementasjon ut fra correctness, fairness og overhead