Title: Besturingssystemen / hoofdstuk 7

Naam: Geef alle noodzakelijke voorwaarden voor een deadlock
Welke types zijn er?: 1. Mutual Exclusion: meerdere processen willen een niet-deelbare resource
2. Hold & wait: een proces moet een resource hebben en wachten op een andere die in gebruik is
3. No preemtion: resources kunnen niet worden afgenomen
4. Circular wait: P1 wacht op iets wat P2 gebruikt, P2 wacht..., ... op iets wat P1 gebruikt

Naam: preventie met hold-and-wait
Wat is/doet het?: hold-and-wait conditie vermijden
Hoe werkt het?: proces dwingen om alle resources tegelijk te vragen
Welke types zijn er?: - alles in het begin te vragen
- wanneer een proces resources wil, moet dit alle huidige resources opgeven en alle resources die het dan wil opvragen
Waar gebruikt?: deadlock prevention
Wanneer gebruikt?: system calls bij opvragen resource
Voordelen: deadlockpreventie
Nadelen: resources blijven lang ongebruikt
starvation als een zeer populaire resource gevraagd wordt
Alternatieven: no preemtion of circular wait onmogelijk maken
Pagina: 319

Naam: deadlockpreventie met No Preemption
Wat is/doet het?: No Preemption conditie vermijden
Hoe werkt het?: resources afnemen van een wachtend proces
Welke types zijn er?: - als een proces moet wachten op een resource, worden alle resources die het nu gebruikt afgenomen en moet het hierop opnieuw wachten
- als een proces moet wachten op een resource die gealloceerd is aan een ander proces dat zelf moet wachten, wordt de gevraagde resource van dat proces afgenomen
Waar gebruikt?: processen waarvan de toestand kan worden opgeslagen en later hervat kan worden => niet bij mutex of semaforen
Wanneer gebruikt?: bij vragen van resources
Voordelen: deadlockpreventie
Nadelen: niet altijd toepasbaar (zie: waar gebruikt)
Alternatieven: andere condities uitsluiten
Pagina: 320

Naam: deadlockpreventie met circular wait
Wat is/doet het?: circular wait conditie vermijden
Hoe werkt het?: partiele orde aan de resources opleggen, bv altijd disk drive voor printer opvragen
Nadelen: applicaties moeten de orde zelf volgen
Alternatieven: no preemption of hold & wait uitsluiten
Pagina: 321
Figuur: 7.4 7.5

Naam: safe state
Wat is/doet het?: er is een sequentie van processen waarbij elk proces enkel resources opvraagt die door een proces eerder in de sequentie gebruikt worden, dan kan P0 eerst eindigen, dan P1, enz.
Pagina: 324
Figuur: 7.6

Naam: process termination bij deadlocks
Welke types zijn er?: - alle processen in een deadlock stopzetten
- maar 1 proces tegelijk totdat het deadlock opgelost is (bv op basis van prioriteit, hoeveelheid ongealloceerde resources, etc)

Naam: resource preemption bij deadlocks
Hoe werkt het?: 1. kies een slachtoffer
2. rollback naar een veilige toestand die al geweest is (dikwijls niet mogelijk => volledige rollback)
3. vermijd starvation (bv let op het aantal rollbacks in stap 1)
Pagina: 334