SIF8041 OPERATIVSYSTEMER OG DATABASER
våren 2001
ØVING 1 : Prosesser og CPU-tildeling (OS)
INNLEVERINGSFRIST : Onsdag 07.02.00
GRUPPESTØRRELSE : 2 -3. Lever svarene på papir (ikke håndskrevet) i boks 2 eta. E-blokka.
Avbruddsprosessering krever en spesiell stakk ("kernel stack") hvorpå den aktuelle (current) PC'en vil bli lagret. Bruker også "exception handling" denne stakken? Forklar svaret.
2. Tråd (thread)
Oppgave 4.5 i læreboka.
Hvilke ressurser brukes når en trå (thread) opprettes? Hva er forskjellen i forhold til de ressursene som brukes når en prosess opprettes?
3. Kontekst-svitsj
Oppgave 4.6 i læreboka.
Beskriv hva kjernen (kernel) gjør ved kontekst-svitsjing:
4. Tidsperspektiv
Vi kan ha CPUtildeling med ulike tidsperspektiv: kortsiktig og langsiktig.
(a) Hva er forskjellen på disse ?
(b) Noen mulige algoritmer for å dele prosessortid mellom flere prosesser:
-- FirstComeFirstServed (FCFS). -- Roundrobin (RR). -- ShortestJobFirst (SJF).
-- HighestPriorityFirst (HPF).
-- LongestJobFirst (LJF).
-- LastComeFirstServed (LCFS).
Hvilken av disse algoritmene er det hensiktsmessig å benytte til henholdsvis kortsiktig og langsiktig CPUtildeling? Er det noen av algoritmene som man neppe vil benytte?
5. Sammenlikning av ulike algoritmer
Anta en enprosessor maskin som skal kjøre følgende jobber:
Jobb |
Totaltid |
Prioritet |
1 |
10 |
3 |
2 |
1 |
1 |
3 |
2 |
3 |
4 |
1 |
4 |
5 |
5 |
2 |
Jobbene er ankommet i rekkefølge 1, 2, 3, 4 og 5. Totaltid angir prosessortid for hver jobb hvis uavbrutt kjøring.
Løs oppg. 5.4 a), b) og c) i læreboka. (s.151)
(b) Vis hvordan ulike jobbtyper kan grupperes med tanke på CPU tildeling.
(c) Vis hvordan en statisk gruppering som i (b) kan gjøres mer effektiv.