9. Scheduling bij één processor

advertisement
Scheduling
Het verdelen van processortijd onder processen en threads
Module code:
1
Scheduling-algoritme: criteria
• Rechtvaardigheid:
ieder proces een rechtvaardig deel van de cpu-tijd
• Efficiëntie
effectieve bezetting CPU
• Responsetijd
minimaal voor interactieve gebruikers
• Turnaround (doorlooptijd)
minimaal voor batchgebruikers
• Throughput (doorvoer)
maximaliseer het aantal per uur verwerkte jobs
Module code:
2
Scheduling: procestoestanden
new
5-toestanden-model
Lange termijn
ready
running
exit
Korte termijn
blocked
Module code:
3
Scheduling: procestoestanden
new
ready
suspend
ready
7-toestanden-model
running
exit
Middellange termijn
blocked
suspend
blocked
Middellange termijn
Module code:
4
Module code:
5
Scheduling: principes
• Nonpreemptive scheduling
–job helemaal afronden
–geen task switch
• Nonpreemptive multitasking
–cooperative multitasking
–task switch als blocked
• Preemptive multitasking
–OS kan elk moment ingrijpen
Module code:
6
Scheduling: wachtrijdiagram
Scheduling lange
termijn
Batch
jobs
Time-out
Ready Queue
Scheduling
korte termijn
vrijgeven
Processor
Scheduling
middellange termijn
Interactive
gebruikers
Ready, Suspend Queue
Blocked, Suspend Queue
Scheduling
middellange termijn
Blocked Queue
Event
Occurs
Module code:
Event Wait
7
Wachtrijen met prioriteiten
RQ0
vrijgeven
Dispatch
Processor
RQ1
.
.
.
Toelaten
RQn
Preemptief onderbreken
Event Wait
Event
occurs
Module code:
Blocked Queue
8
First-Come-First-Served
(FCFS, FIFO)
0
5
10
15
20
1
2
3
4
5
•Een gereed proces komt in de ready queue
•Bij wisseling komt het oudste proces aan
de beurt
Module code:
9
Voorbeeld fifo (nonpreemptief)
proces
1
2
3
4
5
proces
aankomst
ts
wachttijd
eindtijd
tq
tq / ts
Module code:
aankomst
0
2
4
6
8
1
0
2
0
2
2
1
2
2
5
0
7
5
1
Gevraagd:
Gemiddelde wachttijd
Gemiddelde turn around tijd (tq)
Gemiddelde tq / ts
ts
2
5
4
6
3
3
4
4
6
4
6
3
5
11
17
7
11
1,75 1,83
5
8
3
9
20
12
4
gemiddeld
3,4
37:5 = 7,4
9,58:5 = 1,92
10
Shortest Process Next
proces
1
2
3
4
5
0
aankomst
0
2
4
6
8
ts
3
6
4
5
2
5
Niet-preëmptieve
strategie
Proces met kortste
verwachte verwerkingstijd
wordt het eerst
geselecteerd
10
15
20
1
2
3
4
5
Module code:
11
Kortste job eerst
Bepaal de gemiddelde turnaroundtijd van a
en van b bediend door een fifo scheduler.
Aankomsttijd alle jobs = 0
proces
aankomst
Bediening ts
wachttijd
eindtijd
tq
tq/ts
a
0
8
0
8
8
1
b
0
4
8
12
12
3
c
0
4
12
16
16
4
d
0
4
16
20
20
5
gemiddeld
proces
aankomst
Bediening ts
wachttijd
eindtijd
tq
tq/ts
a
0
4
0
4
4
1
b
0
4
4
8
8
2
c
0
4
8
12
12
3
d
0
8
12
20
20
2,5
gemiddeld
Module code:
9
56:4 = 14
13:4 = 3,25
8
44:4 = 11
8,5:4 = 2,1
12
Shortest Remaining Time
• Preëmptieve versie kortste resterende proces tijd
strategie
• Moet een schatting van de verwerkingstijd gebruiken
0
5
10
15
20
1
2
3
4
5
Module code:
13
Highest Response Ratio Next
(HRRN)
0
5
10
15
20
1
2
3
4
5
RR3 = (5 + 4)/4 = 2.25
Het volgende proces RR4 = (3 + 5)/5 = 1,6
met de hoogste ratio RR5 = (1 + 2)/2 = 1,5
wordt geselecteerd
time spent waiting + expected service time
expected service time
Module code:
Op T = 13 moet je weer kiezen:
RR4 = (7+5)/5 = 2,4
RR5 = (5 + 2)/2 = 3,5
14
Round-Robin
0
5
10
15
20
1
2
3
4
5
• preëmptieve verwerking gebaseerd op een klok
• een tijdquantum wordt aan elk proces toegewezen
Module code:
15
Tijdsquotum & standaardinteractie
Module code:
16
Wachtrijschema bij een scheduler
met virtual round robin
Extra
queue
Module code:
17
Round-Robin scheduling
Gevraagd:
Gemiddelde turn around tijd tq en tq/ts
time quanta = 1
proces
aankomst
Bediening ts
wachttijd
eindtijd
tq
tq/ts
0
1
0
2
0
2
2
1
2
2
5
0
13
11
2,2
5
3
4
4
0
16
12
3
4
6
6
0
20
14
2,33
5
8
3
1
17
9
3
gemiddeld
Vrij laag tq/ts
zonder kennis
van ts
0,2
48:5 = 9,6
11,53:5 = 2,3
10
15
20
1
2
3
4
5
Module code:
18
Feedback
0
5
10
15
20
1
2
3
4
5
Straf processen die lang uitgevoerd worden door prioriteit te
verlagen
Module code:
19
Scheduling met feedback
Module code:
20
Multiprocessorsystemen
• Gespecialiseerde processors
– math.coprocessor, gpu, dma
• Sterk gekoppelde multiprocessing
– meerdere processors op één moederbord
– meerdere kernen in één processor
• Gedistribueerde multiprocessing / clustering
– gekoppelde computers of processorboards
• Praktijk
– combinatie van bovenstaande
Module code:
21
Multiprocessor OS:
ontwerpaspecten
• De toewijzing van processen aan processors
• Het gebruik van multiprogrammering op de verschillende
processors
• De feitelijke toedeling (dispatching) van een proces
Module code:
22
Thread scheduling
- Delen van belasting
- Groepsscheduling
- Vaste processortoewijzing
- Dynamische scheduling
• Voordelen
– Werklast verdeeld over CPU's
– Gemeenschappelijk wachtrij
• Nadelen
– Gemeenschappelijke wachtrij: uitsluiting?
– CPU-cache minder efficiënt gebruikt
– Veel proceswisselingen door afhankelijkheden tussen threads
Module code:
23
Thread scheduling
- Delen van belasting
- Groepsscheduling
- Vaste processortoewijzing
- Dynamische scheduling
• Deel/alle threads van een proces gelijktijdig op/van CPU
• Voordelen
– Eenvoudige scheduling
– Threads draaien parallel
– Dus minder synchronisatieproblemen
• Nadelen
– Minder efficiënte cpu-belasting
Module code:
24
Thread scheduling
- Delen van belasting
- Groepsscheduling
- Vaste processortoewijzing
- Dynamische scheduling
• Wanneer een proces wordt ingeroosterd, dan krijgt elke thread een
processor toegewezen gedurende de levensduur van de toepassing
• Lijkt inefficiënt maar zinvol indien er veel processors zijn (20-100+)
Module code:
25
Thread scheduling
- Delen van belasting
- Groepsscheduling
- Vaste processortoewijzing
- Dynamische scheduling
• Proces en OS nemen samen een beslissing over het aantal te
gebruiken threads
• Eén thread kan steeds op een andere processor verdergaan
Module code:
26
Tentamenstof
• Hoofdstuk 9:
– Paragrafen 9.1 t/m 9.2
Module code:
27
Download