OS Hoofdstuk 6 Flashcards
Wat is race condition?
Wanneer meerdere processen dezelfde data aanpassen en de volgorde van de processen de uitkomst bepaald.
Wat doet een proces in de critical section?
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.
Welke 3 properties zorgen voor een oplossing voor critical section problem?
1: Mutual exclusion.
2: Progress.
3: Bounded waiting.
Wat zijn memory barriers of memory fences?
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.
Wat betekent het als instructies atomic zijn?
Instructies die samenhangen en die niet interrupted kunnen worden.
Wat is een atomic variable
Deze variabelen zijn simpele data types zoals integers en booleans, alleen deze datatypes zorgen er voor dat er geen race conditions ontstaan.
Wat doet test & set()
Test een memory word en set hier een value
wat is compare en swap()
Twee memory words swappen van content.
Wat is mutex lock?
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.
Wat is counting semaphore?
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.
Op welke manieren kan je busy waiting voorkomen?
Mutex locks / semaphores gebruiken.
Thread join
Thread conditional wait & notify.
Wat is een deadlock?
Wanneer twee processen oneindig lang op een bepaalde event wachten van elkaar. Hierdoor zullen de processen nooit verder gaan met executen.
Wat is priority-inheritance protocol?
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.
Do software solutions help to solve critical-section problems?
No, software solutions do not work well on modern hardware architectures.
Noem 3 hardware supports voor critical-section problemen:
1: Memory barriers
2: Compare and swap instructions
3: Atomic variables