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
kin xy ra .
Ready : tin trình chc cp phát CPU x lý.
t thúc : tin trình hoàn tt x lý.
Hình 2.2 S chuyn trng thái gia các tin trình
i mt thi m, ch có mt tin trình có th nhn trng thái running trên mt b x lý bt k. Trong khi ó,
nhiu tin trình có th trng thái blocked hay ready.
Các cung chuyn tip trong s trng thái biu din sáu s chuyn trng thái có th xy ra trong các u kin
sau :
Tin trình mi to c a vào h thng
u phi cp phát cho tin trình mt khong thi gian s dng CPU
Tin trình kt thúc
Tin trình yêu cu mt tài nguyên nhng cha c áp ng vì tài nguyên cha sn sàng cp phát ti thi
m ó ; hoc tin trình phi ch mt s kin hay thao tác nhp/xut.
u phi chn mt tin trình khác cho x lý .
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 - 2 -
Tài nguyên mà tin trình yêu cu tr nên sn sàng cp phát ; hay s kin hoc thao tác nhp/xut tin trình
ang i hoàn tt.
2.1.2 Ch x lý ca tin trình
m bo h thng hot ng úng n, hu hành cn phi c bo v khi s xâm phm ca các tin
trình. Bn thân các tin trình và d liu cng cn c bo v tránh các nh hng sai lc ln nhau. Mt
cách tip cn gii quyt vn là phân bit hai ch x lý cho các tin trình : ch không c quyn và
chc quyn nh vào s tr giúp ca c ch phn cng. Tp lnh ca CPU c phân chia thành các lnh
c quyn và lnh không c quyn. C ch phn cng ch cho phép các lnh c quyn c thc hin trong
ch c quyn. Thông thng ch có hu hành hot ng trong ch c quyn, các tin trình ca
ngi dùng hot ng trong ch không c quyn, không thc hin c các lnh c quyn có nguy cnh
ng n h thng. Nh vy hu hành c bo v. Khi mt tin trình ngi dùng gi n mt li gi h
thng, tin trình ca hu hành x lý li gi này s hot ng trong chc quyn, sau khi hoàn tt thì tr
quyn u khin v cho tin trình ngi dùng trong ch không c quyn.
Hình v 2.3 Hai ch x lý
2.1.3. Cu trúc d liu khi qun lý tin trình
u hành qun lý các tin trình trong h thng thông qua khi qun lý tin trình (process control block -
PCB). PCB là mt vùng nh lu tr các thông tin mô t cho tin trình, vi các thành phn ch yu bao gm :
nh danh ca tin trình (1) : giúp phân bit các tin trình
Trng thái tin trình (2): xác nh hot ng hin hành ca tin trình.
Ng cnh ca tin trình (3): mô t các tài nguyên tin trình ang trong quá trình, hoc phc v cho hot
ng hin ti, hoc làm c s phc hi hot ng cho tin trình, bao gm các thông tin v:
Trng thái CPU: bao gm ni dung các thanh ghi, quan trng nht là con tr lnh IP lu tra ch câu lnh k
tip tin trình s x lý. Các thông tin này cn c lu tr khi xy ra mt ngt, nhm có th cho phép phc hi
hot ng ca tin trình úng nh trc khi b ngt.
x lý: dùng cho máy có cu hình nhiu CPU, xác nh s hiu CPU mà tin trình ang s dng.
nh chính: danh sách các khi nhc cp cho tin trình.
Tài nguyên s dng: danh sách các tài mguyên h thng mà tin trình ang s dng.
Tài nguyên to lp: danh sách các tài nguyên c tin trình to lp.
Thông tin giao tip (4): phn ánh các thông tin v quan h ca tin trình vi các tin trình khác trong h
thng :
Tin trình cha: tin trình to lp tin trình này .
Tin trình con: các tin trình do tin trình này to lp .
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 - 3 -
u tiên : giúp bu phi có thông tin la chn tin trình c cp CPU.
Thông tin thng kê (5): ây là nhng thông tin thng kê v hot ng ca tin trình, nh thi gian ã s dng
CPU,thi gian ch. Các thông tin này có th có ích cho công vic ánh giá tình hình h thng và doán các
tình hung tng lai.
Hình v 2.4 Khi mô t tin trình
2.1.4. Thao tác trên tin trình
u hành cung cp các thao tác ch yu sau ây trên mt tin trình :
o lp tin trình (create)
t thúc tin trình (destroy)
m dng tin trình (suspend)
tái kích hot tin trình (resume)
thay i u tiên tin trình
2.1.4.1. To lp tin trình
Trong quá trình x lý, mt tin trình có th to lp nhiu tin trình mi bng cách s dng mt li gi h thng
ng ng. Tin trình gi li gi h thng to tin trình mi sc gi là tin trình cha, tin trình c to
i là tin trình con. Mi tin trình con n lt nó li có th to các tin trình mi…quá trình này tip tc s
o ra mt cây tin trình.
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 - 4 -
Hình v2.5 Mt cây tin trình trong h thng UNIX
Các công vic hu hành cn thc hin khi to lp tin trình bao gm :
nh danh cho tin trình mi phát sinh
a tin trình vào danh sách qun lý ca h thng
xác nh u tiên cho tin trình
o PCB cho tin trình
p phát các tài nguyên ban u cho tin trình
Khi mt tin trình to lp mt tin trình con, tin trình con có th sc hu hành trc tip cp phát tài
nguyên hoc c tin trình cha cho tha hng mt s tài nguyên ban u.
Khi mt tin trình to tin trình mi, tin trình ban u có th x lý theo mt trong hai kh nng sau :
Tin trình cha tip tc x lý ng hành vi tin trình con.
Tin trình cha chn khi mt tin trình con nào ó, hoc tt c các tin trình con kt thúc x lý.
Các hu hành khác nhau có th chn la các cài t khác nhau thc hin thao tác to lp mt tin trình.
2.1.4.2. Kt thúc tin trình
t tin trình kt thúc x lý khi nó hoàn tt ch th cui cùng và s dng mt li gi h thng yêu cu h
u hành hy b nó. ôi khi mt tin trình có th yêu cu hu hành kt thúc x lý ca mt tin trình khác.
Khi mt tin trình kt thúc, hu hành thc hin các công vic :
thu hi các tài nguyên h thng ã cp phát cho tin trình
y tin trình khi tt c các danh sách qun lý ca h thng
y b PCB ca tin trình
u ht các hu hành không cho phép các tin trình con tip tc tn ti nu tin trình cha ã kt thúc. Trong
nhng h thng nh th, hu hành s tng phát sinh mt lot các thao tác kt thúc tin trình con.
2.1.5. Cp phát tài nguyên cho tin trình
Khi có nhiu ngi s dng ng thi làm vic trong h thng, hu hành cn phi cp phát các tài nguyên
theo yêu cu cho mi ngi s dng. Do tài nguyên h thng thng rt gii hn và có khi không th chia s,
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 - 5 -
nên him khi tt c các yêu cu tài nguyên ng thi u c tha mãn. Vì th cn phi nghiên cu mt
phng pháp chia s mt s tài nguyên hu hn gia nhiu tin trình ngi dùng ng thi. Hu hành
qun lý nhiu loi tài nguyên khác nhau (CPU, b nh chính, các thit b ngoi vi …), vi mi loi cn có mt
ch cp phát và các chin lc cp phát hiu qa. Mi tài nguyên c biu din thông qua mt cu trúc d
liu, khác nhau v chi tit cho tng loi tài nguyên, nhng c bn cha ng các thông tin sau :
nh danh tài nguyên
Trng thái tài nguyên : ây là các thông tin mô t chi tit trng thái tài nguyên : phn nào ca tài nguyên ã
p phát cho tin trình, phn nào còn có th s dng ?
Hàng i trên mt tài nguyên : danh sách các tin trình ang chc cp phát tài nguyên tng ng.
cp phát : là n code m nhim vic cp phát mt tài nguyên c thù. Mt s tài nguyên òi hi các
gii thut c bit (nh CPU, b nh chính, h thng tp tin), trong khi nhng tài nguyên khác (nh các thit b
nhp/xut) có th cn các gii thut cp phát và gii phóng tng quát hn.
Hình 2.6 Khi qun lý tài nguyên
Các mc tiêu ca k thut cp phát :
o m mt s lng hp l các tin trình truy xut ng thi n các tài nguyên không chia sc.
p phát tài nguyên cho tin trình có yêu cu trong mt khong thi gian trì hoãn có th chp nhn c.
i u hóa s s dng tài nguyên.
có th thõa mãn các mc tiêu k trên, cn phi gii quyt các vn ny sinh khi có nhiu tin trình ng
thi yêu cu mt tài nguyên không th chia s.
2.2 u phi tin trình
Trong môi trng a chng, có th xy ra tình hung nhiu tin trình ng thi sn sàng x lý. Mc tiêu
a các h phân chia thi gian (time-sharing) là chuyn i CPU qua li gia các tin trình mt cách thng
xuyên nhiu ngi s dng có th tng tác cùng lúc vi tng chng trình trong quá trình x lý.
thc hin c mc tiêu này, hu hành phi la chn tin trình c x lý tip theo. Bu phi s s
ng mt gii thut u phi thích hp thc hin nhim v này. Mt thành phn khác ca hu hành cng
tim n trong công tác u phi là phân phi (dispatcher). B phân phi s chu trách nhim chuyn i ng
nh và trao CPU cho tin trình c chn bi bu phi x lý.
2.2.1. Gii thiu
2.2.1.1. Mc tiêu u phi
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 - 6 -
u phi không cung cp c ch, mà a ra các quyt nh. Các hu hành xây dng nhiu chin lc
khác nhau thc hin vic u phi, nhng tu chung cn t c các mc tiêu sau :
a) S công bng ( Fairness) :
Các tin trình chia s CPU mt cách công bng, không có tin trình nào phi chi vô hn c cp phát
CPU
b) Tính hiu qa (Efficiency) :
thng phi tn dng c CPU 100% thi gian.
c) Thi gian áp ng hp lý (Response time) :
c tiu hoá thi gian hi áp cho các tng tác ca ngi s dng
d) Thi gian lu li trong h thng ( Turnaround Time) :
c tiu hóa thi gian hoàn tt các tác v x lý theo lô.
e) Thông lng ti a (Throughput ) :
c i hóa s công vic c x lý trong mt n v thi gian.
Tuy nhiên thng không th tha mãn tt c các mc tiêu k trên vì bn thân chúng có s mâu thun vi nhau
mà ch có th dung hòa chúng mc nào ó.
2.2.1.2. Các c m ca tin trình
u phi hot ng ca các tin trình là mt vn rt phc tp, òi hi hu hành khi gii quyt phi xem
xét nhiu yu t khác nhau có tht c nhng mc tiêu ra. Mt sc tính ca tin trình cn c
quan tâm nh tiêu chun u phi :
a) Tính hng xut / nhp ca tin trình ( I/O-boundedness):
Khi mt tin trình nhn c CPU, ch yu nó ch s dng CPU n khi phát sinh mt yêu cu nhp xut ?
Hot ng ca các tin trình nh th thng bao gm nhiu lt s dng CPU , mi lt trong mt thi gian
khá ngn.
b) Tính hng x lý ca tin trình ( CPU-boundedness):
Khi mt tin trình nhn c CPU, nó có khuynh hng s dng CPU n khi ht thi gian dành cho nó ? Hot
ng ca các tin trình nh th thng bao gm mt s ít lt s dng CPU , nhng mi lt trong mt thi
gian dài.
c) Tin trình tng tác hay x lý theo lô :
Ngi s dng theo kiu tng tác thng yêu cu c hi áp tc thi i vi các yêu cu ca h, trong khi
các tin trình ca tác vc x lý theo lô nói chung có th trì hoãn trong mt thi gian chp nhn c.
d) u tiên ca tin trình :
Các tin trình có thc phân cp theo mt s tiêu chun ánh giá nào ó, mt cách hp lý, các tin trình
quan trng hn ( có u tiên cao hn) cn c u tiên hn.
e) Thi gian ã s dng CPU ca tin trình :
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 - 7 -
t s quan m u tiên chn nhng tin trình ã s dng CPU nhiu thi gian nht vì hy vng chúng s cn
ít thi gian nht hoàn tt và ri khi h thng . Tuy nhiên cng có quan m cho rng các tin trình nhn
c CPU trong ít thi gian là nhng tin trình ã phi ch lâu nht, do vy u tiên chn chúng.
f) Thi gian còn li tin trình cn hoàn tt :
Có th gim thiu thi gian chi trung bình ca các tin trình bng cách cho các tin trình cn ít thi gian
nht hoàn tt c thc hin trc. Tuy nhiên áng tic là rt him khi bit c tin trình cn bao nhiêu
thi gian na kt thúc x lý.
2.2.1.3. u phi không c quyn và u phi c quyn (preemptive/nopreemptive)
Thut toán u phi cn xem xét và quyt nh thi m chuyn i CPU gia các tin trình. Hu hành có
th thc hin c chu phi theo nguyên lý c quyn hoc không c quyn.
u phi c quyn : Nguyên lý u phic quyn cho phép mt tin trình khi nhn c CPU s có
quyn c chim CPU n khi hoàn tt x lý hoc t nguyn gii phóng CPU. Khi ó quyt nh u phi
CPU s xy ra trong các tình hung sau:
Khi tin trình chuyn t trng thái ang x lý(running) sang trng thái b khóa blocked ( ví d ch mt thao
tác nhp xut hay ch mt tin trình con kt thúc…).
Khi tin trình kt thúc.
Các gii thut c quyn thng n gin và d cài t. Tuy nhiên chúng thng không thích hp vi các h
thng tng quát nhiu ngi dùng, vì nu cho phép mt tin trình có quyn x lý bao lâu tùy ý, có ngha là tin
trình này có th gi CPU mt thi gian không xác nh, có th ngn cn nhng tin trình còn li trong h thng
có mt c hi x lý.
u phi không c quyn : Ngc vi nguyên lý c quyn, u phi theo nguyên lý không c quyn
cho phép tm dng hot ng ca mt tin trình ang sn sàng x lý. Khi mt tin trình nhn c CPU, nó
n c s dng CPU n khi hoàn tt hoc t nguyn gii phóng CPU, nhng mt tin trình khác có u
tiên có th dành quyn s dng CPU ca tin trình ban u. Nh vy là tin trình có th b tm dng hot ng
t c lúc nào mà không c báo trc, tin trình khác x lý. Các quyt nh u phi xy ra khi :
Khi tin trình chuyn t trng thái ang x lý (running) sang trng thái b khóa blocked ( ví d ch mt thao
tác nhp xut hay ch mt tin trình con kt thúc…).
Khi tin trình chuyn t trng thái ang x lý (running) sang trng thái ready ( ví d xy ra mt ngt).
Khi tin trình chuyn t trng thái ch (blocked) sang trng thái ready ( ví d mt thao tác nhp/xut hoàn
t).
Khi tin trình kt thúc.
Các thut toán u phi theo nguyên tc không c quyn ngn cn c tình trng mt tin trình c chim
CPU, nhng vic tm dng mt tin trình có th dn n các mâu thun trong truy xut, òi hi phi s dng
t phng pháp ng b hóa thích hp gii quyt.
Trong các h thng s dng nguyên lý u phi c quyn có th xy ra tình trng các tác v cn thi gian x
lý ngn phi ch tác v x lý vi thi gian rt dài hoàn tt! Nguyên lý u phi c quyn thng ch thích
p vi các h x lý theo lô.
i vi các h thng tng tác(time sharing), các h thi gian thc (real time),cn phi s dng nguyên lý u
phi không c quyn các tin trình quan trng có c hi hi áp kp thi. Tuy nhiên thc hin u phi
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 - 8 -
theo nguyên lý không c quyn òi hi nhng c ch phc tp trong vic phân nh u tiên, và phát sinh
thêm chi phí khi chuyn i CPU qua li gia các tin trình.
2.2.2. T chc u phi
2.2.2.1. Các danh sách s dng trong quá trình u phi.
u hành s dng hai loi danh sách thc hin u phi các tin trình là danh sách sn sàng (ready list)
và danh sách chi(waiting list).
Khi mt tin trình bt u i vào h thng, nó c chèn vào danh sách các tác v (job list). Danh sách này bao
m tt c các tin trình ca h thng. Nhng ch các tin trình ang thng trú trong b nh chính và trng
thái sn sàng tip nhn CPU hot ng mi c a vào danh sách sn sàng.
u phi s chn mt tin trình trong danh sách sn sàng và cp CPU cho tin trình ó. Tin trình c cp
CPU s thc hin x lý, và có th chuyn sang trng thái ch khi xy ra các s kin nhi mt thao tác
nhp/xut hoàn tt, yêu cu tài nguyên cha c tha mãn, c yêu cu tm dng Khi ó tin trình sc
chuyn sang mt danh sách chi.
u hành ch s dng mt danh sách sn sàng cho toàn h thng, nhng mi mt tài nguyên ( thit b ngoi
vi ) có mt danh sách chi riêng bao gm các tin trình ang chc cp phát tài nguyên ó.
Hình 2.9 Các danh sách u phi
Quá trình x lý ca mt tin trình tri qua nhng chu k chuyn i qua li gia danh sách sn sàng và danh
sách chi. S di ây mô t su phi các tin trình da trên các danh sách ca h thng.
Thot u tin trình mi c t trong danh sách các tin trình sn sàng (ready list), nó si trong danh sách
này cho n khi c chn cp phát CPU và bt u x lý. Sau ó có th xy ra mt trong các tình hung
sau :
Tin trình phát sinh mt yêu cu mt tài nguyên mà h thng cha tháp ng, khi ó tin trình sc
chuyn sang danh sách các tin trình ang ch tài nguyên tng ng.
Tin trình có th b bt buc tm dng x lý do mt ngt xy ra, khi ó tin trình c a tr li vào danh
sách sn sàng chc cp CPU cho lt tip theo.
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 - 9 -
Hình 2.10 chuyn i gia các danh sách u phi
Trong trng hp u tiên, tin trình cui cùng s chuyn t trng thái blocked sang trng thái ready và li
c a tr vào danh sách sn sàng. Tin trình lp li chu k này cho n khi hoàn tt tác v thì c h thng
y b khi mi danh sách u phi.
2.2.2.2. Các cp u phi
Thc ra công vic u phi c hu hành thc hin hai mc : u phi tác v (job scheduling) và
u phi tin trình ( process scheduling).
a) u phi tác v
Quyt nh la chn tác v nào c a vào h thng, và np nhng tin trình ca tác vó vào b nh chính
thc hin. Chc nng u phi tác v quyt nh mc a chng ca h thng ( s lng tin trình trong
nh chính). Khi h thng to lp mt tin trình, hay có mt tin trình kt thúc x lý thì chc nng u phi
tác v mi c kích hot. Vì mc a chng tng i n nh nên chc nng u phi tác v có tn sut
hot ng thp .
h thng hot ng tt, b u phi tác v cn bit tính cht ca tin trình là hng nhp xut (I/O
bounded) hay ng x lý ( CPU bounded). Mt tin trình c gi là hng nhp xut nu nó ch yu nó ch
dng CPU thc hin các thao tác nhp xut. Ngc li mt tin trình c gi là hng x lý u nó ch
u nó ch s dng CPU thc hin các thao tác tính toán. cân bng hot ng ca CPU và các thit b
ngoi vi, bu phi tác v nên la chn các tin trình np vào b nh sao cho h thng là s pha trn hp
lý gia các tin trình ng nhp xut và các tin trình ng x lý
b) u phi tin trình
Chn mt tin trình trng thái sn sàng ( ã c np vào b nh chính, và có tài nguyên hot ng ) và
p phát CPU cho tin trình ó thc hin. Bu phi tin trình có tn sut hot ng cao, sau mi ln xy ra
ngt ( do ng h báo gi, do các thit b ngoi vi ), thng là 1 ln trong khong 100ms. Do vy nâng cao
hiu sut ca h thng, cn phi tng tc x lý ca bu phi tin trình. Chc nng u phi tin trình là
t trong chc nng c bn, quan trng nht ca hu hành.
Trong nhiu hu hành, có th không có bu phi tác v hoc tách bit rt ít i vi bu phi tin
trình. Mt vài hu hành li a ra mt cp u phi trung gian kt hp c hai cp u phi tác v và
tin trình
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 - 10 -
Hình 2.11 Cp u phi trung gian
2.2.3. Các chin lc u phi
2.2.3.1. Chin lc FIFO
Nguyên tc : CPU c cp phát cho tin trình u tiên trong danh sách sn sàng có yêu cu, là tin trình
c a vào h thng sm nht. ây là thut toán u phi theo nguyên tc c quyn. Mt khi CPU c
p phát cho tin trình, CPU chc tin trình t nguyn gii phóng khi kt thúc x lý hay khi có mt yêu cu
nhp/xut.
Hình 2.12 u phi FIFO
Ví d :
Tin trình Thi m vào RL Thi gian x lý
P1 0 24
P2 1 3
P3 2 3
Th t cp phát CPU cho các tin trình là :
P1 P2 P3
0 ‘24 27 30
thi gian chi c x lý là 0 i vi P1, (24 -1) vi P2 và (24+3-2) vi P3. Thi gian ch trung bình là (
0+23+25)/3 = 16 milisecondes.
2.2.3.2. Chin lc phân phi xoay vòng (Round Robin)
Nguyên tc : Danh sách sn sàng c x lý nh mt danh sách vòng, bu phi ln lt cp phát cho
ng tin trình trong danh sách mt khong thi gian s dng CPU gi là quantum. ây là mt gii thut u
phi không c quyn : khi mt tin trình s dng CPU n ht thi gian quantum dành cho nó, hu hành
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 - 11 -
thu hi CPU và cp cho tin trình k tip trong danh sách. Nu tin trình b khóa hay kt thúc trc khi s dng
t thi gian quantum, hu hành cng lp tc cp phát CPU cho tin trình khác. Khi tin trình tiêu th ht
thi gian CPU dành cho nó mà cha hoàn tt, tin trình c a tr li vào cui danh sách sn sàng i
c cp CPU trong lt k tip.
Ví d :
Hình 2.13 u phi Round Robin
Tin trình Thi m vào RL Thi gian x lý
P1 0 24
P2 1 3
P3 2 3
u s dng quantum là 4 milisecondes, th t cp phát CPU s là :
P1 P2 P3 P1 P1 P1 P1 P1
0 ‘4 7 10 14 18 22 26 30
Thi gian chi trung bình s là (0+6+3+5)/3 = 4.66 milisecondes.
u có n tin trìh trong danh sách sn sàng và s dng quantum q, thì mi tin trình sc cp phát CPU 1/n
trong tng khong thi gian q. Mi tin trình s không phi i quá (n-1)qn v thi gian trc khi nhn c
CPU cho lt k tip.
2.2.3.3. u phi vi u tiên
Nguyên tc : Mi tin trình c gán cho mt u tiên tng ng, tin trình có u tiên cao nht s
c chn cp phát CPU u tiên. u tiên có thc nh ngha ni ti hay nh vào các yu t bên
ngoài. u tiên ni ti s dng các i lng có tho lng tính toán u tiên ca tin trình, ví d các
gii hn thi gian, nhu cu b nhu tiên cng có thc gán t bên ngoài da vào các tiêu chun do
u hành nh tm quan trng ca tin trình, loi ngi s dng s hu tin trình…
Gii thut u phi vi u tiên có th theo nguyên tc c quyn hay không c quyn. Khi mt tin trình
c a vào danh sách các tin trình sn sàng, u tiên ca nó c so sánh vi u tiên ca tin trình
hin hành ang x lý. Gii thut u phi vi u tiên và không c quyn s thu hi CPU t tin trình hin
hành cp phát cho tin trình mi nu u tiên ca tin trình này cao hn tin trình hin hành. Mt gii
thut c quyn s chn gin chèn tin trình mi vào danh sách sn sàng, và tin trình hin hành vn tip tc
lý ht thi gian dành cho nó.
Ví d : (u tiên 1 > u tiên 2> u tiên 3)
Tin trình
Thi m vào RL u tiên Thi gian x lý
P1 0 3 24
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 - 12 -
P2 1 1 3
P3 2 2 3
dng thut gii c quyn, th t cp phát CPU nh sau :
P1 P2 P3
0 ‘24 27 30
dng thut gii không c quyn, th t cp phát CPU nh sau :
P1 P2 P3 P1
0 ‘1 4 7 30
2.2.3.4. Chin lc công vic ngn nht (Shortest-job-first SJF)
Nguyên tc : ây là mt trng hp c bit ca gii thut u phi vi u tiên. Trong gii thut này,
u tiên pc gán cho mi tin trình là nghch o ca thi gian x lý t mà tin trình yêu cu : p = 1/t. Khi
CPU c t do, nó sc cp phát cho tin trình yêu cu ít thi gian nht kt thúc- tin trình ngn nht.
Gii thut này cng có thc quyn hay không c quyn. S chn la xy ra khi có mt tin trình mi c
a vào danh sách sn sàng trong khi mt tin trình khác ang x lý. Tin trình mi có th s hu mt yêu cu
thi gian s dng CPU cho ln tip theo (CPU-burst) ngn hn thi gian còn li mà tin trình hin hành cn x
lý. Gii thut SJF không c quyn s dng hot ng ca tin trình hin hành, trong khi gii thut c quyn
cho phép tin trình hin hành tip tc x lý.
Ví d :
Tin trình Thi m vào
RL
Thi gian x
lý
P1 0 6
P2 1 8
P3 2 4
P4 3 2
dng thut gii SJF c quyn, th t cp phát CPU nh sau:
P1 P4 P3 P2
0 6 8 12 20
dng thut gii SJF không c quyn, th t cp phát CPU nh sau:
P1 P4 P1 P3 P2
0 3 5 8 12 20
2.2.3.5. Chin lc u phi vi nhiu mc u tiên
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 - 13 -
Nguyên tc : Ý tng chính ca gii thut là phân lp các tin trình tùy theo u tiên ca chúng có
cách thc u phi thích hp cho tng nhóm. Danh sách sn sàng c phân tách thành các danh sách riêng
bit theo cp u tiên, mi danh sách bao gm các tin trình có cùng u tiên và c áp dng mt gii
thut u phi thích hp u phi. Ngoài ra, còn có mt gii thut u phi gia các nhóm, thng gii
thut này là gii thut không c quyn và s dng u tiên cnh.Mt tin trình thuc v danh sách cp
u tiên i s chc cp phát CPU khi các danh sách cp u tiên ln hn iã trng.
Hình 2.14u phi nhiu cp u tiên
Hình 2.15 u phi Multilevel Feedback
2.2.3.6. Chin lc u phi X s (Lottery)
Nguyên tc : Ý tng chính ca gii thut là phát hành mt s vé s và phân phi cho các tin trình trong h
thng. Khi n thi m ra quyt nh u phi, s tin hành chn 1 vé "trúng gii", tin trình nào s hu vé
này sc nhn CPU
Tho lun : Gii thut Lottery cung cp mt gii pháp n gin nhng bo m tính công bng cho thut
toán u phi vi chi phí thp cp nht u tiên cho các tin trình :
TÓM TT
Trong sut chu trình sng, tin trình chuyn i qua li gia các trng thái ready, running và blocked.
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 - 14 -
u phi ca hu hành chu trách nhim áp dng mt gai thut u phi thích hp chn tin trình
thích hp c s dng CPU, và b phân phi s chuyn giao CPU cho tin trình này.
Các gii thut u phi thông dng : FIFO, RoundRobin, u phi vi u tiên, SJF, Multilevel Feedback
Câu hi cng c bài hc
Các câu hi cn tr li c sau bài hc này :
1. Thông tin lu tr trong PCB và TCB ?
2. T chc u phi tin trình ?
3. Phân tích u, khuyt ca các chin lc u phi
Bài tp
Bài 1. Xét tp các tin trình sau (vi thi gian yêu cu CPU và u tiên kèm theo) :
Tin trình Thi m vào
RL
Thi gian CPU u tiên
P
1
0 10 3
P
2
1 1 1
P
3
2 2 3
P
4
3 1 4
P
5
4 5 2
Gi s các tin trình cùng c a vào h thng ti thi m 0
a)Cho bit kt quu phi hot ng ca các tin trình trên theo thut toán FIFO; SJF; u phi theo u
tiên c quyn (u tiên 1 > 2 > ); và RR (quantum=2).
b)Cho bit thi gian lu li trong h thng (turnaround time) ca tng tin trình trong tng thut toán u phi
câu a.
c)Cho bit thi gian ch trong h thng (waiting time) ca tng tin trình trong tng thut toán u phi câu
a.
d)Thut toán u phi nào trong các thut toán câu a cho thi gian ch trung bình là cc tiu ?
Bài 2. Gi s có các tin trình sau trong h thng :
Tin trình Thi m vào RL Thi gian CPU
P
1
0.0 8
P
2
0.4 4
P
3
1.0 1
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 - 15 -
dng nguyên tc u phi c quyn và các thông tin có c ti thi m ra quyt nh tr li các câu
i sau ây :
a)Cho bit thi gian lu li trung bình trong h thng (turnaround time) ca các tin trình trong thut toán u
phi FIFO.
b)Cho bit thi gian lu li trung bình trong h thng (turnaround time) ca các tin trình trong thut toán u
phi SJF.
c)Thut toán SJF dnh ci tin s thc hin ca h thng , nhng lu ý chúng ta phi chn u phi P
1
ti
thi m 0 vì không bit rng s có hai tin trình ngn hn vào h thng sau ó . Th tính thi gian lu li
trung bình trong thng nu CPU nhàn ri trong 1 n v thi gian u tiên và sau ó s dng SJF u
phi. Lu ý P
1
và P
2
s phi ch trong sut thi gian nhàn ri này, do vy thi gian ch ca chúng tng lên.
Thut toán u phi này c bit n nhu phi da trên thông tin v tng lai.
LIÊN LC GIA CÁC TIN TRÌNH & VN NG B
HOÁ
Các tin trình trên nguyên tc là hoàn toàn c lp, nhng thc t có th nh th không ? Trong bài này chúng ta s tìm
hiu lý do các tin trình có nhu cu liên lc, các c ch h tr vic liên lc này cng nh nhng vn t ra khi các tin
trình trao i thông tin vi nhau.
2.3 Liên lc gia các tin trình
2.3.1. Nhu cu liên lc gia các tin trình
Trong môi trng a chng, mt tin trình không n c trong h thng , mà có thnh hng n các tin
trình khác , hoc b các tin trình khác tác ng. Nói cách khác, các tin trình là nhng thc thc lp , nhng
chúng vn có nhu cu liên lc vi nhau :
Chia s thông tin: nhiu tin trình có th cùng quan tâm n nhng d liu nào ó, do vy hu hành cn
cung cp mt môi trng cho phép s truy cp ng thi n các d liu chung.
p tác hoàn thành tác v: ôi khi t c mt s x lý nhanh chóng, ngi ta phân chia mt tác v
thành các công vic nh có th tin hành song song. Thng thì các công vic nh này cn hp tác vi nhau
cùng hoàn thành tác v ban u, ví d d liu kt xut ca tin trình này li là d liu nhp cho tin trình khác
…Trong các trng hp ó, hu hành cn cung cp c ch các tin trình có th trao i thông tin vi
nhau.
2.3.2. Các vn ny sinh trong vic liên lc gia các tin trình
Do mi tin trình s hu mt không gian a ch riêng bit, nên các tin trình không th liên lc trc tip d
dàng mà phi nh vào các c ch do hu hành cung cp. Khi cung cp c ch liên lc cho các tin trình, h
u hành thng phi tìm gii pháp cho các vn chính yu sau :
Liên kt tng minh hay tim n (explicit naming/implicit naming) : tin trình có cn phi bit tin trình nào
ang trao i hay chia s thông tin vi nó ? Mi liên kt c gi là tng minh khi c thit lp rõ ràng , trc
tip gia các tin trình, và là tim n khi các tin trình liên lc vi nhau thông qua mt qui c ngm nào ó.
Liên lc theo chng b hay không ng b (blocking / non-blocking): khi mt tin trình trao i thông
tin vi mt tin trình khác, các tin trình có cn phi i cho thao tác liên lc hoàn tt ri mi tip tc các x lý
khác ? Các tin trình liên lc theo c chng b s ch nhau hoàn tt vic liên lc, còn các tin trình liên lc
theo c ch nonblocking thì không.
Liên lc gia các tin trình trong h thng tp trung và h thng phân tán: c ch liên lc gia các tin trình
trong cùng mt máy tính có s khác bit vi vic liên lc gia các tin trình gia nhng máy tính khác nhau?
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 - 16 -
Hu ht các hu hành a ra nhiu c ch liên lc khác nhau, mi c ch có nhng c tính riêng, và
thích hp trong mt hoàn cnh chuyên bit.
2.4. Các c ch thông tin liên lc
2.4.1. Tín hiu (Signal)
Gii thiu: Tín hiu là mt c ch phn mm tng t nh các ngt cng tác ng n các tin trình. Mt
tín hiu c s dng thông báo cho tin trình v mt s kin nào ó xy ra. Có nhiu tín hiu c nh
ngha, mi mt tín hiu có mt ý ngha tng ng vi mt s kin c trng.
Ví d : Mt s tín hiu ca UNIX
Tín hiu Mô t
SIGINT
Ngi dùng nhn phím DEL ngt x lý tin trình
SIGQUIT
Yêu cu thoát x lý
SIGILL
Tin trình x lý mt ch th bt hp l
SIGKILL
Yêu cu kt thúc mt tin trình
SIGFPT
Li floating point xy ra ( chia cho 0)
SIGPIPE
Tin trình ghi d liu vào pipe mà không có reader
SIGSEGV
Tin trình truy xut n mt a ch bt hp l
SIGCLD
Tin trình con kt thúc
SIGUSR1
Tín hiu 1 do ngi dùng nh ngha
SIGUSR2
Tín hiu 2 do ngi dùng nh ngha
i tin trình s hu mt bng biu din các tín hiu khác nhau. Vi mi tín hiu s có tng ng mt trình x
lý tín hiu (signal handler) qui nh các x lý ca tin trình khi nhn c tín hiu tng ng.
Các tín hiu c gi i bi :
Phn cng (ví d li do các phép tính s hc)
t nhân hu hành gi n mt tin trình ( ví d lu ý tin trình khi có mt thit b nhp/xut t do).
t tin trình gi n mt tin trình khác ( ví d tin trình cha yêu cu mt tin trình con kt thúc)
Ngi dùng ( ví d nhn phím Ctl-C ngt x lý ca tin trình)
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 - 17 -
Khi mt tin trình nhn mt tín hiu, nó có th x s theo mt trong các cách sau :
qua tín hiu
lý tín hiu theo kiu mc nh
Tip nhn tín hiu và x lý theo cách c bit ca tin trình.
Hình 3.1 Liên lc bng tín hiu
2.4.2. Pipe
Gii thiu: Mt pipe là mt kênh liên lc trc tip gia hai tin trình : d liu xut ca tin trình này c
chuyn n làm d liu nhp cho tin trình kia di dng mt dòng các byte.
Khi mt pipe c thit lp gia hai tin trình, mt trong chúng s ghi d liu vào pipe và tin trình kia sc
liu t pipe. Th t d liu truyn qua pipe c bo toàn theo nguyên tc FIFO. Mt pipe có kích thc
gii hn (thng là 4096 ký t)
Hình 3.2 Liên lc qua pipe
t tin trình ch có th s dng mt pipe do nó to ra hay k tha t tin trình cha. Hu hành cung cp các
i gi h thng read/write cho các tin trình thc hin thao tác c/ghi d liu trong pipe. Hu hành cng
chu trách nhim ng b hóa vic truy xut pipe trong các tình hung:
Tin trình c pipe s b khóa nu pipe trng, nó s phi i n khi pipe có d liu truy xut.
Tin trình ghi pipe s b khóa nu pipe y, nó s phi i n khi pipe có ch trng cha d liu.
2.4.3. Vùng nh chia s
Gii thiu: Cách tip cn ca c ch này là cho nhiu tin trình cùng truy xut n mt vùng nh chung gi
là vùng nh chia s (shared memory).Không có bt k hành vi truyn d liu nào cn phi thc hin ây, d
liu chn gin c t vào mt vùng nh mà nhiu tin trình có th cùng truy cp c.
i phng thc này, các tin trình chia s mt vùng nh vt lý thông qua trung gian không gian a ch ca
chúng. Mt vùng nh chia s tn ti c lp vi các tin trình, và khi mt tin trình mun truy xut n vùng
nh này, tin trình phi kt gn vùng nh chung ó vào không gian a ch riêng ca tng tin trình, và thao tác
trên ó nh mt vùng nh riêng ca mình.
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 - 18 -
Hình 3.3 Liên lc qua vùng nh chia s
2.4.4. Trao i thông p (Message)
Gii thiu: Hu hành còn cung cp mt c ch liên lc gia các tin trình không thông qua vic chia s
t tài nguyên chung , mà thông qua vic gi thông p. h tr c ch liên lc bng thông p, hu
hành cung cp các hàm IPC chun (Interprocess communication), c bn là hai hàm:
Send(message) : gi mt thông p
Receive(message) : nhn mt thông p
u hai tin trình P và Q mun liên lc vi nhau, cn phi thit lp mt mi liên kt gia hai tin trình, sau ó
P, Q s dng các hàm IPC thích hp trao i thông p, cui cùng khi s liên lc chm dt mi liên kt
gia hai tin trình s b hy. Có nhiu cách thc thc hin s liên kt gia hai tin trình và cài t các theo
tác send /receive tng ng : liên lc trc tip hay gián tip, liên lc ng b hoc không ng b , kích thc
thông p là cnh hay không … Nu các tin trình liên lc theo kiu liên kt tng minh, các hàm Send và
Receive sc cài t vi tham s :
Send(destination, message) : gi mt thông p n destination
Receive(source,message) : nhn mt thông p t source
2.4.5. Sockets
Gii thiu: Mt socket là mt thit b truyn thông hai chiu tng t nh tp tin, chúng ta có thc hay
ghi lên nó, tuy nhiên mi socket là mt thành phn trong mt mi ni nào ó gia các máy trên mng máy tính
và các thao tác c/ghi chính là s trao i d liu gia các ng dng trên nhiu máy khác nhau.
dng socket có th mô phng hai phng thc liên lc trong thc t : liên lc th tín (socket óng vai trò
u cc) và liên lc n thoi (socket óng vai trò tng ài) .
Các thuc tính ca socket:
Domaine: nh ngha dng thc a ch và các nghi thc s dng. Có nhiu domaines, ví d UNIX,
INTERNET, XEROX_NS,
Type: nh ngha các c m liên lc:
a) S tin cy
b) S bo toàn th t d liu
c) Lp li d liu
d) Ch ni kt
e) Bo toàn gii hn thông p
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 - 19 -
f) Kh nng gi thông p khn
thc hin liên lc bng socket, cn tin hành các thao tác ::
o lp hay m mt socket
n kt mt socket vi mt a ch
Liên lc : có hai kiu liên lc tùy thuc vào ch ni kt:
a) Liên lc trong ch không liên kt
: liên lc theo hình thc hp th:
hai tin trình liên lc vi nhau không kt ni trc tip
i thông p phi kèm theo a ch ngi nhn.
Hình thc liên lc này có c m c :
ngi gi không chc chn thông p ca hc c gi n ngi nhn,
t thông p có thc gi nhiu ln,
hai thông p gi theo mt th t nào ó có thn tay ngi nhn theo mt th t khác.
t tin trình sau khi ã m mt socket có th s dng nó liên lc vi nhiu tin trình khác nhau nh
hai primitive send và receive.
b) Liên lc trong ch ni kt
:
Mt liên kt c thành lp gia hai tin trình. Trc khi mi liên kt này c thit lp, mt trong hai tin
trình phi i có mt tin trình khác yêu cu kt ni.Có th s dng socket liên lc theo mô hình client-
serveur. Trong mô hình này, server s dng li gi h thng listen và accept ni kt vi client, sau ó , client
và server có th trao i thông tin bng cách s dng các primitive send và receive.
y mt socket
Ví d :
Trong nghi thc truyn thông TCP, mi mi ni gia hai máy tính c xác nh bi mt port, khái
nim port ây không phi là mt cng giao tip trên thit b vt lý mà ch là mt khái nim logic trong
cách nhìn ca ngi lp trình, mi port c tng ng vi mt s nguyên dng.
Hình 3.4 Các socket và port trong mi ni TCP.
Hình 3.4 minh ha mt cách giao tip gia hai máy tính trong nghi thc truyn thông TCP. Máy A to ra mt
socket và kt buc (bind) socket ny vi mt port X (tc là mt s nguyên dng có ý ngha cc b trong máy
A), trong khi ó máy B to mt socket khác và móc vào (connect) port X trong máy A.
2.5. Nhu cu ng b hóa (synchronisation)
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 - 20 -
Trong mt h thng cho phép các tin trình liên lc vi nhau, bao gi hu hành cng cn cung cp kèm
theo nhng c chng b hóa bo m hot ng ca các tin trình ng hành không tác ng sai lch n
nhau vì các lý do sau ây:
2.5.1. Yêu cu c quyn truy xut (Mutual exclusion)
Các tài nguyên trong h thng c phân thành hai loi: tài nguyên có th chia s cho phép nhiu tin
trình ng thi truy xut, và tài nguyên không th chia s ch chp nhn mt ( hay mt s lng hn ch
) tin trình s dng ti mt thi m. Tính không th chia s ca tài nguyên thng có ngun gc t
t trong hai nguyên nhân sau ây:
c tính cu to phn cng ca tài nguyên không cho phép chia s.
u nhiu tin trình s dng tài nguyên ng thi, có nguy c xy ra các kt qu không
oán c do hot ng ca các tin trình trên tài nguyên nh hng ln nhau.
gii quyt vn , cn bo m tin trình c quyn truy xut tài nguyên, ngha là h thng phi
kim soát sao cho ti mt thi m, ch có mt tin trình c quyn truy xut mt tài nguyên không
th chia s.
2.5.2. Yêu cu phi hp (Synchronization)
Nhìn chung, mi tng quan v tc thc hin ca hai tin trình trong h thng là không th bit
trc, vì u này ph thuc vào nhiu yu tng nh tn sut xy ra các ngt ca tng tin trình, thi
gian tin trình c cp phát b x lý… Có th nói rng các tin trình hot ng không ng b vi
nhau. Nh ng có nhng tình hung các tin trình cn hp tác trong vic hoàn thành tác v, khi ó cn
phi ng b hóa hot ng ca các tin trình , ví d mt tin trình ch có th x lý nu mt tin trình
khác ã kt thúc mt công vic nào ó …
2.5.3. Bài toán ng b hoá
2.5.3.1. Vn tranh t u khin (race condition)
Gi s có hai tin trình P
1
và P
2
thc hin công vic ca các k toán, và cùng chia s mt vùng nh
chung lu tr bin taikhoan phn ánh thông tin v tài khon. Mi tin trình mun rút mt khon tin
tienrut t tài khon:
if (taikhoan - tienrut >=0)
taikhoan = taikhoan - tienrut;
else
error(« khong the rut tien ! »);
Gi s trong tài khon hin còn 800, P
1
mun rút 500 và P
2
mun rút 400. Nu xy ra tình hung nh
sau :
Sau khi ã kim tra u kin (taikhoan - tienrut >=0) và nhn kt qu là
300, P
1
ht thi gian x lý mà h thng cho phép, hu hành cp phát CPU cho P
2
.
P
2
kim tra cùng u kin trên, nhn c kt qu là 400 (do P
1
vn cha rút tin) và
rút 400. Giá tr ca taikhoanc cp nht li là 400.
Khi P
1
c tái kích hot và tip tc x lý, nó s không kim tra li u kin
(taikhoan - tienrut >=0)-vì ã kim tra trong lt x lý trc- mà thc hin
rút tin. Giá tr ca taikhoan s li c cp nht thành -100. Tình hung li xy ra !
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 - 21 -
Các tình hung tng t nh th - có th xy ra khi có nhiu hn hai tin trình c và ghi d liu trên
cùng mt vùng nh chung, và kt qu ph thuc vào su phi tin trình ca h thng- c gi là
các tình hung tranh t u khin (race condition) .
2.5.3.2. Min gng (critical section)
ngn chn các tình hung li có th ny sinh khi các tin trình truy xut ng thi mt tài nguyên
không th chia s, cn phi áp t mt s truy xut c quyn trên tài nguyên ó : khi mt tin trình
ang s dng tài nguyên, thì nhng tin trình khác không c truy xut n tài nguyên.
n chng trình trong ó có kh nng xy ra các mâu thun truy xut trên tài nguyên chung c gi
là min gng (critical section). Trong ví d trên, n mã :
if (taikhoan - tienrut >=0)
taikhoan = taikhoan - tienrut;
a mi tin trình to thành mt min gng.
Có th gii quyt vn mâu thun truy xut nu có th bo m ti mt thi m ch có duy nht mt
tin trình c x lý lnh trong min gng.
t phng pháp gii quyt tt bài toán min gng cn thõa mãn 4 u kin sau :
Không có hai tin trình cùng trong min gng cùng lúc.
Không có gi thit nào t ra cho s liên h v tc ca các tin trình, cng nh v s
ng b x lý trong h thng.
t tin trình tm dng bên ngoài min gng không c ngn cn các tin trình khác
vào min gng.
Không có tin trình nào phi ch vô hn c vào min gng.
Tóm tt
t s tin trình trong h thng có nhu cu trao i thông tin phi hp hot ng, do mi tin trình
có mt không gian a chc lp nên viêc liên lc ch có th thc hin thông qua các c ch do hu
hành cung cp.
t s c ch trao i thông tin gia các tin trình :
Tín hiu : thông báo s xy ra ca mt s kin
Pipe : truyn d liu không cu trúc
Vùng nh chia s : cho phép nhiu tin trình truy cp n cùng mt vùng nh
Trao i thông p : truyn d liu có cu trúc, có th vn dng trong các
phân tán
Socket : chun hoán vic liên lc gia các h thng khác bit
Khi các tin trình trao i thông tin, chia s tài nguyên chung, cn phi ng b hoá hot ng ca
chúng ch yu do yêu cu c quyn truy xut hoc phi hp hot ng.
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 - 22 -
Min gng là n lnh trong chng trình có kh nng phát sinh mâu thun truy xut. không xy ra mâu
thun truy xut, cn m bo ti mt thi m ch có mt tin trình c vào min gng.
ng c bài hc
Các câu hi cn tr li c sau bài hc này :
1. Các c ch trao i thông tin : tình hung s dng, u, khuyt ?
2. Các yêu cu ng b hoá ?
Bài tp
Phân tích các bài toán sau ây và xác nh nhng yêu cu ng b hoá, min gng :
Bài 1.Bài toán To phân t H
2
O
ng b hot ng ca mt phòng thí nghim s dng nhiu tin trình ng hành sau to các phân t H
2
O:
MakeH() // Mi tin trình MakeH to 1 nguyên t H
{
Make-Hydro();
}
MakeO() // Mi tin trình MakeO to 1 nguyên t O
{
Make-Oxy();
}
MakeWater() /* Tin trình MakeWater hot ng ng hành
vi các tin trình MakeH, MakeO, ch có 2 H và 1 O to H
2
O */
{
while (T)
Make-Water(); //To 1 phân t H
2
O
}
Bài 2.Bài toán Cây cu c
tránh sp , ngi ta ch có cho phép ti a 3 xe lu thông ng thi qua mt cây cu rt c. Hãy
xây dng th tc ArriveBridge(int direction) và ExitBridge() kim soát giao thông trên cu sao cho :
i mi thi m, ch cho phép ti a 3 xe lu thông trên cu.
i mi thi m, ch cho phép ti a 3 xe luthông cùng hng
trên cu.
i chic xe khi n u cu s gi ArriveBridge(direction) kim tra u kin lên cu, và khi ã
qua cu c s gi ExitBridge() báo hiu kt thúc.
Gi s hot ng ca mi chic xe c mô t bng mt tin trình Car() sau ây:
Car(int direction) /* direction xác nh hng di chuyn ca mi chic xe.*/
{
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 - 23 -
RuntoBridge(); // i v phía cu
ArriveBridge(direction);
PassBridge(); // Qua cu
Exit Bridge();
RunfromBridge(); // ã qua cu
}
Bài 3. Bài toán Qua sông
vt qua sông, các nhân viên Microsof và các Linux hacker cùng s dng mt bn sông và phi chia
mt s thuyn c bit. Mi chic thuyn này ch cho phép ch 1 ln 4 ngi, và phi có 4 ngi
i khi hành c. bo m an toàn cho c 2 phía, cn tuân th các lut sau :
a. Không chp nhn 3 nhân viên Microsoft và 1 Linux hacker trên cùng mt chic
thuyn.
b. Ngc li, không chp nhn 3 Linux hacker và 1 nhân viên Microsoft trên cùng mt
chic thuyn.
c. Tt c các trng hp kt hp khác u hp pháp.
d. Thuyn ch khihành khi ã có 4 hành khách.
n xây dng 2 th tc HackerArrives() và EmployeeArrives()c gi tng ng bi 1 hacker hoc
1 nhân viên khi hn b sông kim tra u kin có cho phép h xung thuyn không ? Các th tc
này s sp xp nhng ngi thích hp có th lên thuyn. Nhng ngi ã c lên thuyn khi thuyn
cha y s phi chn khi ngi th 4 xung thuyn mi có th khi hành qua sông. (Không quan
tâm n s lng thuyn hay vic thuyn qua sông ri tr li…Xem nh luôn có thuyn sp xp theo
các yêu cu hp l)
Gi s hot ng ca mi hacker c mô t bng mt tin trình Hacker() sau ây:
Hacker()
{
RuntoRiver(); // i n b sông
HackerArrives (); // Kim tra u kin xung thuyn
CrossRiver(); // Khi hành qua sông
}
và hot ng ca mi nhân viên c mô t bng mt tin trình Employee() sau ây:
Employee()
{
RuntoRiver(); // i n b sông
EmployeeArrives (); // Kim tra u kin xung thuyn
CrossRiver(); // Khi hành qua sông
}
Bài 4. Bài toán u phi hành khách xe bus
Hãy tng tng bn chu trách nhim kim soát hành khách lên xe bus ti mt trm dng.
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 - 24 -
i xe bus có ch cho 10 hành khách. Trong ó 4 ch ch dành cho khách ngi xe ln, 6 ch còn li
ch dành cho khách bình thng.
Công vic ca bn là cho khách lên xe theo úng qui nh ch, khi xe y khách s khi hành. Có th có
nhiu xe và nhiu hành khách vào bn cùng lúc, nguyên tc u phi s xp khách vào y mt xe, cho
xe này khi hành ri mi u phi cho xe khác.
Gi s hot ng u phi khách ca bn cho 1 chic xe bus c mô t qua tin trình
GetPassengers(); hot ng ca mi hành khách tùy loi c mô t ln lt bng tin trình
WheelPassenger() và NonWheelPassenger() sau ây , hãy sa cha các n code, s dng c ch
semaphore thc hin các nguyên tc ng b hoá cn thit.
GetPassenger()
{
ArriveTerminal(); // tip nhn mt xe vào bn
OpenDoor(); // m ca xe, th tc này xem nhã có
for (int i=0; i<4; i++) // tip nhn các hành khách ngi xe ln
{
ArrangeSeat(); // a 1 khách vào ch
}
for (int i=0; i<6; i++) // tip nhn các hành khách bình thng
{
ArrangeSeat(); // a 1 khách vào ch
}
CloseDoor(); // óng ca xe, th tc này xem nhã có
DepartTerminal(); // cho mt xe ri bn
}
WheelPassenger()
{
ArriveTerminal(); // n bn
GetOnBus(); // lên xe
}
NonWheelPassenger()
{
ArriveTerminal(); // n bn
GetOnBus(); // lên xe
}
Bài 5. Bài toán sn xut thit b xe hi
Hãng Pontiac có 2 b phn hot ng song song :
- B phn sn xut 1 khung xe :
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 - 25 -
MakeChassis() { // to khung xe
Produce_chassis();
}
- B phn sn xut 1 bánh xe :
MakeTires() { // to bánh xe và gn vào khung xe
Produce_tire();
Put_tire_to_Chassis();
}
Hãy ng b hot ng trong vic sn xut xe hi theo nguyên tc sau :
o n xut mt khung xe,
o n có 4 bánh xe cho 1 khung xe c sn xut ra, sau ó mi tip tc sn xut khung xe khác…
CÁC GII PHÁP NG B HOÁ (Bài tp ln)