Professional Documents
Culture Documents
Ch05 CPU Scheduling
Ch05 CPU Scheduling
Mc tiu
Hiu c
Ti sao cn phi nh thi Cc tiu ch nh thi Mt s gii thut nh thi
Ghi ch: nhng slide c du * tiu l nhng slide dng din gii thm
nh thi CPU
nh thi CPU
Vn cn gii quyt
Trong cc h thng multiprogramming / multitasking
Ti mt thi im trong b nh c nhiu process Ti mi thi im ch c mt process c thc thi
Gi s h thng ch c 1 CPU (1 processor)
Do , cn phi gii quyt vn phn loi v la chon process thc thi sao cho c hiu qu nht ( tiu ch nh thi). Cn c chin lc nh thi CPU
nh thi CPU 4
Long-term scheduling
suspended ready
Short-term scheduling
running
suspended blocked
Medium-term scheduling
blocked terminated
5
nh thi CPU
nh thi trung hn (medium-term scheduling): xc nh process no c a vo (swap in), a ra khi (swap out) b nh chnh.
nh thi di hn
nh hng n -a-lp-trnh (degree of multiprogramming: s qu trnh ang trong b nh) Nu cng nhiu process ang trong b nh th kh nng moi process b block c xu hng gim
S dng CPU hiu qu hn Nhng mi process c phn chia khong thi gian s dng CPU nh hn
nh thi trung hn
Quyt nh vic a process (khng phi process trng thi new) vo b nh chnh, hay ra khi b nh chnh Ph thuc vo yu cu qun l{ vic a-lp-trnh (multiprogramming)
Cho php b nh thi di hn chp nhn (admit) nhiu process hn s lng process m c tng kch thc c cha va trong b nh chnh ( k thut b nh o) Nhng nu c qu nhiu process th s lm tng vic truy xut a, do cn phi la chon -a-lp-trnh cho ph hp
nh thi ngn hn
Xc nh process no c thc thi tip theo, cn goi l nh thi CPU Ty h thng ( nh thi nonpreemptive, preemptive) m c kch hot khi c mt s kin dn n kh nng chon mt process thc thi
Ngt thi gian (clock interrupt) Ngt ngoi vi (I/O interrupt) Li goi h thng (operating system call) Signal
Ni dung cn quan tm
nh thi trn h thng c mt processor (uniprocessor scheduling): quyt nh vic s dng (mt) CPU cho mt tp cc process trong h thng Tiu ch no?
nh thi CPU
10
nh thi CPU
12
Thi gian quay vng (turn-around time) Thi gian quay vng trung bnh (average turnaround time)
nh thi CPU 13
Ti a ha
nh thi CPU
15
Scheduling algorithms
Cc gii thut lp lch s c nh gi qua 5 tiu ch ny. Cc gii thut gm:
First Come, First Served (FCFS) scheduling Shortest-Job-First scheduling Priority Scheduling Round-robin scheduling Etc.,
nh thi CPU 16
Thi gian p ng
Cn quan tm vi cc h thng giao tip (interactive system)
nh thi CPU
18
nh thi CPU
19
nh thi CPU
20
Preemptive
Process ang thc thi c th b ngt v chuyn v trng thi ready Trnh trng hp mt process c chim CPU
nh thi CPU
21
ready
running
nh thi CPU
22
Chin lc nh thi nonpreemptive: ch thc thi hm la chon trong trng hp 1 v 4 (qu trnh running nu b ngt s tip tc running sau ) Chin lc nh thi preemptive: ngoi trng hp 1 v 4 cn thc thi thm hm la chon trong trng hp 2 hoc 3 (hoc c hai)
nh thi CPU 23
Dispatcher
Dispatcher s chuyn quyn iu khin CPU v cho process c chon bi b nh thi ngn hn Bao gm:
Chuyn ng cnh (s dng thng tin ng cnh trong PCB) Chuyn v user mode Nhy n v tr thch hp (chnh l program counter trong PCB) trong chng trnh ng dng qu trnh tip tc thc thi
Cng vic ny gy ra ph tn
Dispatch latency: thi gian dispatcher cn t lc dng mt process n lc mt process khc tip tc chy
nh thi CPU 25
Scheduling algorithms
Cc gii thut nh thi CPU gm:
First Come, First Served (FCFS) scheduling Shortest-Job-First scheduling Priority Scheduling Round-robin scheduling Etc.,
nh thi CPU
27
P1 0 24
P2 27
P3 30
nh thi CPU
29
30
V d thc t
Vic phc v khch trong nh hng
Thc khch s n v goi mn n cho mnh Mi mn n cn thi gian chun b khc nhau
Mc tiu:
Gim thi gian i trung bnh ca cc thc khch
Cch lm no s ph hp?
Thng thng cc nh hng s phc v theo kiu FCFS (!)
nh thi CPU 32
(ms)
12
16
P3
8
P2
12
P4
16
nh thi CPU
34
Suy ra: n+1 = atn + (1 a)atn1 ++ (1 a)jatnj ++ (1 a)n+1a0 Nu chon a = th c ngha l tr o c tn v tr d on n c xem quan trong nh nhau.
nh thi CPU
36
nh thi CPU
37
Process c thi gian thc thi di c th b tr hon v hn nh nu cc process c thi gian thc thi ngn lin tc vo Khng thch hp cho mi trng time-sharing khi khng dng preemption
Cc CPU bound process c u tin thp, nhng mt process khng thc hin I/O c th c chim CPU nu n l process u tin vo h thng
nh thi CPU
38
nh thi CPU
39
nh thi CPU
41
Priority Scheduling
Mi process s c gn mt u tin CPU s c cp cho process c u tin cao nht Ch quyt nh:
Preemptive Nonpreemptive
nh thi CPU
43
Gn u tin
SJF: u tin l thi-gian-s-dng-CPU-don Gn u tin cn c th da vo:
Yu cu v b nh S lng file c m T l thi gian dng cho I/O trn thi gian s dng CPU Cc yu cu bn ngoi nh: s tin ngi dng tr khi thc thi cng vic
nh thi CPU 44
Priority Scheduling
Vn : tr hon v hn nh process c u tin thp c th khng bao gi c thc thi Gii php: aging u tin ca process c tng theo thi gian
nh thi CPU
45
1 8 7 6
2 3 4 5
nh thi CPU
46
nh thi CPU
47
20
37
57
77
97 117
Thng c thi gian quay vng cao hn SJF, nhng li c thi gian p ng tt hn
nh thi CPU 48
P1 0 20
P2 37
P3 57
P4 77
P1
P3 97 117
P4
P1
P3
P3
nh thi CPU
49
nh thi CPU
50
nh thi CPU
51
Performance ty thuc vo kch thc ca quantum time (cn goi l time slice), v hm ph thuc ny khng n gin Time slice ngn th p ng nhanh
Vn : c nhiu chuyn ng cnh. Ph tn s cao.
nh thi CPU
52
Ty thuc vo tp cng vic m la chon quantum time Quantum time nn ln trong tng quan so snh vi thi gian cho process switch
V d vi 4.3 BSD UNIX, quantum time l 1 giy
nh thi CPU
53
Round Robin
Nu c n process trong hng i ready, v quantum time l q, nh vy mi process s ly 1/n thi gian CPU theo tng khi c kch thc ln nht l q
S khng c process no ch lu hn (n 1)q n v thi gian
nh thi CPU
55
Chia thi gian (time slice) mi hng i s c ly mt khong s dng CPU nht nh nh thi cho cc process ca mnh. V d:
80% cho foreground (dng RR) 20% cho background (dng FCFS)
nh thi CPU 57
Student Processes
u tin thp nht
nh thi CPU
58
Gii thut
nh thi CPU
61
Policy v Mechanism *
Rt quan trong trong nh thi v phn phi ti nguyn Policy
iu g (what) nn (hay cn) lm
Mechanism (Implementation)
Lm sao (how) lm iu
V d
Policy: tt c ngi dng cn c cng bng Mechanism: s dng round robin
Policy: cng vic c tr tin cao c u tin cao Mechanism: s dng cc gii thut preemptive
nh thi CPU 62
63
Processor affinity *
Khi mt process chy trn mt processor, c mt s d liu c cache trn b nh cache ca processor Khi mt process c di di sang mt processor khc
Cache ca processor mi phi c repopulated Cache ca processor c phi c invalidated vn ph tn
nh thi CPU 64
Cn bng ti *
Mt processor c qu nhiu ti, trong khi nhng b x l{ khc th li rnh Cn bng ti s dng:
Push migration: mt task c bit s nh kz kim tra ti trn tt c cc processors v cng vic s c y n processor rnh Pull migration: processor rnh s ly cng vic t processor ang bn Mt s h thng (v d Linux) hin thc c hai
nh ngha trc mt tp ti (workload) v kho st performance ca cc gii thut trn cng tp ti Khng tng qut
S dng queuing theory phn tch gii thut S dng nhiu gi thit phc v vic phn tch Khng st thc t Xy dng b m phng v chy th
Vi tp ti gi (thng c sinh t ng) Hoc tp ti c ghi nhn t thc t
Tng kt
S thc thi ca mt process B nh thi chon mt process t hng i ready Cc tiu ch nh thi (thng xung t nhau)
Dispatcher thc hin switching li CPU, thi gian ch, thi gian p ng, thng nng, FCFS, SJF, Priority, RR, Multilevel Feedback Queue, Processor affinity v cn bng ti M hnh, m phng, hin thc
nh thi CPU
nh thi trn h thng multiprocessor (oc thm) Phng php nh gi gii thut nh thi CPU (oc thm)
67
Mt s vn bn thm
Cch lm tt nht l adaptive thc hin ti u hon ton th cn phi tin on ng tng lai (!)
Thc t th a s cc gii thut li cho kt qu gn u tin cao nht cho cc process c nhu cu t nht Vn nh thi c xu hng chuyn sang tweak and see
Cc tiu ch no nn ti u?
C rt nhiu, ty vo h thng, ng cnh m chon la
nh thi CPU 68
Bi tp 1
Process Burst Time P1 10 P2 29 P3 3 P4 7 P5 12 Tt c u n thi im 0 Xt cc gii thut FCFS, SFJ, v RR vi quantum time = 10 Gii thut no cho
thi gian i trung bnh nh nht? thng nng cao nht? thi gian quay vng trung bnh ca process nh nht?
nh thi CPU
69
Bi tp 2
FCFS: thi gian i trung bnh l 28 milli giy, hy tnh cc thng s khc
nh thi CPU
70
Bi tp 3
SJF (nonpreemptive): thi gian i trung bnh l 13 milli giy, hy tnh cc thng s khc
nh thi CPU
71
Bi tp 4
RR: thi gian i trung bnh l 23 milli giy, hy tnh cc thng s khc
nh thi CPU
72