De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

HOGESCHOOL ROTTERDAM / CMI Computersystemen 2 (TIRCCMS02 - Operating systems)

Verwante presentaties


Presentatie over: "HOGESCHOOL ROTTERDAM / CMI Computersystemen 2 (TIRCCMS02 - Operating systems)"— Transcript van de presentatie:

1 HOGESCHOOL ROTTERDAM / CMI Computersystemen 2 (TIRCCMS02 - Operating systems)

2 HOGESCHOOL ROTTERDAM / CMI 2 Processen Antwoorden

3 HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen 23 Antwoord Sommige processoren zoals de Intel en hoger hebben hardware support voor context switching. –Ze maken hierbij gebruik van een speciaal datasegment het Task State Segment (TSS). Wanneer een context switch plaats vindt wordt de nieuwe toestand automatische geladen vanuit de TSS. Er wordt dus géén gebruik gemaakt van een stack en stack pointers, –De TSS bevindt zich in memory. Sommige architecturen bevatten hardware waarbij verschillende hardware contexten naast elkaar kunnen bestaan. Hiermee wordt voorkomen dat de CPU zijn context naar/van memory moet schrijven.

4 HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen 24 Antwoord Onder een race condition wordt verstaan dat twee processen gemeenschappelijk data lezen of schrijven en het uiteindelijke resultaat afhangt van wie er op een bepaald moment de lees/schrijf actie uitvoert.

5 HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen 25 Antwoord Nee, het gebruik van twee CPU’s is niet van belang. Stel dat proces B zijn kritieke gebied snel doorloopt zodat beide processen in het niet-kritieke gebied zitten en turn de waarde 0 heeft. Nu doorloopt proces A zijn kritieke gebied snel en komt terug in zijn niet-kritieke gebied. Turn heeft nu de waarde 1 Proces A maakt zijn niet-kritieke deel snel af en gaat terug naar het begin van de herhalingslus. Proces A mag nu niet zijn kritieke gebied betreden omdat hij zelf turn de waarde 1 heeft gegeven. Proces B is nog steeds ‘op zijn gemak bezig’ zijn niet kritieke deel af te ronden… Ieder proces om de beurt toegang geven tot zijn kritieke gebied is niet goed als het ene proces veel langzamer is dan het andere proces.

6 HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen 26 Antwoord Ja, deze opdracht zou heel goed gebruikt kunnen worden. Alleen moet er dan wel voor gezorgd worden dat er, door middel van een extra opdracht in de programma-body, eerst de waarde '1' in het register gezet wordt.

7 HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen 27 Antwoord Een semafoor is een integer variabele die het aantal wakeup's bijhoudt. Een semafoor heeft de waarde 0 als er nog geen wakeup's zijn geweest en een waarde > 0 als er een of meer wakeup's zijn geweest. De twee operaties op een semafoor (down en up) moeten ondeelbare acties zijn. De beide operaties op een semafoor worden als een systemcall geïmplementeerd. Bij het aanroepen van een van deze systemcalls worden alle interrupts disabled en pas na het uitvoeren van de kritieke gebied weer enabled.

8 HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen 28 Antwoord In 'pseudo concurrent C' kan dit worden gesimuleerd als volgt: semaphore access_counter, counter_zero; int counter; seminit(1,access_counter); /* initialisatie van */ seminit(1,counter_zero ); /* binaire semaphore */ teller=20 /* initialisatie teller */ down_count() { down(access_counter); /* teller afgeschermd */ if(!counter) down(counter_zero);/* indien 0 wachten tot 1 */ counter ‑‑ ; up(access_counter); } up_count() { up(counter_zero); /* bevrijd andere taak */ down(access_counter); /* counter afgeschermd */ counter++; /* verhoog teller */ up(access_counter); }

9 HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen 29 Antwoord vervolg In assembly zien de routines er in principe zo uit; down SEI ; zorg voor ononderbroken lees ‑ schrijf aktie TST sem ; test de waarde van de binaire semaphore BEQ wacht; indien deze 0 is, dan gaan slapen DEC sem; zo niet, verlaag dan de semaphor CLI; einde lees ‑ schrijf aktie BRA terug wacht CLI; interupt vlag resetten JSR sleep; spring naar system call sleep RTS up MOVE #1,sem; maak de semaphore gelijk aan 1 RTS

10 HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen 210 Antwoord Bij round robin scheduling zou dit probleem zich niet voordoen. De taak L krijgt iedere keer weer een beetje processortijd om zijn kritike gebied, waar H op staat te wachten, af te maken, zodat taak H vanzelf aan de beurt komt.

11 HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen 211 Antwoord 2.8 Gebruikt men de operatie waituntil dan moet het proces voortdurend wachten totdat de booleaanse expressie klopt. Hierbij wordt voortdurend processor tijd verspilt die men beter voor iets anders kan gebruiken. Dit is echter niet het geval bij synchronisatie m.b.v. wait en until daar het proces dan in een wachtrij verdwijnt totdat deze weer aan de beurt is. Er wordt zo geen processor tijd te verknoeit.

12 HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen 212 Antwoord Ze gebruiken het message-passing principe om onderling te communiceren. De koks maken niet meer hamburgers dan dat er in de 'postbus' kunnen en wachten dan net zolang totdat de inpakkers er een of meer uithalen. Idem met de inpakkers en de kassiers die niets inpakken zolang de 'postbus' leeg is. Zodra er een bestelling is pakken ze die in en rekenen de kassiers af.

13 HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen 213 Antwoord Nee, want er wordt geen actie gestart maar gestopt. Het is een wait condition.

14 HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen 214 Antwoord Bij de implementatie van semaphoren met monitors hebben we voor elke te implementeren semaphore een teller en een gelinkte lijst nodig. Ook is er per semaphore een conditionele variabele nodig. Als er nu een DOWN op de geïmplementeerde semafoor wordt gedaan dan kijkt de aanvrager (binnenin de monitor) om te zien of de teller groter is dan nul. Is dit het geval dan wordt de teller met één verlaagd en de aanvrager verlaat de monitor. Als de teller gelijk is aan nul dan voegt de aanvrager zijn procesnummer toe aan de gelinkte lijst voor die semafoor en geeft een WAIT op de conditionele variabele voor die semafoor. Een UP op de geïmplementeerde semafoor komt nu overeen met het volgende: het proces dat de UP geeft verhoogt de teller in de monitor en kijkt of er in de gelinkte lijst een proces zit. Is dit het geval dan wordt dit proces er af gehaald en er wordt een signal op de conditionele variabele gegeven. Het proces wat nu van de gelinkte lijst is afgehaald heeft nu processortijd. Bij de implementatie van monitors met behulp van semaforen is er geen gelinkte lijst van geblokkeerde processen nodig omdat als er een DOWN op een semafoor wordt gegeven en de waarde van de semafoor is kleiner dan nul, het proces die de DOWN geeft in de waiting state wordt gezet. Met behulp van een UP op een semafoor wordt het proces vanuit de waiting state in de ready state gezet. Er is dus geen extra gelinkte lijst van geblokkeerde processen nodig.

15 HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen 215 Antwoord De state variabele in de procedure take_forks wordt gelijk aan HUNGRY omdat het anders niet mogelijk zou zijn om een poging te doen twee vorken op te pakken. De test procedure test of de state variabele gelijk aan HUNGRY is en hoogt dan de semafoor s(i) op. Indien de state variabele ongelijk aan HUNGRY was geweest dan zou na verlaging van de semafoor in de procedure take_forks(i) een block optreden ongeacht het feit dat zowel de linkerbuur als de rechterbuur hun vorken niet gebruiken.

16 HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen 216 Antwoord Er kunnen nu problemen ontstaan doordat de procedure PUTFORKS de procedure test aanroept terwijl hij nog in de EATING state verkeert. (De test procedure dient ervoor om één van de linker of rechter buren uit de HUNGRY state te halen. Dit gebeurt door een signal (s[i]:=1) te geven.) Als we echter naar de test procedure kijken zien we dat er pas een signal wordt gegeven als de aanroepende filosoof niet in de EATING state verkeert. Dit houdt in dat de beide buren geblokkeerd worden. Conclusie: de filosoof die het eerste in de EATING state komt kan altijd blijven eten. Hij legt de vorken niet meer neer.

17 HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen 217 Antwoord Een formulering van het lezers schrijvers probleem is, dat een schrijver pas dan de data base mag binnen komen wanneer alle lezers weg zijn. Hier toe moet de eerste lezer een down doen op de semafoor, alle volgende lezers verhogen een teller. Als een lezer de database verlaat moet deze de teller verhogen de laatste lezer die de data base verlaat moet een up op de semafoor uitvoeren. Een tweede formulering van het probleem is, dat een lezer pas dan de database mag binnen komen wanneer alle schrijvers weg zijn. Hier toe moet de eerste schrijver een down doen op de semafoor, alle volgende schrijvers verhogen een teller. Als een schrijver de database verlaat moet deze de teller verhogen de laatste schrijver die de data base verlaat moet een up op de semafoor uitvoeren. Een derde formulering van het probleem is, dat slechts één lezer en of een schrijver de database mag betreden. Hier toe moet de lezer of de schrijver een down doen op een semafoor wanneer hij de database binnen komt, en een up op die semafoor wanneer hij de database verlaat.

18 HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen 218 Antwoord Doordat er bij het hardwarematig omschakelen geen tijd verloren gaat heb je voor n processen n*T seconden nodig.

19 HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen 219 Antwoord Het proces dat tweemaal voorkomt in de lijst krijgt tweemaal zoveel tijd toegewezen dan de andere processen. Dit kan worden toegestaan indien het proces een hogere prioriteit moet hebben dan de andere processen.

20 HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen 220 Antwoord De processor efficiëntie (PE) is de verhouding tussen de nuttige tijd en de totale tijd. De nuttige tijd is hier de tijd die een proces daadwerkelijk aan de taak kan besteden. De totale tijd is de nuttige tijd plus overhead. In het algemeen is de processor efficiëntie uit te drukken in de volgende formule: PE = (nuttige tijd) / (nuttige tijd + overhead) = T/(T+ nS) n is het aantal context switches.

21 HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen 221 Antwoord vervolg a)Q =  : Wie het eerst komt die het eerst maalt. De overhead is één context switch (om het proces te runnen). Dus PE = T / (T+S). b)Q > T: Als antwoord a. De overhead is één context switch. Dit leidt tot dezelfde formule. c)S < Q < T: Wanneer het quantum korter is dan de nuttige tijd. Zijn er T/Q context switches nodig. Substitutie in de formule op de vorige slide levert: PE = T / (T+nS) = T / (T+(T/Q)S) = Q /(Q +S) d)Q = S: de formule van antwoord C. wordt nu: PE = 0.5 e)Q bijna 0: Omdat S>0 als Q  0 zal PE  0. Dit betekent dat de overhead het nuttige gebruik van de CPU domineert. Er wordt geen nuttig werk meer verricht.

22 HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen 222 Antwoord x a)Round robin: Ieder proces krijgt een tijdsinterval toegewezen dat quantum wordt genoemd. Binnen die tijdsinterval mag het proces worden uitgevoerd. Als het proces na afloop van het genoemde tijdsinterval nog steeds bezig is, word de CPU onderbroken en aan een ander proces toegewezen. Gemiddelde doorlooptijd = Tijd van alle jobs samen / aantal afgeronde jobs. De gemiddelde doorloop tijd voor 10, 6, 2, 4 en 8 minuten is dan / 5 = 6 minuten b)Priority scheduling. c)FIFO (First ‑ in first out) Taken komen binnen in volgorde: A,B,C,D en E. d)Shortest job first.

23 HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen 223 Antwoord Bij dit besturingssysteem krijgt een proces initieel 1 quantum toegewezen. De volgende keer dat dit proces wordt uitgevoerd, mag het 2 quanta uitvoeren voordat het wordt gewisseld. Bij volgende runs krijgt het proces achtereenvolgens 4, 8, 16, 32 en tenslotte 64 quanta toegewezen. Als een proces dus 30 quanta nodig heeft moet het 5 keer in executie toestand worden gebracht: = 31 quanta.

24 HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen 224 Antwoord 'Shortest Job First' geeft altijd de minimale gemiddelde reactietijd, dus afhankelijk van X zal de volgorde worden: X ≤ 3 : X, 3, 5, 6, 9 3 < X ≤ 5 :3, X, 5, 6, 9 X = 6 : 3, 5, X, 6, 9 6 < X ≤ 9 : 3, 5, 6, X, 9 X>9: 3, 5, 6, 9, X

25 HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen 225 Antwoord Verwerkingstijden voor zekere terminal: T 0,T 1,T 2,T 3, etc Aging is de techniek waarbij de volgende waarde van een reeks wordt bepaald door het gewogen gemiddelde van de huidige meting en voorgaande bepaling. Kies: aT 0 +(1-a)T 1 met a= ½ Dan: 1e bepaling: T 0 2e bepaling: ½ T 0 +(1- ½)T 1 = ½ T 0 + ½T 1 3e bepaling: ½(½ T 0 + ½T 1 )+(1-½)T 2 = ¼ T 0 + ¼ T 1 + ½T 2 4e bepaling: ½(¼ T 0 + ¼ T 1 + ½T 2 )+(1-½)T 3 = 1 / 8 T / 8 T 1 + ¼ T 2 +½T 3 Voorspelling = 1 / 8 ∙ / 8 ∙20 + ¼∙40 + ½∙15 = 25 ms

26 HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen 226 Antwoord In het algemeen heb je zowel processen op achtergrondgeheugen (disk) als in het computergeheugen staan en moet je dus soms overschakelen en sommige processen laden en andere weer wegschrijven. Hiervoor is two ‑ level scheduling het meeste geschikt (snel en efficient).

27 HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen 227 Antwoord 2. 2.x.y


Download ppt "HOGESCHOOL ROTTERDAM / CMI Computersystemen 2 (TIRCCMS02 - Operating systems)"

Verwante presentaties


Ads door Google