M2.F3: Critical Section & Mutual Exclusion Flashcards

1
Q

Ge fem exempel på mekanismer som kontrollerar åtkomsten till delade resurser:

A
  • Locks
  • Mutexes
  • Semaphores
  • Monitors
  • Condition variables
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Vad finns det för mönster för att koordinera åtkomst till delade resurser?

A

Writer-Reader och Producer-Consumer (bounded buffer)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Vad är mutual exclusion?

A

När bara en tråd åt gången får vara i sin critical region vid ett särskilt tillfälle

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Hur programmerar man oftast mutual exclusion?

A

Genom att använda locks

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Vad är condition synchronization?

A

När man signalerar ett tillstånd mellan trådar genom en delad variabel

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Hur implementerar man condition synchronization?

A

Genom att låta en tråd vänta på ett event som signaleras från en annan tråd.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Vad är busy waiting?

A

När en process väntar på ett tillstånd och upprepat testar en variabel (ett villkor) tills den blir sann

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Vad är en critical section/region?

A

Sekvenser av instruktioner med modifierbara gemensamma resurser, som kan ge inkorrekta resultat om de körs simultant.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Vad finns ofta i en critical section?

A

Delade variabler

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

När används atomic actions och critical sections?

A

När man har trådar som vill komma åt delade resurser

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Vad är en fine-grained atomic action?

A

En som kan implementeras i ett enda steg, av en instruktion

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Vad är en coarse-grained atomic action?

A

En som kan implementeras i flera steg som en kritisk sektion

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Med vad kan man genomföra en atomic operation?

A

Med ett lock, en mutex, en monitor eller en binär semafor.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Vad uppstår när flera trådar har en överlappad (interleaved) körning av en kritisk sektion?

A

En non-deterministic situation.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Vad är en deterministisk och non-deterministisk situation?

A

Deterministiskt är när man får samma output med samma input varje gång koden körs, non är när man inte vet vilken output man kommer få av samma input.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Vad behöver trådar ha för att undvika race condition?

A

Exklusiv åtkomst till sin kritiska sektion.

17
Q

Vad bör man göra för två saker för att undvika race condition?

A
  • Avgöra vilken del av koden som är kritisk, dvs vilken innehåller delade resurser
  • Säkerställa mutual exclusion
18
Q

Vad finns det för fyra krav på en lösning till critical sectionproblemet?

A

Mutual Exclusion - endast en process åt gången tillåts i sin kritiska sektion
Progress(no deadlock/livelock) - om ingen tråd är i sin kritiska sektion måste en tråd som vill in i sin CS få komma in utan fördröjning
Fairness (no starvation) - om en tråd väntar på sin kritiska sektion skall den få komma dit så småningom och det finns en övre gräns på hur många gånger en tråd får gå in i sin CS medan andra väntar
No assumption on performance: kraven för alla sorters CPUs måste mötas

19
Q

Hur sätter man ett “lock” med java?

A

Genom att skriva synchronized i metodsignaturen

20
Q

Vad har ett lock för två tillstånd?

A

Held (locked) - låset används och not held - låset används inte

21
Q

Vad har lock för två operationer?

A
  1. Låsa/vänta på låsning

2. Släppa låset

22
Q

Om en tråd har utfört en lock, kan andra trådar låsa andra saker samtidigt?

A

Ja

23
Q

Hur bör man tänka med lås på kritiska sektioner?

A

Använda samma lås på kritiska sektioner som når samma delade resurser

24
Q

Vad finns det för fem fundamentala regler för Reader/Writerlösningen?

A
  • Två eller fler som läser kan få tillgång till den delade datan överlappande (concurrently)
  • Den delade resursen kan vara ett objekt eller en buffer
  • En reader och en writer bör inte få tillgång till den delade resurser concurrently
  • Två eller flera writers bör inte få tillgång till den delade resursen samtidigt
  • trådar måste vänta på varandra när de inte får gå in i viss kod överlappande
25
Q

Vad finns det för två regler för Producer/Consumer-problemet?

A
  • Producern bör inte lägga till ett föremål i buffern när buffern är full.
  • Consumern bör inte försöka ta ut ett item ur buffern när buffern är tom
26
Q

Vad är en delad resurs?

A

Antingen delat minne eller en öppen fil.