De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

Computersystemen 2 (TIRCCMS02 - Operating systems)

Verwante presentaties


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

1 Computersystemen 2 (TIRCCMS02 - Operating systems) L.V.de.Zeeuw@HRO.NL

2 2 Processen Opgaven

3 Vraag 2.1 Stel dat je een geavanceerde computer architectuur zou ontwerpen die 'process switching' in hardware deed i.p.v. op interrupt basis. Welke informatie zou de cpu nodig hebben ? Leg uit hoe de hardware process switching zou kunnen werken . L.V. de Zeeuw Computersystemen 2

4 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. L.V. de Zeeuw Computersystemen 2

5 Vraag 2.2 Wat verstaan we onder een race condition? L.V. de Zeeuw
Computersystemen 2

6 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. L.V. de Zeeuw Computersystemen 2

7 Vraag 2.3 Als twee processen op twee CPU’s worden uitgevoerd, kan dan de busy waiting oplossing worden toegepast? Neem aan dat gebruik wordt gemaakt van de variabele turn en de twee processen een gemeenschappelijk deel van het geheugen gebruiken. L.V. de Zeeuw Computersystemen 2

8 Antwoord 2.3 2.2.3 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. L.V. de Zeeuw Computersystemen 2

9 Vraag 2.4 Stel dat we een computer hebben die de instructie TEST AND SET LOCK niet heeft, maar daarvoor in de plaats een instructie heeft die de inhoud van een register en een geheugenplaats verwisselt in één ondeelbare opdracht kunnen we deze dan gebruiken zoals hier naast staande figuur staat beschreven? L.V. de Zeeuw Computersystemen 2

10 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. L.V. de Zeeuw Computersystemen 2

11 Vraag 2.5 Schets de implementatie van semaforen voor een operating system dat in staat is het interrupt mechanisme buitenwerking te stellen. L.V. de Zeeuw Computersystemen 2

12 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. L.V. de Zeeuw Computersystemen 2

13 Vraag 2.6 Laat zien hoe counting semaphores (dit zijn semaphores die een willekeurig grote waarde kunnen hebben) kunnen worden geimplementeerd door alleen binaire semaphoren en gewone machine instructies te gebruiken. L.V. de Zeeuw Computersystemen 2

14 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= /* 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 */ L.V. de Zeeuw Computersystemen 2

15 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 L.V. de Zeeuw Computersystemen 2

16 Vraag 2.7 In paragraaf werd een situatie beschreven, waarbij een proces H met hoge prioriteit in een oneindige loop bleef wachten op een proces L met een lage prioriteit. Zou dit probleem ook optreden als niet priority scheduling, maar round robin scheduling wordt toegepast? L.V. de Zeeuw Computersystemen 2

17 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. L.V. de Zeeuw Computersystemen 2

18 Vraag 2.8 Synchronisatie in monitors gebeurt met conditionele variabelen en speciale operaties wait en signal. Een meer universele vorm van synchronisatie zou zijn door gebruik te maken een enkele operatie waituntil met een booleaanse expressie als parameter. Zo zou men bijvoorbeeld kunnen zeggen: WAITUNTIL x<0 or y+z<n De operatie signal zou dan niet meer nodig zijn. Desondanks wordt deze methode toch niet gebruikt waarom niet? (Aanwijzing: denk aan de implementatieproblematiek) L.V. de Zeeuw Computersystemen 2

19 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. L.V. de Zeeuw Computersystemen 2

20 Vraag 2.9 Een afhaalrestaurant heeft vier categorieën bedienden:
Bedienden die een bestelling opnemen Koks die het eten koken. Inpak specialisten die het bestelde voedsel inpakken. Kassiers die het ingepakte voedsel aan de klant overhandigen en het geld in ontvangst nemen. Iedere bediende kan worden opgevat als een sequentieel proces dat met de andere processen communiceert. Welke manier van intern proces communications wordt hier gebruikt? L.V. de Zeeuw Computersystemen 2

21 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. L.V. de Zeeuw Computersystemen 2

22 Vraag 2.10 Stel we beschikken over een message passing systeem dat gebruikmaakt van postbussen. Een proces blokkeert niet als een boodschap naar een volle postbus wordt gestuurd of als geprobeerd wordt een boodschap uit een lege postbus te accepteren. In zulke gevallen ontvangt het proces een foutmelding. De actie die het proces op het ontvangen van een foutmelding onderneemt, bestaat uit het steeds opnieuw proberen tot de actie slaagt. Leidt deze aanpak tot een race-condition? L.V. de Zeeuw Computersystemen 2

23 Antwoord Nee, want er wordt geen actie gestart maar gestopt. Het is een wait condition. L.V. de Zeeuw Computersystemen 2

24 Vraag 2.11 Leg uit waarom niet gebruik werd gemaakt van een lineaire lijst van geblokkeerde processen bij de implementatie van monitoren met semaforen. Dit was wel het geval toen semaforen werden geïmplementeerd met monitoren. (Aanwijzing: denk aan het verschil tussen semaforen en conditie variabelen.) L.V. de Zeeuw Computersystemen 2

25 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. L.V. de Zeeuw Computersystemen 2

26 Vraag 2.12 Waarom wordt in de oplossing van het dining philosophers probleem de state variabele gelijk aan hungry? L.V. de Zeeuw Computersystemen 2

27 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. L.V. de Zeeuw Computersystemen 2

28 Vraag 2.13 Laten we kijken naar de procedure put_forks.
Stel dat de variabele state[i] gelijk wordt aan THINKING na de twee aanroepen van test in plaats van voor de aanroepen van test. Hoe zou dit het effect van de eindresultaat veranderen in het geval van drie filosofen? En voor 100 filosofen? L.V. de Zeeuw Computersystemen 2

29 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. L.V. de Zeeuw Computersystemen 2

30 Vraag 2.14 Het lezers en schrijvers probleem kan op verschillende manieren worden geformuleerd. Die manieren hebben betrekking op welke processen op welk moment kunnen worden gestart. Beschrijf nauwkeurig drie verschillende varianten van het probleem waarbij in elke variant een andere categorie processen wordt bevoordeeld (of juist niet). Geef aan wat er gebeurt als een lezer of schrijver klaar is om een database te benaderen. Beschrijf ook wat er gebeurt als een proces klaar is met de database. L.V. de Zeeuw Computersystemen 2

31 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. L.V. de Zeeuw Computersystemen 2

32 Vraag 2.15 De CDC 6600 computers konden zo'n 10 I/O processen tegelijk aan door gebruik te maken van een interessante vorm van round robin schedulling: Processor scharing. Een process wissel vond plaats na iedere instructie, zo kwam instructie 1 van process 1, instructie 2 van process 2, enz De process wissel vond plaats door speciale hardware met een overhead nul. Als een process nu T sec nodig had om een opdracht te voltooien, hoeveel tijd zou het dan nodig hebben als er processor sharing werd gebruikt met n processen? L.V. de Zeeuw Computersystemen 2

33 Antwoord Doordat er bij het hardwarematig omschakelen geen tijd verloren gaat heb je voor n processen n*T seconden nodig. L.V. de Zeeuw Computersystemen 2

34 Vraag 2.16 Round Robin schedulers houden normaal een lijst van alle processen bij, waarin elk proces één keer voorkomt. Wat zou er gebeuren indien een proces tweemaal voorkomt in de lijst ? Kunt je een reden bedenken om dit toe te staan ? L.V. de Zeeuw Computersystemen 2

35 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. L.V. de Zeeuw Computersystemen 2

36 Vraag 2.17 Metingen aan een bepaald systeem laten zien dat een gemiddeld proces T seconden loopt voordat er I/O gepleegd wordt en het proces blokkeert. Een proces wisseling duurt S seconden. Dit is overhead. Geef voor round robin scheduling met een quantum van Q seconden een formule voor de CPU efficiëntie voor elk van de volgende gevallen. Q =  Q > T S < Q < T Q = S Q bijna 0 L.V. de Zeeuw Computersystemen 2

37 PE = (nuttige tijd) / (nuttige tijd + overhead) = T/(T+ nS)
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. L.V. de Zeeuw Computersystemen 2

38 Antwoord vervolg 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). Q > T: Als antwoord a. De overhead is één context switch. Dit leidt tot dezelfde formule. 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) Q = S: de formule van antwoord C. wordt nu: PE = 0.5 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. L.V. de Zeeuw Computersystemen 2

39 Vraag 2.18 Vijf batch jobs A tot en met E worden vrijwel tegelijkertijd bij het computercentrum aangeboden. De geschatte executie tijden zijn respectievelijk 10, 6, 2, 4 en 8 minuten. De (door een externe bron) aangegeven prioriteiten zijn achtereenvolgens 3, 5, 2, 1 en 4. De hoogste prioriteit is dan 5. Bepaal de gemiddelde doorlooptijd van de processen bij ieder van de volgende scheduling algoritmen. Verwaarloosde overhead ten gevolge van het wisselen van processen. Round robin. Priority scheduling. FIFO (First‑in first out) Taken komen binnen in volgorde: A,B,C,D en E. Shortest job first. L.V. de Zeeuw Computersystemen 2

40 Antwoord 2.18 2.4.x 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 Priority scheduling. FIFO (First‑in first out) Taken komen binnen in volgorde: A,B,C,D en E. Shortest job first. L.V. de Zeeuw Computersystemen 2

41 Vraag 2.19 Een process dat onder CTSS loopt, heeft 30 quanta nodig om te worden uitgevoerd. Hoeveel keer moet het proces in executie toestand worden gebracht, met in begrip van de eerste keer (voordat het proces is voltooid)? CTSS (acroniem van Compatible Time-Sharing System) is een besturingssysteem voor computers dat in 1961 werd ontwikkeld door M.I.T.. Het was het eerste succesvolle timesharing-systeem, en voorloper van Multics. Laatste was minder succesvol, maar heeft wel bijgedragen aan de geboorte van Unix. L.V. de Zeeuw Computersystemen 2

42 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. L.V. de Zeeuw Computersystemen 2

43 Vraag 2.20 Vijf taken wachten op verwerking. Hun verwachte executie‑tijden zijn 9, 6, 3, 5, en X seconden. In welke volgorde moeten deze jobs worden uitgevoerd om de responstijd te minimaliseren? (Het antwoord is afhankelijk van X.) L.V. de Zeeuw Computersystemen 2

44 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 L.V. de Zeeuw Computersystemen 2

45 Vraag 2.21 Het aging algorithme met a=0.5 wordt gebruikt om executie tijden te voorspellen. De vorige vier executie tijden bedroegen respectievelijk 40, 20, 40 en 15 msec. Wat is de voorspelling voor de volgende executie tijd? L.V. de Zeeuw Computersystemen 2

46 Antwoord 2.21 2.4.4 Verwerkingstijden voor zekere terminal:
T0,T1,T2,T3, 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: aT0+(1-a)T1 met a= ½ Dan: 1e bepaling: T0 2e bepaling: ½ T0+(1- ½)T1 = ½ T0 + ½T1 3e bepaling: ½(½ T0 + ½T1)+(1-½)T2 = ¼ T0 + ¼ T1 + ½T2 4e bepaling: ½(¼ T0 + ¼ T1 + ½T2 )+(1-½)T3 = 1/8T0+1/8T1+ ¼ T2+½T3 Voorspelling = 1/8∙40 + 1/8∙20 + ¼∙40 + ½∙15 = 25 ms L.V. de Zeeuw Computersystemen 2

47 Vraag 2.22 Leg uit waarom scheduling op twee niveau’s vaak wordt gebruikt? L.V. de Zeeuw Computersystemen 2

48 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). L.V. de Zeeuw Computersystemen 2

49 Vraag 2.x L.V. de Zeeuw Computersystemen 2

50 Antwoord x.y L.V. de Zeeuw Computersystemen 2


Download ppt "Computersystemen 2 (TIRCCMS02 - Operating systems)"

Verwante presentaties


Ads door Google