Post on 05-Apr-2018
7/31/2019 OS 2 - Process & Scheduling
1/65
TIN TRNH IU PHI TIN TRNH
GV: MAI Xun Phxuanphu150@gmail.com
Khoa Cng NghThng Tin
i HcCng NghipTPHCM
1
7/31/2019 OS 2 - Process & Scheduling
2/65
7/31/2019 OS 2 - Process & Scheduling
3/65
Khi nim a Nhim v a C hng (1)
V sao mun x l ng thi nhiu cng victrn my tnh ?
3
tng hiu sut s dng CPU
7/31/2019 OS 2 - Process & Scheduling
4/65
Khi nim a Nhim v a C hng (2)
V sao mun x l ng thi nhiu cng victrn my tnh ?
o Job : kq = a*b + c*d;
4
tng tc x l
7/31/2019 OS 2 - Process & Scheduling
5/65
Khi nim a Nhim v a C hng (3)
a nhim (Multitasking): cho php nhiu tc v/cng vic c x l ng thi
o Ngi dng lun mong mun 1 HH a nhimo
Nhng: My tnh thng ch c 1 CPU? a chng (Multiprogramming): cho phpnhiu chng trnh c thc hin ng thi (trn 1 CPU)
o Gi lp nhiuCPU o t 1 CPU tht cho php thihnh nhiu chng trnh ng thi.
o o ho bng cch no ? Xy dng cc thut ton lun chuyn CPU gia cc chng trnh ng dng.
5
7/31/2019 OS 2 - Process & Scheduling
6/65
X l ng hnh (1)
Kh khno Ti nguyn gii hn,ng dng v hn
o Nhiu hot ng anxen
?? Phn chia tinguyn?
?? Chia s ti nguyn??? Bo v?
6
HH : Gii quyt nhiu cng vicng thi ? Lm sao y ???
7/31/2019 OS 2 - Process & Scheduling
7/65
X l ng hnh (2)
Giiphpo Chia tr, c lp cc hot ngo Mi thi im ch gii quyt1 yu cuo
o ho ti nguyn: bin t thnh nhiu
7HH: Ai cng c phn khi n lt m!
7/31/2019 OS 2 - Process & Scheduling
8/65
Tin Trnh
Mt chng trnh ang trong qu trnh thc hinMi tintrnh s hu
o MtCPU (o) ringo Mtkhng gian nh ringo Chim gi1 s ti nguyn ca h thng
Vd: Word chy 2 ln 2 tin trnh khc nhauo Microsoft Word [He_dieu_hanh.doc]o Microsoft Word [Mang_can_ban.doc]
8
7/31/2019 OS 2 - Process & Scheduling
9/65
Chng trnh - Tin trnh
Chng trnh (Program)o Thc th th ng(passive)o Cha cc ch th iu khinmy tnh
Tin trnh (Process)o Thc th hot ng (active)
9
7/31/2019 OS 2 - Process & Scheduling
10/65
Trng thi tin trnh (1)
10
7/31/2019 OS 2 - Process & Scheduling
11/65
Trng thi tin trnh (2)
Sn sng ( ready ) o Tin trnh i gn cho CPU x l
Thc thi ( running ) o Tin trnh ang c CPU thc thi cc lnh
i, B chn (Waiting, blocked ) o Tin trnh i mt s kin no
Xut nhp d liu Mt tintrnh khc to ra
Khi ng (start ) o Tin trnh va c thc hin ngng ( halted )
o Tin trnh kt thc v s ri khi h thng
11
7/31/2019 OS 2 - Process & Scheduling
12/65
Khi qun l tin trnh
PCB (Process Control Block)o nh danh (Process ID)o Trng thi tin trnh (State)o Ng cnh tin trnh (Context)
Trng thi CPU B x l (cho mynhiu CPU) B nhchnh Ti nguyn s dng/to lp
o Thng tin giaotip(Relative) Tintrnh cha, tin trnh con
u tino Thng tinthng k
Thigian s dng CPU Thigian ch
12
7/31/2019 OS 2 - Process & Scheduling
13/65
Cc thao tc trn tin trnh
To lp tin trnhKt thc tin trnhThay i trng thitin trnh :
o Assign()o Block()o Awake()o Suspend()o Resume()
13
7/31/2019 OS 2 - Process & Scheduling
14/65
To lp tin trnh (1)
Cc tnh hung :o Khi ngbatch jobo User logs ono Kchhot 1 dch v (print...)o Tin trnh gihm to mt tintrnh khc
Cc tin trnh c th to tintrnh con, hnhthnh cy tin trnh trongh thngCc tin trnh mi c to c th
o Tha hng ti nguyn t chao c cp ti nguyn mi
14
7/31/2019 OS 2 - Process & Scheduling
15/65
7/31/2019 OS 2 - Process & Scheduling
16/65
Kt thc tin trnh
Tnh hung :o Tin trnh x l xonglnh cuicng hay giexit ()o Ktthc Batch job, Halt instructiono User logs off o Do li chng trnh
Mt tintrnh c th kt thc 1 tin trnh khcnu c ID(nh danh) ca tin trnh kia.Vd: kill -s SIGKILL 1234Cng vic ca HHkhi kt thc 1 tin trnh?
16
7/31/2019 OS 2 - Process & Scheduling
17/65
M hnh a tin trnh(MultiProcesses)
H thng= mt tp cc tin trnh hot ngng thiCc tin trnh c lp vi nhau khng c s
trao i thng tin a tin trnh: thi hnh ng thi cc chngtrnh, ch th trong my c nhiu CPU
17
7/31/2019 OS 2 - Process & Scheduling
18/65
M hnh a tiu trnh (MultiThreads)
Nhiu tnh hung cn c nhiu dng x l ngthi hot ng trong mt khng gian a ch cng chia s ti nguyn
o Gn nh songsongo Nh cc tin trnh c lp
Tiu trnh (Thread)
18
7/31/2019 OS 2 - Process & Scheduling
19/65
Tiu trnh
Mt n v x l c bn trong h thngMi tiutrnh
o X l tun t on code ca n
o S hu mtcon tr lnh tp cc thanh ghi mtvng nh stack ring
Cc tiu trnh chia s CPU ging nh cch catin trnh
19
7/31/2019 OS 2 - Process & Scheduling
20/65
Tiu trnh & Tin trnh
Tiu trnh : 1 dng x lTin trnh :
o 1 khng gian a ch
o 1 hoc nhiu tiutrnhCc tin trnh l c lpCc tiu trnh trong cng 1tin trnh khng cs bov ln nhau
20
7/31/2019 OS 2 - Process & Scheduling
21/65
Tiu trnh ht nhn (Kernel Thread)
Khi nim tiu trnh(Thread) c xy dngbn trong ht nhn (Kernel)
n v x l l tiu trnh
21
7/31/2019 OS 2 - Process & Scheduling
22/65
Phn chia CPU
1 CPU vt l : lm th no to cm gic mitin trnh s hu CPU ring ca mnh?Lun chuyn CPU gia cc tin trnh
2 thnh phn m nhim vai tr iu phi:o Scheduler chn tintrnho Dispatcher chuyn CPU cho tin trnh c chn
22
7/31/2019 OS 2 - Process & Scheduling
23/65
Danh sch tin trnh
Tng ng vi cc trng thi ca tin trnh
23
7/31/2019 OS 2 - Process & Scheduling
24/65
Scheduler
Nhim v: quyt nh chn mt tin trnh cppht CPU
o ng c vin = {Cctin trnh ready list}o 0 tin trnh: CPUrnh ri(idle)!o 1 tin trnh: hinnhin chno >1: Da vo cc thut ton iu phi
24
7/31/2019 OS 2 - Process & Scheduling
25/65
Dispatcher
Nhim v: Chuyn i ng cnhXt vd
o Tin trnh A ang dng CPU 1lc th b HH thu hiCPU
o HH cpCPU cho B dng 1 lc, HHthu hi liCPUo HH cpCPU tr licho A
Gi tr cc thanh ghi gia nhng ln chuyn iCPU?
Kch bn:o Lu ng cnh tin trnh hin hnho Np ng cnh tin trnh c chn k tip
25
7/31/2019 OS 2 - Process & Scheduling
26/65
H iu hnh & CPU
HH cng l 1 phn mm cn s dng CPUCu hi: Khi tin trnh A ang chim CPU, lmth no HH c th thu hi CPU li c?
o p buc thnh thong trCPU li cho HH?o My tnhphi c 2 CPU, 1 dnh ring cho HH?o HH s dng ngt ng h (ngt iu phi, interrupt)
kim sot h thng Mi khi c ngt ng h, HH kim tra xem c cn thu hi
CPU t 1 tin trnh no li hay khng ? HH ch thu hi CPU khi c ngt ng h pht sinh. Khong thi gian gia 2 ln ngt iu phi gi l chu k
ng h (ti thiu l 18.2 ln/ giy)
26
7/31/2019 OS 2 - Process & Scheduling
27/65
Ngt ng h (1)
C ch
27
Interrupt
Trnh x linterrupt
7/31/2019 OS 2 - Process & Scheduling
28/65
Ngt ng h (2)
Cc b c x l interrupto H iu hnh chim li quyn thc thio Lu tr trng thi ca qu trnh b ngto Phn tch ngt (dng phn cng)o Thc thi chng trnh x l ngt
Interrupt handler o Chn mt qu trnh tip theo chy
28
7/31/2019 OS 2 - Process & Scheduling
29/65
Ngt ng h (3)
Cc loi interrupto Supervisor call (SVC) interrupt: khi qu trnh yu cu
dch v ca h thngo I/O interrupt: do cc thit b I/O sinh ra khi chuyn
trng thio External interrupt: sinh ra t ng h h thng, bn
phmo Restart interrupt: ngt khi ng li myo
Program check: sinh ra khi chng trnh thc thi lnhb li (chia cho 0, trn s, )o Machine check: do nh sn xut to ra dnh ring
cho vic kim tra phn cng
29
7/31/2019 OS 2 - Process & Scheduling
30/65
Chuyn ng cnh (1)
Chuyn ng cnh (context switching)o Chuyn x l t tin trnh ny sang tin trnh khco Xyra khi c interrupt
Quy trnh:o Lu trng thi ca tin trnh hin hnho Chn tin trnh mi x lo a trng thi ca tin trnh mi vo phn cng x l
Mt ng cnh(context) bao gm:o Tp thanh ghi cha thng tin trng thi tin trnh v trng
thi CPU, b nh ca tintrnh.Program Status Word (PSW)
30
7/31/2019 OS 2 - Process & Scheduling
31/65
Chuyn ng cnh (2)
Cc loiPSW:o Old_PSWo Current _PSWo New_PSW
H thng mt b xl co 1 Current_PSWo 6 New_PSWo 6 Old_PSW (6loi interrupt)
Qu trnh chuyn ng cnh din ra = s thay igia cc PSW trong h thngo Current_PSW Old_PSWo New_PSW Current_PSW
31
7/31/2019 OS 2 - Process & Scheduling
32/65
La chn tin trnh
Tc v ca Scheduler Mctiu?
o S dng CPU hiu quo
m bo tt c cc tin trnh u tin trin x lTiu chun la chn?o Tt c cc tin trnh u nh nhau?o xut mt u tin cho mi tin trnh?
Thi im la chn? (Thi im kch hotScheduler())
32
7/31/2019 OS 2 - Process & Scheduling
33/65
Mc tiu iu phi
Hiu qa (Efficiency)o Thi gian
p ng (Response time ) Hon tt (Turnaround Time = Tquit -Tarrive):
Ch (Waiting Time = T in Ready) :o Thng lng (Throughput = #jobs/s)
Hiu sutTi nguyn Chi ph chuyn i
Cng bng (Fairness ): Tt c cc tin trnh uc c hi nhn CPU
33
7/31/2019 OS 2 - Process & Scheduling
34/65
Thi im quyt nh iu phi
iu phi c quyn (non-preemptive scheduling):o tin trnh c chn c quyn c chim CPUo Cc thi im kch hot Scheduler
Pcur kt thc Pcur: running ->blocked
iu phi khng c quyn (preemptivescheduling):
o tin trnh c chn c th bcp CPU bi tin trnh c u tin cao hn
o Cc thi im kch hot Scheduler Pcur kt thc Pcur: Running -> Blocked Q: Blocked / New -> Ready
34
7/31/2019 OS 2 - Process & Scheduling
35/65
Hai nguyn tc iu phi CPU
35
7/31/2019 OS 2 - Process & Scheduling
36/65
nh gi chin lc iu phi
S dng 2 i lng o :o Turn-around time= Tquit Tarrive: t lc vo HT n
khi hon tto Waiting time= T in Ready
Xt trng hp trung bnho N tin trnho Avg Turn-around time = ( Turn-around timePi)/No Avg Waiting time = ( WaitingtimePi)/N
36
7/31/2019 OS 2 - Process & Scheduling
37/65
Mt s gii thut iu phi
iu phi hn cht(Deadline Scheduling)FCFS (First Come First Served)SJF (Shortest Job First)
SRT (Shortest Remaining Time)RR (Round Robin)
iu phi u tin
37
i hi h
7/31/2019 OS 2 - Process & Scheduling
38/65
iu phi hn cht(Deadline Scheduling)
iu phi sao cho cc qu trnh c thc thitheo mt bng thi gian xc nh trcMc ch : hon thnh tc v kp lc
ng dng : cng nghip, vinthng, qun sRt phc tpCh c gii thutcho tng h thng c th
38
7/31/2019 OS 2 - Process & Scheduling
39/65
FCFS (First comes first served)
Tin trnh vo RL lu nht c chn trcTheo th t vo RL
c quyn
39
7/31/2019 OS 2 - Process & Scheduling
40/65
FCFSMinh Ha
AvgWT = (23+25)/3 = 16
40
7/31/2019 OS 2 - Process & Scheduling
41/65
FCFSNhn xt
n ginChu ng hin tng tch ly thi gian ch
o Tin trnh c thi gian x l ngn i tin trnh c thigian x ldi
C th xy ra tnh trng c chimCPU
41
7/31/2019 OS 2 - Process & Scheduling
42/65
d b
7/31/2019 OS 2 - Process & Scheduling
43/65
Round RobinMinh Ha (1)
Viq=4ms
43
R d R bi
7/31/2019 OS 2 - Process & Scheduling
44/65
Round RobinMinh Ha (2)
Viq=4ms
44
R d R bi
7/31/2019 OS 2 - Process & Scheduling
45/65
Round RobinKhi no kt thc lt s dng CPU
Ht thi lng q ms (quantum) cho phpTin trnh kt thcTin trnh b kha
o Ch Rso Ch bin c
45
R d R bi
7/31/2019 OS 2 - Process & Scheduling
46/65
Round RobinNhn xt
S dng c ch khng c quynMi tin trnh khng phi i qu luLoi b hin tng c chim CPU
Hiu qu?o Ph thuc vo vic chn laquantum q
q qu ln ??? Tng thi gian hi p
Gim tnh tng tc q qu nh ??? Tng chi ph chuyn i ng cnh
46
7/31/2019 OS 2 - Process & Scheduling
47/65
iu phi vi u tin
Phn bit tin trnh quan trng>< tin trnh bnhthng
Tin trnh c u tin cao nht c chn cpCPU trc
47
7/31/2019 OS 2 - Process & Scheduling
48/65
V d: u tin ca HH WinNT
Tin trnhc u tin 0 v 3 1o 0 ( u tin nh nht): dnh ring cho system idle
u tin c phn theo nhm:o
Realtime: (16 - 31) Thch hp cho cc tin trnh thi gian thc Dnh ring cho cc tin trnh ca ngi qun tr h thng
o Dynamic : (0 - 15) Thch hp cho cc tin trnh ca ngi dng thng Chia thnh 3 mc :
high (11 - 15) normal (6 - 10) idle (2 - 6)
48
7/31/2019 OS 2 - Process & Scheduling
49/65
Nguyn tc iu phi
c quyno Lt s dng CPU kt thc khi:
tintrnh kt thc, tintrnh b kha
Khng c quyno Lt s dng CPU kt thc khi:
tintrnh kt thc, tintrnh b kha, C tin trnh vi u tin cao hn voRL
49
7/31/2019 OS 2 - Process & Scheduling
50/65
iu phi u tin
7/31/2019 OS 2 - Process & Scheduling
51/65
iu phi u tinNhn xt
Cch tnh u tin ?o H thnggn : CPU timeso Ngi dng gn tng minh
Tnh cht u tin :o Tnho ng
S phn tin trnh c u tin thp ?o Ch lu, lu, lu ...o Tng u tin cho nhng tin trnh ch lu trong
h thng
51
7/31/2019 OS 2 - Process & Scheduling
52/65
Shortest Job First (SJF)
L mt dng u tin c bit vi u tino pi= thi_gian_cn_li(Process i)
C th ci t c quyn hoc khng c quyn
52
SJF (c quyn)
7/31/2019 OS 2 - Process & Scheduling
53/65
SJF (c quyn)Minh ha (1)
53
7/31/2019 OS 2 - Process & Scheduling
54/65
SJF (khng c quyn)
7/31/2019 OS 2 - Process & Scheduling
55/65
SJF (khng c quyn)Minh ha (1)
55
SJF (khng c quyn)
7/31/2019 OS 2 - Process & Scheduling
56/65
SJF (khng c quyn)Minh ha (2)
56
SJF ( nhiu chu k CPU)
7/31/2019 OS 2 - Process & Scheduling
57/65
SJF ( nhiu chu k CPU)Minh ha
57
SJF
7/31/2019 OS 2 - Process & Scheduling
58/65
SJFNhn xt
Ti u thi gian chKhng kh thi
o Lm sao bit CPU burst ?
58
7/31/2019 OS 2 - Process & Scheduling
59/65
iu phi vi nhiu mc u tin
7/31/2019 OS 2 - Process & Scheduling
60/65
iu phi vi nhiu mc u tinThc t
T chc N RLng vinhiu mc u tinMiRLi p dng RR
Gia cc RL p dngiu phi theo utin :
o RLi rng mi iu phi
RLi +1
60
7/31/2019 OS 2 - Process & Scheduling
61/65
Khuyt im
iGiiphp Aging
o Ch lu qu : chuynln RLvi u tincao hn
o ChimCPU lu qu :chuyn xung RL vi u tin thp hn
61
7/31/2019 OS 2 - Process & Scheduling
62/65
7/31/2019 OS 2 - Process & Scheduling
63/65
Tho lun
Cu hi?
kin?
xut?
63
7/31/2019 OS 2 - Process & Scheduling
64/65
7/31/2019 OS 2 - Process & Scheduling
65/65
Bi Tp