F6 - Semaforer Flashcards
Vad är en semafor
En signaleringsmekanism.
Hur används en semafor?
Genom att bestämma hur många trådar som får åtkomst till en metod.
När en tråd används, hur många till trådar kan användas.
Beroende på hur stor semaforen gjorts är det -1 tillgänglighet.
När en semafor är full vad händer då?
Kommande tråd som önskar att få åtkomst till metoden behöver vänta till att en tråd släppt åtkomst.
Vad är en binär semafor?
Det är en semafor som innehåller en plats, när denna plats tas av en tråd skapar detta även mutual exclusion.
När en tråd är klar med en resurs hos en semafor, vad behöver den göra?
Släppa resursen.
Vad kännetecknar det klassiska producer-consumer problemet
Två trådar, där en tråd lägger information till en buffer och en tråd hämtar information från en buffer.
Producer: lägger information till buffern.
Consumer: tar information från buffern.
Skillnaden mellan Reader/Writer och Prodcuer/Consumer
Writer skriver, reader läser och platsen förblir kvar.
Producer lägger, consumer tar och platsen data försvinner.
Vad ska inte en producer göra om en buffer är full?
Lägga till mer i buffer
Vad ska inte en consumer göra om en buffer är tom?
Försöka hämta data från en buffer
Kritiska sektionen kännetecknas som?
Delar av en metod där flera trådar har åtkomst till samma data. Denna data kan manipuleras av alla trådar och därmed viktigt att detta görs korrekt.
Ett anrop för att få åtkomst till en semafor görs genom?
semafor.aquire().
Fariness setting i Semafor gör vad?
Den tillåter de trådar som har väntat längst att köra.