Giáo trình Nguyên lý hu hành – KS. Trn Ngc Thái, môn Tin hc – i hc DL Hi Phòng Tài liu lu hành ni b - 1 - Chng 2: Qun lý tin trình Trong chng này chúng ta s tìm hiu chc nng qun lý tin trình ca Hu hành : làm th nào phân chia CPU cho các tin trình ? Theo vt x lý ca tin trình ? Và các thao tác trên tin trình ? 2.1 T chc qun lý tin trình 2.1.1. Các trng thái ca tin trình Trng thái ca tin trình ti mt thi m c xác nh bi hot ng hin thi ca tin trình ti thi m ó. Trong quá trình sng, mt tin trình thay i trng thái do nhiu nguyên nhân nh : phi ch mt s kin nào ó xy ra, hay i mt thao tác nhp/xut hoàn tt, buc phi dng hot ng do ã ht thi gian x lý … i mt thi m, mt tin trình có th nhn trong mt các trng thái sau ây : i to : tin trình ang c to lp. Running : các ch th ca tin trình ang c x lý. Blocked : tin trình ch c cp phát mt tài nguyên, hay ch mt
Trang 1ó x y ra, hay i m t thao tác nh p/xu t hoàn t t, bu c ph i d ng ho t ng do ã h t th i gian x lý …
i m t th i m, m t ti n trình có th nh n trong m t các tr ng thái sau ây :
i m t th i m, ch có m t ti n trình có th nh n tr ng thái running trên m t b x lý b t k Trong khi ó,
nhi u ti n trình có th tr ng thái blocked hay ready.
Các cung chuy n ti p trong s tr ng thái bi u di n sáu s chuy n tr ng thái có th x y ra trong các u ki nsau :
Ti n trình m i t o c a vào h th ng
u ph i c p phát cho ti n trình m t kho ng th i gian s d ng CPU
Ti n trình k t thúc
Ti n trình yêu c u m t tài nguyên nh ng ch a c áp ng vì tài nguyên ch a s n sàng c p phát t i th i
m ó ; ho c ti n trình ph i ch m t s ki n hay thao tác nh p/xu t
u ph i ch n m t ti n trình khác cho x lý
Trang 2Tài nguyên mà ti n trình yêu c u tr nên s n sàng c p phát ; hay s ki n ho c thao tác nh p/xu t ti n trìnhang i hoàn t t.
2.1.2 Ch x lý c a ti n trình
m b o h th ng ho t ng úng n, h u hành c n ph i c b o v kh i s xâm ph m c a các ti ntrình B n thân các ti n trình và d li u c ng c n c b o v tránh các nh h ng sai l c l n nhau M tcách ti p c n gi i quy t v n là phân bi t hai ch x lý cho các ti n trình : ch không c quy n và
ch c quy n nh vào s tr giúp c a c ch ph n c ng T p l nh c a CPU c phân chia thành các l nh
c quy n và l nh không c quy n C ch ph n c ng ch cho phép các l nh c quy n c th c hi n trong
ch c quy n Thông th ng ch có h u hành ho t ng trong ch c quy n, các ti n trình c a
ng i dùng ho t ng trong ch không c quy n, không th c hi n c các l nh c quy n có nguy c nh
Ng c nh c a ti n trình (3): mô t các tài nguyên ti n trình ang trong quá trình, ho c ph c v cho ho t
ng hi n t i, ho c làm c s ph c h i ho t ng cho ti n trình, bao g m các thông tin v :
Tr ng thái CPU: bao g m n i dung các thanh ghi, quan tr ng nh t là con tr l nh IP l u tr a ch câu l nh k
ti p ti n trình s x lý Các thông tin này c n c l u tr khi x y ra m t ng t, nh m có th cho phép ph c h i
ho t ng c a ti n trình úng nh tr c khi b ng t
x lý: dùng cho máy có c u hình nhi u CPU, xác nh s hi u CPU mà ti n trình ang s d ng.
nh chính: danh sách các kh i nh c c p cho ti n trình
Tài nguyên s d ng: danh sách các tài mguyên h th ng mà ti n trình ang s d ng.
Tài nguyên t o l p: danh sách các tài nguyên c ti n trình t o l p
Thông tin giao ti p (4): ph n ánh các thông tin v quan h c a ti n trình v i các ti n trình khác trong h
th ng :
Ti n trình cha: ti n trình t o l p ti n trình này
Ti n trình con: các ti n trình do ti n trình này t o l p
Trang 3u tiên : giúp b u ph i có thông tin l a ch n ti n trình c c p CPU.
Thông tin th ng kê (5): ây là nh ng thông tin th ng kê v ho t ng c a ti n trình, nh th i gian ã s d ngCPU,th i gian ch Các thông tin này có th có ích cho công vi c ánh giá tình hình h th ng và d oán cáctình hu ng t ng lai
Trang 4Hình v 2.5 M t cây ti n trình trong h th ng UNIX
Các công vi c h u hành c n th c hi n khi t o l p ti n trình bao g m :
nh danh cho ti n trình m i phát sinh
a ti n trình vào danh sách qu n lý c a h th ng
xác nh u tiên cho ti n trình
o PCB cho ti n trình
p phát các tài nguyên ban u cho ti n trình
Khi m t ti n trình t o l p m t ti n trình con, ti n trình con có th s c h u hành tr c ti p c p phát tàinguyên ho c c ti n trình cha cho th a h ng m t s tài nguyên ban u
Khi m t ti n trình t o ti n trình m i, ti n trình ban u có th x lý theo m t trong hai kh n ng sau :
Ti n trình cha ti p t c x lý ng hành v i ti n trình con
Ti n trình cha ch n khi m t ti n trình con nào ó, ho c t t c các ti n trình con k t thúc x lý
Các h u hành khác nhau có th ch n l a các cài t khác nhau th c hi n thao tác t o l p m t ti n trình
2.1.4.2 K t thúc ti n trình
t ti n trình k t thúc x lý khi nó hoàn t t ch th cu i cùng và s d ng m t l i g i h th ng yêu c u h
u hành h y b nó ôi khi m t ti n trình có th yêu c u h u hành k t thúc x lý c a m t ti n trình khác.Khi m t ti n trình k t thúc, h u hành th c hi n các công vi c :
thu h i các tài nguyên h th ng ã c p phát cho ti n trình
y ti n trình kh i t t c các danh sách qu n lý c a h th ng
y b PCB c a ti n trình
u h t các h u hành không cho phép các ti n trình con ti p t c t n t i n u ti n trình cha ã k t thúc Trong
nh ng h th ng nh th , h u hành s t ng phát sinh m t lo t các thao tác k t thúc ti n trình con
2.1.5 C p phát tài nguyên cho ti n trình
Khi có nhi u ng i s d ng ng th i làm vi c trong h th ng, h u hành c n ph i c p phát các tài nguyêntheo yêu c u cho m i ng i s d ng Do tài nguyên h th ng th ng r t gi i h n và có khi không th chia s ,
Trang 5nên hi m khi t t c các yêu c u tài nguyên ng th i u c th a mãn Vì th c n ph i nghiên c u m t
ph ng pháp chia s m t s tài nguyên h u h n gi a nhi u ti n trình ng i dùng ng th i H u hành
qu n lý nhi u lo i tài nguyên khác nhau (CPU, b nh chính, các thi t b ngo i vi …), v i m i lo i c n có m t
ch c p phát và các chi n l c c p phát hi u q a M i tài nguyên c bi u di n thông qua m t c u trúc d
li u, khác nhau v chi ti t cho t ng lo i tài nguyên, nh ng c b n ch a ng các thông tin sau :
nh danh tài nguyên
Tr ng thái tài nguyên : ây là các thông tin mô t chi ti t tr ng thái tài nguyên : ph n nào c a tài nguyên ã
p phát cho ti n trình, ph n nào còn có th s d ng ?
Hàng i trên m t tài nguyên : danh sách các ti n trình ang ch c c p phát tài nguyên t ng ng
c p phát : là n code m nhi m vi c c p phát m t tài nguyên c thù M t s tài nguyên òi h i các
gi i thu t c bi t (nh CPU, b nh chính, h th ng t p tin), trong khi nh ng tài nguyên khác (nh các thi t b
nh p/xu t) có th c n các gi i thu t c p phát và gi i phóng t ng quát h n
Hình 2.6 Kh i qu n lý tài nguyên
Các m c tiêu c a k thu t c p phát :
o m m t s l ng h p l các ti n trình truy xu t ng th i n các tài nguyên không chia s c
p phát tài nguyên cho ti n trình có yêu c u trong m t kho ng th i gian trì hoãn có th ch p nh n c
i u hóa s s d ng tài nguyên
có th thõa mãn các m c tiêu k trên, c n ph i gi i quy t các v n n y sinh khi có nhi u ti n trình ng
th i yêu c u m t tài nguyên không th chia s
2.2 u ph i ti n trình
Trong môi tr ng a ch ng, có th x y ra tình hu ng nhi u ti n trình ng th i s n sàng x lý M c tiêu
a các h phân chia th i gian (time-sharing) là chuy n i CPU qua l i gi a các ti n trình m t cách th ngxuyên nhi u ng i s d ng có th t ng tác cùng lúc v i t ng ch ng trình trong quá trình x lý
th c hi n c m c tiêu này, h u hành ph i l a ch n ti n trình c x lý ti p theo B u ph i s s
ng m t gi i thu t u ph i thích h p th c hi n nhi m v này M t thành ph n khác c a h u hành c ng
ti m n trong công tác u ph i là phân ph i (dispatcher) B phân ph i s ch u trách nhi m chuy n i ng
nh và trao CPU cho ti n trình c ch n b i b u ph i x lý
2.2.1 Gi i thi u
2.2.1.1 M c tiêu u ph i
Trang 6u ph i không cung c p c ch , mà a ra các quy t nh Các h u hành xây d ng nhi u chi n l ckhác nhau th c hi n vi c u ph i, nh ng t u chung c n t c các m c tiêu sau :
c) Th i gian áp ng h p lý (Response time) :
c ti u hoá th i gian h i áp cho các t ng tác c a ng i s d ng
d) Th i gian l u l i trong h th ng ( Turnaround Time) :
c ti u hóa th i gian hoàn t t các tác v x lý theo lô
e) Thông l ng t i a (Throughput ) :
c i hóa s công vi c c x lý trong m t n v th i gian
Tuy nhiên th ng không th th a mãn t t c các m c tiêu k trên vì b n thân chúng có s mâu thu n v i nhau
mà ch có th dung hòa chúng m c nào ó
2.2.1.2 Các c m c a ti n trình
u ph i ho t ng c a các ti n trình là m t v n r t ph c t p, òi h i h u hành khi gi i quy t ph i xemxét nhi u y u t khác nhau có th t c nh ng m c tiêu ra M t s c tính c a ti n trình c n cquan tâm nh tiêu chu n u ph i :
a) Tính h ng xu t / nh p c a ti n trình ( I/O-boundedness):
Khi m t ti n trình nh n c CPU, ch y u nó ch s d ng CPU n khi phát sinh m t yêu c u nh p xu t ?
Ho t ng c a các ti n trình nh th th ng bao g m nhi u l t s d ng CPU , m i l t trong m t th i giankhá ng n
b) Tính h ng x lý c a ti n trình ( CPU-boundedness):
Khi m t ti n trình nh n c CPU, nó có khuynh h ng s d ng CPU n khi h t th i gian dành cho nó ? Ho t
ng c a các ti n trình nh th th ng bao g m m t s ít l t s d ng CPU , nh ng m i l t trong m t th igian dài
c) Ti n trình t ng tác hay x lý theo lô :
Ng i s d ng theo ki u t ng tác th ng yêu c u c h i áp t c th i i v i các yêu c u c a h , trong khicác ti n trình c a tác v c x lý theo lô nói chung có th trì hoãn trong m t th i gian ch p nh n c
d) u tiên c a ti n trình :
Các ti n trình có th c phân c p theo m t s tiêu chu n ánh giá nào ó, m t cách h p lý, các ti n trìnhquan tr ng h n ( có u tiên cao h n) c n c u tiên h n
e) Th i gian ã s d ng CPU c a ti n trình :
Trang 7t s quan m u tiên ch n nh ng ti n trình ã s d ng CPU nhi u th i gian nh t vì hy v ng chúng s c n
ít th i gian nh t hoàn t t và r i kh i h th ng Tuy nhiên c ng có quan m cho r ng các ti n trình nh n
c CPU trong ít th i gian là nh ng ti n trình ã ph i ch lâu nh t, do v y u tiên ch n chúng
f) Th i gian còn l i ti n trình c n hoàn t t :
Có th gi m thi u th i gian ch i trung bình c a các ti n trình b ng cách cho các ti n trình c n ít th i gian
nh t hoàn t t c th c hi n tr c Tuy nhiên áng ti c là r t hi m khi bi t c ti n trình c n bao nhiêu
th i gian n a k t thúc x lý
2.2.1.3 u ph i không c quy n và u ph i c quy n (preemptive/nopreemptive)
Thu t toán u ph i c n xem xét và quy t nh th i m chuy n i CPU gi a các ti n trình H u hành có
th th c hi n c ch u ph i theo nguyên lý c quy n ho c không c quy n.
u ph i c quy n : Nguyên lý u ph i c quy n cho phép m t ti n trình khi nh n c CPU s cóquy n c chi m CPU n khi hoàn t t x lý ho c t nguy n gi i phóng CPU Khi ó quy t nh u ph iCPU s x y ra trong các tình hu ng sau:
Khi ti n trình chuy n t tr ng thái ang x lý(running) sang tr ng thái b khóa blocked ( ví d ch m t thaotác nh p xu t hay ch m t ti n trình con k t thúc…)
Khi ti n trình k t thúc
Các gi i thu t c quy n th ng n gi n và d cài t Tuy nhiên chúng th ng không thích h p v i các h
th ng t ng quát nhi u ng i dùng, vì n u cho phép m t ti n trình có quy n x lý bao lâu tùy ý, có ngh a là ti ntrình này có th gi CPU m t th i gian không xác nh, có th ng n c n nh ng ti n trình còn l i trong h th ng
có m t c h i x lý
u ph i không c quy n : Ng c v i nguyên lý c quy n, u ph i theo nguyên lý không c quy n
cho phép t m d ng ho t ng c a m t ti n trình ang s n sàng x lý Khi m t ti n trình nh n c CPU, nó
n c s d ng CPU n khi hoàn t t ho c t nguy n gi i phóng CPU, nh ng m t ti n trình khác có utiên có th dành quy n s d ng CPU c a ti n trình ban u Nh v y là ti n trình có th b t m d ng ho t ng
t c lúc nào mà không c báo tr c, ti n trình khác x lý Các quy t nh u ph i x y ra khi :
Khi ti n trình chuy n t tr ng thái ang x lý (running) sang tr ng thái b khóa blocked ( ví d ch m t thaotác nh p xu t hay ch m t ti n trình con k t thúc…)
Khi ti n trình chuy n t tr ng thái ang x lý (running) sang tr ng thái ready ( ví d x y ra m t ng t)
Khi ti n trình chuy n t tr ng thái ch (blocked) sang tr ng thái ready ( ví d m t thao tác nh p/xu t hoànt)
Khi ti n trình k t thúc
Các thu t toán u ph i theo nguyên t c không c quy n ng n c n c tình tr ng m t ti n trình c chi mCPU, nh ng vi c t m d ng m t ti n trình có th d n n các mâu thu n trong truy xu t, òi h i ph i s d ng
t ph ng pháp ng b hóa thích h p gi i quy t
Trong các h th ng s d ng nguyên lý u ph i c quy n có th x y ra tình tr ng các tác v c n th i gian x
lý ng n ph i ch tác v x lý v i th i gian r t dài hoàn t t! Nguyên lý u ph i c quy n th ng ch thích
p v i các h x lý theo lô
i v i các h th ng t ng tác(time sharing), các h th i gian th c (real time),c n ph i s d ng nguyên lý u
ph i không c quy n các ti n trình quan tr ng có c h i h i áp k p th i Tuy nhiên th c hi n u ph i
Trang 8theo nguyên lý không c quy n òi h i nh ng c ch ph c t p trong vi c phân nh u tiên, và phát sinhthêm chi phí khi chuy n i CPU qua l i gi a các ti n trình.
2.2.2 T ch c u ph i
2.2.2.1 Các danh sách s d ng trong quá trình u ph i.
u hành s d ng hai lo i danh sách th c hi n u ph i các ti n trình là danh sách s n sàng (ready list)
và danh sách ch i(waiting list).
Khi m t ti n trình b t u i vào h th ng, nó c chèn vào danh sách các tác v (job list) Danh sách này bao
m t t c các ti n trình c a h th ng Nh ng ch các ti n trình ang th ng trú trong b nh chính và tr ngthái s n sàng ti p nh n CPU ho t ng m i c a vào danh sách s n sàng.
u ph i s ch n m t ti n trình trong danh sách s n sàng và c p CPU cho ti n trình ó Ti n trình c c pCPU s th c hi n x lý, và có th chuy n sang tr ng thái ch khi x y ra các s ki n nh i m t thao tác
nh p/xu t hoàn t t, yêu c u tài nguyên ch a c th a mãn, c yêu c u t m d ng Khi ó ti n trình s cchuy n sang m t danh sách ch i
u hành ch s d ng m t danh sách s n sàng cho toàn h th ng, nh ng m i m t tài nguyên ( thi t b ngo i
vi ) có m t danh sách ch i riêng bao g m các ti n trình ang ch c c p phát tài nguyên ó
Ti n trình phát sinh m t yêu c u m t tài nguyên mà h th ng ch a th áp ng, khi ó ti n trình s cchuy n sang danh sách các ti n trình ang ch tài nguyên t ng ng
Ti n trình có th b b t bu c t m d ng x lý do m t ng t x y ra, khi ó ti n trình c a tr l i vào danhsách s n sàng ch c c p CPU cho l t ti p theo
Trang 9Hình 2.10 chuy n i gi a các danh sách u ph i
Trong tr ng h p u tiên, ti n trình cu i cùng s chuy n t tr ng thái blocked sang tr ng thái ready và l i
c a tr vào danh sách s n sàng Ti n trình l p l i chu k này cho n khi hoàn t t tác v thì c h th ng
ho t ng th p
h th ng ho t ng t t, b u ph i tác v c n bi t tính ch t c a ti n trình là h ng nh p xu t (I/O bounded) hay ng x lý ( CPU bounded) M t ti n trình c g i là h ng nh p xu t n u nó ch y u nó ch
Ch n m t ti n trình tr ng thái s n sàng ( ã c n p vào b nh chính, và có tài nguyên ho t ng ) và
p phát CPU cho ti n trình ó th c hi n B u ph i ti n trình có t n su t ho t ng cao, sau m i l n x y ra
ng t ( do ng h báo gi , do các thi t b ngo i vi ), th ng là 1 l n trong kho ng 100ms Do v y nâng cao
Trang 10Hình 2.11 C p u ph i trung gian
2.2.3 Các chi n l c u ph i
2.2.3.1 Chi n l c FIFO
Nguyên t c : CPU c c p phát cho ti n trình u tiên trong danh sách s n sàng có yêu c u, là ti n trình
c a vào h th ng s m nh t ây là thu t toán u ph i theo nguyên t c c quy n M t khi CPU c
p phát cho ti n trình, CPU ch c ti n trình t nguy n gi i phóng khi k t thúc x lý hay khi có m t yêu c u
2.2.3.2 Chi n l c phân ph i xoay vòng (Round Robin)
Nguyên t c : Danh sách s n sàng c x lý nh m t danh sách vòng, b u ph i l n l t c p phát cho
ng ti n trình trong danh sách m t kho ng th i gian s d ng CPU g i là quantum ây là m t gi i thu t u
ph i không c quy n : khi m t ti n trình s d ng CPU n h t th i gian quantum dành cho nó, h u hành
Trang 11thu h i CPU và c p cho ti n trình k ti p trong danh sách N u ti n trình b khóa hay k t thúc tr c khi s d ng
t th i gian quantum, h u hành c ng l p t c c p phát CPU cho ti n trình khác Khi ti n trình tiêu th h t
th i gian CPU dành cho nó mà ch a hoàn t t, ti n trình c a tr l i vào cu i danh sách s n sàng i
Th i gian ch i trung bình s là (0+6+3+5)/3 = 4.66 milisecondes
u có n ti n trìh trong danh sách s n sàng và s d ng quantum q, thì m i ti n trình s c c p phát CPU 1/n trong t ng kho ng th i gian q M i ti n trình s không ph i i quá (n-1)q n v th i gian tr c khi nh n cCPU cho l t k ti p
2.2.3.3 u ph i v i u tiên
Nguyên t c : M i ti n trình c gán cho m t u tiên t ng ng, ti n trình có u tiên cao nh t s
c ch n c p phát CPU u tiên u tiên có th c nh ngh a n i t i hay nh vào các y u t bênngoài u tiên n i t i s d ng các i l ng có th o l ng tính toán u tiên c a ti n trình, ví d các
gi i h n th i gian, nhu c u b nh u tiên c ng có th c gán t bên ngoài d a vào các tiêu chu n do
u hành nh t m quan tr ng c a ti n trình, lo i ng i s d ng s h u ti n trình…
Gi i thu t u ph i v i u tiên có th theo nguyên t c c quy n hay không c quy n Khi m t ti n trình
c a vào danh sách các ti n trình s n sàng, u tiên c a nó c so sánh v i u tiên c a ti n trình
hi n hành ang x lý Gi i thu t u ph i v i u tiên và không c quy n s thu h i CPU t ti n trình hi nhành c p phát cho ti n trình m i n u u tiên c a ti n trình này cao h n ti n trình hi n hành M t gi ithu t c quy n s ch n gi n chèn ti n trình m i vào danh sách s n sàng, và ti n trình hi n hành v n ti p t c
lý h t th i gian dành cho nó
Ví d : ( u tiên 1 > u tiên 2> u tiên 3)
Ti n trình Th i m vào RL u tiên Th i gian x lý
Trang 122.2.3.4 Chi n l c công vi c ng n nh t (Shortest-job-first SJF)
Nguyên t c : ây là m t tr ng h p c bi t c a gi i thu t u ph i v i u tiên Trong gi i thu t này,
u tiên p c gán cho m i ti n trình là ngh ch o c a th i gian x lý t mà ti n trình yêu c u : p = 1/t Khi
CPU c t do, nó s c c p phát cho ti n trình yêu c u ít th i gian nh t k t thúc- ti n trình ng n nh t
Gi i thu t này c ng có th c quy n hay không c quy n S ch n l a x y ra khi có m t ti n trình m i c
a vào danh sách s n sàng trong khi m t ti n trình khác ang x lý Ti n trình m i có th s h u m t yêu c u
th i gian s d ng CPU cho l n ti p theo (CPU-burst) ng n h n th i gian còn l i mà ti n trình hi n hành c n x
lý Gi i thu t SJF không c quy n s d ng ho t ng c a ti n trình hi n hành, trong khi gi i thu t c quy n cho phép ti n trình hi n hành ti p t c x lý
Ví d :
Ti n trình Th i m vào
RL
Th i gian xlý