HOGESCHOOL ROTTERDAM / CMI Besturingssystemen 1 (TINBES01-1) [email protected] HOGESCHOOL ROTTERDAM / CMI 2 Processen Opgaven HOGESCHOOL ROTTERDAM / CMI 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 Besturingssystemen 1 3 HOGESCHOOL ROTTERDAM / CMI Vraag 2.2 Wat verstaan we onder een race condition? L.V. de Zeeuw Besturingssystemen 1 4 HOGESCHOOL ROTTERDAM / CMI 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 Besturingssystemen 1 5 HOGESCHOOL ROTTERDAM / CMI 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 in de hier naast staande figuur staat beschreven? L.V. de Zeeuw Besturingssystemen 1 6 HOGESCHOOL ROTTERDAM / CMI 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 Besturingssystemen 1 7 HOGESCHOOL ROTTERDAM / CMI 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 Besturingssystemen 1 8 HOGESCHOOL ROTTERDAM / CMI Vraag 2.7 In paragraaf 2.2.4 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 Besturingssystemen 1 9 HOGESCHOOL ROTTERDAM / CMI 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? L.V. de Zeeuw Besturingssystemen 1 10 HOGESCHOOL ROTTERDAM / CMI Vraag 2.9 Een afhaalrestaurant heeft vier categorieën personeel: 1. Bedienden die een bestelling opnemen 2. Koks die het eten koken. 3. Inpak specialisten die het bestelde voedsel inpakken. 4. 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 interproces communicatie wordt hier gebruikt? L.V. de Zeeuw Besturingssystemen 1 11 HOGESCHOOL ROTTERDAM / CMI Vraag 2.10 Stel we beschikken over een message passing systeem dat gebruik maakt 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 Besturingssystemen 1 12 HOGESCHOOL ROTTERDAM / CMI 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 Besturingssystemen 1 13 HOGESCHOOL ROTTERDAM / CMI Vraag 2.12 Waarom wordt in de oplossing van het dining philosophers probleem de state variabele gelijk aan hungry? L.V. de Zeeuw Besturingssystemen 1 14 HOGESCHOOL ROTTERDAM / CMI 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 Besturingssystemen 1 15 HOGESCHOOL ROTTERDAM / CMI 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 Besturingssystemen 1 16 HOGESCHOOL ROTTERDAM / CMI 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 Besturingssystemen 1 17 HOGESCHOOL ROTTERDAM / CMI 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 Besturingssystemen 1 18 HOGESCHOOL ROTTERDAM / CMI 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. a) b) c) d) e) Q= Q>T S<Q<T Q=S Q bijna 0 L.V. de Zeeuw Besturingssystemen 1 19 HOGESCHOOL ROTTERDAM / CMI 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)? Gegeven: 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. L.V. de Zeeuw Besturingssystemen 1 CTSS (acroniem van Compatible TimeSharing 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. 21 HOGESCHOOL ROTTERDAM / CMI 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 Besturingssystemen 1 22 HOGESCHOOL ROTTERDAM / CMI 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 Besturingssystemen 1 23 HOGESCHOOL ROTTERDAM / CMI Vraag 2.22 • Leg uit waarom scheduling op twee niveau’s vaak wordt gebruikt? L.V. de Zeeuw Besturingssystemen 1 24