OS Hoofdstuk 6 Flashcards

1
Q

Wat is race condition?

A

Wanneer meerdere processen dezelfde data aanpassen en de volgorde van de processen de uitkomst bepaald.

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

Wat doet een proces in de critical section?

A

Een proces is dan bezig met lezen of aanpassen van data dat wordt gedeeld met minimaal 1 ander proces. Wanneer een proces in zijn critical section is, mag geen enkel ander proces in zijn critical section zijn.

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

Welke 3 properties zorgen voor een oplossing voor critical section problem?

A

1: Mutual exclusion.
2: Progress.
3: Bounded waiting.

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

Wat zijn memory barriers of memory fences?

A

Wanneer zo’n soort instructie wordt uitgevoerd, zorgt het er voor dat alle load en store instructies worden gecomplete voordat er weer nieuwe load en store instructies worden uitgevoerd.

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

Wat betekent het als instructies atomic zijn?

A

Instructies die samenhangen en die niet interrupted kunnen worden.

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

Wat is een atomic variable

A

Deze variabelen zijn simpele data types zoals integers en booleans, alleen deze datatypes zorgen er voor dat er geen race conditions ontstaan.

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

Wat doet test & set()

A

Test een memory word en set hier een value

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

wat is compare en swap()

A

Twee memory words swappen van content.

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

Wat is mutex lock?

A

Beschermt een critical section door eerst acquire() aan te roepen en daarna te releasen met release().
Wanneer een thread probeert om een lock te krijgen die al in gebruik is, sleept de thread tot de lock available is.

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

Wat is counting semaphore?

A

Semaphore is an integer value. This value indicates the maximum number of tasks that is allowed to execute the same critical section at a time. Everytime a task is being executed, it decrements the semaphore, then a task is done performing in the critical section, it increments the value.

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

Op welke manieren kan je busy waiting voorkomen?

A

Mutex locks / semaphores gebruiken.
Thread join
Thread conditional wait & notify.

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

Wat is een deadlock?

A

Wanneer twee processen oneindig lang op een bepaalde event wachten van elkaar. Hierdoor zullen de processen nooit verder gaan met executen.

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

Wat is priority-inheritance protocol?

A

Alle processen die resources nodig hebben die gebruikt worden door een proces met hogere prioriteit, nemen de hogere prioriteit over, totdat ze klaar zijn met de resources.

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

Do software solutions help to solve critical-section problems?

A

No, software solutions do not work well on modern hardware architectures.

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

Noem 3 hardware supports voor critical-section problemen:

A

1: Memory barriers
2: Compare and swap instructions
3: Atomic variables

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

Wat is een monitor?

A

Een abstract datatype dat op een high-level niveau, processen synchronizeerd. Een monitor gebruikt condition variables die er voor zorgen dat andere processen wachten tot een bepaalde condition waar is en elkaar een signaal geven wanneer conditions op true komen.

17
Q

Wat voor problemen kunnen critical-section problems solutions opleveren?

A

liveness problemen zoals deadlocks