hogeschool rotterdam / cmi

advertisement
HOGESCHOOL ROTTERDAM / CMI
Computersystemen 2
(TIRCCMS02 - Operating systems)
[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
Computersystemen 2
3
HOGESCHOOL ROTTERDAM / CMI
Vraag 2.2
Wat verstaan we
onder een race
condition?
L.V. de Zeeuw
Computersystemen 2
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
Computersystemen 2
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 hier naast
staande figuur staat
beschreven?
L.V. de Zeeuw
Computersystemen 2
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
Computersystemen 2
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
Computersystemen 2
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
Computersystemen 2
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? (Aanwijzing:
denk aan de implementatieproblematiek)
L.V. de Zeeuw
Computersystemen 2
10
HOGESCHOOL ROTTERDAM / CMI
Vraag 2.9
Een afhaalrestaurant heeft vier categorieën bedienden:
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 intern proces communications wordt hier gebruikt?
L.V. de Zeeuw
Computersystemen 2
11
HOGESCHOOL ROTTERDAM / CMI
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
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
Computersystemen 2
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
Computersystemen 2
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
Computersystemen 2
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
Computersystemen 2
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
Computersystemen 2
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
Computersystemen 2
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
Computersystemen 2
19
HOGESCHOOL ROTTERDAM / CMI
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.
a) Round robin.
b) Priority scheduling.
c) FIFO (First-in first out)
Taken komen binnen in volgorde: A,B,C,D en E.
d) Shortest job first.
L.V. de Zeeuw
Computersystemen 2
20
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)?
L.V. de Zeeuw
Computersystemen 2
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
Computersystemen 2
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
Computersystemen 2
23
HOGESCHOOL ROTTERDAM / CMI
Vraag 2.22
• Leg uit waarom scheduling op twee
niveau’s vaak wordt gebruikt?
L.V. de Zeeuw
Computersystemen 2
24
Download