You are on page 1of 16

i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.

QU TRNH
I Mc ch
Sau khi hc xong chng ny, ngi hc nm c nhng kin thc sau: Hiu cc khi nim v qu trnh Hiu cch lp thi biu qu trnh Bit cc thao tc trn qu trnh Hiu cch giao tip lin qu trnh

II Gii thiu
Nhng h thng my tnh ban u cho php ch mt chng trnh c thc thi ti mt thi im. Chng trnh ny c ton quyn iu khin h thng v c truy xut ti tt c ti nguyn ca h thng. Nhng h thng my tnh hin nay cho php nhiu chng trnh c np vo b nh v c thc thi ng hnh. S pht trin ny yu cu s iu khin mnh m hn v phn chia nhiu hn gia cc qu trnh. Yu cu ny dn n khi nim qu trnh, mt chng trnh ang thc thi. Qu trnh l mt n v cng vic trong mt h iu hnh chia thi hin i. Mt h iu hnh phc tp hn c mong i nhiu hn trong vic thc hin cc hnh vi ca ngi dng. Mc d quan tm ch yu ca h iu hnh l thc thi chng trnh ngi dng, nhng n cng quan tm n cc tc v khc nhau bn ngoi nhn. Do , mt h thng cha tp hp cc qu trnh: qu trnh h iu hnh thc thi m h thng, qu trnh ngi dng thc thi m ngi dng. Tt c qu trnh ny c tim nng thc thi ng hnh, vi mt CPU (hay nhiu CPU) c a hp gia chng. Bng cch chuyn i CPU gia cc qu trnh, h iu hnh c th lm cho my tnh hot ng vi nng sut cao hn.

III Khi nim qu trnh


Mt vn cn tho lun l ci g c gi trong tt c hot ng ca CPU? Mt h thng b thc thi cng vic, tri li mt h thng chia thi thc thi chng trnh ngi dng hay tc v. Thm ch trn h thng n ngi dng nh Microsoft Windows v Macintosh OS, mt ngi dng c th chy nhiu chng trnh ti mt thi im: b x l vn bn, trnh duyt web, e-mail. Thm ch nu ngi dng c th thc thi ch mt qu trnh ti mt thi im, th mt h iu hnh cn h tr nhng hot ng c lp trnh bn trong, nh qun l b nh. Trong nhiu kha cnh, tt c hot ng l tng t v th chng ta gi tt c chng l qu trnh.

Bin son: Th.s Nguyn Ph Trng - 09/2005

Trang

37

i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

III.1 Qu trnh
Tht vy, mt qu trnh l mt chng trnh ang thc thi. Mt qu trnh khng ch l m chng trnh, n cn bao gm hot ng hin hnh nh c hin din bi gi tr ca b m chng trnh v ni dung cc thanh ghi ca b x l. Ngoi ra, mt qu trnh thng cha ngn xp qu trnh, cha d liu tm thi (nh cc tham s phng thc, cc a ch tr v, cc bin cc b) v phn d liu cha cc bin ton cc. Chng ta nhn mnh rng, mt chng trnh khng phi l mt qu trnh; mt chng trnh l mt thc th th ng, nh ni dung ca cc tp tin c lu trn a, tri li mt qu trnh l mt thc th ch ng, vi mt b m chng trnh xc nh ch th lnh tip theo s thc thi v tp hp ti nguyn c lin quan. Mc d hai qu trnh c th c lin kt vi cng chng trnh nhng chng c cha hai th t thc thi ring r. Th d, nhiu ngi dng c th ang chy cc bn sao ca chng trnh gi nhn th, hay cng ngi dng c th np ln nhiu bn sao ca mt chng trnh son tho vn bn. Mi bn sao ca chng l mt qu trnh ring v mc d cc phn vn bn l ging nhau, cc phn d liu khc nhau. Ngoi ra, mt qu trnh c th to ra nhiu qu trnh khi n thc thi.

III.2 Trng thi qu trnh


Khi mt qu trnh thc thi, n thay i trng thi. Trng thi ca qu trnh c nh ngha bi cc hot ng hin hnh ca qu trnh . Mi qu trnh c th mt trong nhng trng thi sau: Mi (new): qu trnh ang c to ra ang chy (running): cc ch th ang c thc thi Ch (waiting): qu trnh ang ch s kin xy ra (nh hon thnh vic nhp/xut hay nhn tn hiu) Sn sng (ready): qu trnh ang ch c gn ti mt b x l. Kt thc (terminated): qu trnh hon thnh vic thc thi Cc tn trng thi ny l bt k, v chng khc nhau cc h iu hnh khc nhau. Tuy nhin, cc trng thi m chng hin din c tm thy trn tt c h thng. Cc h iu hnh xc nh m t trng thi qu trnh. Ch mt qu trnh c th ang chy tc th trn bt k b x l no mc d nhiu qu trnh c th trng thi sn sng v ch.

Hnh 0-1-Lu trng thi qu trnh Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 38

i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

III.3 Khi iu khin qu trnh


Mi qu trnh c hin din trong h iu hnh bi mt khi iu khin qu trnh (Process Control Block-PCB) cng c gi khi iu khin tc v. Mt PCB c hin th trong hnh III-2. N cha nhiu phn thng tin c gn lin vi mt qu trnh xc nh, gm:

Hnh 0-2-Khi iu khin qu trnh

Trng thi qu trnh (process state): trng thi c th l mi, sn sng, ang chy, ch i, kt thc, B m chng trnh (program counter): b m hin th a ch ca ch th k tip c thc thi cho qu trnh ny. Cc thanh ghi (registers) CPU: cc thanh ghi khc nhau v s lng v loi, ph thuc vo kin trc my tnh. Chng gm cc b tng (accumulators), cc thanh ghi ch mc, cc con tr ngn xp, v cc thanh ghi a nng (generalpurpose registers), cng vi thng tin m iu kin (condition-code information). Cng vi b m chng trnh, thng tin trng thi ny phi c lu khi mt ngt xy ra, cho php qu trnh c tip tc mt cch ph hp sau (Hnh III.3). Thng tin lp thi biu CPU (CPU-scheduling information): thng tin gm u tin ca qu trnh, cc con tr ch ti cc hng i lp thi biu, v bt k tham s lp thi biu khc. Thng tin qun l b nh (Memory-management information): thng tin ny c th gm nhng thng tin nh gi tr ca cc thanh ghi nn v thanh ghi gii hn, cc bng trang hay cc bng phn on, ph thuc h thng b nh c dng bi h iu hnh. Thng tin tnh ton (accounting information): thng tin ny gm lng CPU v thi gian thc c dng, cng vic hay s qu trnh, Thng tin trng thi nhp/xut (I/O status information): thng tin ny gm danh sch ca thit b nhp/xut c cp pht qu trnh ny, mt danh sch cc tp tin ang m,..

PCB n gin phc v nh kho cha cho bt c thng tin khc nhau t qu trnh ny ti qu trnh khc.

Bin son: Th.s Nguyn Ph Trng - 09/2005

Trang

39

i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

Hnh 0-3-Lu hin th vic chuyn CPU t qu trnh ny ti qu trnh khc

III.4 Lung
M hnh qu trnh va c tho lun ng rng mt qu trnh l mt chng trnh thc hin mt lung n thc thi. Th d, nu mt qu trnh ang chy mt chng trnh x l vn bn, mt lung n ca ch th ang c thc thi. y l mt lung iu khin n cho php qu trnh thc thi ch mt tc v ti mt thi im. Th d, ngi dng khng th cng lc nhp cc k t v chy b kim tra chnh t trong cng mt qu trnh. Nhiu h iu hnh hin i m rng khi nim qu trnh cho php mt qu trnh c nhiu lung thc thi. Do , chng cho php thc hin nhiu hn mt tc v ti mt thi im.

IV Lp thi biu qu trnh


Mc tiu ca vic a chng l c vi qu trnh chy ti tt c thi im tn dng ti a vic s dng CPU. Mc tiu ca chia thi l chuyn CPU gia cc qu trnh thng xuyn ngi dng c th giao tip vi mi chng trnh trong khi ang chy. Mt h thng n x l ch c th chy mt qu trnh. Nu nhiu hn mt qu trnh tn ti, cc qu trnh cn li phi ch cho ti khi CPU rnh v c th lp thi biu li.

IV.1 Hng i lp thi biu


Khi cc qu trnh c a vo h thng, chng c t vo hng i cng vic. Hng i cha tt c qu trnh trong h thng. Cc qu trnh ang nm trong b nh chnh sn sng v ch thc thi c gi trn mt danh sch c gi l hng i sn sng. Hng i ny thng c lu nh mt danh sch lin kt. u ca hng i sn sng cha hai con tr: mt ch n PCB u tin v mt ch ti PCB cui cng trong danh sch. Chng ta b sung thm trong mi PCB mt trng con tr ch ti PCB k tip trong hng i sn sng. H iu hnh cng c cc hng i khc. Khi mt qu trnh c cp pht CPU, n thc thi mt khong thi gian v cui cng kt thc, c ngt, hay ch mt

Bin son: Th.s Nguyn Ph Trng - 09/2005

Trang

40

i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

s kin xc nh xy ra, chng hn nh hon thnh mt yu cu nhp/xut. Trong trng hp yu cu nhp/xut, mt yu cu c th l a bng t tn hin hay mt thit b c chia s nh a. V h thng c nhiu qu trnh, a c th bn vi yu cu nhp/xut ca cc qu trnh khc. Do , qu trnh phi ch a. Danh sch qu trnh ch mt thit b nhp/xut c th c gi l hng i thit b. Mi thit b c hng i ca chnh n nh hnh III.4. Mt biu din chung ca lp thi biu qu trnh l mt lu hng i, nh hnh III.5. Mi hnh ch nht hin din mt hng i. Hai loi hng i c hin din: hng i sn sng v tp cc hng i thit b, vng trn hin din ti nguyn phc v hng i, cc mi tn hin th dng cc qu trnh trong h thng. Mt qu trnh mi khi u c t vo hng i. N ch trong hng i sn sng cho ti khi n c chn thc thi. Mt khi qu trnh c gn ti CPU v ang thc thi, mt trong nhiu s kin c th xy ra: Qu trnh c th pht ra mt yu cu nhp/xut v sau c t vo trong hng i nhp/xut. Qu trnh c th to mt qu trnh con v ch cho qu trnh con kt thc Khi mt ngt xy ra, qu trnh c th b buc tr li CPU v c t tr li trong hng i sn sng. Trong hai trng hp u, cui cng qu trnh chuyn t trng thi ch ti trng thi sn sng v sau t tr li vo hng i sn sng. Mt qu trnh tip tc chu k ny cho ti khi n kt thc. Ti thi im kt thc n b xo t tt c hng i. Sau , PCB v ti nguyn ca n c thu hi.

Hnh 0-4-Hng i sn sng v cc hng i nhp/xut khc nhau

Bin son: Th.s Nguyn Ph Trng - 09/2005

Trang

41

i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

Hnh 0-5-Biu din lu hng i ca lp thi biu qu trnh

IV.2 B nh thi biu


Mt qu trnh di di gia hai hng i nh thi khc nhau sut thi gian sng ca n. H iu hnh phi chn, cho mc ch nh thi, cc qu trnh t cc hng i ny. Qu trnh chn la ny c thc hin bi b nh thi hp l. Trong h thng b, thng nhiu hn mt qu trnh c gi n hn l c th c thc thi tc th. Cc qu trnh ny c lu ti thit b lu tr (nh a), ni chng c gi cho vic thc thi sau . B nh thi di (long-term scheduler) hay b nh thi cng vic (job scheduler), chn cc qu trnh t vng m v np chng vo b nh thc thi. B nh thi ngn (short-term scheduler) hay b nh thi CPU chn mt qu trnh t cc qu trnh sn sng thc thi v cp pht CPU cho qu trnh . S khc bit ch yu gia hai b nh thi l tnh thng xuyn ca vic thc thi. B nh thi CPU phi chn mt qu trnh mi cho CPU thng xuyn. Mt qu trnh c th thc thi ch mt vi mili giy trc khi ch yu cu nhp/xut. B nh thi CPU thng thc thi t nht mt ln mi 100 mili giy. V thi gian ngn gia vic thc thi nn b nh thi phi nhanh. Nu n mt 10 mili giy quyt nh thc thi mt qu trnh 100 mili giy th 10/(100+10) = 9 phn trm ca CPU ang c dng (hay b lng ph) n gin cho nh thi cng vic. Ngc li, b nh thi cng vic thc thi t thng xuyn hn. C vi pht gia vic to cc qu trnh mi trong h thng. B nh thi cng vic iu khin mc a chng s qu trnh trong b nh. Nu mc a chng n nh th tc trung bnh ca vic to qu trnh phi bng tc khi hnh trung bnh ca qu trnh ri h thng. V khong thi gian di hn gia vic thc thi nn b nh thi cng vic c th cp nhiu thi gian hn chn mt qu trnh thc thi. B nh thi cng vic phi thc hin mt chn la cn thn. Thng thng, hu ht cc qu trnh c th c m t nh l qu trnh hng nhp/xut (I/Obound proces) hay qu trnh hng CPU (CPU-bound process). Mt qu trnh hng nhp/xut mt nhiu thi gian hn thc hin nhp/xut hn thi gian tnh ton. Ngc li, mt qu trnh hng CPU pht sinh cc yu cu nhp/xut khng thng xuyn, dng thi gian thc hin vic tnh ton hn mt qu trnh hng nhp/xut dng. B nh thi cng vic nn chn s kt hp hi ho gia qu trnh

Bin son: Th.s Nguyn Ph Trng - 09/2005

Trang

42

i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

hng nhp/xut v qu trnh hng CPU. Nu tt c qu trnh l hng nhp/xut th hng i sn sng s lun rng v b nh thi CPU s c t cng vic thc hin. Nu tt c qu trnh l hng CPU th hng i nhp/xut s lun rng, cc thit b s khng c s dng v h thng s mt cn bng. H thng vi nng lc tt nht s c s kt hp cc qu trnh hng CPU v hng nhp/xut. Trn mt vi h thng, b nh thi cng vic c th khng c hay rt t. Th d, cc h thng chia thi nh UNIX thng khng c b nh thi cng vic nhng n gin t mi qu trnh mi vo b nh cho b nh thi CPU. Kh nng n nh ca h thng ny ph thuc vo gii hn vt l (nh s lng thit b cui sn dng) hay tnh t nhin t chuyn i ca ngi dng. Nu nng lc thc hin gim ti mc khng th chp nhn c th mt s ngi dng s thot khi h thng. Mt s h thng nh h chia thi c th a vo mt cp nh thi b sung hay nh thi trung gian. B nh thi trung gian (medium-term process) ny (c hin th trong lu hnh III-6) xa cc qu trnh ra khi b nh (t s canh tranh CPU) v do gim mc a chng. Ti thi im sau , qu trnh c th c a tr li b nh v vic thc thi ca n c th c tip tc ni n b a ra. C ch ny c gi l hon v (swapping). Qu trnh c hon v ra v sau c hon v vo bi b nh thi trung gian. Hon v l cn thit ci tin s trn ln qu trnh (gia cc qu trnh hng nhp/xut v hng CPU), hay v mt thay i trong yu cu b nh vt qu kch thc b nh sn dng. Hon v s c tho lun trong chng sau.

Hnh 0-6-Lu b sung nh thi trung bnh ti hng i

IV.3 Chuyn ng cnh


Chuyn CPU ti mt qu trnh khc yu cu lu trng thi ca qu trnh c v np trng thi c lu cho qu trnh mi. Tc v ny c xem nh chuyn ng cnh (context switch). Ng cnh ca qu trnh c hin din trong PCB ca qu trnh; N cha gi tr cc thanh ghi, trng thi qu trnh (hnh III.1) v thng tin qun l b nh. Khi chuyn ng cnh ng cnh xy ra, nhn lu ng cnh ca qu trnh c trong PCB ca n v np ng cnh c lu ca qu trnh mi c nh thi chy. Thi gian chuyn ng cnh l chi ph thun v h thng khng thc hin cng vic c ch trong khi chuyn. Tc ca n khc t my ny ti my khc ph thuc vo tc b nh, s lng thanh ghi phi c chp v s tn ti ca cc ch th c bit (nh ch th np v lu tt c thanh ghi). in hnh dy tc t 1 ti 1000 mili giy. Nhng ln chuyn i ng cnh ph thuc nhiu vo h tr phn cng. Th d, vi b x l (nh Sun UltraSPARC) cung cp nhiu tp thanh ghi. Mt chuyn ng cnh n gin cha chuyn i con tr ti tp thanh ghi hin hnh. D nhin, nu qu trnh hot ng vt qu tp thanh ghi th h thng sp xp li d liu thanh ghi ti v t b nh. Cng v th m h iu hnh phc tp hn v nhiu cng vic c lm

Bin son: Th.s Nguyn Ph Trng - 09/2005

Trang

43

i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

hn trong khi chuyn ng cnh. K thut qun l b nh nng cao c th yu cu d liu b sung c chuyn vi mi ng cnh. Th d, khng gian a ch ca qu trnh hin hnh phi c lu khi khng gian ca tc v k tip c chun b dng. Khng gian a ch c lu nh th no v lng cng vic c yu cu lu n ph thuc vo phng php qun l b nh ca h iu hnh. Chuyn ng cnh c th dn n tht c chai nng lc thc hin v th cc lp trnh vin ang s dng cc cu trc mi trnh n bt c khi no c th.

V Thao tc trn qu trnh


Cc qu trnh trong h thng c th thc thi ng hnh v chng phi c to v xa t ng. Do , h iu hnh phi cung cp mt c ch (hay phng tin) cho vic to qu trnh v kt thc qu trnh.

V.1

To qu trnh

Qu trnh c th to nhiu qu trnh mi, bng mt li gi h thng createprocess, trong khi thc thi. Qu trnh to gi l qu trnh cha, ngc li cc qu trnh mi c gi l qu trnh con ca qu trnh . Mi qu trnh mi ny sau c th to cc qu trnh khc, hnh thnh mt cy qu trnh (hnh III-7).

Hnh 0-7-Cy qu trnh trn mt h thng UNIX in hnh

Thng thng, mt qu trnh s cn cc ti nguyn xc nh (nh thi gian CPU, b nh, tp tin, thit b nhp/xut ) hon thnh tc v ca n. Khi mt qu trnh to mt qu trnh con, qu trnh con c th nhn ti nguyn ca n trc tip t h iu hnh hay n c th b rng buc ti mt tp con cc ti nguyn ca qu trnh cha. Qu trnh cha c th phi phn chia cc ti nguyn gia cc qu trnh con hay c th chia s mt s ti nguyn (nh b nh v tp tin) gia nhiu qu trnh con. Gii hn mt qu trnh con ti mt tp con ti nguyn ca qu trnh cha ngn chn bt c qu trnh t np chng h thng bng cch to qu nhiu qu trnh con. Ngoi ra, khi mt qu trnh c to n ly ti nguyn vt l v lun l khc nhau, d liu khi to (hay nhp) c th c truyn t qu trnh cha ti qu trnh con. Th d, xt mt qu trnh vi ton b chc nng l hin th trng thi ca mt tp
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 44

i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

tin F1 trn mn hnh. Khi n c to, n s ly d liu vo t qu trnh cha, tn ca tp tin F1 v n s thc thi dng d liu ly thng tin mong mun. N c th cng ly tn ca thit b xut. Mt s h iu hnh chuyn ti nguyn ti qu trnh con. Trn h thng nh th, qu trnh mi c th ly hai tp tin ang m, F1 v thit b cui, v c th ch cn chuyn d liu gia hai tp tin. Khi mt qu trnh to mt qu trnh mi, hai kh nng c th tn ti trong thut ng ca vic thc thi: Qu trnh cha tip tc thc thi ng hnh vi qu trnh con ca n. Qu trnh cha ch cho ti khi mt vi hay tt c qu trnh con kt thc. Cng c hai kh nng trong thut ng khng gian a ch ca qu trnh mi: Qu trnh con l bn sao ca qu trnh cha. Qu trnh con c mt chng trnh c np vo n. hin th vic ci t khc nhau ny, chng ta xem xt h iu hnh UNIX. Trong UNIX, mi qu trnh c xc nh bi danh biu qu trnh (process identifier), l s nguyn duy nht. Mt qu trnh mi c to bi li gi h thng fork. Qu trnh mi cha bn sao ca khng gian a ch ca qu trnh gc. C ch ny cho php qu trnh cha giao tip d dng vi qu trnh con. C hai qu trnh (cha v con) tip tc thc thi ti ch th sau khi li gi h thng fork, vi mt s khc bit: m tr v cho li gi h thng fork l khng cho qu trnh mi (con), ngc li danh biu qu trnh (khc khng) ca qu trnh con c tr v ti qu trnh cha. in hnh li gi h thng execlp c dng sau li gi h thng fork bi mt trong hai qu trnh thay th khng gian b nh vi qu trnh mi. Li gi h thng execlp np tp tin nh phn vo trong b nh-xa hnh nh b nh ca chng trnh cha li gi h thng execlp - v bt u vic thc thi ca n. Trong cch thc ny, hai qu trnh c th giao tip v sau thc hin cch ring ca n. Sau , qu trnh cha c th to nhiu hn qu trnh con, hay nu n khng lm g trong thi gian qu trnh con chy th n s pht ra li gi h thng wait di chuyn n vo hng i sn sng cho ti khi qu trnh con kt thc. Chng trnh C (hnh III-8 di y) hin th li gi h thng UNIX c m t trc . Qu trnh cha to mt qu trnh con s dng li gi h thng fork. By gi chng ta c hai qu trnh khc nhau chy mt bn sao ca cng chng trnh. Gi tr pid cho qu trnh con l 0; cho qu trnh cha l mt s nguyn ln hn 0. Qu trnh con ph lp khng gian a ch ca n vi lnh ca UNIX l /bin/ls (c dng lit k th mc) dng li gi h thng execlp. Qu trnh cha ch cho qu trnh con hon thnh vi li gi h thng wait. Khi qu trnh con hon thnh, qu trnh cha bt u li t li gi h thng wait ni n hon thnh vic s dng li gi h thng exit. Ngc li, h iu hnh DEC VMS to mt qu trnh mi, np chng trnh xc nh trong qu trnh v bt u thc thi n. H iu hnh Microsoft Windows NT h tr c hai m hnh: khng gian a ch ca qu trnh cha c th c sao li hay qu trnh cha c th xc nh tn ca mt chng trnh cho h iu hnh np vo khng gian a ch ca qu trnh mi.

Bin son: Th.s Nguyn Ph Trng - 09/2005

Trang

45

i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

#include<stdio.h> main(int argc, char* argv[]) { int pid; /*fork another process*/ pid = fork(); if(pid<0){ /*error occurred */ fprintf(stderr, Fork Failed); exit(-1); } else if (pid==0){ /*child process*/ execlp(/bin/ls,ls,NULL); } else { /*parent process*/ /*parent will wait for the child to complete*/ wait(NULL); printf(Child Complete); exit(0); } }
Hnh 0-8-Chng trnh C to mt qu trnh ring r

V.2

Kt thc qu trnh

Mt qu trnh kt thc khi n hon thnh vic thc thi cu lnh cui cng v yu cu h iu hnh xa n bng cch s dng li gi h thng exit. Ti thi im , qu trnh c th tr v d liu (u ra) ti qu trnh cha (bng li gi h thng wait). Tt c ti nguyn ca qu trnh gm b nh vt l v lun l, cc tp tin ang m, vng m nhp/xut-c thu hi bi h iu hnh. Vic kt thc xy ra trong cc trng hp khc. Mt qu trnh c th gy kt thc mt qu trnh khc bng mt li gi h thng hp l (th d, abort). Thng ch c qu trnh cha b kt thc c th gi li gi h thng nh th. Ngc li, ngi dng c th ty git (kill) mi cng vic ca qu trnh cn li. Do , qu trnh cha cn bit cc nh danh ca cc qu trnh con. V th khi mt qu trnh to mt qu trnh mi, nh danh ca mi qu trnh mi c to c truyn ti cho qu trnh cha. Mt qu trnh cha c th kt thc vic thc thi ca mt trong nhng qu trnh con vi nhiu l do khc nhau: Qu trnh con s dng ti nguyn vt qu mc c cp. iu ny yu cu qu trnh cha c mt c ch xem xt trng thi ca cc qu trnh con. Cng vic c gn ti qu trnh con khng cn cn thit na. Qu trnh cha ang kt thc v h iu hnh khng cho php mt qu trnh con tip tc nu qu trnh cha kt thc. Trn nhng h thng nh th, nu mt qu trnh kt thc (bnh thng hoc khng bnh thng), th tt c qu trnh con cng phi kt thc. Trng hp ny c xem nh kt thc xp tng (cascading termination) thng c khi to bi h iu hnh. hin th vic thc thi v kt thc qu trnh, xem xt h iu hnh UNIX chng ta c th kt thc mt qu trnh dng li gi h thng exit; nu qu trnh cha c th ch cho n khi qu trnh con kt thc bng li gi h thng wait. Li gi h thng wait tr v nh danh ca qu trnh con b kt thc qu trnh cha c th xc
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 46

i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

nh nhng qu trnh con no c th kt thc. Tuy nhin, nu qu trnh cha kt thc th tt c qu trnh con ca n c gn nh qu trnh cha mi ca chng, qu trnh khi to (init process). Do , cc qu trnh con ch c mt qu trnh cha tp hp trng thi v thng k vic thc thi.

V.3

Hp tc qu trnh

Cc qu trnh ng hnh thc thi trong h iu hnh c th l nhng qu trnh c lp hay nhng qu trnh hp tc. Mt qu trnh l c lp (independent) nu n khng th nh hng hay b nh hng bi cc qu trnh khc thc thi trong h thng. R rng, bt k mt qu trnh khng chia s bt c d liu (tm thi hay c nh) vi qu trnh khc l c lp. Ngc li, mt qu trnh l hp tc (cooperating) nu n c th nh hng hay b nh hng bi cc qu trnh khc trong h thng. Hay ni cch khc, bt c qu trnh chia s d liu vi qu trnh khc l qu trnh hp tc. Chng ta c th cung cp mt mi trng cho php hp tc qu trnh vi nhiu l do: Chia s thng tin: v nhiu ngi dng c th quan tm cng phn thng tin (th d, tp tin chia s), chng phi cung cp mt mi trng cho php truy xut ng hnh ti nhng loi ti nguyn ny. Gia tng tc tnh ton: nu chng ta mun mt tc v chy nhanh hn, chng ta phi chia n thnh nhng tc v nh hn, mi tc v s thc thi song song vi cc tc v khc. Vic tng tc nh th c th t c ch nu my tnh c nhiu thnh phn a x l (nh cc CPU hay cc knh I/O). Tnh module ha: chng ta mun xy dng h thng trong mt kiu mu dng module, chia cc chc nng h thng thnh nhng qu trnh hay lung nh tho lun chng trc. Tnh tin dng: Thm ch mt ngi dng n c th c nhiu tc v thc hin ti cng thi im. Th d, mt ngi dng c th ang son tho, in, v bin dch cng mt lc. Thc thi ng hnh ca cc qu trnh hp tc yu cu cc c ch cho php cc qu trnh giao tip vi cc qu trnh khc v ng b ha cc hot ng ca chng. minh ha khi nim ca cc qu trnh cng tc, chng ta xem xt bi ton ngi sn xut-ngi tiu th, l m hnh chung cho cc qu trnh hp tc. Qu trnh ngi sn xut cung cp thng tin c tiu th bi qu trnh ngi tiu th. Th d, mt chng trnh in sn xut cc k t c tiu th bi trnh iu khin my in. Mt trnh bin dch c th sn xut m hp ng c tiu th bi trnh hp ng. Sau , trnh hp ng c sn xut module i tng, c tiu th bi b np. cho php ngi sn xut v ngi tiu th chy ng hnh, chng ta phi c sn mt vng m cha cc sn phm c th c in vo bi ngi sn xut v c ly i bi ngi tiu th. Ngi sn xut c th sn xut mt sn phm trong khi ngi tiu th ang tiu th mt sn phm khc. Ngi sn xut v ngi tiu th phi c ng b m ngi tiu th khng c gng tiu th mt sn phm m cha c sn xut. Trong trng hp ny, ngi tiu th phi ch cho ti khi cc sn phm mi c to ra. Bi ton ngi sn xut-ngi tiu th vi vng m khng b gii hn (unbounded-buffer) thit lp khng gii hn kch thc ca vng m. Ngi tiu th c th phi ch cc sn phm mi nhng ngi sn xut c th lun to ra sn phm mi. Vn ngi sn xut-ngi tiu th vi vng m c kch thc gii hn
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 47

i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

(bounded-buffer) m bo mt kch thc c nh cho vng m. Trong trng hp ny, ngi tiu th phi ch nu vng m rng, v ngi sn xut phi ch nu vng m y. Vng m c th c cung cp bi h iu hnh thng qua vic s dng phng tin giao tip lin qu trnh (interprocess-communication-IPC), hay c m ha c th bi ngi lp trnh ng dng vi vic s dng b nh c chia s. chng ta hin th mt gii php chia s b nh i vi vn vng m b gii hn (bounded-buffer). Qu trnh ngi sn xut v ngi tiu th chia s cc bin sau: #define BUFFER_SIZE 10 typedef struct{ } item; item buffer[BUFFER_SIZE]; int in = 0; int out = 0; Vng m c chia s c ci t nh mt mng vng vi hai con tr lun l: in v out. Bin in ch ti v tr trng k tip trong vng m; out ch ti v tr y u tin trong vng m. Vng m l rng khi in==out; vng m l y khi ((in + 1)%BUFFER_SIZE) ==out. M cho qu trnh ngi sn xut v ngi tiu th c trnh by di y. Qu trnh ngi sn xut c mt bin nextProduced trong sn phm mi c to ra v c lu tr: while (1) { /*produce an item in nextProduced*/ while (((in + 1)%BUFFER_SIZE) ==out) ; /*do nothing*/ buffer[in] = nextProduced; in = (in + 1) % BUFFER_SIZE; } Qu trnh ngi tiu th c bin cc b nextConsumed trong sn phm c tiu th v c lu tr: while (1){ while (in==out) ; //nothing nextConsumed = buffer[out]; out = (out + 1) % BUFFER_SIZE; /*consume the item in nextConsumed*/ } C ch ny cho php nhiu nht BUFFER_SIZE 1 trong vng m ti cng mt thi im.

VI Giao tip lin qu trnh


Trong phn trn chng ta hin th cch m cc qu trnh hp tc c th giao tip vi nhau trong mt mi trng chia s b nh. C ch yu cu cc qu trnh ny chia s nhm vng m chung v m cho vic ci t vng m c vit trc tip bi ngi lp trnh ng dng. Mt cch khc t c cng nh hng cho h iu hnh l cung cp phng tin cho cc qu trnh hp tc giao tip vi nhau bng mt phng tin giao tip lin qu trnh (IPC).

Bin son: Th.s Nguyn Ph Trng - 09/2005

Trang

48

i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

IPC cung cp mt c ch cho php mt qu trnh giao tip v ng b cc hot ng ca chng m khng chia s cng khng gian a ch. IPC c bit c ch trong mi trng phn tn ni cc qu trnh giao tip c th thng tr trn cc my tnh khc c ni kt qua mng. Th d chng trnh chat c dng trn World Wide Web. IPC c cung cp bi h thng truyn thng ip, v cc h thng truyn thng ip c th c nh ngha trong nhiu cch. Trong phn ny chng ta s xem xt nhng vn khc nhau khi thit k cc h thng truyn thng ip.

VI.1 H thng truyn thng ip


Chc nng ca h thng truyn thng ip l cho php cc qu trnh giao tip vi cc qu trnh khc m khng cn sp xp li d liu chia s. Chng ta xem truyn thng ip c dng nh mt phng php giao tip trong vi nhn. Trong c ch ny, cc dch v c cung cp nh cc qu trnh ngi dng thng thng. Ngha l, cc dch v hot ng bn ngoi nhn. Giao tip gia cc qu trnh ngi dng c thc hin thng qua truyn thng ip. Mt phng tin IPC cung cp t nht hai hot ng: send(message) v receive(message). Cc thng ip c gi bi mt qu trnh c th c kch thc c nh hoc bin i. Nu ch cc thng ip c kch thc c nh c gi, vic ci t cp h thng l n gin hn. Tuy nhin, hn ch ny lm cho tc v lp trnh s phc tp hn. Ngoi ra, cc thng ip c kch thc thay i yu cu vic ci t mc h thng phc tp hn nhng tc v lp trnh tr nn n gin hn. Nu qu trnh P v Q mun giao tip, chng phi gi cc thng ip ti v nhn thng ip t vi nhau; mt lin kt giao tip phi tn ti gia chng. Lin kt ny c th c ci t trong nhng cch khc nhau. y chng ta quan tm n ci t lun l hn l ci t vt l. C vi phng php ci t mt lin kt v cc hot ng send/receive: Giao tip trc tip hay gin tip Giao tip i xng hay bt i xng Gi bng bn sao hay tham chiu Thng ip c kch thc c nh hay thay i

VI.2 t tn
Cc qu trnh mun giao tip phi c cch tham chiu vi nhau. Chng c th dng giao tip trc tip hay gin tip.

VI.2.1 Giao tip trc tip


Vi giao tip trc tip, mi qu trnh mun giao tip phi t tn r rng ngi gi v ngi nhn ca giao tip. Trong c ch ny, cc hm c s send v receive c nh ngha nh sau: Send(P, message): gi mt thng ip ti qu trnh P Receive(Q, message): nhn mt thng ip t qu trnh Q Mt lin kt giao tip trong c ch ny c nhng thuc tnh sau: Mt lin kt c thit lp t ng gia mi cp qu trnh mun giao tip. Cc qu trnh cn bit nh danh ca nhau khi giao tip. Mt lin kt c ni kt vi chnh xc hai qu trnh Chnh xc mt lin kt tn ti gia mi cp qu trnh.
Trang 49

Bin son: Th.s Nguyn Ph Trng - 09/2005

i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

C ch ny hin th tnh i xng trong vic nh a ch: ngha l, c hai qu trnh gi v nhn phi bit tn nhau giao tip. Mt thay i trong c ch ny thc hin tnh bt i xng trong vic nh a ch. Ch ngi gi bit tn ca ngi nhn; ngi nhn khng yu cu tn ca ngi gi. Trong c ch ny cc hm c s c nh ngha nh sau: o Send(P, message): gi mt thng ip ti qu trnh P o Receive(id, message): nhn mt thng ip t bt k qu trnh no; id khc nhau c t tn ca qu trnh m giao tip xy ra. S bt li trong c hai c ch i xng v khng i xng l tnh iu chnh ca vic nh ngha qu trnh b gii hn. Thay i tn ca mt qu trnh c th cn xem xt tt c nh ngha qu trnh khc. Tt c tham chiu ti tn c phi c tm thy m chng c th c thay i thnh tn mi. Trng hp ny l khng mong mun t quan im bin dch ring.

VI.2.2 Giao tip gin tip


Vi giao tip gin tip, mt thng ip c gi ti v nhn t cc hp th (mailboxes), hay cng (ports). Mt hp th c th c hin th tru tng nh mt i tng trong cc thng ip c th c t bi cc qu trnh v sau cc thng ip ny c th c xa i. Mi hp th c mt nh danh duy nht. Trong c ch ny, mt qu trnh c th giao tip vi mt vi qu trnh khc bng mt s hp th khc nhau. Hai qu trnh c th giao tip ch nu chng chia s cng mt hp th. Hm c s send v receive c nh ngha nh sau: Send(A, message): gi mt thng ip ti hp th A. Receive(A, message): nhn mt thng ip t hp th A. Trong c ch ny, mt lin kt giao tip c cc thuc tnh sau: Mt lin kt c thit lp gia mt cp qu trnh ch nu c hai thnh vin ca cp c mt hp th c chia s. Mt lin kt c th c ni kt vi nhiu hn hai qu trnh. S cc lin kt khc nhau c th tn ti gia mi cp qu trnh giao tip vi mi lin kt tng ng vi mt hp th

Gi s cc qu trnh P1, P2 v P3 chia s mt hp th A. Qu trnh P1 gi mt thng ip ti A trong khi P2 v P3 thc thi vic nhn t A. Qu trnh no s nhn thng ip c gi bi P1? Cu tr li ph thuc c ch m chng ta chn: Cho php mt lin kt c ni kt vi nhiu nht hai qu trnh Cho php nhiu nht mt qu trnh ti mt thi im thc thi thao tc nhn. Cho php h thng chn bt k qu trnh no s nhn thng ip (ngha l, hoc P1 hoc P3 nhng khng phi c hai s nhn thng ip). H thng ny c th xc nh ngi nhn ti ngi gi.

Mt hp th c th c s hu bi mt qu trnh hay bi h iu hnh. Nu hp th c s hu bi mt qu trnh (ngha l, hp th l mt phn khng gian a ch ca qu trnh), sau chng ta phn bit gia ngi s hu (ngi ch nhn thng ip thng qua hp th ny) v ngi dng (ngi c th ch gi thng ip ti hp th).

Bin son: Th.s Nguyn Ph Trng - 09/2005

Trang

50

i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

V mi hp th c mt ngi s hu duy nht nn khng c s ln ln v ngi nhn thng ip c gi ti hp th ny. Khi mt qu trnh s hu mt hp th kt thc, hp th bin mt. Sau , bt k qu trnh no gi thng ip ti hp th ny c thng bo rng hp th khng cn tn ti na. Ngoi ra, mt hp th c s hu bi h iu hnh c lp v khng c gn ti bt k qu trnh xc nh no. Sau , h iu hnh phi cung cp mt c ch cho php mt qu trnh thc hin nh sau: To mt hp th mi Gi v nhn cc thng ip thng qua hp th Xa hp th

Mc nh, qu trnh to hp th mi l ngi s hu hp th . Ban u, ngi s hu ch l mt qu trnh c th nhn thng ip thng qua hp th. Tuy nhin, vic s hu v quyn nhn thng ip c th c chuyn ti cc qu trnh khc thng qua li gi h thng hp l. D nhin, s cung cp ny c th dn n nhiu ngi nhn cho mi hp th.

VI.2.3 ng b ha
Giao tip gia hai qu trnh xy ra bi li gi hm c s send v receive. C cc ty chn thit k khc nhau cho vic ci t mi hm c s. Truyn thng ip c th l nghn (block) hay khng nghn (nonblocking)-cng c xem nh ng b v bt ng b. Hm send nghn: qu trnh gi b nghn cho n khi thng ip c nhn bi qu trnh nhn hay bi hp th. Hm send khng nghn: qu trnh gi gi thng ip v thc hin tip hot ng Hm receive nghn: ngi nhn nghn cho n khi thng ip sn dng Hm receive khng nghn: ngi nhn nhn li mt thng ip hp l hay rng

S kt hp khc nhau gia send v receive l c th. Khi c hai send v receive l nghn chng ta c s thng nht gia ngi gi v ngi nhn.

VI.2.4 To vng m
D giao tip c th l trc tip hay gin tip, cc thng ip c chuyn i bi cc qu trnh giao tip thng tr trong mt hng t tm thi. V c bn, mt hng i nh th c th c ci t trong ba cch: Kh nng cha l 0 (zero capacity): hng i c chiu di ti a l 0; do lin kt khng th c bt k thng ip no ch trong n. Trong trng hp ny, ngi gi phi nghn cho ti khi ngi nhn nhn thng ip. Kh nng cha c gii hn (bounded capacity): hng i c chiu di gii hn n; do , nhiu nht n thng ip c th thng tr trong n. Nu hng i khng y khi mt thng ip mi c gi, sau n c t trong hng i (thng ip c chp hay mt con tr thng ip c gi) v ngi gi c th tip tc thc thi khng phi ch.
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 51

i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

Tuy nhin, lin kt c kh nng cha gii hn. Nu mt lin kt y, ngi gi phi nghn cho ti khi khng gian l sn dng trong hng i Kh nng cha khng gii hn (unbounded capacity): Hng i c kh nng c chiu di khng gii hn; do s lng thng ip bt k c th ch trong n. Ngi gi khng bao gi nghn.

Trng hp kh nng cha l 0 thng c xem nh h thng thng ip khng c vng m; hai trng hp cn li c xem nh vng m t ng.

VII Tm tt
Qu trnh l mt chng trnh ang thc thi. Khi mt qu trnh thc thi, n thay i trng thi. Trng thi ca mt qu trnh c nh ngha bi mt hot ng hin ti ca qu trnh . Mi qu trnh c th mt trong nhng trng thi sau: mi (new), sn sng (ready), ang chy (running), ch (waiting), hay kt thc (terminated). Mi qu trnh c biu din trong h iu hnh bi khi iu khin qu trnh ca chnh n (PCB). Mt qu trnh khi khng thc thi, c t vo hng i. Hai cp ch yu ca hng i trong h iu hnh l hng i yu cu nhp/xut v hng i sn sng. Hng i sn sng cha tt c qu trnh sn sng thc thi v ang ch CPU. Mi qu trnh c biu din bi mt PCB v cc PCB c th c lin kt vi nhau hnh thnh mt hng i sn sng. nh thi biu di (long-term scheduling) (hay nh thi biu cng vic) l chn cc qu trnh c php cnh tranh CPU. Thng thng, nh thi biu di b nh hng nng n bi vic xem xt cp pht ti nguyn, c bit qun l b nh. nh thi ngn (short-term scheduling) l s chn la mt qu trnh t cc hng i sn sng. Cc qu trnh trong h thng c th thc thi ng hnh. C nhiu l do cc thc thi ng hnh: chia s thng tin, tng tc tnh ton, hiu chnh v tin dng. Thc thi ng hnh yu cu c ch cho vic to v xa qu trnh. Qu trnh thc thi trong h iu hnh c th l cc qu trnh c lp hay cc qu trnh hp tc. Cc qu trnh hp tc phi c phng tin giao tip vi nhau. Ch yu, c hai c ch giao tip b sung cho nhau cng tn ti: chia s b nh v h thng truyn thng ip. Phng php chia s b nh yu cu cc qu trnh giao tip chia s mt s bin. Cc qu trnh c mong i trao i thng tin thng qua vic s dng cc bin dng chung ny. Trong h thng b nh c chia s, nhim v cho vic cung cp giao tip tch ri vi ngi lp trnh ng dng; ch h iu hnh cung cp h thng b nh c chia s. Phng php truyn thng ip cho php cc qu trnh trong i thng ip. Nhim v cung cp giao tip c th tch ri vi h iu hnh. Hai c ch ny khng loi tr h tng v c th c dng cng mt lc trong phm vi mt h iu hnh.

Bin son: Th.s Nguyn Ph Trng - 09/2005

Trang

52

You might also like