[OPGELOST] H10 Deadlocks

Gebruikersavatar
ideglier
Prof in de forumwetenschappen
Prof in de forumwetenschappen
Berichten: 5400
Lid geworden op: 11 okt 2008, 18:27
Locatie: Asse

[OPGELOST] H10 Deadlocks

Berichtdoor ideglier » 16 jan 2010, 15:58

Weet er iemand hoe ik die grafiekskes moet interpreteren met de evolutie van processen, namelijk: die gekleurde rechthoekskes? Das echt iet raar...
I love the smell of petrol in the morning. Smells like ... SPEED!
Afbeelding
ZVdP
Beginnend forumgebruiker
Beginnend forumgebruiker
Berichten: 25
Lid geworden op: 13 feb 2008, 21:50

Re: Hoofdstuk 10 Dreadlocks

Berichtdoor ZVdP » 17 jan 2010, 15:35

Die grijze rechthoeken zijn de rechthoeken waar beide procedures dezelfde resources nodig hebben; de voortgang van het programma (dat lijntje in de grafiek) kan dus nooit in deze rechthoeken komen.

Als dat lijntje dan in een rechthoek komt, waarbij zowel de rechthoek erboven als rechts ervan gekleurd is (dus die rode rechthoek), zullen we gegarandeerd in een deadlock geraken.
"Why must you speak when you have nothing to say?" --Hornblower
"Vae victis" --Brennus
Gebruikersavatar
ideglier
Prof in de forumwetenschappen
Prof in de forumwetenschappen
Berichten: 5400
Lid geworden op: 11 okt 2008, 18:27
Locatie: Asse

Re: Hoofdstuk 10 Dreadlocks

Berichtdoor ideglier » 17 jan 2010, 15:45

Aaah jaaa! en de lijnen die onder aan de assen getekend zijn aan P1 en P2, betekenen dan de resources die ze elk nodig hebben. Ik snap alleen niet goed waarom dat er twee zijn: een turquoise en een paarse. Wat is de preciese betekenis van die lijnen? Als ik dat weet heb ik alles begrepen...
I love the smell of petrol in the morning. Smells like ... SPEED!
Afbeelding
ZVdP
Beginnend forumgebruiker
Beginnend forumgebruiker
Berichten: 25
Lid geworden op: 13 feb 2008, 21:50

Re: Hoofdstuk 10 Dreadlocks

Berichtdoor ZVdP » 17 jan 2010, 16:22

Elke lijn duidt een resource aan. De positie van de lijnen duidt aan wanneer het desbetreffende proces die resource nodig heeft in zijn uitvoering.
Het zijn natuurlijk twee resources, omdat je geen deadlocks kunt krijgen wanneer er maar 1 gedeelde resource is.
"Why must you speak when you have nothing to say?" --Hornblower
"Vae victis" --Brennus
Gebruikersavatar
ideglier
Prof in de forumwetenschappen
Prof in de forumwetenschappen
Berichten: 5400
Lid geworden op: 11 okt 2008, 18:27
Locatie: Asse

Re: Hoofdstuk 10 Dreadlocks

Berichtdoor ideglier » 17 jan 2010, 16:23

ah oke danku Zjef!
I love the smell of petrol in the morning. Smells like ... SPEED!
Afbeelding
Gebruikersavatar
AdamCooman
The IRW God
The IRW God
Berichten: 2376
Lid geworden op: 28 nov 2007, 18:19
Locatie: Aalst
Contacteer:

Re: [OPGELOST] Hoofdstuk 10 Deadlocks

Berichtdoor AdamCooman » 18 jan 2010, 16:22

moeten wij dat bankers algorithm kennen?
want daar staat weer verschrikkelijk veel uitleg bij
AdamCooman The IRW God
Als een link niet meer werkt, bezoek mijn site om het bestand te vinden
Afbeelding

Mooiste avatar: AdamCooman
Beste moderator: AdamCooman
Gebruikersavatar
AdamCooman
The IRW God
The IRW God
Berichten: 2376
Lid geworden op: 28 nov 2007, 18:19
Locatie: Aalst
Contacteer:

Re: [OPGELOST] Hoofdstuk 10 Deadlocks

Berichtdoor AdamCooman » 18 jan 2010, 16:53

Dit helpt echt wel om die deadlocks te snappen
http://nl.wikipedia.org/wiki/Filosofenprobleem
AdamCooman The IRW God
Als een link niet meer werkt, bezoek mijn site om het bestand te vinden
Afbeelding

Mooiste avatar: AdamCooman
Beste moderator: AdamCooman
Gebruikersavatar
ideglier
Prof in de forumwetenschappen
Prof in de forumwetenschappen
Berichten: 5400
Lid geworden op: 11 okt 2008, 18:27
Locatie: Asse

Re: [OPGELOST] Hoofdstuk 10 Deadlocks

Berichtdoor ideglier » 18 jan 2010, 17:30

ja Adam, goed gevonden :roll:

Dat bankers algoritme is eigenlijk niet zo moeilijk te snappen. Het is een algoritme dat gebruikt wordt om deadlocks te voorkomen. Dit gebeurt zo:
- je hebt m resources en n processen
- je hebt een rij met van m resources, waarbij R[j]=0: de resource behoort toe aan een proces, R[j]=1: de resource is vrij om gebruikt te worden
- je zet in een matrix N welke resources de n processen nog nodig hebben
- in een matrix A zet je welke resources reeds gebruikt worden door welk proces.

Dan run je denkbeeldig het programma (je bekijkt de resources stap voor stap) en dan voer je een aantal stappen uit:
- je kijkt of elk element in de rij van de matrix N (of het huidige proces) kleiner of gelijk is aan het overeenkomstige element in de rij R[j], dus N[i,j]<=R[j] voor elke j in de rij i
- indien dit niet het geval is, bijv. R[j]<N[i,j] doordat R[j]=0 en N[i,j]=1. In andere woorden, proces i heeft resource j nodig, maar resource j is al aan iemand gegeven, maar wanneer die resource j terug vrijkomt, weet geen kat, dus het proces kan daardoor vastlopen ==> deadlock
- stel nu dat N[i,j] toch <= R[j] voor elke j, dit wil zeggen dat proces i alle resources die hij nodig heeft tot zijn beschikking heeft: het proces kan verder en uiteindelijk eindigen.
- doe vorige stappen tot alle processen gestopt zijn.

Dit algoritme gebeurt intern door het OS. Als er een deadlock dreigt te ontstaan, dan grijpt het OS in door de resources niet toe te kennen aan het huidige proces of de uitvoering van het huidige proces uit te stellen en eventueel met een ander proces te beginnen. Maar de nadelen zoals op de slides ook te zien zijn: er is een grote voorkennis nodig wat betreft het aantal resources, het aantal processen en welke processen welke resources nodig hebben. Vandaar dat voor andere deadlock prevention algoritmes wordt geopteerd.
I love the smell of petrol in the morning. Smells like ... SPEED!
Afbeelding

Terug naar “Computersystemen”

Wie is er online

Gebruikers op dit forum: Geen geregistreerde gebruikers en 1 gast

cron