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
Antwoord 2.1
2.1
• Sommige processoren zoals de Intel 80286 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
4
HOGESCHOOL ROTTERDAM / CMI
Vraag 2.2
Wat verstaan we
onder een race
condition?
L.V. de Zeeuw
Computersystemen 2
5
HOGESCHOOL ROTTERDAM / CMI
Antwoord 2.2
2.2.1
• 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
6
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
7
HOGESCHOOL ROTTERDAM / CMI
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
8
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
9
HOGESCHOOL ROTTERDAM / CMI
Antwoord 2.4
2.2.3
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
10
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
11
HOGESCHOOL ROTTERDAM / CMI
Antwoord 2.5
2.2.5
• 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
12
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
13
HOGESCHOOL ROTTERDAM / CMI
Antwoord 2.6
2.2.5
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);
}
L.V. de Zeeuw
Computersystemen 2
14
HOGESCHOOL ROTTERDAM / CMI
Antwoord 2.6
2.2.5 vervolg
In assembly zien de routines er in principe zo uit;
down
wacht
up
SEI
TST sem
BEQ wacht
DEC sem
CLI
BRA terug
CLI
JSR sleep
RTS
MOVE #1,sem
RTS
L.V. de Zeeuw
; zorg voor ononderbroken lees-schrijf aktie
; test de waarde van de binaire semaphore
; indien deze 0 is, dan gaan slapen
; zo niet, verlaag dan de semaphor
; einde lees-schrijf aktie
; interupt vlag resetten
; spring naar system call sleep
; maak de semaphore gelijk aan 1
Computersystemen 2
15
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
16
HOGESCHOOL ROTTERDAM / CMI
Antwoord 2.7
2.2.4
• 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
17
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
18
HOGESCHOOL ROTTERDAM / CMI
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
19
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
20
HOGESCHOOL ROTTERDAM / CMI
Antwoord 2.9
2.2.8
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
21
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
22
HOGESCHOOL ROTTERDAM / CMI
Antwoord 2.10
2.2.8
Nee, want er wordt geen actie gestart
maar gestopt. Het is een wait condition.
L.V. de Zeeuw
Computersystemen 2
23
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
24
HOGESCHOOL ROTTERDAM / CMI
Antwoord 2.11
2.2.9
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
25
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
26
HOGESCHOOL ROTTERDAM / CMI
Antwoord 2.12
2.3.1
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
27
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
28
HOGESCHOOL ROTTERDAM / CMI
Antwoord 2.13
2.3.1
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
29
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
30
HOGESCHOOL ROTTERDAM / CMI
Antwoord 2.14
2.3.2
•
•
•
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
31
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
32
HOGESCHOOL ROTTERDAM / CMI
Antwoord 2.16
2.4.1
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
33
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
34
HOGESCHOOL ROTTERDAM / CMI
Antwoord 2.16
2.4.1
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
35
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
36
HOGESCHOOL ROTTERDAM / CMI
Antwoord 2.17
2.4.1
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
37
HOGESCHOOL ROTTERDAM / CMI
Antwoord 2.17
2.4.1 vervolg
a)
b)
c)
d)
e)
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
38
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
39
HOGESCHOOL ROTTERDAM / CMI
Antwoord 2.18
2.4.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
10+6+2+4+8 / 5 = 6 minuten
b)
Priority scheduling.
c)
FIFO (First-in first out)
Taken komen binnen in volgorde: A,B,C,D en E.
Shortest job first.
d)
L.V. de Zeeuw
Computersystemen 2
40
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.
41
HOGESCHOOL ROTTERDAM / CMI
Antwoord 2.
2.4.3.
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: 1 + 2 + 4
+ 8 + 16 = 31 quanta.
L.V. de Zeeuw
Computersystemen 2
42
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
43
HOGESCHOOL ROTTERDAM / CMI
Antwoord 2.20
2.4.4
'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
44
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
45
HOGESCHOOL ROTTERDAM / CMI
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
46
HOGESCHOOL ROTTERDAM / CMI
Vraag 2.22
• Leg uit waarom scheduling op twee
niveau’s vaak wordt gebruikt?
L.V. de Zeeuw
Computersystemen 2
47
HOGESCHOOL ROTTERDAM / CMI
Antwoord 2.22
2.4.6
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
48
Download