You are on page 1of 139

HC VIN CNG NGH BU CHNH VIN THNG ---------------------------T MINH PHNG

BI GING

H iu hnh

H ni 2009

LI NI U

H iu hnh l thnh phn quan trng trong h thng my tnh. Nm vng kin thc v h iu hnh l c s cho vic hiu bit su sc h thng my tnh ni chung. Chnh v vy, kin thc v h iu hnh l phn kin thc bt buc i vi chuyn gia v cng ngh thng tin v cc ngnh lin quan. Mn hc H iu hnh l mn hc c s trong chng trnh o to i hc, cao ng ngnh cng ngh thng tin. Kin thc lin quan ti h iu hnh c th c cung cp t ba kha cnh. Th nht, l k nng v vic ci t, s dng, khai thc, nh gi h iu hnh mt cch hiu qu. Cc kin thc ny rt cn thit cho ngi s dng cng nh nhng chuyn gia v vn hnh, phc v h tng tnh ton ni chung. Th hai, h iu hnh c xem xt t kha cnh thit k v xy dng. y l nhng kin thc cn thit cho chuyn gia v h thng hoc nhng ngi s tham gia thit k, xy dng h iu hnh. Th ba, l kin thc v cc khi nim v nguyn l chung v h iu hnh nh mt thnh phn quan trng ca h thng my tnh. y l nhng kin thc chung, cn thit cho cc i tng dng mt v hai trn, ng thi l kin thc c s cho nhng ngi c chuyn mn lin quan ti my tnh. Cn lu rng vic phn chia ny l tng i v cc khi kin thc c lin quan n nhau. Trong ti liu ny, h iu hnh c trnh by theo kha cnh th ba vi mc ch cung cp kin thc v cc khi nim v nguyn l hot ng ca h iu hnh, t y gip ngi c c hiu bit su hn v h thng my tnh. Nhng nguyn l v khi nim trnh by trong ti liu mang tnh tng qut cho h iu hnh ni chung, thay v da trn mt h iu hnh c th. Tuy nhin, gip ngi c c c lin kt gia l thuyt v thc t, mt s k thut trong h iu hnh c th s c trnh by nh nhng v d minh ha. Cc ni dung ca ti liu c trnh by thnh bn chng. Chng 1 bao gm nhng khi nim chung v h iu hnh, vai tr trong h thng my tnh, cc thnh phn chc nng v mt s kiu kin trc thng dng. Chng 1 cng tm tt qu trnh hnh thnh v pht trin h iu hnh, qua trnh by mt s khi nim v k thut quan trng trong h iu hnh hin ny. Kt thc chng l v d mt s h iu hnh tiu biu. Chng 2 trnh by v qun l tin trnh trong h iu hnh, tp trung vo qun l tin trnh trong h thng vi mt CPU v nhiu tin trnh. Nhng ni dung chnh ca chng bao gm: khi nim tin trnh, trng thi tin trnh, cc thao tc v thng tin qun l tin trnh, dng thc hin, vn iu tin trnh, ng b ha cc tin trnh ng thi. Chng 3 trnh by v qun l b nh. Ni dung chnh ca chng 3 bao gm: cc vn lin quan ti b nh v a ch, mt s k thut t chc chng trnh, k thut phn chng, phn trang, phn on b nh, khi nim v cch t chc qun l b nh o. Nhng khi nim l thuyt trnh by trong chng c minh ha qua hai v d: h tr qun l b nh trong vi x l Intel Pentium, v qun l b nh trong h iu hnh Windows XP.

T Minh Phng - HVCNBCVT

Chng 4 trnh by v h thng file vi nhng ni dung chnh sau: khi nim file v th mc, cc thao tc vi file v th mc, t chc bn trong ca file v th mc, vn cp pht v qun l khng gian lu tr ca file, cc vn v tin cy v an ton bo mt ca h thng file. Ti liu c bin son t kinh nghim ging dy hc phn H iu hnh ti Hc vin Cng ngh bu chnh vin thng, trn c s tip thu phn hi t sinh vin v ng nghip ca tc gi. Ti liu c th s dng lm ti liu hc tp cho sinh vin i hc, cao ng ngnh cng ngh thng tin v cc ngnh lin quan, ngoi ra c th s dng vi mc ch tham kho cho nhng ngi quan tm ti h iu hnh v h thng my tnh. Trong qu trnh bin son ti liu, mc d tc gi c nhiu c gng song khng th trnh khi nhng thiu st. Ngoi ra, h iu hnh l mt lnh vc c nhiu thay i ca khoa hc my tnh i hi ti liu v h iu hnh phi c cp nht thng xuyn. Tc gi rt mong mun nhn c kin phn hi, gp cho cc thiu st cng nh kin v vic cp nht, hon thin ni dung ca ti liu.

H ni 12/2009 TC GI

T Minh Phng - HVCNBCVT

MC LC

CHNG 1:

GII THIU CHUNG ................................................................................ 8

1.1. CC THNH PHN CA H THNG MY TNH................................................ 8 1.2. KHI NIM H IU HNH .................................................................................. 9 1.3. CC DNCH V DO H IU HNH CUNG CP ................................................. 11 1.4. GIAO DIN LP TRNH CA H IU HNH ................................................... 13 1.5. QU TRNH PHT TRIN H IU HNH ........................................................ 14 1.6. CU TRC H IU HNH ................................................................................. 17 1.6.2. Nhn ca h iu hnh ...................................................................................... 19 1.6.3. Mt s kiu cu trc h iu hnh ..................................................................... 20 1.7. MT S H IU HNH C TH ........................................................................ 24 CHNG 2: QUN L TIN TRNH .......................................................................... 27 2.1. CC KHI NIM LIN QUAN N TIN TRNH ............................................... 27 2.1.1. Tin trnh l g ................................................................................................... 27 2.1.2. Trng thi ca tin trnh..................................................................................... 28 2.1.3. Thng tin m t tin trnh .................................................................................. 29 2.1.4. Bng v danh sch tin trnh .............................................................................. 30 2.1.5. Cc thao tc vi tin trnh .................................................................................. 31 2.2. DNG ...................................................................................................................... 34 2.2.1. Dng thc hin l g .......................................................................................... 34 2.2.2. Ti nguyn ca tin trnh v dng ...................................................................... 35 2.2.3. u im ca m hnh a dng ........................................................................... 36 2.2.4. Dng mc ngi dng v dng mc nhn ......................................................... 37 2.3. IU TIN TRNH ........................................................................................... 39 2.3.1. Khi nim iu ............................................................................................. 39 2.3.2. Cc dng iu ............................................................................................... 40 2.3.3. Cc tiu ch iu ........................................................................................... 42 2.3.4. Cc thut ton iu ....................................................................................... 43 2.4. NG B HA TIN TRNH NG THI .......................................................... 47 2.4.1. Cc vn i vi tin trnh ng thi .............................................................. 48 2.4.2. Yu cu vi gii php cho on nguy him ........................................................ 50 2.4.3. Gii thut Peterson ............................................................................................ 50 2.4.4. Gii php phn cng.......................................................................................... 52 2.4.5. C hiu (semaphore) ......................................................................................... 54
T Minh Phng - HVCNBCVT 4

2.4.6. Mt s bi ton ng b .................................................................................... 56 2.4.7. Monitor ............................................................................................................. 58 2.4.8. B tc ................................................................................................................ 61 CHNG 3: QUN L B NH ................................................................................. 70 3.1. NA CH V CC VN LIN QUAN .............................................................. 70 3.1.1. Vn gn a ch ............................................................................................. 70 3.1.2. a ch l gic v a ch vt l ........................................................................... 71 3.2. MT S CCH T CHC CHNG TRNH ....................................................... 72 3.2.1. Ti trong qu trnh thc hin ............................................................................. 72 3.2.2. Lin kt ng v th vin dng chung ............................................................... 72 3.3. PHN CHNG B NH ..................................................................................... 74 3.3.1. Phn chng c nh ......................................................................................... 74 3.3.2. Phn chng ng ............................................................................................. 76 3.3.3. Phng php k cn .......................................................................................... 78 3.3.4. nh x a ch v chng truy cp b nh tri php............................................. 79 3.3.5. Trao i gia b nh v a (swapping) ............................................................. 80 3.4. PHN TRANG B NH ......................................................................................... 80 3.4.1. Khi nim phn trang b nh ............................................................................. 81 3.4.2. nh x a ch ................................................................................................... 82 3.4.3. T chc bng phn trang ................................................................................... 83 3.5. PHN ON B NH ........................................................................................... 85 3.5.1 Khi nim........................................................................................................... 85 3.5.2. nh x a ch v chng truy cp tri php ........................................................ 85 3.5.3. Kt hp phn on vi phn trang ..................................................................... 86 3.6. B NH O ............................................................................................................ 87 3.6.1. Khi nim b nh o ......................................................................................... 87 3.6.2. Np trang theo nhu cu ...................................................................................... 88 3.7. I TRANG ............................................................................................................ 90 3.7.1. Ti sao phi i trang ........................................................................................ 90 3.7.2. Cc chin lc i trang .................................................................................... 92 3.8. CP PHT KHUNG TRANG.................................................................................. 96 3.8.1. Gii hn s lng khung ................................................................................... 96 3.8.2. Phm vi cp pht khung..................................................................................... 97 3.9. TNH TRNG TR TR .......................................................................................... 98 3.10. QUN L B NH TRONG INTEL PENTIUM .................................................. 99 3.11. QUN L B NH TRONG WINDOWS XP .................................................... 102
T Minh Phng - HVCNBCVT 5

CHNG 4:

H THNG FILE ................................................................................... 103

4.1. KHI NIM FILE.................................................................................................. 103 4.1.1. File l g ? ....................................................................................................... 103 4.1.2. Thuc tnh ca file........................................................................................... 104 4.1.3. Cu trc file .................................................................................................... 106 4.2. CC PHNG PHP TRUY CP FILE .............................................................. 106 4.2.1. Truy cp tun t .............................................................................................. 107 4.2.2. Truy cp trc tip ............................................................................................ 107 4.2.3. Truy cp da trn ch s .................................................................................. 108 4.3. CC THAO TC VI FILE .................................................................................. 109 4.4. TH MC ............................................................................................................. 111 4.4.1. Khi nim th mc .......................................................................................... 111 4.4.2. Cc thao tc vi th mc ................................................................................. 112 4.4.3. Cu trc h thng th mc............................................................................... 112 4.4.4. Tn ng dn ................................................................................................ 117 4.5. CP PHT KHNG GIAN CHO FILE ................................................................. 117 4.5.1. Cp pht cc khi lin tip ............................................................................... 118 4.5.2. S dng danh sch kt ni ............................................................................... 119 4.5.3. S dng danh sch kt ni trn bng ch s ...................................................... 120 4.5.4. S dng khi ch s ......................................................................................... 121 4.6. QUN L KHNG GIAN TRN A .................................................................. 123 4.6.1. Kch thc khi............................................................................................... 123 4.6.2. Qun l cc khi trng .................................................................................... 124 4.7. T CHC BN TRONG CA TH MC ........................................................... 125 4.7.1. Danh sch........................................................................................................ 125 4.7.2. Cy nh phn ................................................................................................... 125 4.7.3. Bng bm ........................................................................................................ 126 4.7.4. T chc th mc ca DOS (FAT).................................................................... 126 4.7.5. Th mc ca Linux ......................................................................................... 127 4.8. TIN CY CA H THNG FILE .................................................................. 127 4.8.1. Pht hin v loi tr cc khi hng .................................................................. 127 4.8.2. Sao d phng .................................................................................................. 128 4.9. BO MT CHO H THNG FILE ....................................................................... 130 4.9.1. S dng mt khNu ............................................................................................ 131 4.9.2. Danh sch qun l truy cp .............................................................................. 131 4.10. H THNG FILE FAT ........................................................................................ 132
T Minh Phng - HVCNBCVT 6

4.10.1. a lgic........................................................................................................ 133 4.10.2. Boot sector .................................................................................................... 134 4.10.3. Bng FAT ..................................................................................................... 136 4.10.4. Th mc gc ................................................................................................. 137 TI LIU THAM KHO .................................................................................................. 139

T Minh Phng - HVCNBCVT

Gii thiu chung

CHNG 1:

GII THIU CHUNG

1.1. CC THNH PHN CA H THNG MY TNH Mt h thng my tnh ni chung c th phn chia s b thnh phn cng v phn mm. Phn cng cung cp cc ti nguyn cn thit cho vic tnh ton, x l d liu. Phn mm gm cc chng trnh quy nh c th vic x l . thc hin cng vic tnh ton hoc x l d liu c th cn c cc chng trnh gi l chng trnh ng dng. C th k mt s chng trnh ng dng thng gp nh chng trnh son tho vn bn, chng trnh tr chi, h qun tr c s d liu, chng trnh truyn thng .v.v. Phn cng c th biu din nh lp di cng, l c s ca ton h thng. y l nhng thit b c th nh CPU, b nh, thit b nh ngoi, thit b vo ra. Chng trnh ng dng l lp trn ca h thng, l phn m ngi dng xy dng nn v tng tc trong qu trnh gii quyt cc nhim v ca mnh. (Khi nim ngi dng y bao gm c ngi s dng thun tu ln ngi vit ra cc chng trnh ng dng) Ngoi phn cng v trnh ng dng, h thng my tnh cn c mt thnh phn quan trng l h iu hnh. H iu hnh l phn mm ng vai tr trung gian gia phn cng v ngi s dng cng cc chng trnh ng dng ca h. Nhim v ca h iu hnh l lm cho vic s dng h thng my tnh c tin li v hiu qu. Cc chng trnh ng dng khi chy u cn thc hin mt s thao tc chung nh iu khin thit b vo ra. Nhng thao tc phn phi v iu khin ti nguyn chung nh vy s c gp chung li trong phm vi h iu hnh. Ngoi chng trnh ng dng v h iu hnh cn c cc chng trnh h thng v chng trnh tin ch. y l nhng chng trnh c xy dng thc hin nhng thao tc thng din ra trong h thng hoc gip ngi dng thc hin mt s cng vic d dng hn. Cc thnh phn ca h thng my tnh c th hin trn hnh 1.1, trong phn cng l lp di cng v ngi dng giao tip vi trnh ng dng l thnh phn trn cng ca h thng.
Ng i s d ng

Chng trnh ng d ng, chng trnh h th ng v ti n ch

H i u hnh

Ph n c ng

Hnh 1.1: Cc thnh phn ca h thng my tnh


T Minh Phng - HVCNBCVT 8

Gii thiu chung 1.2. KHI NIM H IU HNH C nhiu cch nh ngha khc nhau v h iu hnh, nhng thng thng, h iu hnh c nh ngha thng qua mc ch, vai tr, v chc nng trong h thng my tnh. H iu hnh l h thng phn mm ng vai tr trung gian gia ngi s dng v phn cng my tnh nhm to ra mi trng gip thc hin cc chng trnh mt cch thun tin v hiu qu. hon thnh vai tr ca mnh, h iu hnh cn thc hin hai chc nng c bn l qun l ti nguyn v qun l vic thc hin cc chng trnh. Ta s xem xt k hai chc nng ny ca h iu hnh. Qun l ti nguyn Qun l ti nguyn m bo cho ti nguyn h thng c s dng mt cch c ch v hiu qu. Nh c h iu hnh, ti nguyn c qun l v s dng hp l hn trong khi ngi s dng c gii phng khi cng vic kh khn ny. Cc ti nguyn phn cng ch yu ca my tnh gm c b x l (CPU), b nh chnh, b nh th cp, cc thit b vo ra. CPU l thnh phn trung tm ca h thng, c chc nng x l d liu v iu khin ton h thng. B nh chnh l ni lu tr chng trnh v d liu trong qu trnh x l. B nh th cp, hay b nh ngoi, bao gm cc a t, a quang hc, a quang t, bng t, th nh v cc thit b nh khc c vai tr lu tr chng trnh, d liu trong thi gian di vi dung lng ln. Thit b vo ra cho php my tnh trao i thng tin vi th gii bn ngoi. Qun l ti nguyn trc ht l phn phi ti nguyn ti cc ng dng mt cch hiu qu. thc hin c, cc chng trnh cn ti nguyn phn cng nh khng gian b nh, thit b ngoi vi. Yu cu ti nguyn c h iu hnh thu nhn v p ng bng cch cp cho chng trnh cc ti nguyn tng ng. Mun cp pht ti nguyn, h iu hnh cn lu tr tnh trng ti nguyn bit hin gi ti nguyn no cn trng, ti nguyn no ang c s dng. Mt v d in hnh l trng hp lu tr thng tin ln a. H iu hnh cn bit nhng vng no trn a cha c s dng ghi thng tin ln nhng vng ny. Vic ghi thng tin ln vng trng cng cn c tnh ton sao cho qu trnh truy cp ti thng tin khi cn c th thc hin nhanh nht. Yu cu v phn cng ca cc chng trnh ny c th mu thun nhau. Chng hn, hai chng trnh cng c yu cu ghi ra a mt lc. Trong trng hp xut hin cc yu cu mu thun khc v phn cng nh v d ny, h iu hnh s quyt nh th t v thi gian cung cp ti nguyn cho cc chng trnh sao cho t c mc tiu tnh ton ca h thng ng thi ti u ho mt s tiu ch no , chng hn gim thi gian cc chng trnh phi tm ngng ch i ln nhau.v.v.
T Minh Phng - HVCNBCVT

Gii thiu chung Qun l ti nguyn cn c ngha l m bo sao cho chng trnh khng xm phm ti nguyn cp cho chng trnh khc. V d, nu hai chng trnh c cp hai vng b nh khc nhau, th vic chng trnh ny truy cp v thay i vng b nh ca chng trnh khc s lm cho chng trnh hot ng khng bnh thng. H iu hnh cn th hin chc nng qun l ti nguyn ca mnh qua vic ngn nga nhng vi phm kiu ny. Qun l vic thc hin cc chng trnh Nhim v quan trng nht ca my tnh l thc hin cc chng trnh. Mt chng trnh ang trong qu trnh thc hin c gi l tin trnh (process). Chng trnh cn c qun l c th thc hin thun li, trnh cc li, ng thi m bo mi trng vic xy dng v thc hin chng trnh c thun li. H iu hnh gip vic chy chng trnh d dng hn. chy chng trnh cn thc hin mt s thao tc nht nh, nh c h iu hnh, ngi dng khng phi thc hin cc thao tc ny. to mi trng thun li cho chng trnh, h iu hnh to ra cc my o. My o l cc my lgic vi nhng ti nguyn o c cc tnh cht v kh nng khc so vi ti nguyn thc: d s dng hn, d lp trnh hn, s lng nhiu hn ti nguyn thc thc, kh nng c th vt qu kh nng ti nguyn thc. Ti nguyn o l bn m phng ca ti nguyn thc c thc hin bng phn mm. Ti nguyn o ging ti nguyn thc ch n cung cp cc dch v c bn nh ti nguyn thc. Chng hn, processor o cung cp kh nng thc hin cc lnh, b nh o cung cp kh nng lu tr thng tin, thit b vo/ra o cho php chng trnh c ghi d liu. Ti nguyn o khc ti nguyn thc ch d s dng hn. Cc ti nguyn thc u rt kh lp trnh trc tip. Ly v d vic ghi thng tin ra a cng. Cc a cng thng c lp trnh bng cch ghi mt s lnh ra cc thanh ghi iu khin. Cc thanh ghi khc lm nhim v cha thng tin cn trao i v trng thi a. thc hin vic c ghi thng tin, ta cn xc nh chui lnh khi ng (lm a quay nu a ang trng thi dng), kim tra xem a t c tc cha, sau chuyn u c ti v tr cn thit, ghi thng tin ra cc thanh ghi d liu v a cc lnh tin hnh ghi thng tin ra cc thanh ghi iu khin. Vic lp trnh iu khin a nh vy i hi rt nhiu thi gian cng nhng hiu bit v giao din phn cng. Trong trng hp ny l kin thc v cc lnh, a ch, khun dng thanh ghi v qu trnh trao i tin vi a. Nu mch iu khin a thay i th cc thng s ny c th thay i theo v chng trnh ghi a cng phi vit li. cho vic s dng cc ti nguyn phn cng tr nn n gin ngi ta tru tng ho cc ti nguyn ny. Tru tng ho l qu trnh loi b cc chi tit khng quan trng, ch gi li nhng kha cnh ct li m ngi s dng quan tm. Cc ti nguyn phn cng sau khi c tru tng ho vn cung cp cc chc nng c bn nh ban u xong d s dng hn
T Minh Phng - HVCNBCVT 10

Gii thiu chung nhiu do cc chi tit c th c giu i. Chng hn, a cng c th coi nh ni c th c, ghi cc tp. Ngi dng c th to, xo, c, ghi cc tp bng cc lnh bc cao m khng cn quan tm ti cc thanh ghi, cc lnh bc thp. Vic trc tip a cc lnh c th ra thanh ghi cng cc chi tit khc s do h iu hnh m nhim. Mt im khc bit quan trng ca ti nguyn o l s lng ti nguyn o c th ln hn s lng ti nguyn thc. Hy xem xt trng hp CPU. Mi my tnh thng ch c mt processor thc. Tuy nhin nu nhiu chng trnh cng c thc hin trn my , mi chng trnh s c h iu hnh cung cp mt CPU o bng cch phn chia thi gian s dng CPU thc cho cc CPU o . R rng s lng processor o lc vt s lng CPU thc rt nhiu. Kh nng ca tng ti nguyn o cng c th vt kh nng ti nguyn thc. in hnh l b nh o. Cc h iu hnh thng cung cp b nh trong o vi khng gian nh ln hn b nh thc rt nhiu bng cch s dng thm khng gian trn b nh ngoi. 1.3. CC DNCH V DO H IU HNH CUNG CP Mt trong cc nhim v ch yu ca h iu hnh l to ra mi trng thun li cho cc chng trnh khc thc hin v gip ngi dng s dng h thng d dng. iu ny th hin qua mt s dch v m h iu hnh cung cp cho cc chng trnh ng dng v ngi s dng. Khi nim dch v y c th hiu n gin l nhng cng vic m h iu hnh thc hin gip ngi dng hoc chng trnh ng dng. Cc dch v c th thay i theo tng h iu hnh. Mt s h iu hnh cung cp nhiu dch v trong khi h iu hnh khc cung cp t dch v hn. Chng hn, MS-DOS khng cung cp cc dch v v bo mt trong khi Windows NT li rt ch trng ti dch v ny. Tuy nhin c mt s dch v m mt h iu hnh tiu biu thng c. Di y l nhng dch v thng gp ca h iu hnh. Ti v chy chng trnh. thc hin mt chng trnh, chng trnh cn c ti t a vo b nh, sau c trao quyn thc hin cc lnh. Khi chng trnh thc hin xong cn gii phng b nh v cc ti nguyn m chng trnh chim gi. Ton b qu trnh ny tng i phc tp song li din ra thng xuyn. H iu hnh s thc hin cng vic phc tp v lp i lp li ny. Nh c h iu hnh, lp trnh vin cng nh ngi s dng khng cn quan tm ti chi tit ca vic ti v chy chng trnh. y cn ni thm v vic ti h iu hnh vo b nh. Do h iu hnh l chng trnh u tin c thc hin khi khi ng h thng nn h iu hnh phi t ti chnh mnh t b nh ngoi vo b nh trong. Chnh xc hn, qu trnh din ra nh sau. H iu hnh c mt chng trnh nh gi l chng trnh ti hay chng trnh mi (OS loader). Chng trnh ny nm mt v tr xc nh trn a hoc thit b nh ngoi khc. Sau khi khi ng h thng, mt chng trnh nm sn trong b nh ROM (v d trong BIOS ca my vi tnh) s c kch hot v c chng trnh mi
T Minh Phng - HVCNBCVT 11

Gii thiu chung ca h iu hnh t v tr quy c trn a vo b nh. Sau , chng trnh mi chu trch nhim ti cc phn khc ca h iu hnh vo b nh v trao cho h iu hnh quyn iu khin h thng. Giao din vi ngi dng. Cc h thng thng cung cp giao din cho php h iu hnh giao tip vi h iu hnh. Hai dng giao din thng dng nht l giao din di dng dng lnh (command-line) v giao din ha (Graphic User Interface GUI). Giao din dng lnh cho php ngi dng ra ch th cho h iu hnh bng cch g lnh di dng vn bn, v d chng trnh cmd.exe ca Windows. Giao din ha s dng h thng ca s, thc n, v thit b tr nh chut, kt hp vi bn phm giao tip vi h thng. Thc hin cc thao tc vo ra d liu. Ngi dng v chng trnh trong khi thc hin c th c nhu cu vo/ra d liu vi a hoc cc thit b ngoi vi. trnh cho chng trnh khng phi lm vic trc tip vi phn cng, yu cu vo/ra s c giao cho h iu hnh thc hin. Lm vic vi h thng file. File l mt khi nim l gic dng tru tng ho cng vic vo ra thng tin vi b nh ngoi. a s ngi dng v chng trnh c nhu cu c, ghi, to, xa, chp file hoc lm vic vi th mc. Ngoi ra cn nhiu thao tc khc vi file nh qun l quyn truy cp, sao lu. H iu hnh gip thc hin nhng thao tc ny di dng cc dch v. Pht hin v x l li. m bo cho h thng hot ng n nh, an ton, h iu hnh cn pht hin v x l kp thi cc li xut hin trong phn cng cng nh phn mm. Cc li phn cng c th l li b nh, mt in, my in ht giy.v.v. Cc li phn mm c th do chng trnh vit sai, cc php chia cho khng, li truy cp b nh.v.v. Truyn thng. Trong khi thc hin, chng trnh c th c nhu cu trao i thng tin vi nhau, thm ch vi chng trnh ang thc hin trn my khc c ni mng. H iu hnh cung cp dch v cho php thit lp lin lc v truyn thng tin di dng cc thng ip (message) hoc thng qua nhng vng b nh dng chung (shared memory). Trong trng hp truyn thng ip, h iu hnh ng vai tr chuyn cc gi tin theo nhng quy tc nht nh gi l giao thc truyn thng. Cp pht ti nguyn. Trong cc h thng cho php nhiu chng trnh thc hin ng thi cn c c ch cp pht v phn phi ti nguyn hp l. Mi dng ti nguyn cn c cch cp pht ring, v d c ch cp pht CPU hon ton khc so vi cp pht b nh. Nh c h iu hnh, ngi s dng v trnh ng dng khng phi t thc hin vic cp pht ti nguyn, ng thi vn m bo ti nguyn c cp pht cng bng v hiu qu. Dch v an ninh v bo mt. i vi h thng nhiu ngi dng thng c xut hin
T Minh Phng - HVCNBCVT 12

Gii thiu chung yu cu bo mt thng tin, tc l m bo ngi dng ny khng tip cn c vi thng tin ca ngi khc nu khng c php. Tng t nh vy, h thng cn m bo tin trnh khng truy cp tri php ti nguyn (nh vng b nh, file m) ca tin trnh khc hay ca chnh h iu hnh bng cch kim sot truy cp ti ti nguyn. Nhiu h iu hnh cn cho php kim tra ngi dng thng qua vic kim sot ng nhp vo h thng. 1.4. GIAO DIN LP TRNH CA H IU HNH cc chng trnh c th s dng c nhng dch v ni trn, h iu hnh cung cp mt giao din gi l giao din lp trnh. Giao din ny bao gm cc li gi h thng (system calls) m chng trnh s dng yu cu mt dch v no t pha h iu hnh. Li gi h thng l dng lnh c bit m chng trnh ng dng gi khi cn yu cu h iu hnh thc hin mt vic g . Cc h iu hnh trc y thng cung cp li gi h thng di dng cc lnh hp ng do li gi h thng cn c gi l lnh my m rng. V d cc li gi kiu ny l cc hm ngt 21h ca DOS m chng trnh vit trn hp ng gi bng lnh int. H iu hnh hin nay thng cho php gi li gi h thng trc tip t ngn ng bc cao nh C hoc C++. Lc ny, li gi h thng ging nh mt li gi hm hoc chng trnh con. Li gi h thng c thc hin qua nhng th vin hm gi l th vin h thng cng vi nhng hm h thng khc. Cc hm ny s gip ngi lp trnh gi li gi h thng tng ng ca h iu hnh. Giao din lp trnh Win32 API (Application Programming Interface) do h iu hnh Windows cung cp l mt v d th vin nh vy. Cc v d khc l POSIX API dng cho UNIX, Linux v Java API dng cho my o Java. Trn hnh 1.2 l v d mt hm ca Win32 API cho php yu cu dch v ghi ra file ca Windows:
BOOL WINAPI WriteFile( __in __in __in __out_opt __inout_opt ); HANDLE hFile, LPCVOID lpBuffer, DWORD nNumberOfBytesToWrite, LPDWORD lpNumberOfBytesWritten, LPOVERLAPPED lpOverlapped

Hnh 1.2 : Hm c file trong th vin Windows API Khi vit chng trnh, ngi lp trnh s s dng cc hm do giao din lp trnh ng dng API cung cp thay v gi trc tip li gi h thng. Chng trnh dch (compiler) sau s thc hin vic chuyn i li gi hm sang li gi h thng tng ng ca h iu hnh. Vic s dng API c hai u im so vi s dng trc tip li gi h thng. Th nht, chng trnh d dng chuyn sang thc hin trn h thng khc c cng API. Th hai, li gi h thng c th yu cu nhiu thng tin v do vy kh s dng hn API (trn thc t, API v li gi h thng kh tng t nhau tr mt s ngoi l).
T Minh Phng - HVCNBCVT 13

Gii thiu chung Cc li gi h thng thng thuc mt trong cc nhm sau: qun l tin trnh, qun l file v th mc, qun l thit b, m bo thng tin v lin lc gia cc tin trnh. 1.5. QU TRNH PHT TRIN H IU HNH Cc h iu hnh ngy nay l nhng h thng phn mm phc tp thc hin nhiu chc nng tinh vi lin quan ti qun l ti nguyn v chng trnh. Cc tnh nng v k thut c s dng trong h iu hnh hin i khng phi c ngay m c xy dng v hon thin qua nhiu th h h iu hnh khc nhau. Do vy, vic xem xt qu trnh pht trin h iu hnh cho php hiu r hn kh nng v yu cu i vi mt h iu hnh hin i. Cc h thng n gin Trong thi k mi ra i, t gia nhng nm 40 cho ti gia nhng nm 50 th k trc, tc x l ca my tnh rt thp, vic vo/ra c thc hin th cng v kh khn. Vic np chng trnh c thc hin nh cc cng tc, cc mch hn sn (plugboard), ba c l. Kt qu thc hin c a ra my in, trng thi my th hin trn cc n tn hiu. Trong thi k ny, lp trnh vin tng tc trc tip vi phn cng, lp trnh bng cc lnh my. My tnh in t h h ny cha c h iu hnh. X l theo m T gia nhng nm 1950, phn cng my tnh c nhng ci tin quan trng. Vic s dng bn dn cho php gim kch thc my, tng tc x l cng nh gim cc hng hc phn cng. Vic np chng trnh c thc hin nh ba c l vo cc a t trc khi ti vo my. H iu hnh u tin cng ra i trong thi k ny. Trong nhng thp nin u sau khi ra i, gi thnh my tnh rt t. Do , nhim v quan trng l tn dng ht cng sut my, gim thi gian ch i cng nhiu cng tt. Mt k thut cho php tng hiu sut s dng my l x l theo m (batch processing). K thut ny ln u tin c hng General Motors s dng trn my tnh 701 vo gia nhng nm 1950. Thay v lm vic trc tip vi my tnh, lp trnh vin chuNn b chng trnh trn ba c l hoc trn a t v giao cho cc k thut vin. y l nhng ngi chuyn trch qun l my v c chuNn b s dng my hiu qu nht. Sau khi nhn c chng trnh, k thut vin s phn chng trnh thnh cc m. Mi m bao gm nhng chng trnh c yu cu ging nhau, v d cc chng trnh cn c dch bng b dch FORTRAN c xp vo cng m. Ton b m sau c np vo bng t v c ti vo my thc hin ln lt. Mt chng trnh nh gi l chng trnh gim st (monitor) c gi thng xuyn trong b nh. Mi khi mt chng trnh ca m kt thc, chng trnh gim st t ng np chng trnh tip theo ca m vo my v cho php chng trnh ny chy. Vic t ng ho gim st v np chng trnh cn gim ng k thi gian chuyn i gia hai chng trnh trong cng mt m do monitor c th t ng np chng trnh nhanh hn k thut vin. Hiu sut s dng CPU do c ci thin ng k. Sau khi ton b m c thc hin xong, k thut vin ly bng t cha m ra v np tip m mi vo thc hin. Trnh gim st (monitor) m t trn chnh l dng n gin nht ca h iu hnh c ti vo v nm thng trc trong b nh qun l vic thc hin cc chng trnh
T Minh Phng - HVCNBCVT 14

Gii thiu chung khc. B nh my tnh c phn thnh hai vng: mt vng cha trnh gim st, v mt vng

Monitor

Trnh ng d ng

Hnh 1.3: B nh cha trnh gim st (monitor) v chng trnh ng dng cha trnh ng dng nh minh ha trn hnh 1.3. a chng trnh Mc d vic x l theo m cho php gim thi gian chuyn i gia cc chng trnh ng dng xong hiu sut s dng CPU vn tng i thp. Mi khi c yu cu vo/ra, CPU phi dng vic x l d liu ch qu trnh vo ra kt thc. Do tc vo ra lun thp hn tc CPU rt nhiu nn CPU thng xuyn phi ch i trong nhng khong thi gian di. hn ch tnh trng ni trn, k thut a chng trnh (multiprogramming) hay cn gi l a nhim (multitasking) c s dng. H thng cha ng thi nhiu chng trnh

H i u hnh

Chng trnh 1 Chng trnh 2 Chng trnh 3 B nh tr ng

Hnh 1.4: a chng trnh


trong b nh (hnh 1.4). Khi mt chng trnh phi dng li thc hin vo ra h iu hnh s chuyn CPU sang thc hin mt chng trnh khc. Nu s chng trnh nm trong b nh nhiu th hu nh lc no CPU cng c vic thc hin, nh vy gim thi gian chy khng ti ca CPU. Trn hnh 1.5 l minh ha hiu sut s dng thi gian CPU cho trng hp n chng trnh v a chng trnh vi 3 chng trnh cng c ti vo b nh mt lc. Thi gian thc hin chng trnh xen k vi thi gian ch i vo/ra. D dng nhn thy, thi gian ch i ca CPU trong ch a chng trnh gim ng k so vi trong trng hp n chng trnh.
T Minh Phng - HVCNBCVT 15

Gii thiu chung Trong trng hp a chng trnh, h iu hnh tr nn phc tp hn rt nhiu so vi trng hp n chng trnh. Trc ht, cn quyt nh xem bao nhiu chng trnh c ti vo b nh. Sau khi cc chng trnh trong b nh v sn sng thc hin (gi l cc tin trnh), h iu hnh phi phn phi CPU cho cc tin trnh. Vic phn phi CPU nh vy gi l iu tin trnh hay iu CPU v s c trnh by chi tit trong chng 2. Ngoi ra, h iu hnh cn m bo tin trnh khng xm phm vng nh v ti nguyn cp cho tin trnh khc.
Chy Ch i Chy Ch i

(a) n chng trnh


Chng trnh A Chng trnh B Chng trnh C Chy Ch i Chy Ch i Ch i Ch i Chy Ch i Chy Chy Chy Ch i Ch i Ch i

Ton h thng

Chy A Chy B Chy C

Ch i

Chy A Chy B Chy C

Ch i

(b) a chng trnh Hnh 1.5: Ch n chng trnh v a chng trnh

Vic thc hin a chng trnh i hi nhng s h tr nht nh t phn cng, c bit l kh nng vo/ra bng ngt v c ch DMA. Nu khng c c ch ny, CPU s phi trc tip iu khin qu trnh vo/ra thng tin v d liu. Hiu qu ca a chng trnh do s bng khng. Chia s thi gian Mc d a chng trnh cho php s dng hiu qu CPU v cc ti nguyn khc ca h thng, song k thut ny khng cho php ngi dng tng tc vi h thng. Trong cc my tnh th h sau, cc terminal cho php ngi dng lm vic trc tip vi my tnh thng qua mn hnh v bn phm. Nhiu ngi dng c th nhp thng tin v lnh t bn phm, kt qu sau c a trc tip ra mn hnh. i vi cc h thng ny, thi gian p ng, tc l thi gian t khi ngi dng g lnh cho ti khi my tnh phn x li cn phi tng i nh. K thut a chng trnh m t trn khng m bo c thi gian p ng ngn nh vy. Do vy, mt k thut khc gi l chia s thi gian c s dng. Chia s thi gian c th coi nh a chng trnh ci tin. CPU ln lt thc hin cc cng vic khc nhau trong nhng khong thi gian ngn gi l lng t thi gian. Do vic chuyn i gia cc cng vic din ra vi tn s cao v tc CPU ln nn thi gian p ng nm trong gii hn c th chp nhn, tt c ngi dng u c cm gic my tnh ch thc hin chng trnh ca mnh. Nh vy, trong ch chia s thi gian, CPU c chia s gia nhng ngi dng khc
T Minh Phng - HVCNBCVT 16

Gii thiu chung nhau tng tc trc tip vi h thng. H iu hnh s dng cc k thut a chng trnh v iu CPU cung cp CPU cho ngi dng trong nhng khong thi gian ngn. Mi ngi dng s c chng trnh ca mnh (mt hoc nhiu) trong b nh. Cc chng trnh ang thc hin nh vy c gi l tin trnh. H iu hnh chuyn quyn s dng CPU gia cc tin trnh khc nhau. H iu hnh h tr chia s thi gian phc tp hn h iu hnh a chng trnh n thun rt nhiu. m bo chia s CPU, h iu hnh phi c cc c ch iu tin trnh phc tp, cho php ng b ho, m bo lin lc gia cc tin trnh, cng nh trnh tnh trng b tc. 1.6. CU TRC H IU HNH H iu hnh l mt h thng phn mm phc tp gm c to thnh t cc thnh phn m ng nhng nhim v hoc cung cp nhng dch v khc nhau. Cc thnh phn c t chc theo mt cch nht nh to ra h iu hnh hon chnh. Tng thnh phn cng nh cch t chc ton b h thng c th rt khc nhau nhng h iu hnh khc nhau. Cch t chc, lin kt cc thnh phn xc nh cu trc ca h iu hnh. Trong phn ny ta s xem xt cc thnh phn thng c ca mt h iu hnh tiu biu, sau xem xt mt s kiu cu trc thng dng nht. 1.6.1. Cc thnh phn ca h iu hnh Mt h iu hnh tiu biu thng c cc thnh phn thc hin nhng nhim v sau: a. Qun l tin trnh Mt chng trnh ang trong qu trnh thc hin c gi l tin trnh. im khc nhau c bn gia chng trnh v tin trnh ch chng trnh l mt thc th tnh, c th di dng nhng bit, nhng byte ghi trn a, cn chng trnh l mt thc th ng ang tin hnh vic tnh ton, x l.v.v. v c cung cp mt s ti nguyn nh thi gian CPU, b nh.v.v. (khi nim tin trnh s c xem xt k trong cc chng sau). Bn thn cc tin trnh ca h iu hnh trong khi chy cng to ra cc tin trnh. Cc cng vic lin quan ti qun l tin trnh bao gm: To v xo tin trnh (bao gm c tin trnh ngi dng ln tin trnh h thng - tin trnh h iu hnh) Tm treo v khi phc cc tin trnh b treo ng b ho cc tin trnh (lp lch cho cc tin trnh .v.v.) Gii quyt cc b tc, v d nh khi c xung t v ti nguyn To c ch lin lc gia cc tin trnh b. Qun l b nh B nh (nu khng ni g thm th c hiu l b nh trong hay b nh s cp) l ni cha cc tin trnh v d liu. y l ti nguyn quan trng th hai sau CPU. B nh l khi nh c nhm li thnh cc t hay cc byte v c nh a ch. a ch c s dng khi
T Minh Phng - HVCNBCVT 17

Gii thiu chung cn c hoc ghi thng tin vo b nh. Trong nhng h iu hnh a nhim, nhiu tin trnh c th cng thc hin mt lc v c cha trong b nh. H iu hnh c trch nhim qun l vic phn phi b nh gia cc tin trnh, to ra b nh o v nh x a ch b nh o vo b nh thc, cung cp v gii phng b nh theo yu cu ca cc tin trnh, qun l khng gian nh c cp v khng gian cn trng. c. Qun l vo ra Mt trong cc nhim v ca h iu hnh l n gin ho v tng hiu qu qu trnh trao i thng tin gia cc tin trnh vi thit b vo ra. Nh c h iu hnh, ngi dng khng phi quan tm ti cc chi tit lin quan ti thit b vo ra c th. Vic iu khin trc tip thit b do cc chng trnh iu khin thit b (driver) thc hin. Ngoi ra cn c cc giao din lp trn driver do h iu hnh cung cp. Cc thnh phn ny nm trong h thng vo ra ca h iu hnh. Mt nhim v khc ca h vo ra l tng hiu qu trao i thng tin vi thit b ngoi vi nh h thng vng m (buffer) v b nh cache. d. Qun l file v th mc trnh cho ngi dng khng phi quan tm ti c im cc thit b nh ngoi vn khc nhau v a dng, h iu hnh cho php s dng mt khi nim lgic khi lu tr thng tin trn cc thit b nh ny, l file. File l tp hp cc thng tin c lin quan n nhau, l ni c th ghi thng tin vo hoc c thng tin ra. Cc chng trnh v ngi dng khng cn quan tm ti vic file c ct gi trn b nh ngoi nh th no. H iu hnh s chu trch nhim nh x file ln cc thit b nh ny. Khi s lng file ln ti mt mc no , cn c c ch t chc cc file sao cho d tm kim v s dng. Chng hn, nu so snh mi file nh mt quyn sch, khi s sch tng i ln nh trong th vin, ngi ta cn phn loi sch theo th loi, tc gi .v.v. cho d tm kim. H iu hnh phn chia cc file thnh cc nhm gi l th mc. Mi th mc cha cc file c cng mt c im no , v d th mc cha cc vn bn, th mc cha chng trnh ca cng mt hng. H thng qun l file v th mc m nhim cc chc nng sau: To, xo file v th mc c, ghi file nh x file v th mc sang b nh ngoi e. H tr mng v x l phn tn Mt trong cc xu hng pht trin ca cc h thng tnh ton hin nay l kt hp my tnh vo cc mng my tnh. iu ny cho php trao i, chia s thng tin gia cc my, ng thi to kh nng x l phn tn. Cc my tnh c ni vi nhau qua cc mi trng truyn thng cho php truyn thng tin v d liu. i vi nhng bi ton ln, i hi tc tnh ton cao hoc kh nng lu tr d liu ln c th phn tn vic x l trn cc my tnh c ni mng. X l phn tn cho php tn dng ti nguyn ca cc my ring l to nn mt h thng tnh ton c kh nng ln hn nhiu.
T Minh Phng - HVCNBCVT 18

Gii thiu chung Chc nng h tr mng v x l phn tn ca h iu hnh bao gm qun l thit b mng, h tr cc giao thc truyn thng, qun l vic truyn thng, cn bng ti. f. Giao din vi ngi dng Thnh phn ny c gi bng nhiu tn khc nhau nh b dch lnh (command intepreter), v (shell). Thc cht y l giao din gia ngi dng vi h iu hnh (cn phn bit vi cc li gi h thng - system calls - l giao din gia cc chng trnh v h iu hnh). B dch lnh hay v nhn lnh t ngi dng v thc hin cc lnh ny, c th bng cch s dng dch v do cc phn khc ca h iu hnh cung cp. C th ly v d cc b dch lnh nh command.com ca DOS, bash ca Linux. Trong cc h iu hnh hin nay, b dch lnh thng c thay th bng cc h giao din ho. Thay v g cc lnh di dng vn bn, ngi s dng lm vic vi cc i tng ho nh ca s, biu tng rt trc gic v d hiu. Cc giao din ho thng c bit n l Windows Explorer cho Windows, X windows cho Linux. g. Cc chng trnh tin ch v chng trnh ng dng H iu hnh thng cha sn mt s chng trnh tin ch v chng trnh ng dng. y l thnh phn khng bt buc ca h iu hnh. Cc chng trnh tin ch cung cp cho ngi dng mt s dch v gip cho vic s dng h thng d dng, hiu qu hn. Chng hn c cc tin ch gip nn tp, chp cc tp di ra a mm, tin ch gip lu tr d liu. Cc chng trnh ng dng hay c trong thnh phn ca h iu hnh l cc chng trnh dch (trnh dch Basic ca DOS, trnh dch C ca Uni ), cc chng trnh son tho vn bn (Notepad ca Windows, vi ca Linux), cc chng trnh tr chi. 1.6.2. Nhn ca h iu hnh Nhn (kernel) l phn ct li, l phn thc hin cc chc nng c bn nht, quan trng nht ca h iu hnh v thng xuyn c gi trong b nh. H iu hnh l mt h thng phc tp, bao gm nhiu thnh phn, nhiu chng trnh cu thnh. Vai tr ca nhng thnh phn rt khc nhau. C nhng phn khng th thiu, l c s cho ton b h thng hot ng, chng hn nh phn chu trch nhim qun l processor, qun l b nh. Bn cnh , nhiu chng trnh thnh phn ca h iu hnh cung cp cc chc nng km quan trng hn. Cc chng trnh ny c th cn cho mt s ngi dng nht nh trong mt s cu hnh nht nh, xong li khng cn cho ngi dng khc trong cc trng hp khc. V d, mt ngi s dng my tnh nghip d s khng cn ti cc chng trnh dch do h iu hnh cung cp. Hay mt my tnh khng ni mng s khng bao gi cn ti cc dch v mng ca h iu hnh. T nhn xt trn, thay v ti ton b h iu hnh - c th chim rt nhiu ch - vo v cha thng xuyn trong b nh, ngi ta ch chn nhng thnh phn quan trng khng th thiu c. Cc phn ny to thnh nhn ca h iu hnh. Nhng phn cn li khng thuc vo nhn c th c ti vo v chy khi cn thit. Ch nhn v ch ngi dng. My tnh hin i thng c thit k vi hai ch thc hin chng trnh: ch nhn v ch ngi dng. Ch nhn (kernel
T Minh Phng - HVCNBCVT 19

Gii thiu chung mode), cn gi l ch c quyn (privilege mode), l ch m chng trnh thc hin trong c y quyn truy cp v iu khin phn cng my tnh. Ngc li, chng trnh thc hin trong ch ngi dng b hn ch rt nhiu quyn truy cp v s dng phn cng. Vic quy nh ch c th ph thuc vo mt bit c bit trong CPU. Vic phn bit ch nhn v ch ngi dng nhm mc ch ngn khng cho chng trnh ng dng v tnh hoc c thc hin nhng thao tc lm nh hng ti h thng. Ngoi vic c gi thng xuyn trong b nh, nhn ca h iu hnh c thc hin trong ch c quyn, v do vy c ton quyn kim sot v qun l ti nguyn phn cng. Trnh ng dng phi thng qua nhn c th tip cn ti nguyn h thng. C mt vn c t ra l quyt nh phn no thuc vo nhn, phn no khng. Kch thc nhn cng ln th cng m ng c nhiu chc nng v tn thi gian ti cc phn ph. Song nhn ln th chim nhiu b nh, nh hng ti khng gian nh dnh cho cc chng trnh ng dng. Ngoi ra, t chc nhn ln nh hng ti tnh mm do. Vic thay i, b sung cc thnh phn ca h iu hnh s d dng hn nu c t chc di cc m un ring l (cc chng trnh) khng thuc nhn v ch chy khi cn thit. Trong phn tip theo, ta s xem xt mt s cch t chc nhn v h iu hnh. 1.6.3. Mt s kiu cu trc h iu hnh Cc thnh phn nu trn cn c t chc, kt hp vi nhau theo mt cch no to ra mt h thng thng nht l h iu hnh. Phn ny s cp ti mt s kiu t chc h iu hnh thng c s dng. 1.6.3.1. Cu trc nguyn khi Cu trc nguyn khi (monolithic) l cu trc trong ton b cc chng trnh v d liu ca h iu hnh c chung mt khng gian nh v do vy c th coi nh mt khi duy nht. H iu hnh lc tr thnh mt tp hp cc th tc hay cc chng trnh con. Mi chng trnh con c th t do gi chng trnh con khc khi cn thit. Cch t chc h iu hnh nh vy cho ta hnh nh tng t vi chng trnh c vit theo kiu lp trnh cu trc, trong ton b chng trnh to thnh t cc chng trnh con. Cc chng trnh con c dch, sau lin kt thnh mt chng trnh ln. Vic che du thng tin hon ton khng c. Mi chng trnh con u c cc chng trnh con khc nhn thy v c gi nu cn. Ch ng i dng Ch c quy n
trnh ng d ng trnh ng d ng

H i u hnh
Hnh 1.6 :Cu trc nguyn khi

Khi chng trnh ng dng cn dng ti cc dch v ca h iu hnh, chng trnh ng


T Minh Phng - HVCNBCVT 20

Gii thiu chung dng s s dng li gi h thng do h iu hnh cung cp. Li gi h thng c chuyn cho chng trnh con tng ng ca h iu hnh thc hin. Chng trnh con ny s gi thm cc chng trnh con khc thc hin nhim v nu cn thit. u im ln nht ca cu trc nguyn khi l tc thc hin cao. Do c chung khng gian a ch, vic truy cp d liu hoc gi chng trnh con cn thit c thc hin nhanh chng, khng phi chu nhng ph tn v thi gian v b nh (ngn xp) nh khi chuyn i gia nhng m un c khng gian nh khc nhau. Tuy nhin. nhc im ca cch t chc ny l thiu tnh mm do v kh lm cho h thng c tin cy cao. Do ton b h iu hnh l mt khi, mi chng trnh con trong khi li c th truy cp ti d liu v chng trnh con khc, vic xut hin li s lm cho c h thng t lit. Vic lin kt cc thnh phn thnh mt khi ln cn khin cho nhn lun c kch thc ln. K c cc thnh phn khng cn n cng c ti vo b nh cng vi cc thnh phn khc. khc phc cc nhc im ni trn, trong mt s h iu hnh cu trc khi, ngi ta t chc cc m un c th ti t a v gn vo nhn khi cn thit. Trong trng hp khng dng ti c th xo cc m un khi nhn. Tuy l cc m un ring nhng khi c ti vo b nh, cc m un ny nhp vo vi nhn thnh mt khi c cng khng gian a ch. iu ny m bo cho h iu hnh gi c cu trc nguyn khi m vn khng c cc thnh phn tha. Mt v d cho cch t chc kiu ny l h iu hnh Linux.
cc trnh ng d ng cc trnh ti n ch cc trnh qu n l h th ng

th vi n h th ng nhn cc mun t i c

Hnh 1.7: Cu trc h iu hnh Linux Cu trc ca Linux c th hin trn hnh 1.7. Nhn ca Linux c th m rng nh cc mun. Cc mun ny c ti vo b nh khi cn v khi b nh khi khng cn na. Chng hn khi ta s dng a CD-ROM, mun chu trch nhim iu khin vo ra vi a s c ti vo b nh. Qu trnh ny khng i hi khi ng li my c th s dng thit b mi thm vo. Cc mun c ti vo trong hai trng hp: khi ngi dng s dng cc lnh insmod v rmmod hoc khi nhn cn cc mun v t ti vo cho mnh. Sau khi c ti vo b nh, chng trnh v d liu ca mun ti vo c cng khng gian nh vi nhn. Cc hm cha trong mun s c cc hm khc ca nhn nhn thy v gi nu cn. Ni cch khc mun v cc thnh phn khc ca nhn to thnh mt khi nhn mi ln hn. Cch t chc ny cho php tn dng u th v tc ca cu trc khi ng thi m bo cho nhn khng cha cc phn tha. 1.6.3.2. Cu trc phn lp L cu trc trong cc thnh phn ca h iu hnh c phn thnh cc lp nm
T Minh Phng - HVCNBCVT 21

Gii thiu chung chng ln nhau. Lp trn cng l lp cc chng trnh ng dng, lp di cng tng ng vi phn cng. Vic lin lc gia cc lp c quy nh sao cho mi lp ch c th lin lc vi lp nm k bn trn v k bn di. im c bit ca cu trc phn lp l mi lp ch c th s dng dch v do lp nm ngay bn di cung cp. Dch v ny c cung cp qua giao din ca lp di, thng l di dng cc hm m lp trn c th gi. Cc chi tit c th ca lp di nh cu trc d

Trnh ng dng H thng file Lin lc gia cc tin trnh Qun l vo ra Qun l b nh Qun l tin trnh PHN CNG

Hnh 1. 8: Cu trc lp liu, m chng trnh c che du khi lp trn. Lp trn ch quan tm ti dch v c cung cp m khng cn quan tm n cc chi tit ny (hnh 1.8). Phn ln cc lp chy trong ch nhn hay ch c quyn. Mt u im r nt ca cu trc phn lp l cu trc ny cho php thc hin d li v hon thin h iu hnh mt cch tng i d dng. Vic d li v hon thin c thc hin t di ln trn. Trc tin lp di c kim tra c lp vi lp trn. Sau khi chc chn lp di khng c li, ta c th chuyn sang kim tra lp trn. Do cc dch v lp di cung cp cho lp trn c kim tra, nn nu xut hin li, c th tp trung tm li trong lp trn. Qu trnh tm li c thc hin t di ln trn nh vy cho ti khi ti lp trn cng ca h thng. Tuy nhin, kh khn thng gp khi thit k h iu hnh c cu trc phn lp l vic xc nh s lp cng nh phn chia thnh phn c th ca mi lp l khng d dng. Do mi lp ch c th gi lp nm ngay bn di, cn xc nh v phn hoch chnh xc cc lp trn c s chc nng v tng tc gia cc phn ca h iu hnh. V d, khi qun l b nh o ca h iu hnh thng sao chp mt phn khng gian nh o ln a. Nh vy, chng trnh qun l sao chp ra a phi nm lp thp hn lp c cha khi qun l b nh o. C nh vy, khi qun l b nh mi c th s dng c dch v sao chp ny. Mt nhc im na ca cu trc phn lp l tc tng i thp so vi cc kiu cu trc khc. Mi khi chng trnh ng dng yu cu thc hin cc thao tc (chng hn vo/ra) thng qua li gi h thng. Yu cu ny c truyn t lp trn xung phn cng thng qua cc lp trung gian. Trong qu trnh truyn, mi lp s c cc x l ring ca mnh nh thm a ch, to ra li gi lp di thch hp.v.v. Kt qu l thi gian phc v ca h thng s tng
T Minh Phng - HVCNBCVT 22

Gii thiu chung ln so vi trng hp khng phn lp. Do cc nhc im nu trn, cu trc phn lp t c s dng trong thi gian gn y. Trong mt s t trng hp, cu trc phn lp cng c s dng nhng vi s lng lp t, mi lp m nhim nhiu chc nng hn (nh h iu hnh OS/2). Cch t chc ny cho php tn dng mt phn u im ca vic phn lp ng thi gim c kh khn trong khu thit k v t chc tng tc gia cc lp. 1.6.3.3. Cu trc vi nhn Mt kiu cu trc kh ph bin khc l cu trc vi nhn (microkernel). cc h iu hnh c cu trc kiu ny, phn nhn ch cha cc chc nng quan trng nht. Cc chc nng cn li ca h iu hnh c t chc thnh cc mun khc. Cc mun ny c th hot ng trong ch c quyn nh phn nhn hoc nh cc chng trnh ng dng thng thng. Mi khi c yu cu cung cp dch v t chng trnh ng dng, chng hn yu cu c hoc ghi tp, yu cu s c chuyn cho mun tng ng thc hin. Nhim v ca nhn khi ch l m bo lin lc gia chng trnh ng dng v mun cung cp dch v. Hnh 1.9 cho ta hnh dung v cu trc vi nhn v lin lc gia trnh ng dng vi cc mun ca h iu hnh thng qua vi nhn. Cch t chc ny cho php gim ti thiu kch thc nhn (t y sinh ra tn gi vi nhn) cng nh kch thc cc mun. Vic thit k, ci t, qun l cc mun s d dng v mm do hn so vi cu trc khi. Cc mun c th c xy dng ring bit, sau ti vo khi c nhu cu. Mt u im khc l do a s cc mun chy trong ch ngi dng nh cc chng trnh ng dng thng thng, khi cc cc mun ny c li s khng nh hng ti ton b h iu hnh. Ly v d mun lm nhim v qun l a v tp. Vic xut hin s c trong mun ny ch nh hng ti vic c ghi cc tp ch khng ph hoi ton b h thng.

trnh ng d ng

trnh ng d ng

qu n l t p

qu n l m ng

Vi nhn
Hnh 1.5 Cu trc vi nhn

Nhc im ca cu trc vi nhn l vic chuyn i gia cc mun i hi thi gian v ti nguyn h thng. Cc mun ch c th lin lc vi nhau theo nhng c ch lin lc nht nh (thng l bng cch chuyn thng ip - message passing) ch khng th trc tip gi hm v truy cp d liu ca mun khc. Cch lin lc nh vy chm hn nhiu so vi cch gi hm trc tip. Vic chuyn i gia tin trnh khc nhau ca cc mun cng cn cc chi ph v thi gian v ti nguyn khc (ct gi trng thi tin trnh ca mun ny trc
T Minh Phng - HVCNBCVT 23

Gii thiu chung khi chuyn sang tin trnh ca mun khc). 1.7. MT S H IU HNH C TH Vic ly v d t nhng h iu hnh c th l rt cn thit cho trnh by ni dung cc phn tip theo (ngay trong cc phn trn ta gp mt s v d). Cc v d v s s dng c ly t mt s h iu hnh thng dng. Cc h iu hnh ny c ng dng rng ri v mt s c coi nh nhng h iu hnh tiu chuNn. Mt trng hp ngoi l cng c nhc n l h iu hnh MINIX. Mc d khng c ng dng thc t nhng do kch thc nh, n gin v mc ch cc tc gi khi xy dng MINIX l phc v o to nn cc v d ly t MINIX rt ph hp vi ni dung cun sch ny. Cc h iu hnh v d s c gii thiu s lc trong phn ny. c im c th v cc gii php k thut ca tng h iu hnh c th gp trong ni dung cc chng sau khi ta xem xt cc vn lin quan. UNIX UNIX chim mt v tr quan trng trong lch s pht trin h iu hnh. H iu hnh UNIX c Ken Thomson xy dng ti phng th nghim Bell Laboratories ca hng AT&T vo cui nhng nm bNy mi. Sau UNIX c Ken Thomson v Dennis Ritchie (tc gi ngn ng C) vit li ch yu bng C. Trong s khong mi nghn dng m ca phin bn u tin ny ch c khong mt nghn dng vit trn assembly. y l h iu hnh u tin c vit gn nh hon ton trn ngn ng bc cao v iu ny to cho UNIX kh nng d dng chuyn i, c th s dng cho nhiu kin trc my tnh khc nhau. Sau mt thi gian s dng hiu qu ti Bell Labs, hng AT&T cho php s dng UNIX vo mc ch nghin cu v ging dy ti cc trng i hc ca M, ng thi cung cp m ngun h iu hnh ny. Thc t, UNIX l h iu hnh c s dng rng ri nht ti cc trng i hc trong mt thi gian di. Vic m ca i vi UNIX nh vy to ra v s sa i v cc phin bn khc nhau. Phin bn UNIX ng ch nht c xy dng ti i hc tng hp Caliornia Berkeley v c tn Berkeley Software Distribution (BSD). Phin bn ny cha mt s ci tin quan trng i vi UNIX nh b nh o, h qun l tp tc cao, h tr mng v giao thc truyn thng TCP/IP. Song song vi cc trng i hc, mt s nh sn xut my tnh cng xy dng nhng phin bn UNIX cung cp cho my tnh ca mnh (chng hn SUN Solaris, HP UNIX, IBM AIX). Cc phin bn ny thng tng thch vi UNIX mc ngi dng vi mt s sa i nht nh. T khi ra i, UNIX c s dng rng ri trong cc nghin cu v h iu hnh. a s gii php k thut cho cc h iu hnh sau ny c ngun gc t UNIX. Mt s phn, chng hn giao din lp trnh (system calls) ca UNIX c mt trong hu ht cc h iu hnh hin i (vi mt s sa i no ). Thnh cng ca UNIX em li cho Ken Thomson gii thng Turing, gii thng ln trong lnh vc in t, tin hc m trc ch c trao cho cc sn phNm phn cng. MINIX Sau mt thi gian cung cp m ngun v quyn s dng gn nh min ph UNIX cho cc trng i hc, hng AT&T nhn ra gi tr thng mi ca h iu hnh ny. T phin
T Minh Phng - HVCNBCVT 24

Gii thiu chung bn 7 ca UNIX, AT&T ngng cung cp quyn s dng m ngun, coi y nh b mt ca hng. Vic khng c giy php s dng UNIX gy ra nhiu kh khn trong ging dy thc hnh v nghin cu v h iu hnh. Trc tnh hnh trn, Andrew Tanenbaum, mt gio s ngi H lan rt ni ting trong cc nghin cu v h iu hnh, xy dng mt h iu hnh v t tn l MINIX (miniUNIX). MINIX c xy dng vi mc ch minh ha, phc v o to, c th s dng min ph v c cung cp cng m ngun. MINIX tng thch vi UNIX phin bn 7 trn quan im ngi dng (ngi dng s thy vic s dng v chy chng trnh trn MINIX rt ging vi trn UNIX) song khng s dng m ngun ca UNIX m c vit li hon ton. So vi UNIX, MINIX n gin hn rt nhiu. H iu hnh ny ch yu cha nhng phn mang tnh minh ho cho cc gii php k thut v h iu hnh. M ngun do tng i ngn v c vit sao cho d c, d hiu nht. Mt s lng ln cc ch gii c cung cp km vi m ngun gip cho vic nghin cu MINIX d dng hn. Cho n nay phng chm pht trin MINIX vn l gi cho h iu hnh ny nh v d hiu nht i vi sinh vin. Cng nh UNIX, MINIX c vit trn C v d dng chuyn i gia cc kin trc my tnh khc nhau. Phin bn u tin c vit cho IBM PC, kin trc thng dng nht hin nay. Sau MINIX c chuyn i thnh cng chy trn mt s my tnh khc nh Amiga, Macintosh, Sun SPARC. Ngay sau khi ra i, MINIX thu ht c s quan tm ca mt s ng sinh vin, lp trnh vin v ngi dng. Linux Sau khi AT&T hn ch sa i v thng mi ho UNIX, vic xy dng h iu hnh c cc tnh nng tng t nh UNIX xong khng b cc hn ch v bn quyn rng buc tr thnh mc tiu ca mt s sinh vin v cc nh nghin cu. MINIX l mt sn phNm kh thnh cng trong s ny. Tuy nhin, do mc ch ca tc gi l gi cho h iu hnh cng n gin cng tt, MINIX khng tr thnh mt h iu hnh p ng c cc nhu cu ca a s ngi dng my tnh. Nm 1991, Linus Torvalds, sinh vin ngi Phn lan, pht trin phin bn MINIX vi xy dng mt h iu hnh thc th, c th s dng rng ri v tng thch UNIX. H iu hnh ny c t tn l Linux. Ging nh MINIX, Linux c cung cp hon ton min ph cng vi m ngun. Tt c nhng ai quan tm c th tham kho v sa i m ngun to ra cc phin bn Linux hon chnh hn, nhiu chc nng hn. Thnh cng ca cc phin bn u tin cng tnh m ca Linux thu ht c mt s lng ln lp trnh vin tham gia sa i, hon chnh h iu hnh ny. Cc phin bn ca Linux c cung cp theo cc iu khon ca GNU General Public License, theo Linux c cung cp min ph, cng m ngun. Tt c mi ngi u c quyn sa i v c cng nhn quyn tc gi i vi thnh qu ca mnh nhng khng c php thu tin t cc sa i . Mt s lng ln chng trnh ng dng cho Linux cng c vit theo cc iu kin ca GNU nh vy. n nay, Linux l h iu hnh kiu UNIX c s dng rng ri nht cho cc my tnh bn v my tnh c nhn. Linux tng thch vi chuNn POSIX 1003.1 (chuNn lp trnh cho UNIX) v cha nhiu tnh nng ca cc h UNIX System V, BSD 4.3. Tuy nhin Linux c ti u ho c th chy trn cc my tnh cc nhn vi cc ti nguyn hn ch.
T Minh Phng - HVCNBCVT 25

Gii thiu chung MS-DOS MS-DOS l sn phNm ca hng Microsoft v c trang b cho nhng my PC u tin ca IBM theo tho thun ca hng ny. c th chy trn nhng my tnh cc nhn th h u vi ti nguyn hn ch, MS-DOS c xy dng n gin v c t chc nng hn nhiu so vi h iu hnh cho cc my ln. Tuy nhin, thnh cng ca my tnh IBM PC cng vi s ph bin ca my ny a MS-DOS thnh mt trong nhng h iu hnh c s dng rng ri trn th gii. Nhiu gii php k thut trong MS-DOS c ngun gc t UNIX nh giao din lp trnh (cc li gi h thng), cu trc phn cp ca th mc, b dch lnh. Mt s chc nng khc hon ton khng c nh bo mt, h tr mng, h tr nhiu tin trnh.v.v. Theo mc pht trin ca my tnh cc nhn, nhiu phin bn MS-DOS ra i thch ng vi s pht trin ca phn cng. Windows NT, 2000, XP, Vista, 7 Khi mi ra i, my tnh c nhn (PC) c cc ti nguyn phn cng rt hn ch: CPU chm, b nh nh (thng di 1MB), khng c hoc ch c a cng dung tch b.v.v. H iu hnh MS-DOS c xy dng lm vic vi cc my tnh nh vy. y l mt h iu hnh n gin, nhiu chc nng c rt gn. Cng v sau, kh nng my tnh cc nhn cng c m rng. Tc tnh ton, dung tch b nh cng nhiu thng s khc ca PC bt u c th so snh vi my tnh ln. MS-DOS, mc du c ci tin, dn dn tr nn khng thch hp. Cn c mt h iu hnh y tnh nng hn, thch hp vi phn cng mi. Trc tnh hnh , hng Microsoft xy dng h h iu hnh Windows cho my tnh c nhn. Windows NT (NT l vit tt ca new technology - cng ngh mi) l mt thnh vin ca h h iu hnh ny. Windows 2000, XP, Vista, 7 l cc thnh vin tip theo. Phin bn u tin ca Windows NT c pht hnh nm 1993. y l h iu hnh s dng nhiu k thut tin tin trong lnh vc h iu hnh c pht trin cho n thi im ny, bao gm c cc gii php ly t UNIX. So vi MS-DOS, Windows NT l h iu hnh a nhim, h tr mng, c cc chc nng bo mt, c giao din ha di dng ca s v c dng cho cc ng dng trn PC yu cu n nh cao.

T Minh Phng - HVCNBCVT

26

Qun l tin trnh

CHNG 2:

QUN L TIN TRNH

Hot ng quan trng nht ca my tnh l thc hin cc chng trnh. phc v hot ng ny, h iu hnh cn to mi trng cho chng trnh thc hin v qun l cc chng trnh ny. Mt chng trnh ang trong qu trnh thc hin c gi l tin trnh. Chng ny s trnh by khi nim v tin trnh v nhng vn lin quan ti qun l tin trnh ca h iu hnh.

2.1. CC KHI NIM LIN QUAN N TIN TRNH 2.1.1. Tin trnh l g Theo nh ngha trc quan v n gin nht, tin trnh l mt chng trnh ang trong qu trnh thc hin. a s my tnh hin nay cho php thc hin nhiu chng trnh khc nhau cng mt lc. V d, ta c th va chy trnh duyt va son tho vn bn v nhn th in t. My tnh cng cho php thc hin nhiu bn khc nhau ca mt chng trnh cng mt lc, v d, c th thc hin nhiu phin bn khc nhau ca trnh duyt web cng mt lc xem cc trang web khc nhau. Vic s dng thut ng tin trnh cho php phn nh r rng chng trnh trong nhng trng hp nh vy, gip cho vic qun l ca h iu hnh d dng hn. C hai c im cho php phn bit tin trnh vi chng trnh. Th nht, chng trnh l mt thc th tnh, khng thay i theo thi gian, trong khi tin trnh l thc th ng. Chng trnh l tp hp cc lnh v d liu cha trong file gi l file chng trnh hoc file thc hin c (executable), v d file c ui exe ca Windows. Cc lnh ny khng thay i theo thi gian. Trong khi , tin trnh l thc th ng bao gm cc lnh, d liu, ngn xp, con tr lnh ch ti lnh ang c thc hin. Hu ht cc thnh phn ny u thay i trong qu trnh tin trnh tn ti, v d con tr lnh lun lun thay i ty thuc vo lnh thc hin l lnh no. Ngay c trong trng hp hai tin trnh c sinh ra t cng mt chng trnh, mi tin trnh s c con tr lnh, d liu, ngn xp khc vi tin trnh kia. Th hai, chng trnh khng s hu ti nguyn c th, trong khi mi tin trnh c cp mt s ti nguyn nh b nh cha tin trnh, cc cng v thit b vo/ra, cc file m, thi gian CPU thc hin lnh. Nh vy, tin trnh l mt khi nim lin quan cht ch ti khi nim my o. C th coi mi tin trnh c cp mt my tnh o v thc hin trn my tnh o . Tin trnh c sinh ra khi chng trnh c ti vo b nh thc hin. Trong h thng c hai loi tin trnh. Loi th nht l tin trnh ca ngi dng hay tin trnh ng dng, c sinh ra khi ngi dng chy chng trnh ng dng, v d bng cch nhy chut p vo biu tng chng trnh nh trong Windows. Loi th hai l cc tin trnh h thng. y l tin trnh sinh ra t nhng thnh phn ca h iu hnh thc hin cc cng vic khc nhau ca h thng. C th xem cc tin trnh hin thi ca Windows bng cch gi
T Minh Phng - HVCNBCVT 27

Qun l tin trnh Task manager (bm Ctrl-Alt-Del) v vo Tab Process. Linux cho php xem danh sch tin trnh bng cch g lnh ps t giao din dch lnh. 2.1.2. Trng thi ca tin trnh L mt thc th ng, tin trnh c th thuc nhng trng thi khc nhau. C nhiu cch phn bit trng thi tin trnh. Theo cch n gin nht, tin trnh thuc mt trong hai trng thi: chy v khng chy. Chy l khi cc lnh ca tin trnh c CPU thc hin v khng chy l trng hp ngc li, v d khi CPU ang c phn phi cho tin trnh khc hoc khi tin trnh phi dng ch kt qu vo/ra. Cch s dng hai trng thi tin trnh l qu n gin v khng phn nh y thng tin v trng thi tin trnh. Trn thc t, h iu hnh thng phn bit nm trng thi khc nhau ca tin trnh: mi khi to, sn sng, chy, ch i, kt thc. ngha c th nm trng thi nh sau: - Trng thi mi khi to: tin trnh ang c to ra. - Trng thi sn sng: tin trnh ch c cp CPU thc hin lnh ca mnh. - Trng thi chy: lnh ca tin trnh c CPU thc hin. - Trng thi ch i: tin trnh ch i mt s kin g xy ra, v d ch tn hiu t tin trnh khc hoc ch kt thc qu trnh vo/ra. Trng thi ch i cn c gi l trng thi b phong ta (blocked). - Trng thi kt thc: tin trnh kt thc vic thc hin nhng vn cha b xa. M hnh nm trng thi tin trnh l m hnh c s dng rng ri nht trong cc h iu hnh, mc d tn gi c th tng trng thi c th thay i trong h iu hnh c th.
i u CPU M i kh i t o S n sng Ng t K t thc vo/ra Ch i Vo/ra ho c ch s ki n Ch y K t thc

Hnh 2.1. S chuyn i gia cc trng thi ca tin trnh Trong mt s trng hp, c th chia nh v phn bit nhiu trng thi hn na. Chng hn, mt s h iu hnh s dng thm trng thi treo (suspended), trong tin trnh dng ton b vic thc hin hoc thm ch tm b chuyn t b nh ra a. ngha vic chuyn i gia cc trng thi. Vic chuyn trng thi xy ra trong nhng trng hp nht nh. S chuyn i gia cc trng thi c th hin trn hnh 2.1.
T Minh Phng - HVCNBCVT 28

Qun l tin trnh ngha cc chuyn i trng thi nh sau: - Mi khi to Sn sng: tin trnh c khi to xong v c ti vo b nh, ch ch c cp CPU chy, khi tin trnh s c chuyn t trng thi mi sang trng thi sn sng. - Sn sng Chy: do kt qu iu ca h iu hnh, tin trnh c h iu hnh cp pht CPU v chuyn sang trng thi chy. - Chy Sn sng: h iu hnh cp pht CPU cho tin trnh khc do kt qu iu hoc do xy ra ngt, tin trnh hin thi chuyn sang trng thi sn sng v ch c cp CPU chy tip. - Chy Ch i: tin trnh ch c th thc hin tip khi mt s kin no xNy ra. V d, tin trnh c d liu t file v ch c th thc hin tip khi c xong, hay tin trnh thc hin li gi h thng v phi ch cho ti khi li gi h thng thc hin xong. Trong trng hp ny, tin trnh chuyn sang trng thi ch i hoc cn gi l trng thi b phong ta (blocked). - Ch i Sn sng: khi s kin c ch i xy ra, tin trnh s c chuyn sang trng thi sn sng v ch c phn phi CPU chy tip. - Chy Kt thc: tin trnh thc hin xong, c chuyn sang trng thi kt thc trc khi chm dt s tn ti. 2.1.3. Thng tin m t tin trnh c th qun l tin trnh, h iu hnh cn c cc thng tin v tin trnh . Thng tin v tin trnh c lu trong mt cu trc d liu gi l khi qun l tin trnh, vit tt l PCB (Process Control Block) (lu l tn gi ca khi ny c th thay i ty h iu hnh c th). Thng tin v tin trnh cha trong PCB ph thuc vo tng h iu hnh c th. Thng thng, PCB bao gm cc thng tin sau: - S nh danh ca tin trnh: tin trnh c gn mt s nh danh PID cho php phn bit vi tin trnh khc. S nh danh ny c h iu hnh s dng tm v tr tng ng vi tin trnh trong bng tin trnh, hoc s dng tham chiu gia cc bng khc nhau lu thng tin lin quan n tin trnh. V d, qun l cc khi nh, h iu hnh s dng s nh danh bit tin trnh no ang c cp mt khi nh c th. - Trng thi tin trnh: mt trong nm trng thi lit k phn trc. - Ni dung mt s thanh ghi CPU: ni dung mt s thanh ghi quan trng thng c gi trong PCB nh: o Thanh ghi con tr lnh: tr ti lnh tip theo cn thc hin o Thanh ghi con tr ngn xp: Mi tin trnh u c ngn xp lu tham s v tnh trng hm khi thc hin li gi hm/th tc ca chng trnh. Con tr ngn xp tr ti nh ngn xp hin thi ca tin trnh.
T Minh Phng - HVCNBCVT 29

Qun l tin trnh o Cc thanh ghi iu kin v thanh ghi trng thi: cha trng thi sau khi thc hin cc php tnh lgic hoc s hc (nh trn s, chia cho khng, c phn b) o Cc thanh ghi a dng khc. L do phi lu ni dung cc thanh ghi ny trong PCB l do tin trnh c th b chuyn khi trng thi chy nhng ch cho tin trnh khc (chng hn khi c ngt). Khi tin trnh chy tr li, h iu hnh s s dng thng tin t PCB khi phc li ni dung cc thanh ghi, cho php tin trnh thc hin li t trng thi trc lc b dng. - Thng tin phc v vic iu tin trnh: bao gm thng tin v mc u tin ca tin trnh so vi cc tin trnh khc, v tr tin trnh trong cc hng i, v c th cc thng tin khc nh lng ti nguyn tin trnh ang s hu. H iu hnh s dng nhng thng tin ny iu , tc l quyt nh th t v thi gian c cp CPU ca tin trnh. - Thng tin v b nh ca tin trnh: h iu hnh cn bit tin trnh nm u trong b nh. Ty m hnh t chc b nh c th, thng tin loi ny c th gm cc bng trang, bng on, a ch c s ca tin trnh .v.v. - Danh sch cc ti nguyn khc: bao gm danh sch cc file ang m ca tin trnh, cc thit b vo ra tin trnh ang s dng. - Thng tin thng k phc v qun l: thng tin loi ny thng c s dng phc v thng k hoc tnh ton chi ph i vi cc h thng dng chung (nh khi i thu my tnh) v bao gm thng tin v thi gian s dng CPU, gii hn thi gian, ti khon ca ngi s hu tin trnh .v.v. 2.1.4. Bng v danh sch tin trnh qun l, h iu hnh cn bit v tr cc PCB. lm c iu ny, h iu hnh s dng bng tin trnh cha con tr ti PCB ca ton b tin trnh c trong h thng (xem hnh 2.2). V tr c th trong bng c xc nh nh s nh danh ca tin trnh.
B ng ti n trnh Con tr t i b ng ti n trnh Ti n trnh 1 Ti n trnh 2 Ti n trnh 3

PCB 1

.
Ti n trnh n

PCB n

Hnh 2.2: Bng tin trnh cha con tr ti cc PCB

T Minh Phng - HVCNBCVT

30

Qun l tin trnh Ngoi ra, thun tin cho vic iu , PCB ca cc tin trnh ang c trong h thng c lin kt thnh thnh mt s danh sch, mi danh sch bao gm tin trnh c cng trng thi hoc tin trnh ang cng ch i mt ti nguyn no . V d, PCB ca tin trnh ang trng thi sn sng s c lin kt vo danh sch sn sng. Danh sch c qun l nh hai con tr tr ti PCB u tin v PCB cui cng trong danh sch, cc PCB trong danh sch c lin kt vi nhau (xem hnh 2.3). Khi iu , h iu hnh xem xt danh sch sn sng chn ra tin trnh tip theo c cp pht CPU.
ang ch y

PCB

S n sng

PCB

PCB

PCB

Ch i c a

PCB

PCB

Hnh 2.3: Danh sch lin kt PCB thuc cc trng thi khc nhau Trn hnh 2.3 l mt s danh sch c h iu hnh s dng nh danh sch tin trnh sn sng, danh sch tin trnh ang ch i ti nguyn c th no . 2.1.5. Cc thao tc vi tin trnh Hot ng qun l tin trnh bao gm mt s cng vic nh to mi v kt thc tin trnh, chuyn i gia cc tin trnh, iu , ng b ha, m bo lin lc gia cc tin trnh. Trong phn ny, ta s xem xt cc thao tc to mi, kt thc v chuyn i gia cc tin trnh. Nhng ni dung khc s c xem xt trong cc phn sau. To mi tin trnh Mt tin trnh c th to ra tin trnh mi bng cch gi li gi h thng tng ng ca h iu hnh. Khi ngi dng chy chng trnh, trnh dch lnh ca h iu hnh, v d Windows Explorer, chnh l tin trnh yu cu thc hin li gi h thng to mi tin trnh. Tin trnh c to mi gi l tin trnh con, tin trnh to ra tin trnh con gi l tin trnh cha. Nu tin trnh con tip tc to ra tin trnh mi th dn dn s c mt cy tin trnh. to ra tin trnh mi, h iu hnh thc hin mt s bc sau: a) Gn s nh danh cho tin trnh c to mi v to mt trong bng tin trnh. b) To khng gian nh cho tin trnh v PCB. Kch thc khng gian nh c tnh ton da trn thng tin v tin trnh m h iu hnh c. Ty theo cch to mi,
T Minh Phng - HVCNBCVT 31

Qun l tin trnh khng gian nh ca tin trnh con c th chia s hoc khng chia s vi tin trnh cha. c) Khi to PCB. H iu hnh gn gi tr cho cc thnh phn ca PCB. a s gi tr ban u c gn theo mc nh (v d gi tr khng), tr s nh danh tin trnh, con tr lnh, con tr ngn xp v mt s gi tr khc. d) Lin kt PCB ca tin trnh vo cc danh sch qun l, v d danh sch tin trnh mi khi to, t con tr trong bng tin trnh tr ti PCB. C hai kiu to mi tin trnh khc nhau: - Tin trnh con l mt bn sao ca tin trnh cha, tc l c cng phn m chng trnh v phn d liu. Cch ny c thc hin trong h iu hnh UNIX bng cch gi lnh fork(). - Tin trnh con c to thnh t mt chng trnh mi. y l cch to tin trnh c s dng trong Windows (bng cch gi li gi h thng CreateProcess()). Kt thc tin trnh Tin trnh c th yu cu h iu hnh kt thc mnh bng cch gi li gi h thng exit(). Tin trnh thng kt thc khi thc hin xong v c gi l kt thc bnh thng. Ngoi ra, tin trnh c th kt thc trong mt s trng hp sau: - B tin trnh cha kt thc. Thng thng, tin trnh cha c quyn kt thc tin trnh con do mnh to ra v c th s dng quyn ny khi khng cn tin trnh con na hoc khi tin trnh con dng qu nhiu ti nguyn. Khi tin trnh cha kt thc, h iu hnh cng c th xa mi tin trnh con v tin trnh hu du ca tin trnh cha. - Do cc li. C nhiu loi li c th dn ti tin trnh b kt thc nh: li truy cp vng b nh hoc thit b vo/ra khng c php truy cp; cc li s hc nh chia cho khng, trn s; li vo/ra nh khi ghi ra a mt s ln khng thnh cng. - Tin trnh yu cu nhiu b nh hn so vi lng b nh h thng c th cung cp. - Tin trnh thc hin lu hn thi gian gii hn. Tnh hung ny xy ra i vi h thng nhiu ngi dng nh cc siu my tnh v i hi ng k trc thi gian chy cho tin trnh. Gii hn thi gian cng c th dng vi cc h thng tng tc trc tip v c tnh bng thi gian t lc ngi dng yu cu cho ti khi tin trnh phn ng li. - Do qun tr h thng hoc h iu hnh kt thc. V d khi xy ra cc tnh hung nh b tc (xem phn v b tc). Chuyn i gia cc tin trnh Trong qu trnh thc hin, CPU c th c chuyn t tin trnh hin thi sang thc hin tin trnh khc hoc m un x l ngt ca h iu hnh. Trong nhng trng hp nh vy, h iu hnh cn lu gi cc thng tin v tnh trng ca tin trnh hin thi c th khi phc v thc hin li tin trnh t im b dng. Thng tin v tin trnh hin thi c gi l
T Minh Phng - HVCNBCVT 32

Qun l tin trnh ng cnh (context) ca tin trnh, vic chuyn gia tin trnh, do vy, cn c gi l chuyn i ng cnh. Vic chuyn tin trnh xy ra trong hai trng hp sau: 1) Khi c ngt. Ngt l kt qu ca cc s kin bn ngoi tin trnh (gi l ngt ngoi) hoc do li pht sinh trong bn thn tin trnh (gi l ngt trong). Mt s loi ngt ngoi thng dng bao gm: ngt do ng h, c sinh ra do ng h ca h thng sau nhng khong thi gian nht nh v thng c s dng phn phi CPU cho tin trnh khc sau khi tin trnh hin thi chy ht khong thi gian c phn b; ngt vo/ra, v d khi ngi dng g bn phm hoc khi kt thc c d liu t a. Ngt trong l ngt sinh ra khi c cc li nghim trng hoc nhng tnh hung khin tin trnh khng th thc hin tip. CPU s chuyn sang thc hin m un x l li ca h iu hnh. 2) Khi tin trnh gi li gi h thng. V d tin trnh c th gi lnh c file ca h iu hnh. Do kt qu cc lnh nh vy, h thng s chuyn t tin trnh gi li gi h thng sang thc hin hm x l li gi h thng nm trong thnh phn h iu hnh. Nh ni trn, ng cnh ca tin trnh c cha trong PCB. Trc khi chuyn sang thc hin tin trnh khc, ng cnh (bao gm ni dung cc thanh ghi, thng tin v b nh ) c lu vo PCB. Khi tin trnh c cp pht CPU thc hin tr li, ng cnh s c khi phc t PCB vo thanh ghi v nhng bng tng ng. Vn y l ng cnh phi bao gm nhng thng tin no ? Ni cch khc, thng tin no phi c cp nht v lu vo PCB khi chuyn tin trnh? Ty tng trng hp c th, nhng thng tin ny c th khc nhau. Trong trng hp n gin nht, h thng chuyn sang thc hin ngt vo/ra, sau quay li thc hin tip tin trnh hin thi. Ng cnh cn lu khi s bao gm nhng thng tin c th b hm x l ngt lm thay i, c th l ni dung cc thanh ghi v trng thi CPU. Nhng thng tin ny c lu vo cc vng tng ng trong PCB. Khi kt thc ngt, gi tr cc thanh ghi v trng thi CPU c cp nht li t PCB v tin trnh c th thc hin li t v tr trc khi b ngt. Trong trng hp phc tp hn, sau khi thc hin ngt, h thng c th chuyn sang thc hin tin trnh khc, chng hn do kt qu iu tin trnh. Trong trng hp nh vy, vic chuyn i ng cnh s bao gm thm mt s thao tc khc nh: thay i trng thi tin trnh, cp nht thng tin thng k trong PCB, chuyn lin kt PCB ca tin trnh vo danh sch ng vi trng thi mi, cp nht PCB ca tin trnh mi c chn, cp nht ni dung thanh ghi v trng thi CPU bng thng tin ly t PCB ca tin trnh mi c chn. Nh vy, chuyn tin trnh, h thng cn thc hin mt s bc lin quan ti vic lu v khi phc ng cnh. Vic chuyn tin trnh, do vy, i hi thi gian cng vi ti nguyn h thng v c th nh hng ti tc nu din ra qu thng xuyn.
T Minh Phng - HVCNBCVT 33

Qun l tin trnh 2.2. DNG Dng thc hin (thread), gi tt l dng, l mt khi nim quan trng trong cc h iu hnh hin i, c nh hng ln ti vic t chc v qun l tin trnh. y l thut ng cha c cch dch thng nht sang ting Vit. Ti liu ting Vit hin nay s dng mt s thut ng khc nhau cho dng nh: dng, lung, tiu trnh. Trong ti liu ny, chng ti s thng nht s dng dng cho khi nim thread. 2.2.1. Dng thc hin l g Trong phn trc, ta thy tin trnh c th c xem xt t hai kha cnh: th nht, tin trnh l mt n v s hu ti nguyn, v th hai: tin trnh l mt n v thc hin cng vic tnh ton x l. Vi vai tr s hu ti nguyn, tin trnh c cp mt s ti nguyn nh b nh, cc file m, thit b vo/ra, m tin trnh c th dng phc v nhu cu ca mnh. Vi vai tr n v x l, tin trnh c cp CPU thc hin cc lnh ca mnh. Khi cp pht CPU, h iu hnh s quan tm ti vai tr n v x l ca tin trnh, c th c lp vi vai tr s hu ti nguyn. Trong cc h iu hnh trc y, mi tin trnh ch tng ng vi mt n v x l duy nht. Cc lnh ca tin trnh c thc hin theo mt th t no ph thuc vo chng trnh, d liu, v tnh hung r nhnh c th trong khi thc hin, nhng mi thi im vng i ca tin trnh ch c th tng ng vi mt im nht nh trong chui lnh c thc hin. iu ny c ngha l tin trnh khng th thc hin nhiu hn mt cng vic cng mt lc. H iu hnh hin i thng cho php tch ring vai tr thc hin lnh ca tin trnh. Mi n v thc hin ca tin trnh, tc l mt chui lnh c cp pht CPU thc hin c lp c gi l mt dng thc hin. H iu hnh hin nay thng h tr a dng (multithreading), tc l cho php nhiu chui lnh c thc hin cng lc trong phm vi mt tin trnh (cn lu , i vi my tnh vi mt CPU, ti mi thi im ch c mt dng c thc hin, nhng cc dng s ln lt c phn phi CPU tng t cch chia s thi gian gia cc tin trnh). Minh ha khi nim dng trong tin trnh c th hin trn hnh 2.4.

Hnh 2.4: Tin trnh v dng


T Minh Phng - HVCNBCVT 34

Qun l tin trnh Vic s dng nhiu dng c th minh ha qua mt s trng hp sau. Trnh duyt web thng dng nh IE hay Firefox u cho php va ti d liu trang web v va hin th ni dung trang v phn nh trnh cho ngi dng khng phi ch i cho n khi ti c ton b d liu. lm c iu ny, trnh duyt c t chc thnh mt s dng thc hin song song vi nhau. Trong khi mt dng ang ti d liu th dng khc hin th d liu nhn c. Mt minh ha khc l nhng ng dng phi thc hin ng thi mt s cng vic tng t nhau, chng hn nhng h thng client-server trong mt server phi phc v nhiu client. Ly v d h thng bn v my bay. Phn ci trn cc i l (client) s lin lc vi phn trung tm (server) nhn d liu v gi cc yu cu t, gi v. Cng mt thi im c th c rt nhiu client cng lin lc vi server. phc v nhiu client cng mt lc, trong cc h thng khng s dng a dng, server s phi sinh ra rt nhiu tin trnh, mi tin trnh phc v mt client. y chnh l cch nhng h thng trc y s dng. Hin nay, cc h thng xy dng trn h iu hnh hin i s dng m hnh a dng gii quyt vn loi ny. Tin trnh ca server duy tr mt dng lm nhim v nhn yu cu t pha client. Khi nhn c yu cu, server s to ra mt dng mi v chuyn yu cu cho dng ny x l. Dng nhn yu cu sau li c gii phng ch nhn yu cu khc. u im chnh ca cch tip cn nhiu dng l qu trnh to ra dng mi nhanh hn nhiu so vi to ra tin trnh mi. Ngoi ra cn mt s u im khc s c phn tch trong phn sau. 2.2.2. Ti nguyn ca tin trnh v dng Trong h thng cho php a dng, tin trnh vn l n v c h iu hnh s dng phn phi ti nguyn. Mi tin trnh s s hu chung mt s s ti nguyn bao gm: - Khng gian nh ca tin trnh. y l khng gian nh lgic, c th l khng gian nh o, c s dng cha phn chng trnh (cc lnh), phn d liu ca tin trnh. - Cc ti nguyn khc nh file do tin trnh m, thit b hoc cng vo/ra. n y c s khc bit gia tin trnh n dng v tin trnh a dng nh th hin trn hnh 2.5. Trong m hnh n dng, tin trnh s c khi qun l tin trnh PCB cha y thng tin v trng thi tin trnh, gi tr cc thanh ghi. Tin trnh cng c ngn xp ca mnh cha tham s v trng thi hm/th tc/chng trnh con khi thc hin chng trnh con. Khi tin trnh thc hin, tin trnh s lm ch ni dung cc thanh ghi v con tr lnh ca mnh. Khi chuyn i tin trnh, nhng thng tin ny s c lu vo PCB nh ni trn. i vi m hnh a dng, do mi dng c chui thc hin ring ca mnh, mi dng cn c kh nng qun l con tr lnh, ni dung thanh ghi. Dng cng c trng thi ring nh chy, b kha, sn sng. Nhng thng tin ny c cha trong khi qun l dng, thay v cha trong PCB chung cho c tin trnh. Ngoi ra, mi dng cn c ngn xp ring ca mnh, dng cho trng hp thc hin chng trnh con. Nh vy, trong m hnh a dng, tt c dng ca mt tin trnh chia s khng gian nh v ti nguyn ca tin trnh . Cc dng c cng khng gian a ch v c th truy cp ti d liu (cc bin, cc mng) ca tin trnh. Nu mt dng thay i ni dung ca bin no ,
T Minh Phng - HVCNBCVT 35

Qun l tin trnh dng khc s nhn ra s thay i ny khi c bin . Nh cch t chc ny, m hnh a dng c mt s u im nh s phn tch trong phn sau.

chng trnh

d li u

ti nguyn khc

chng trnh

d li u

ti nguyn khc

kh i qu n l ti n trnh PCB

ngn x p

kh i qu n l dng ngn x p

kh i qu n l dng ngn x p

kh i qu n l dng ngn x p

Ti n trnh n dng

Ti n trnh nhi u dng

Hnh 2.5: M hnh n dng v a dng 2.2.3. u im ca m hnh a dng So vi cch t chc tin trnh ch cha mt dng, m hnh nhiu dng trong mt tin trnh c nhng u im chnh sau y: 1) Tng hiu nng v tit kim thi gian. Vic to, xa tin trnh i hi cp pht, gii phng b nh v ti nguyn ca tin trnh, do vy tn thi gian. Do dng dng chung ti nguyn vi tin trnh nn to v xa dng khng i hi nhng cng on ny, nh vy tn t thi gian hn nhiu. Vic chuyn i dng cng nhanh hn chuyn i dng, do ng cnh ca dng t thng tin hn. Trong mt s h iu hnh, thi gian to mi dng t hn vi chc ln so vi to mi tin trnh. 2) D dng chia s ti nguyn v thng tin. Cc dng ca mt tin trnh dng chung khng gian a ch v ti nguyn. Ti nguyn dng chung cho php dng d dng lin lc vi nhau, v d bng cch ghi v c vo nhng bin (vng b nh) chung. 3) Tng tnh p ng. Tnh p ng (responsiveness) l kh nng tin trnh phn ng li vi yu cu ca ngi dng hoc tin trnh khc. Nh m hnh a dng, tin trnh c th s dng mt dng thc hin nhng thao tc i hi nhiu thi gian nh c file di, v s dng mt dng khc tip nhn v x l yu cu ca ngi dng, nh vy, tng kh nng p ng. Vic tng tnh p ng rt quan trng i vi h thng tng tc trc tip, trnh cho ngi dng cm gic tin trnh b treo.

T Minh Phng - HVCNBCVT

36

Qun l tin trnh 4) Tn dng c kin trc x l vi nhiu CPU. Trong h thng nhiu CPU, cc dng c th chy song song trn nhng CPU khc nhau, nh vy tng c tc x l chung ca tin trnh. 5) Thun li cho vic t chc chng trnh. Mt s chng trnh c th t chc d dng di dng nhiu dng thc hin ng thi. in hnh l nhng chng trnh bao gm nhiu thao tc khc nhau cn thc hin ng thi, hay chng trnh i hi vo/ra t nhiu ngun v ch khc nhau. V d, mt chng trnh th hin mt vt chuyn ng v pht ra m thanh c th t chc thnh hai dng ring, mt dng chu trch nhim phn ha, mt dng chu trch nhim phn m thanh. 2.2.4. Dng mc ngi dng v dng mc nhn trn, ta xem xt khi nim dng v li ch ca vic s dng m hnh tin trnh vi nhiu dng. Tip theo ta s xem xt vn trin khai, c th l dng c to ra v qun l nh th no? Nhn chung, c th to ra v qun l dng hai mc: mc ngi dng v mc nhn. Dng mc ngi dng c to ra v qun l khng c s h tr ca h iu hnh. Trong khi , dng mc nhn c to ra nh h iu hnh v c h iu hnh qun l. Dng mc nhn cn c gi l cc tiu trnh nhn mnh s h tr trc tip ca h iu hnh tng t nh i vi tin trnh. a) Dng mc ngi dng. Dng mc ngi dng do trnh ng dng t to ra v qun l, h iu hnh khng bit v s tn ti ca nhng dng nh vy. to ra dng mc ngi dng, trnh ng dng s dng th vin do ngn ng lp trnh cung cp, v d nh khi lp trnh trn Java. Th vin h tr dng thng bao gm cc hm to, xa dng, ng b dng, thit lp mc u tin v iu dng, hm to lin lc vi dng khc v hm cho php lu/khi phc ng cnh ca dng. Do h iu hnh khng bit v s tn ti ca dng mc ngi dng, h iu hnh vn coi tin trnh nh mt n v duy nht vi mt trng thi tin trnh duy nht. Vic phn phi CPU c thc hin cho c tin trnh thay v cho tng dng c th (xem hnh 2.6.a). Vic s dng dng mc ngi dng c mt s u im sau: - Th nht, do dng c to ra v qun l trong khng gian ngi dng nn vic chuyn i dng khng i hi phi chuyn sang ch nhn v do vy tit kim thi gian hn. - Th hai, trnh ng dng c th iu dng theo c im ring ca mnh, khng ph thuc vo phng thc iu ca h iu hnh. - Th ba, c th s dng dng mc ngi dng c trn nhng h iu hnh khng h tr a dng bng cch b sung th vin dng m cc ng dng c th dng chung. Bn cnh , s dng dng mc ngi dng b nh hng bi mt s nhc im di y: - Khi mt dng ca tin trnh gi li gi h thng v b phong ta (tc l phi i cho
T Minh Phng - HVCNBCVT 37

Qun l tin trnh ti khi thc hin xong li gi h thng), th ton b tin trnh s b phong ta v phi i cho ti khi li gi h thng thc hin xong. Nh vy, dng mc ngi dng khng cho php tn dng u im v tnh p ng ca m hnh a dng. - Cch t chc ny khng cho php tn dng kin trc nhiu CPU. Do h iu hnh phn phi CPU cho c tin trnh ch khng phi tng dng c th nn tt c cc dng ca tin trnh phi chung nhau mt CPU thay v thc hin song song trn nhiu CPU khc nhau. C mt s th vin h tr dng mc ngi dng c s dng trn thc t, trong c th k n Green threads cho h iu hnh Solaris v th vin GNU Portable threads.

ch ng i dng ch nhn P a) M hnh m c ng i dng

ch ng i dng ch nhn

P b) M hnh m c nhn

ch ng i dng ch nhn

dng m c ng i dng

dng m c nhn

P P c) M hnh k t h p

ti n trnh

Hnh 2.6: M hnh s dng dng mc ngi dng v dng mc nhn b) Dng mc nhn Dng mc nhn c h iu hnh to ra v qun l. H iu hnh s cung cp giao din lp trnh bao gm mt s li gi h thng m trnh ng dng c th gi yu cu
T Minh Phng - HVCNBCVT 38

Qun l tin trnh to/xa dng v thay i tham s lin quan ti qun l dng. H iu hnh Windows v Linux l hai v d trong vic h tr dng mc nhn nh vy. u im ch yu ca dng mc nhn l khc phc c cc nhc im ca dng mc ngi dng. C th l vic s dng dng mc nhn cho php tng tnh p ng v kh nng thc hin ng thi ca cc dng trong cng mt tin trnh. Trn h thng vi nhiu CPU, dng mc nhn c th c cp CPU khc nhau thc hin song song. Nhc im ch yu ca dng mc nhn so vi dng mc ngi dng l tc . Vic to v chuyn dng i hi thc hin trong ch nhn v do vy cn mt s thao tc chuyn t ch ngi dng sang ch nhn v ngc li. c) Kt hp dng mc ngi dng v dng mc nhn C th kt hp s dng dng mc ngi dng vi dng mc nhn. Theo cch t chc ny, dng mc ngi dng c to ra trong ch ngi dng nh th vin. Sau , dng mc ngi dng c nh x ln mt s lng tng ng hoc t hn dng mc nhn. S lng dng mc nhn ph thuc vo h thng c th, chng hn h thng nhiu CPU s c nhiu dng mc nhn hn. Cng c trng hp h thng cho php ngi lp trnh iu chnh s lng ny. Vic kt hp dng mc ngi dng vi dng mc nhn cho php kt hp u im ca hai phng php ring l. Trnh ng dng c th to ra rt nhiu dng mc ngi dng. Ty thuc vo s lng CPU, mt s dng c th chy song song vi nhau. Ngoi ra khi c dng b phong ta, h iu hnh c th phn phi CPU cho dng khc thc hin. 2.3. IU TIN TRNH 2.3.1. Khi nim iu Trong h thng cho php a chng trnh, nhiu tin trnh c th tn ti v thc hin cng mt lc. K thut a chng trnh c nhiu u im do cho php s dng CPU hiu qu, ng thi p ng tt hn yu cu tnh ton ca ngi dng. Bn cnh , a chng trnh cng t ra nhiu vn phc tp hn i vi h iu hnh. Mt trong nhng vn c bn khi thc hin a chng trnh l vn iu . iu (scheduling) hay lp lch l quyt nh tin trnh no c s dng ti nguyn phn cng khi no, trong thi gian bao lu. Bi ton iu c t ra vi mi dng ti nguyn khc nhau, chng hn thit b vo ra, CPU, b nh, k c trong trng hp c chia s thi gian hay khng. Trong phn ny, chng ta s tp trung vo vn iu i vi CPU, gi l iu CPU, hay l iu tin trnh. i vi h thng bao gm mt CPU duy nht, ti mi thi im ch mt tin trnh c cp CPU thc hin. H iu hnh c th ch cho ti khi tin trnh khng s dng CPU na hoc ch ng iu li chuyn CPU sang thc hin tin trnh khc, ty thuc vo phng php iu c th. Nh vy iu tin trnh l quyt nh th t v thi gian s dng CPU. i vi h thng nhiu CPU, vic iu thng phc tp hn, v s khng c cp ti y.
T Minh Phng - HVCNBCVT 39

Qun l tin trnh iu tin trnh v iu dng. Trong nhng h thng trc y, tin trnh l n v thc hin chnh, l i tng c cp CPU, v vic iu c thc hin i vi tin trnh. H thng hin nay thng h tr dng. Trong trng hp ny, dng mc nhn l n v thc hin c h iu hnh cp pht CPU ch khng phi tin trnh, v do vy vic iu c h iu hnh thc hin trc tip vi dng. Tuy nhin, thut ng iu tin trnh vn c s dng rng ri v c hiu tng ng vi iu dng, tr khi c gii thch c th. 2.3.2. Cc dng iu iu di hn v ngn hn Trong mt s h thng, iu tin trnh c phn chia thnh mt s mc khc nhau, bao gm: iu di hn, iu trung hn, v iu ngn hn. Theo nh tn gi, iu di hn c thc hin cho nhng khong thi gian di v t din ra nht. Ngc li, iu ngn hn din ra thng xuyn, iu trung hn chim v tr gia. iu di hn c thc hin khi mi to ra tin trnh. H iu hnh quyt nh xem tin trnh c c thm vo danh sch ang hot ng hay khng. Nu c chp nhn, trong h thng s thm tin trnh mi. Ngc li, tin trnh s phi ch ti thi im khc c to ra v thc hin. iu di hn nh hng ti mc a chng trnh, tc l s lng tin trnh ti a trong h thng. Trong my tnh c nhn, ngi dng t cm nhn c nh hng ca iu di hn do hu ht tin trnh u c chp nhn to mi. i vi nhng my tnh ln c s dng chung, iu di hn ng vai tr quan trng v r rng hn. iu trung hn l quyt nh tin trnh c c cp b nh thc hin khng. thc hin c, tin trnh cn c ti vo b nh hon ton, hoc mt phn nu s dng b nh o. Trong mt s trng hp nh khi mi khi to v b nh c np trang theo nhu cu, hay khi tin trnh b trao i ra a (swapping) nhng ch cho tin trnh khc, h iu hnh cn quyt nh c cho php ti tin trnh vo b nh thc hin khng. iu trung hn cng nh hng ti mc a chng trnh v c quyt nh da trn mc u tin cng tnh trng h thng. Cc tin trnh c to mi v c ti vo b nh do kt qu iu di hn v trung hn c xp vo hng i iu ngn hn. iu ngn hn l quyt nh tin trnh no c cp CPU thc hin. Vic iu ngn hn c thc i vi nhng tin trnh ang trng thi sn sng. H iu hnh la chn mt tin trnh ang trong b nh v sn sng thc hin cp pht CPU. Vic la chn tin trnh c thc hin theo mt thut ton no . Cc dng iu gn lin vi vic chuyn tin trnh t trng thi ny sang trng thi khc. Hnh 2.7 minh ha quan h gia trng thi tin trnh v ba dng iu trn. Trong cc phn tip theo, chng ta ch xem xt vn iu ngn hn. V vy, nu khng ni g thm, iu tin trnh c hiu l iu ngn hn hay iu CPU. iu c phn phi li Ty thuc vo vic h iu hnh c th thc hin iu khi mt tin trnh ang s dng CPU hay khng, ta phn bit iu khng phn phi li (nonpreemptive) v iu c phn phi li (preemptive).
T Minh Phng - HVCNBCVT 40

Qun l tin trnh


i u di h n i u ng n h n M i kh i t o S n sng Ch y K t thc

i u trung h n

Ch i

Hnh 2.7: Cc dng iu

iu c phn phi li l kiu iu trong h iu hnh c th s dng c ch ngt thu hi CPU ca mt tin trnh ang trong trng thi chy, tc l tin trnh ang s dng CPU thc hin lnh ca mnh. Vi kiu iu ny, h iu hnh c th phn phi li CPU mt cch ch ng, khng cn ch cho ti khi tin trnh ang chy kt thc hoc chuyn sang trng thi ch i. iu khng phn phi li l kiu iu trong tin trnh ang trng thi chy s c s dng CPU cho n khi xy ra mt trong cc tnh hung sau: tin trnh kt thc, hoc tin trnh phi chuyn sang trng thi ch i do thc hin yu cu vo/ra hoc li gi h thng, hoc ch i tn hiu ng b t tin trnh khc. iu khng phn phi li cn gi li iu hp tc (cooperative), do vic iu ch c th thc hin khi tin trnh th hin thi hp tc v nhng li CPU do khng cn dng na. Trong trng hp tin trnh khng hp tc v chim CPU v hn, v d khi s dng vng lp v hn khng cha li gi h thng, cc tin trnh khc s khng bao gi c cp CPU. Cc phin bn u tin ca Windows l Windows 3.x s dng iu khng phn phi li. Windows 95, NT v cc phin bn sau s dng iu c phn phi li, cho php thc hin a chng trnh v chia s thi gian ng ngha v tin cy hn. So vi iu khng phn phi li, iu c phn phi li c nhiu u im hn do h iu hnh ch ng hn, khng ph thuc vo hot ng ca tin trnh. Ch c iu phn phi li mi m bo chia s thi gian thc s. Tuy nhin, iu c phn phi li i hi phn cng phi c b nh thi gian (timer) v mt s h tr khc. Bn cnh , iu c phn phi li cng lm cho vn qun l tin trnh phc tp hn, c bit trong trng hp cc tin trnh chia s d liu dng chung hoc c cnh tranh v ti nguyn. Ly v d hai tin trnh cng s dng mt mng d liu chung. Do c phn phi li, CPU c th c thu hi t tin trnh th nht cp cho tin trnh th hai khi cha tin

T Minh Phng - HVCNBCVT

41

Qun l tin trnh trnh th nht cha cp nht xong d liu. Nu tin trnh th hai c d liu khi s nhn c d liu khng nht qun. 2.3.3. Cc tiu ch iu Cc tin trnh trong trng thi sn sng c xp vo hng i ch c iu , tc l ch c cp CPU thc hin. H iu hnh s dng thut ton iu la chn tin trnh c cp CPU tip theo. Mi thut ton thng tt cho mt s trng hp c th ty vo iu kin h thng v tiu ch iu . C nhiu tiu ch c s dng khi iu CPU v nh gi thut ton. Mt s tiu ch ch trng ti vic khai thc hiu qu h thng trong khi mt s tiu ch tp trung nng cao tnh tin li cho ngi dng. Sau y l mt s tiu ch thng s dng: Lng tin trnh c thc hin xong. Tiu ch ny c tnh bng s lng tin trnh thc hin xong trong mt n v thi gian. Trn thc t, thi gian thc hin tin trnh rt khc nhau, c tin trnh cn nhiu thi gian, c tin trnh t hn. Tuy nhin, tiu ch ny mang tnh trung bnh v l mt o tnh hiu qu ca h thng. Hiu sut s dng CPU. Mt trong nhng yu cu s dng hiu qu h thng l c gng CPU cng t phi ngh cng tt. T l phn trm thi gian CPU trong trng thi hot ng thay i ty h thng c th. Thi gian vng i trung bnh tin trnh. c tnh bng thi gian t lc c yu cu khi to tin trnh ti khi tin trnh kt thc. Thi gian ny bng tng thi gian ti tin trnh, thi gian ch i, chy, vo/ra d liu. Thi gian ch i. Tnh bng tng thi gian tin trnh nm trong trng thi sn sng v ch c cp CPU. Lu rng, thi gian ch i ln hay nh chu nh hng trc tip ca thut ton iu CPU. Thi gian p ng. y l tiu ch hng ti ngi dng v thng c s dng trong h thng tng tc trc tip. i vi h thng nh vy, tiu ch quan trng l m bo thi gian t lc nhn c yu cu cho ti khi h thng c phn ng hay p ng u tin khng qu lu.

Trong s cc tiu ch ni trn, hai tiu ch u tin c gi tr cng ln cng tt, trong khi ba tiu ch cui l thi gian ch i v thi gian p ng cng nh cng tt. Ring i vi thi gian p ng, bn cnh vic m bo gi tr p ng trung bnh nh cng cn m bo khng tin trnh no c thi gian p ng qu lu. Bn cnh nhng tiu ch ni trn, mt yu cu quan trng l m bo tnh n nh ca h thng, th hin qua vic gi tr tiu ch trong tng trng hp c th khng lch qu xa so vi gi tr trung bnh ca tiu ch . Ngoi ra nhng tin trnh ging nhau cn c i x cng bng. Cc yu cu ny c th hin qua hai tiu ch b sung sau: Tnh d on c. Vng i, thi gian ch i, v thi gian p ng ca mt tin trnh c th phi n nh, khng ph thuc vo ti ca h thng. V d, ngi s dng phi nhn c p ng t h thng trong mt thi gian chp nhn c v khng b thay i ln trong bt k tnh hung no.
42

T Minh Phng - HVCNBCVT

Qun l tin trnh Tnh cng bng. Nhng tin trnh cng u tin phi c i x nh nhau, khng tin trnh no b i ti nguyn hn nhng tin trnh khc. Trong phn sau, ta s s dng nhng tiu ch trn khi xem xt thut ton iu c th. 2.3.4. Cc thut ton iu Nhiu thut ton iu tin trnh c xut v s dng trn thc t. Sau y l nhng thut ton tiu biu hoc thng gp nht. a. Thut ton n trc phc v trc n trc phc v trc (First Come First Served vit tt l FCFS) l phng php iu n gin nht, c v nguyn tc v cch thc hin. Tin trnh yu cu CPU trc s c cp CPU trc. H iu hnh xp tin trnh sn sng vo hng i FIFO. Tin trnh mi c xp vo cui hng i, khi CPU c gii phng, h iu hnh s ly tin trnh t u hng i v cp CPU cho tin trnh thc hin. Mc d n gin v m bo tnh cng bng, FCFS c thi gian ch i trung bnh ca tin trnh ln do phi ch i tin trnh c chu k CPU di trong trng hp nhng tin trnh nh vy nm u hng i. minh ha, ta xt v d: cho 3 tin trnh vi th t xut hin v di chu k CPU nh sau: Tin trnh P1 P2 P3 10 10 P1 4 P2 di chu k CPU 10 4 2 14 2 P3

Kt qu iu theo thut ton FCFS th hin trn hnh sau:

Thi gian ch i ca P1, P2, P3 ln lt l 0, 10, v 14. Thi gian ch i trung bnh = (0 + 10 + 14)/3 = 8. C th thy thi gian ch i trung bnh nh vy l rt ln, chng hn so vi trng hp tin trnh c cp CPU theo th t P3, P2, P1. Khi thi gian ch i trung bnh gim xung ch cn (6 + 2 + 0)/3 = 2,67. Cn lu rng vic tng thi gian ch i CPU ca tin trnh nh hng rt ln ti hiu sut chung ca h thng do nhiu tin trnh phi dn li ch mt tin trnh trong khong thi gian qu lu, dn ti tnh trng khng tin trnh no thc hin c cng vic ca mnh, k c vo ra. Kt qu l ton h thng phi dng li ch gii phng CPU. Thut ton FCFS thng thng l thut ton iu khng phn phi li. Sau khi tin trnh c cp CPU, tin trnh s s dng CPU cho n khi kt thc hoc phi dng li ch kt qu vo ra. c th s dng c trong nhng h thng chia s thi gian, thut ton
T Minh Phng - HVCNBCVT 43

Qun l tin trnh n trc phc v trc c ci tin thm c ch phn phi li. Ta s xem xt thut ton iu nh vy trong mt phn sau. b. iu quay vng iu quay vng (round robin - RR) l phin bn sa i ca FCFS c dng cho cc h chia s thi gian. iu quay vng tng t FCFS nhng c th c ch phn phi li bng cch s dng ngt ca ng h. H thng nh ngha nhng khong thi gian nh gi l lng t thi gian (time quantum) hay lt ct thi gian (time slice) c di t vi mili giy ti vi trm mili giy ty vo cu hnh c th. Tin trnh s ln lt c cp CPU trong nhng khong thi gian nh vy trc khi b ngt v CPU c cp cho tin trnh khc. Ging nh FCFS, tin trnh sn sng c xp vo hng i sao cho tin trnh n sau c thm vo cui hng. Khi CPU c gii phng, h iu hnh t thi gian ca ng h bng di lng t, ly mt tin trnh u hng i v cp CPU cho tin trnh. Sau khi c cp CPU, tin trnh chuyn sang trng thi chy. Nu tin trnh kt thc chu k s dng CPU trc khi ht thi gian lng t, tin trnh s gii phng CPU v tr li quyn iu khin cho h iu hnh. Trong trng hp ngc li, khi ht di lng t, ng h s sinh ngt. Tin trnh ang thc hin phi dng li v quyn iu khin chuyn cho hm x l ngt ca h iu hnh. H iu hnh thc hin vic chuyn i ng cnh v chuyn tin trnh v cui hng i sau chn mt tin trnh u v lp li qu trnh trn. iu quay vng cho php ci thin thi gian p ng ca tin trnh so vi FCFS nhng vn c thi gian ch i trung bnh tng i di. Sau y l minh ha cho phng php iu ny vi ba tin trnh P1, P2, P3 ly t v d phn trc v lng t thi gian c di bng 2. 2 2 P1 2 P2 4 2 P3 6 2 P1 8 2 P2 10 12 14 2 2 2 P1 P1 P1

Thi gian ch i ca P1, P2, P3 ln lt l 6, 6, v 4. Thi gian ch i trung bnh = (6 + 6 + 4)/3=5,33. Mt vn quan trng khi iu quay vng l la chn di lng t thi gian. Nu lng t ngn, thi gian p ng s gim. Tuy nhin, vic chuyn i tin trnh din ra thng xuyn i hi nhiu thi gian hn cho vic chuyn i ng cnh. di lng t nn la chn ln hn thi gian cn thit tin trnh thc hin mt thao tc tng tc tiu biu hoc. Ngc li, lng t cng ln cng tn t thi gian chuyn i gia cc tin trnh nhng tnh p ng cng km i. Khi lng t ln ti mt mc no , iu quay vng s tr thnh FCFS. c. iu u tin tin trnh ngn nht Mt phng php iu cho php gim thi gian ch i trung bnh l iu u tin tin trnh ngn nht trc (Shortest Process First - SPF), hay cn c cc tn gi khc nh cng vic ngn nht trc (Shortest Job Fist), tin trnh ngn nht tip theo (Shortest Process Next). Phng php iu ny la chn trong hng i tin trnh c chu k s dng CPU
T Minh Phng - HVCNBCVT 44

Qun l tin trnh tip theo ngn nht phn phi CPU. Trong trng hp c nhiu tin trnh vi chu k CPU tip theo bng nhau, tin trnh ng trc s c chn. u im ln nht ca SPF so vi FCFS l thi gian ch i trung bnh nh hn nhiu. Xt v d iu cho cc tin trnh nh phn trn nhng s dng SPF. 2 2 P3 4 P2 6 10 P1

Thi gian ch i trung bnh = (6 + 2 +0)/3 = 2,67. Mc d iu u tin tin trnh ngn nht c thi gian ch i trung bnh ti u, phng php ny rt kh s dng trn thc t do i hi phi bit trc di chu k s dng CPU tip theo ca tin trnh. C hai cch gii quyt phn no kh khn ny. Cch th nht c p dng i vi h thng x l theo m nh ti cc trung tm tnh ton hiu nng cao hin nay. Qun tr h thng cn c vo thi gian ng k ti a do lp trnh vin cung cp xp nhng ng dng c thi gian ng k ngn hn ln trc. Lu , y l thi gian thc hin c ng dng ch khng phi mt chu k s dng CPU c th. Cch th hai l d on di chu k s dng CPU tip theo. Cch d on n gin nht l da trn di trung bnh cc chu k CPU trc d on di chu k tip theo v ra quyt nh cp CPU. iu u tin tin trnh ngn nht trc l iu khng c phn phi li. Nu mt tin trnh c cp CPU, tin trnh s thc hin cho ti khi khng cn CPU na, k c trong trng hp xut hin tin trnh mi vi chu k s dng CPU ngn hn chu k CPU cn li ca tin trnh ang thc hin. Trong phn tip theo ta s xem xt vic thm c ch phn phi li cho iu u tin tin trnh ngn nht trc. d. iu u tin thi gian cn li ngn nht Phin bn u tin tin trnh ngn nht c thm c ch phn phi li c gi l iu u tin thi gian cn li ngn nht trc (Shortest Remaining Time First SRTF). Khi mt tin trnh mi xut hin trong hng i, h iu hnh so snh thi gian cn li ca tin trnh ang chy vi thi gian cn li ca tin trnh mi xut hin. Nu tin trnh mi xut hin c thi gian cn li ngn hn, h iu hnh s thu hi CPU ca tin trnh ang chy v phn phi cho tin trnh mi. minh ha cho phng php iu ny, ta xt v d sau vi ba tin trnh c chu k CPU v thi gian xut hin trong hng i nh sau: Tin trnh P1 P2 P3
T Minh Phng - HVCNBCVT

Thi im xut hin 0 0 2

di chu k CPU 8 7 2
45

Qun l tin trnh

Kt qu iu s dng SRTF c th hin trn biu sau: 0 2 P2 2 4 P3 6 5 P2 11 8 P1

Cng ging nh iu u tin tin trnh ngn nht, iu u tin thi gian cn li ngn nht c thi gian ch i trung bnh nh nhng i hi h iu hnh phi d on c di chu k s dng CPU ca tin trnh. So vi iu quay vng, vic chuyn i tin trnh din ra t hn v do vy khng tn nhiu thi gian chuyn i ng cnh. e. iu c mc u tin Theo phng php ny, mi tin trnh c mt mc u tin. Tin trnh c u tin hn s c cp CPU trc. Cc tin trnh c mc u tin nh nhau c iu theo nguyn tc FCFS. C th thy hai phng php STF v SRTF trn l trng hp ring ca iu c mc u tin trong tin trnh c thi gian chu k CPU hoc thi gian chu k CPU cn li ngn hn c u tin hn. Trong trng hp tng qut, mc u tin c xc nh theo nhiu tiu ch khc nhau nh yu cu b nh, hn ch thi gian Mc u tin cng c th do ngi qun tr h thng xc nh da trn mc quan trng ca tin trnh. H iu hnh quy nh mc u tin di dng s nguyn trong mt khong no , v d t 0 n 31. Tuy nhin, khng c quy tc chung v vic mc u tin cao tng ng vi s nh hay s to. Mt s h iu hnh coi s 0 ng vi mc u tin cao nht trong khi mt s h iu hnh s dng 0 cho mc u tin thp nht. V d sau minh ha cho iu c mc u tin, trong 0 ng vi mc u tin cao nht v cc s ln hn tng ng vi mc u tin thp hn. Tin trnh P1 P2 P3 Mc u tin 4 1 3

P2

P3

P1

iu c mc u tin va trnh by trn l iu khng phn phi li. Tuy nhin c th thm c ch phn phi li cho phng php ny. Nu tin trnh mi xut hin c mc u tin cao hn tin trnh ang chy, h iu hnh s thu hi CPU v phn phi cho tin trnh mi. f. iu vi nhiu hng i Cc phng php iu trnh by trn u lm vic vi mt hng i duy nht cha tin trnh trng thi sn sng. Tt c tin trnh u c iu theo cng mt thut ton ging nhau. Trn thc t, tin trnh c th phn chia thnh nhiu loi vi c im, quan
T Minh Phng - HVCNBCVT 46

Qun l tin trnh trng v nhu cu s dng CPU khc nhau, mi loi c th i hi phng php iu ring. Ly v d trong my tnh c nhn, trnh son tho bng tnh v bng tnh i hi tng tc trc tip trong khi tin trnh qun l in v qut virut trn a l tin trnh nn. Hai loi tin trnh ny i hi thi gian p ng khc nhau v do vy cn c mc u tin cng nh cch iu khc nhau. iu vi nhiu hng i l phng php iu trong tin trnh c phn chia thnh nhiu loi ty theo c im v u tin. Mi loi c xp trong mt hng i ring v c iu theo mt phng php ph hp vi c im ca loi tin trnh . Thng thng, tin trnh tng tc trc tip c iu theo phng php quay vng RR trong khi tin trnh nn c iu FCFS. Trn 2.8 l mt v d iu vi nhiu hng i. Do c nhiu loi tin trnh nn cn xc nh mc u tin cho tng loi, chng hn tin trnh tng tc trc tip c mc u tin cao hn tin trnh nn. Gia cc hng i vi nhau c th iu theo hai cch sau. Cch th nht l iu theo mc u tin c phn phi li. Tin trnh hng i vi mc u tin thp hn phi nhng cho tin trnh hng i vi mc u tin cao chy trc. Nu c tin trnh mi vi mc u tin cao hn xut hin, tin trnh ang chy phi nhng CPU. Cch th hai l cp cho mi hng i mt khong thi gian nht nh (c th ph thuc vo mc u tin). Tin trnh trong tng hng i c iu theo phng php ca hng i ca mnh trong khong thi gian c cp .
M c u tin cao nh t Cc ti n trnh h th ng

Cc ti n trnh tng tc

Cc ti n trnh x l m

Cc ti n trnh n n M c u tin th p nh t

Hnh 2.8. V d iu vi nhiu hng i

2.4. NG B HA TIN TRNH NG THI Trong nhng h thng cho php nhiu tin trnh v/hoc nhiu dng cng tn ti, do mi quan h trc tip hoc gin tip gia cc tin trnh, nhiu vn phc tp c th pht sinh so vi trng hp ch c mt tin trnh. Nhng tin trnh cng tn ti c gi l tin trnh ng thi (concurrent process) hay cn c gi l tin trnh tng tranh. Vn qun l tin trnh ng thi hay qun l tng tranh l vn quan trng i vi h iu hnh ni ring v khoa hc my tnh ni chung.
T Minh Phng - HVCNBCVT 47

Qun l tin trnh Qun l tin trnh ng thi bao gm nhiu vn lin quan ti lin lc gia cc tin trnh, cnh tranh v chia s ti nguyn, phi hp v ng b ha hot ng cc tin trnh, vn b tc (deadlock) v i ti nguyn (starvation). Phn ny s tp trung vo ng b ha tin trnh, nhng ch khc lin quan ti tin trnh ng thi s c trnh by sau. Cn lu rng, mc d thut ng tin trnh c s dng khi trnh by v ng b ha, cc ni dung trnh by cng ng i vi dng trong h thng cho php a dng. Trn thc t, trong nhng h thng h tr a dng hin nay, hu ht k thut ng b c s dng ng b ha cc dng cng tn ti trong phm vi mt tin trnh. 2.4.1. Cc vn i vi tin trnh ng thi Trong h thng vi mt CPU, thi gian CPU c phn phi cho cc tin trnh ang tn ti trong h thng, ti mi thi im, ch mt tin trnh duy nht c thc hin. i vi h thng nhiu CPU, mt s tin trnh c th thc hin song song vi nhau. Mc d vy, trong c hai trng hp, vn qun l tng tranh u c t ra tng t nhau. L do l ngay c khi ch c mt CPU, do thi gian thc hin v hnh vi ca tng tin trnh khng th d on trc, cng nh do c im iu v kh nng xy ra ngt trong h thng, hot ng ca tin trnh c th xen k theo nhng cch khng th xc nh trc. Sau y l mt s vn c th xy ra vi tin trnh ng thi, ty thuc vo quan h gia cc tin trnh. a. Tin trnh cnh tranh ti nguyn vi nhau Ngay c khi tin trnh khng bit v s tn ti ca nhau, gia tin trnh vn c quan h gin tip v c th b nh hng do cng c nhu cu s dng mt s ti nguyn nh b nh, a, thit b ngoi vi hoc knh vo/ra. Xt trng hp hai tin trnh cng c nhu cu s dng mt ti nguyn. Mc d mi tin trnh khng trao i thng tin vi tin trnh kia nhng do ch mt tin trnh c cp ti nguyn, tin trnh kia s phi ch i, lm nh hng ti thi gian thc hin, v nh vy b nh hng gin tip bi tin trnh cnh tranh. i vi cc tin trnh cnh tranh ti nguyn cn phi gii quyt mt s vn sau: m bo loi tr tng h (mutual exclusion). Gi s hai hoc nhiu tin trnh cng yu cu mt ti nguyn, chng hn my in, v ti nguyn ch c th phc v mt tin trnh ti mi thi im. trnh mu thun v m bo kt qu ng, ta cn m bo loi tr tng h, tc l m bo rng nu mt tin trnh ang s dng ti nguyn th cc tin trnh khc khng c s dng ti nguyn . Ti nguyn nh vy c gi l ti nguyn nguy him (critical resource). on m tin trnh trong cha thao tc truy cp ti nguyn nguy him c gi l on nguy him (critical section). Yu cu t ra l hai tin trnh khng c php thc hin ng thi trong on nguy him ca mnh. gii quyt vn ny cn xy dng c ch cho php phi hp hot ng ca h thng v cc bn thn tin trnh. Khng xy ra b tc (deadlock). Vic m bo loi tr tng h c th gy ra tnh trng b tc, tc l tnh trng hai hoc nhiu tin trnh khng th thc hin tip do ch i ln nhau. Gi s c hai tin trnh P1 v P2, mi tin trnh cn c cp ng thi ti nguyn T1 v T2 c th thc hin xong cng vic ca mnh. Do kt
48

T Minh Phng - HVCNBCVT

Qun l tin trnh qu cp pht ca h iu hnh, P1 c cp T1 v P2 c cp T2. P1 s ch P2 gii phng T2 trong khi P2 cng ch P1 gii phng T1 trc khi c th thc hin tip. Kt qu P1 v P2 ri vo b tc, khng th thc hin tip. Khng i ti nguyn (starvation). Cng do loi tr tng h, tin trnh c th ri vo tnh trng i ti nguyn, tc l ch i qu lu m khng n lt s dng ti nguyn no . Xt v d ba tin trnh P1, P2, P3 cng c yu cu lp i lp li mt ti nguyn. Do kt qu loi tr tng h v cch cp pht ti nguyn, P1 v P2 ln lt c cp ti nguyn nhiu ln trong khi P1 khng bao gi n lt v do vy khng thc hin c tip mc d khng h c b tc.

b. Tin trnh hp tc vi nhau thng qua ti nguyn chung Tin trnh c th c quan h hp tc vi nhau. Mt trong cc phng php trao i thng tin gia cc tin trnh hp tc l chia s vi nhau vng b nh dng chung (cc bin ton th), hay cc file. Vic cc tin trnh ng thi truy cp d liu dng chung lm nNy sinh vn ng b ha, i hi thao tc truy cp phi tnh ti tnh nht qun ca d liu. Trc ht, vic cp nht d liu dng chung i hi m bo loi tr tng h. Ngoi ra cng xut hin tnh trng b tc v i tng t nh nhc ti trn. Bn cnh , xut hin yu cu m bo tnh nht qun ca d liu. Xt v d sau: hai tin trnh P1 v P2 cng cp nht hai bin nguyn x v y nh sau: Khi u: x = y =2 P1: P2: x = x +1 y = y +1 x=x*2 y=y*2 Theo l gic thng thng, sau khi thc hin cc bin i trn, ta phi c x = y. Gi s tnh hung P1 v P2 c thc hin ng thi. Do kt qu iu , th t thc hin P1 v P2 din ra nh sau: P1: P2: P1: x=x+1 x=x*2 y=y*2 y=y+1 Kt qu ta c x = 6, y = 5 v nh vy x y. Tnh nht qun ca d liu b ph v. L do chnh gy ra tnh trng ph v tnh nht qun y l do hai bin i ca P1 khng c thc hin cng vi nhau. Kt qu thc hin trong nhng trng hp nh vy ph thuc vo th t thay i gi tr hai bin x v y v c gi l iu kin chy ua. iu kin chy ua (race condition) l tnh hung trong mt s dng hoc tin trnh c v ghi d liu s dng chung v kt qu ph thuc vo th t cc thao tc c, ghi. Vn nNy sinh khi c iu kin chy ua c th gii quyt bng cch t ton b thao tc truy cp v cp nht d liu dng chung ca mi tin trnh vo on nguy him v s dng loi tr tng h m bo cc thao tc ny khng b tin trnh khc xen ngang.
T Minh Phng - HVCNBCVT 49

Qun l tin trnh c. Tin trnh c lin lc nh gi thng ip Cc tin trnh hp tc c th trao i thng tin trc tip vi nhau bng cch gi thng ip (message passing). C ch lin lc c h tr bi th vin ca ngn ng lp trnh hoc bn thn h iu hnh. Trong trng hp trao i thng ip, tin trnh khng chia s hoc cnh tranh ti nguyn v v vy khng c yu cu loi tr tng h. Tuy nhin c th xut hin b tc v i. B tc c th xut hin, chng hn khi hai tin trnh u ch thng ip t tin trnh kia trc khi c th thc hin tip. Tnh trng i c th xut hin khi mt tin trnh phi ch i qu lu nhng tin trnh khc trong khi nhng tin trnh kia bn trao i thng ip vi nhau. 2.4.2. Yu cu vi gii php cho on nguy him Nh trnh by trn, yu cu quan trng khi ng b ha tin trnh l gii quyt vn on nguy him (critical section) v loi tr tng h. Gii php cho vn on nguy him cn tha mn nhng yu cu sau: 1) Loi tr tng h: nu nhiu tin trnh c on nguy him i vi cng mt ti nguyn th ti mi thi im, ch mt tin trnh c trong on nguy him. 2) Tin trin: mt tin trnh ang thc hin ngoi on nguy him khng c php ngn cn cc tin trnh khc vo on nguy him ca mnh. Chng hn, nu mt tin trnh b treo ngoi on nguy him th iu khng c php nh hng ti tin trnh khc. 3) Ch i c gii hn: nu tin trnh c nhu cu vo on nguy him th tin trnh phi c vo sau mt khong thi gian hu hn no . iu ny c ngha l khng c php xy ra b tc hoc tnh trng b i i vi tin trnh. Bn cnh , gii php cho vn on nguy him c xy dng da trn cc gi thit sau: 1) Gii php khng ph thuc vo tc ca cc tin trnh. 2) Khng tin trnh no c php nm qu lu trong on nguy him. C th l gi thit tin trnh khng b treo, khng lp v hn, v khng kt thc trong on nguy him. 3) Thao tc c v ghi b nh l thao tc nguyn t (atomic) v khng th b xen ngang gia chng. Trong cc phn tip theo, ta s xem xt mt s gii php cho vn on nguy him. Cc gii php c chia thnh 3 nhm: nhm gii php phn mm, nhm gii php phn cng, v nhm s dng h tr ca h iu hnh hoc th vin ngn ng lp trnh. 2.4.3. Gii thut Peterson Gii thut Peterson do Gary Peterson xut nm 1981 cho bi ton on nguy him. Cng vi gii thut Dekker, gii thut Peterson l gii php thuc nhm phn mm, tc l gii php php khng i hi s h tr t pha phn cng hay h iu hnh. So vi gii thut Dekker, gii thut Peterson d hiu hn v c trnh by y i din cho nhm gii php phn mm.
T Minh Phng - HVCNBCVT 50

Qun l tin trnh Gii thut Peterson c xut ban u cho bi ton ng b hai tin trnh. Gi s c hai tin trnh P0 v P1 thc hin ng thi vi mt ti nguyn chung v mt on nguy him chung. Mi tin trnh thc hin v hn v xen k gia on nguy him vi phn cn li ca tin trnh. Gii thut Peterson yu cu hai tin trnh trao i thng tin vi nhau qua hai bin chung. Bin th nht int turn xc nh n lt tin trnh no c vo on nguy him. Bin th hai bao gm hai c cho mi tin trnh bool flag[2], trong flag[i] = true nu tin trnh th i yu cu c vo on nguy him. Gii thut Peterson c th hin trn hnh sau:
bool flag[2]; int turn; void P0(){ //ti n trnh P0 for(;;){ //l p v h n flag[0]=true; turn=1; while(flag[1] && turn==1);//l p n khi i u ki n khng th a <o n nguy hi m> flag[0]=false; <Ph n cn l i c a ti n trnh> } } void P1(){ //ti n trnh P1 for(;;){ //l p v h n flag[1]=true; turn=0; while(flag[0] && turn==0);//l p n khi i u ki n khng th a <o n nguy hi m> flag[1]=false; <Ph n cn l i c a ti n trnh> } } void main(){ flag[0]=flag[1]=0; turn=0; //t t ti n trnh chnh, ch y ng th i hai ti n trnh P0 v P1 StartProcess(P0); StartProcess(P1); }

Hnh 2.9: Gii thut Peterson cho hai tin trnh C th nhn thy gii thut Peterson tha mn cc yu cu i vi gii php cho on nguy him (yu cu sinh vin th chng minh nh bi tp nh).
T Minh Phng - HVCNBCVT 51

Qun l tin trnh Vic s dng gii thut Peterson trn thc t tng i phc tp. Ngoi ra nhm gii php ny i hi tin trnh ang yu cu vo on nguy him phi nm trong trng thi ch i tch cc (busy waiting). Ch i tch cc l tnh trng ch i trong tin trnh vn phi s dng CPU kim tra xem c th vo on nguy him hay cha. i vi gii thut Peterson, tin trnh phi lp i lp li thao tc kim tra trong vng while trc khi vo c on nguy him, v do vy gy lng ph thi gian CPU. 2.4.4. Gii php phn cng Phn cng my tnh c th c thit k gii quyt vn loi tr tng h v on nguy him. Gii php phn cng thng d s dng v c tc tt. Di y, ta s xem xt hai gii php thuc nhm phn cng. 2.4.4.1. Cm cc ngt Trong trng hp my tnh ch c mt CPU, ti mi thi im ch mt tin trnh c thc hin. Tin trnh ang c CPU s thc hin cho n khi tin trnh gi dch v h iu hnh hoc b ngt. Nh vy, gii quyt vn on nguy him ta ch cn cm khng xNy ra ngt trong thi gian tin trnh ang trong on nguy him truy cp ti nguyn. iu ny m bo tin trnh c thc hin trn vn on nguy him v khng b tin trnh khc vo on nguy him trong thi gian . Mc d n gin, vic cm ngt lm gim tnh mm do ca h iu hnh, c th nh hng ti kh nng p ng cc s kin cn ngt. Ngoi ra, gii php cm ngt khng th s dng i vi my tnh nhiu CPU. Trong khi cm ngt CPU ny, tin trnh vn c th c cp CPU khc vo on nguy him. Vic cm ngt ng thi trn tt c CPU i hi nhiu thi gian gi thng ip ti tt c CPU, lm chm vic vo on nguy him. 2.4.4.2. S dng lnh my c bit Gii php th hai l phn cng c thit k c thm mt s lnh my c bit. C nhiu dng lnh my nh vy. y, ta s xem xt mt dng lnh tiu biu c tnh i din cho lnh my dng ng b tin trnh. Nguyn tc chung ca gii php ny l hai thao tc kim tra gi tr v thay i gi tr cho mt bin (mt nh), hoc cc thao tc so snh v hon i gi tr hai bin, c thc hin trong cng mt lnh my v do vy s m bo c thc hin cng nhau m khng b xen vo gia. n v thc hin khng b xen vo gia nh vy c gi l thao tc nguyn t (atomic). Ta s gi lnh nh vy l lnh kim tra v xc lp Test_and_Set. L gic ca lnh Test_and_Set c th hin trn hnh sau:
bool { Test_and_Set(bool& bool temp = val; val = true; return temp; } val)

Hnh 2.10. nh ngha lnh Test_and_Set


T Minh Phng - HVCNBCVT 52

Qun l tin trnh Ta c th s dng lnh Test_and_Set gii quyt vn on nguy him ng thi cho n tin trnh k hiu P(1) n P(n) nh sau:
const int n; //n l s bool lock; l ng ti n trnh

void P(int i){ //ti n trnh P(i) for(;;){ //l p v h n while(Test_and_Set(lock));//l p n khi i u ki n khng th a <o n nguy hi m> lock = false; <Ph n cn l i c a ti n trnh> } } void main(){ lock = false; //t t ti n trnh chnh, ch y ng th i n ti n trnh StartProcess(P(1)); ... StartProcess(P(n)); }

Hnh 2.11. Loi tr tng h s dng lnh my c bit Test_and_Set C th d dng kim tra iu kin loi tr tng h c bo m khi s dng gii php vi Test_and_Set nh trn. Tht vy, tin trnh ch c th vo c on gii hn nu lock=false. Do vic kim tra gi tr lock v thay i lock=true c m bo thc hin cng nhau nn tin trnh u tin kim tra thy lock=false s m bo thay i lock thnh true trc khi tin trnh khc kim tra c bin ny. iu ny m bo duy nht mt tin trnh vo c on nguy him. Ngoi ra, tin trnh ngoi on nguy him khng c kh nng nh hng ti gi tr ca lock v do vy khng th ngn cn tin trnh khc vo on nguy him. Gii php s dng lnh phn cng c bit c mt s u im sau: - Vic s dng tng i n gin v trc quan. - Gii php c th dng ng b nhiu tin trnh, tt c s dng chung lnh Test_and_Set trn mt bin chung gn vi mt ti nguyn chung. - C th s dng cho trng hp a x l vi nhiu CPU nhng c b nh chung. Cn lu l trong trng hp ny, mc d hai CPU c th cng thc hin lnh Test_and_Set nhng do hai lnh cng truy cp mt bin chung nn vic thc hin vn din ra tun t. Bn cnh , gii php dng lnh phn cng cng c mt s nhc im:

T Minh Phng - HVCNBCVT

53

Qun l tin trnh - Ch i tch cc. Tin trnh mun vo on nguy him phi lin tc gi lnh Test_and_Set trong vng lp while cho ti khi nhn c kt qu lock=false. - Vic s dng lnh Test_and_Set c th gy i. Trong trng hp c nhiu tin trnh cng ch vo on gii hn, vic la chn tin trnh tip theo khng theo quy lut no v c th lm cho mt s tin trnh khng bao gi vo c on gii hn. 2.4.5. C hiu (semaphore) Mt gii php loi tr tng h khc khng ph thuc vo s h tr ca phn cng (di dng cc lnh kim tra v xc lp trnh by trn), ng thi tng i d s dng l c hiu hay n hiu (semaphore) do Dijkstra xut. C hiu S l mt bin nguyn c khi to mt gi tr ban u no , bng kh nng phc v ng thi ca ti nguyn. Tr thao tc khi to, gi tr ca c hiu S ch c th thay i nh gi hai thao tc l Wait v Signal. Cc ti liu trc y s dng k hiu P - vit tt cho t kim tra trong ting c - cho thao tc Wait, v V - vit tt ca t tng trong ting c - cho thao tc Signal. Hai thao tc ny c ngha nh sau: Wait(S): Gim S i mt n v. Nu gi tr ca S m sau khi gim th tin trnh gi thao tc P(S) s b phong ta (blocked). Nu gi tr ca S khng m, tin trnh s c thc hin tip. Signal(S): Tng S ln mt n v. Nu gi tr S nh hn hoc bng 0 sau khi tng th mt trong cc tin trnh ang b phong ta (nu c) s c gii phng v c th thc hin tip.

im u tin cn lu l hai thao tc Wait v Signal l nhng thao tc nguyn t, khng b phn chia. Trong thi gian tin trnh thc hin thao tc nh vy thay i gi tr c hiu, thao tc s khng b ngt gia chng. Khi tin trnh b phong ta, tin trnh s chuyn sang trng thi ch i cho n khi ht b phong ta mi c php thc hin tip. Cc tin trnh b phong ta c xp vo hng i ca c hiu. Xy dng c hiu C hiu c th c xy dng di dng mt cu trc trn ngn ng C vi hai thao tc Wait v Signal nh sau:
struct semaphore { int value; process *queue;//danh sch ch a cc ti n trnh b }; void Wait(semaphore& S) { S.value--; if (S.value < 0) { Thm ti n trnh g i Wait vo S.queue block(); //phong t a ti n trnh } } T Minh Phng - HVCNBCVT 54

phong t a

Qun l tin trnh


void Signal(semaphore& S) { S.value++; if (S.value <= 0) { L y m t ti n trnh P t wakeup(P); } }

S.queue

Hnh 2.12. nh ngha c hiu trn C Mi c hiu c mt gi tr v mt danh sch queue cha tin trnh b phong ta. Thao tc block() trong Wait phong ta tin trnh gi Wait v thao tc wakeup() trong Signal khi phc tin trnh phong ta v trng thi sn sng. Hai thao tc block v wakeup c thc hin nh nhng li gi h thng ca h iu hnh. Danh sch tin trnh b phong ta queue c th xy dng bng nhng cch khc nhau, chng hn di dng danh sch kt ni cc PCB ca tin trnh. Vic chn mt tin trnh t danh sch khi thc hin Signal c th thc hin theo nguyn tc FIFO hoc theo nhng th t khc. Cn lu rng vic s dng FIFO s m bo iu kin ch i c gii hn, tc l tin trnh ch phi ch i mt thi gian gii hn trc khi vo on nguy him. Cch s dng c hiu C hiu c tin trnh s dng gi tn hiu trc khi vo on nguy him v sau khi ra khi on nguy him. u tin, c hiu c khi to mt gi tr dng hoc bng khng. Mi c hiu vi gi tr u dng thng dng kim sot vic truy cp mt ti nguyn vi kh nng phc v ng thi mt s lng hu hn tin trnh. V d, ti mi thi im ti nguyn nh my in ch cho php mt tin trnh ghi thng tin, v c hiu dng cho my in c khi to bng 1. Khi tin trnh cn truy cp ti nguyn, tin trnh thc hin thao tc Wait ca c hiu tng ng. Nu gi tr c hiu m sau khi gim c ngha l ti nguyn c s dng ht kh nng v ti thi im khng phc v thm c na. Do vy, tin trnh thc hin Wait s b phong ta cho n khi ti nguyn c gii phng. Nu tin trnh khc thc hin Wait trn c hiu, gi tr c hiu s gim tip. Gi tr tuyt i ca c hiu m tng ng vi s tin trnh b phong ta. Sau khi dng xong ti nguyn, tin trnh thc hin thao tc Signal trn cng c hiu. Thao tc ny tng gi tr c hiu v cho php mt tin trnh ang phong ta c thc hin tip. Nh vic phong ta cc tin trnh cha c vo on nguy him, vic s dng c hiu trnh cho tin trnh khng phi ch i tch cc v do vy tit kim c thi gian s dng CPU. Loi tr tng h c thc hin bng cch s dng c hiu nh th hin trn hnh 2.13.
const int n; //n l s T Minh Phng - HVCNBCVT l ng ti n trnh 55

Qun l tin trnh


semaphore S = 1; void P(int i){ //ti n trnh P(i) for(;;){ //l p v h n Wait(S); <o n nguy hi m> Signal(S); <Ph n cn l i c a ti n trnh> } } void main(){ //t t ti n trnh chnh, ch y ng th i n ti n trnh StartProcess(P(1)); ... StartProcess(P(n)); }

Hnh 2.13. Loi tr tng h s dng c hiu 2.4.6. Mt s bi ton ng b tin minh ha cho vic s dng gii php ng b, trong phn ny s trnh by mt s bi ton ng b kinh in. y l nhng bi ton hoc c ng dng trn thc t hoc khng c ng dng nhng rt thun tin trong vic m t vn xy ra gia cc qu trnh ng thi v do vy thng c s dng minh ha hoc kim tra gii php ng b ha. a. Bi ton trit gia n cm Tnh hung trong bi ton nh sau. C nm trit gia ngi trn gh quanh mt bn trn, gia bn l thc n, xung quanh bn c nm chic a sao cho bn phi mi ngi c mt a v bn tri c mt a (2.14).

Hnh 2.14. Bi ton cc trit gia n cm

Cng vic ca mi trit gia l suy ngh. Khi ngi no cn n, ngi dng suy ngh, nht hai chic a nm gn hai pha v n. Trit gia c th nht hai chic a theo th t bt k nhng bt buc phi nht tng chic mt vi iu kin a khng nm trong tay ngi
T Minh Phng - HVCNBCVT 56

Qun l tin trnh khc. Sau khi cm c c hai a, trit gia bt u n v khng t a xung trong thi gian n. Sau khi n xong, trit gia t hai a xung bn v suy ngh tip. C th coi nm trit gia nh nm tin trnh ng thi vi ti nguyn nguy him l a v on nguy him l on dng a n. C hiu cho php gii quyt bi ton ny nh sau. Mi a c biu din bng mt c hiu. Thao tc nht a s gi Wait i vi c hiu tng ng v thao tc t a xung bn gi Signal. Ton b gii php s dng c hiu cho bi ton trit gia n cm th hin trn 2.15.
semaphore chopstick[5] = {1,1,1,1,1,1}; void Philosopher(int i){ //ti n trnh P(i) for(;;){ //l p v h n Wait(chopstick[i]); //l y a bn tri Wait(chopstick[(i+1)%5]); //l y a bn ph i <n cm> Signal(chopstick[(i+1)%5]); Signal(chopstick[i]); <Suy ngh> } } void main(){ // ch y ng th i 5 ti n trnh StartProcess(Philosopher(1)); ... StartProcess(Philosopher (5)); }

Hnh 2.15. Bi ton trit gia n cm s dng c hiu Lu rng gii php trn 2.15 cho php thc hin loi tr tng h, tc l trnh trng hp hai trit gia cng nht mt a. Tuy nhin, gii php ny c th gy b tc nu c nm ngi cng nht c a bn tri v khng th tip tc v a bn phi b ngi bn phi nht mt. Cch gii quyt tnh trng ny s c cp trong phn v b tc. b. Bi ton ngi sn xut, ngi tiu dng vi b m hn ch Bi ton c m t nh sau. C mt ngi sn xut ra sn phNm g v xp sn phNm lm ra vo mt ch cha gi l b m, mi ln mt sn phNm. Mt ngi tiu dng ly sn phNm t b m, mi ln mt sn phNm, s dng. Dung lng ca b m l hn ch v ch cha c ti a N sn phNm. y l bi ton c nhiu phin bn tng t trn thc t, chng hn thit b vo ra nh bn phm c th nhn k t g t bn phm, t vo b m, v tin trnh ly k t t b m ra x l. Trong trng hp tng qut c th c nhiu ngi sn xut cng lm ra v xp sn phNm vo b m. Bi ton ngi sn xut ngi tiu dng t ra ba yu cu ng b sau: Ngi sn xut v ngi tiu dng khng c s dng b m cng mt lc. y l yu cu loi tr tng h.
57

T Minh Phng - HVCNBCVT

Qun l tin trnh Khi b m rng, ngi tiu dng khng nn c ly sn phNm. Khi b m y, ngi sn xut khng c thm sn phNm vo b m.

Ba yu cu trn c th gii quyt bng c hiu. Yu cu th nht c gii quyt bng cch s dng mt c hiu lock khi to bng 1. Yu cu th hai v th ba c gii quyt ln lt bng hai c hiu empty v full. C hiu empty c khi to bng 0 v full c khi to bng kch thc b m N. Gii php cho bi ton c th hin trn 2.16:
const int N; //kch th c b m semaphore lock = 1; semaphore empty = 0; semaphore full = N; void producer () { for (;;) { <s n xu t > wait (full); wait (lock); <thm m t s n ph m vo b signal (lock); signal (empty); } } void consumer () for (;;) { wait (empty); wait (lock); <l y m t s n ph m t signal (lock); signal (full); <tiu dng> } } void main(){ StartProcess(producer); StartProcess(consumer); } b m> { //ti n trnh ng i tiu dng m> //ti n trnh ng i s n xu t

Hnh 2.16: Gii php cho bi ton ngi sn xut ngi tiu dng s dng c hiu 2.4.7. Monitor Trong mt phn trc ta xem xt v c ch ng b s dng c hiu. Mc d c mt s u im nh khng phi ch i tch cc v d s dng hn gii thut Peterson song ng b ha bng c hiu c th gy ra li nu khng c s dng ng cch. S dng c hiu khng ng s gy ra cc li sau:
T Minh Phng - HVCNBCVT 58

Qun l tin trnh Qun khng gi thao tc wait hoc signal hoc c hai. o ngc th t wait v signal: gy ra b tc. Thay v dng thao tc wait li dng signal hoc ngc li, tc l gi wait hai ln hoc signal hai ln: trong trng hp th nht khng m bo loi tr tng h, trong trng hp th hai gy i.

Mt iu quan trng l nhng li xut hin nh vy kh debug do li ch xNy ra mt s trng hp khi tin trnh thc hin xen k nhau theo mt th t nht nh. hn ch phn no cc vn va nu khi s dng c hiu, mt gii php khc ca nhm gii php da trn h tr ca h iu hnh v ngn ng bc cao l gii php s dng monitor (mt s ti liu ti Vit nam dch l phng i do c im ca monitor). Khi nim monitor Monitor c nh ngha di dng mt kiu d liu tru tng ca ngn ng lp trnh bc cao, chng hn nh mt class ca C++ hoc Java. Mi monitor gm mt d liu ring, hm khi to, v mt s hm hoc phng thc truy cp d liu vi cc c im sau: 1) Tin trnh hoc dng ch c th truy cp d liu ca monitor thng qua cc hm hoc phng thc ca monitor, khng th truy cp d liu trc tip. Tin trnh thc hin trong monitor bng cch gi hm do monitor cung cp. 2) Ti mi thi im, ch mt tin trnh c thc hin trong monitor. Tin trnh khc gi hm ca monitor s b phong ta, xp vo hng i ca monitor ch cho n khi monitor c gii phng. c im th nht rt quen thuc i vi i tng trong ngn ng lp trnh hng i tng v lm cho monitor c nhiu im tng t class. c im th hai cho php m bo loi tr tng h i vi on nguy him. Ngi lp trnh ch cn t ti nguyn nguy him vo trong monitor, v d t bin dng chung thnh d liu ca monitor, v khng cn lp trnh c ch loi tr tng h mt cch tng minh bng cch s dng cc bc trc v sau on nguy him nh trong nhng phng php trn. c im ny gip trnh li xy nh khi dng c hiu. Bin iu kin Monitor c nh ngha nh trn cho php gii quyt vn loi tr tng h. Tuy nhin, c th xNy ra vn khc v ng b, chng hn khi mt tin trnh ang thc hin trong monitor v phi dng li (b phong ta) i mt s kin hay mt iu kin no c tha mn. Trong trng hp nh vy, tin trnh cn tr li monitor tin trnh khc c th s dng. Tin trnh ch i s c khi phc li t im dng sau khi iu kin ang ch i c tha mn. gii quyt tnh hung va nu, ta c th s dng cc bin iu kin. y l nhng bin c khai bo v s dng trong monitor vi hai thao tc l cwait v csignal (tin t c c thm vo phn bit vi c hiu) nh sau:

T Minh Phng - HVCNBCVT

59

Qun l tin trnh x.cwait (): tin trnh ang trong monitor v gi cwait b phong ta cho ti khi iu kin x xNy ra. Tin trnh b xp vo hng i ca bin iu kin x. Monitor c gii phng v mt tin trnh khc s c vo monitor. x.csignal (): tin trnh gi csignal thng bo iu kin x tha mn. Nu c tin trnh ang b phong ta v nm trong hng i ca x do gi x.cwait() trc th mt tin trnh nh vy s c gii phng. Nu khng c tin trnh b phong ta th thao tc csignal s khng c tc dng g c.

Cn lu im khc nhau ca csignal vi signal ca c hiu: signal lun gii phng mt tin trnh cn csignal th c th khng, nu khng c tin trnh ch i iu kin. Cu trc monitor vi cc bin iu kin c th hin trn 2.17.
Monitor D li u c c b

cc bi n i u ki n

condition x condition y

hng i i u ki n

hm

hm

hm

hng i chung c a monitor

hm kh i t o

Hnh 2.17. Monitor

minh ha cho cch s dng monitor, chng ta s xem xt mt gii php cho bi ton ngi sn xut ngi tiu dng vi b m hn ch, trong c ch ng b c thc hin bng monitor (hnh 2.18). Trong gii php ny, b m buffer c khai bo nh d liu cc b ca monitor c th truy cp bng hai thao tc append (thm vo) v take (ly ra). Monitor s dng hai bin iu kin notFull v notEmpty trnh vic thm sn phNm vo b m y hoc ly sn phNm khi b m rng.
monitor BoundedBuffer { product buffer[N]; //b m ch a N s n ph m ki u product int count; //s l ng s n ph m hi n th i trong b m condition notFull, notEmpty; //cc bi n i u ki n public: BoundedBuffer( ) { //kh i t o count = 0; T Minh Phng - HVCNBCVT 60

Qun l tin trnh


} void append (product x) { if (count == N) notFull.cwait ( ); //d ng v ch n khi buffer c ch <Thm m t s n ph m vo buffer> count++; notEmpty.csignal (); } product take ( ) { if (count == 0) notEmptry.cwait (); //ch n khi buffer khng r ng <L y m t s n ph m x t buffer> count --; notFull.csignal ( ); } } void producer ( ) { //ti n trnh ng i s n xu t for (;;){ <S n xu t s n ph m x> BoundedBuffer.append (x); } } void consumer ( ) { //ti n trnh ng i tiu dng for (;;){ product x = BoundedBuffer.take (); <Tiu dng x> } } void main() { Th c hi n song song producer v consumer. }

Hnh 2.18. Gii php s dng monitor cho bi ton ngi sn xut ngi tiu dng vi b m hn ch

2.4.8. B tc 2.4.8.1. B tc l g? Mt vn gy nhiu kh khn i vi cc tin trnh ng thi l tnh trng b tc (deadlock). B tc l tnh trng mt nhm tin trnh c cnh tranh v ti nguyn hay c hp tc phi dng (phong ta) v hn. L do dng v hn ca nhm tin trnh l do tin trnh phi ch i mt s kin ch c th sinh ra bi tin trnh khc cng ang trong trng thi ch i ca nhm. minh ha cho tnh hung xy ra b tc, ta xt v d sau. Hai tin trnh P v Q thc hin ng thi. Mi tin trnh cn s dng ng thi hai ti nguyn X v Y trong mt khong
T Minh Phng - HVCNBCVT 61

Qun l tin trnh thi gian nht nh. Ti nguyn X v Y ch c kh nng phc v mt tin trnh ti mt thi im. s dng ti nguyn, mi tin trnh cn thc hin thao tc yu cu ti nguyn Request, sau khi thc hin xong, tin trnh gii phng ti nguyn bng thao tc Release. Tin trnh P v Q c th hin nh sau: Tin trnh P Request X Request Y Release X Release Y Tin trnh Q Request Y Request X Release Y Release X

Gi s do kt qu iu , th t thc hin ca hai tin trnh din ra nh sau: P: Request X Q: Requets Y P: Request Y Q: Request X Trong trng hp ny, thao tc P:Request Y s khin P phi ch cho n khi Q gii phng Y. Nhng Q cng phi dng li thao tc Q: Request X i ti nguyn X do P ang gi. Kt qu hai tin trnh ri vo b tc. 2.4.8.2. iu kin xy ra b tc Tnh trng b tc xNy ra khi bn iu kin sau ng thi tha mn: 1) Loi tr tng h. iu kin ny ngha l c mt ti nguyn nguy him, tc l ti nguyn m ti mi thi im ch duy nht mt tin trnh c s dng. Tin trnh khc yu cu ti nguyn ny s phi dng li ch n khi ti nguyn c gii phng. 2) Gi v ch. Tin trnh gi ti nguyn trong khi ch i, chng hn ch i c cp thm ti nguyn khc. 3) Khng c phn phi li (no preemption). Ti nguyn do tin trnh gi khng th phn phi li cho tin trnh khc tr khi tin trnh ang gi t nguyn gii phng ti nguyn. 4) Ch i vng trn. Tn ti nhm tin trnh P1, P2, , Pn sao cho P1 ch i ti nguyn do P2 ang gi, P2 ch ti nguyn do P3 ang gi, , Pn ch ti nguyn do P1 ang gi. Bn iu kin trn l cn v xNy ra b tc. Cn lu rng iu kin 2 l h qu ca iu kin 4 v iu kin 3, nhng vn c tch ring thun li cho vic tm hiu c
T Minh Phng - HVCNBCVT 62

Qun l tin trnh ch x l b tc trnh by trong cc phn sau. Da trn c im v iu kin xy ra b tc, c th gii quyt vn b tc theo nhng cch sau: Ngn nga (deadlock prevention): m bo mt trong bn iu kin xNy ra b tc khng bao gi tha mn. Gii php ny c th thc hin bng cch s dng mt s quy tc hn ch cch yu cu ti nguyn ca tin trnh. Phng trnh (deadlock avoidance): cho php mt s iu kin b tc c tha mn nhng m bo khng t ti im b tc. Pht hin v gii quyt (deadlock detection): cho php b tc xNy ra, pht hin b tc v khi phc h thng v tnh trng khng b tc.

Trn thc t, h iu hnh hin nay khng s dng gii php no trong s ny, tc l khng lm g vi b tc. Nhim v x l b tc do cc tin trnh t m nhim. 2.4.8.3. Ngn nga b tc Ngn nga b tc (deadlock prevention) l m bo t nht mt trong bn iu kin trnh by trong phn trc khng xNy ra, tc l loi tr trc kh nng xy ra b tc. Bn iu kin xNy ra b tc c th ngn nga nh sau: 1) Loi tr tng h C th trnh loi tr tng h i vi nhng ti nguyn cho php nhiu tin trnh s dng mt lc v d cc file trong ch c. Tuy nhin, trn thc t lun lun tn ti ti nguyn khng c kh nng chia s ng thi nh vy v cn m bo loi tr tng h khi s dng chng. Do vy khng th ngn nga iu kin v loi tr tng h. 2) Gi v ch C hai cch ngn nga iu kin ny. Cch th nht l yu cu tin trnh phi nhn ton b ti nguyn cn thit trc khi thc hin tip, nu khng nhn , tin trnh b phong ta ch cho n khi c th nhn ti nguyn. Cch ny thng khng hiu qu do tin trnh phi ch i rt lu ly ti nguyn trong khi c th thc hin vi mt s ti nguyn c cp. Ngoi ra tin trnh s gi ton b ti nguyn n khi thc hin xong, k c ti nguyn cha cn n, gy lng ph ti nguyn. Cch th hai l tin trnh ch c yu cu ti nguyn nu tin trnh khng gi ti nguyn no khc. Trc khi tin trnh yu cu thm ti nguyn, tin trnh phi gii phng ti nguyn c cp v yu cu li (nu cn) cng vi ti nguyn mi. 3) Khng c phn phi li iu kin ny c th ngn nga nh sau. Khi mt tin trnh yu cu ti nguyn nhng khng c do b cp pht, h iu hnh s thu hi li ton b ti nguyn tin trnh ang gi. Tin trnh ch c th thc hin tip sau khi ly c ti nguyn c cng vi ti nguyn mi yu cu. Mt cch thc hin khc l khi tin trnh yu cu ti nguyn, nu ti nguyn cn trng, ta cp pht ngay. Nu ti nguyn do tin trnh khc gi v tin trnh ny ang ch cp thm
T Minh Phng - HVCNBCVT 63

Qun l tin trnh ti nguyn th thu hi li cp cho tin trnh yu cu. Nu hai iu kin trn u khng tha th tin trnh yu cu ti nguyn phi ch. 4) Ch i vng trn Mt trong nhng cch ngn nga ch i vng trn l xc nh mt th t cho cc dng ti nguyn trong h thng v ch cho php tin trnh yu cu ti nguyn sao cho ti nguyn m tin trnh yu cu sau c th t ln hn ti nguyn m tin trnh yu cu trc. Nguyn tc trn c minh ha nh sau. Gi s trong h thng c n dng ti nguyn k hiu R1, R2, , Rn. Cc dng ti nguyn c th l my in, a, .v.v. Tip theo, khng mt tnh tng qut, ta gi s nhng dng ti nguyn ny c sp xp theo th t tng dn ca ch s, tc l R1 ng trc R2, R2 ng trc R3, v.v. Vi cch sp xp nh vy ta c th trnh b tc bng cch ch cho php tin trnh yu cu ti nguyn theo th t tng ca ch s. Nu tin trnh yu cu mt s ti nguyn dng Ri th sau tin trnh ch c php yu cu ti nguyn dng Rj nu j > i. Nu tin trnh cn nhiu ti nguyn cng dng th tin trnh phi yu cu tt c ti nguyn dng cng mt lc. C th d dng kim tra, vic p dng quy tc trn cho php ngn nga ch i vng trn. Gi s xNy ra ch i vng trn do tin trnh P c Ri v yu cu Rj trong khi tin trnh Q c Rj v yu cu Ri. Ta s thy ngay iu ny khng th xNy ra do mt trong hai tin trinh vi phm quy tc ni trn (hoc i > j hoc j > i). 2.4.8.4. Phng trnh b tc Gii php ngn nga b tc trnh by trn tp trung vo vic s dng quy tc hay rng buc khi cp pht ti nguyn ngn nga iu kin xNy ra b tc. Vic s dng rng buc nh vy c nhc im l lm cho vic s dng ti nguyn km hiu qu, gim hiu nng ca tin trnh. gii quyt phn no nhc im ny c th s dng nhm gii php th hai l phng trnh b tc (deadlock avoidance). Phng trnh b tc ging ngn nga b tc ch u nhm m bo b tc khng th xy ra (thc cht c hai u l ngn nga). Tuy nhin, phng trnh b tc cho php ba iu kin u xNy ra v ch m bo sao cho trng thi b tc khng bao gi t ti. Mi yu cu cp ti nguyn ca tin trnh s c xem xt v quyt nh ty theo tnh hnh c th, thay v tun theo mt quy tc chung nh trong trng hp ngn nga. lm c nh vy, h iu hnh yu cu tin trnh cung cp thng tin v vic s dng ti nguyn ca mnh v s dng thng tin ny khi cp pht. Dng thng tin n gin v hiu qu nht l s lng ti a ti nguyn tin trnh cn s dng. Da trn thng tin v s lng ti nguyn cn cp ti a do tin trnh thng bo, h thng c th phng trnh b tc bng cch s dng thut ton ngi cho vay nh sau. Thut ton ngi cho vay (bankers algorithm) Thut ton ngi cho vay c t tn da trn s tng t gia vic quyt nh cho vay tin ca ngn hng vi vic cp pht ti nguyn trong my tnh. Ngi cho vay gii l ngi cho vay c nhiu. Tuy nhin, khi cho vay vt qu s tin thc c s gp ri ro do mi ngi vay khng th vay s tin cn thit phc v kinh doanh, do vy khng th
T Minh Phng - HVCNBCVT 64

Qun l tin trnh thu hi vn v khng th tr n dn ti c ngn hng v ngi vay ri vo b tc tng t tin trnh cnh tranh v ti nguyn. Thut ton ngi cho vay c m t nh sau. Khi tin trnh mun khi to, tin trnh thng bo dng ti nguyn v s lng ti nguyn ti a cho mi dng s yu cu. Nu s lng yu cu khng vt qu kh nng h thng, tin trnh s c khi to. trnh by thut ton ngi cho vay, ta nh ngha mt s khi nim sau: Trng thi c xc nh bi tnh trng s dng ti nguyn hin thi trong h thng. Trng thi c cho bi cc thng tin sau: S lng ti a ti nguyn m tin trnh yu cu. Thng tin ny c cho di dng ma trn M[n][m], trong n l s lng tin trnh, m l s lng ti nguyn, M[i][j] (0<=i<=n, 0<=j<=m) l s lng ti nguyn ti a dng j m tin trnh i yu cu. S lng ti nguyn cn li cho di dng vec t A[m], trong A[j] l s lng ti nguyn dng j cn li v c th cp pht. Lng ti nguyn cp cho mi tin trnh di dng ma trn D[n][m], trong D[i][j] l lng ti nguyn dng j cp cho tin trnh i. Lng ti nguyn cn cn cp di dng ma trn C[n][m] trong C[i][j]=M[i][j]D[i][j] l lng ti nguyn dng j m tin trnh i cn cn cp.

Trng thi an ton l trng thi m t c t nht mt phng n cp pht sao cho b tc khng xNy ra. Trng thi khng an ton l trng thi khc vi trng thi an ton. Vi cc khi nim trng thi nh ngha trn, cch phng trnh b tc c thc hin nh sau. Khi tin trnh c yu cu cp ti nguyn, h thng gi s ti nguyn c cp, cp nht li trng thi v xc nh xem trng thi c an ton khng. Nu an ton, ti nguyn s c cp tht. Ngc li, tin trnh b phong ta v ch ti khi c th cp pht an ton. minh ha, ta xt v d sau. H thng c 3 dng ti nguyn X, Y, Z vi s lng ban u X=10, Y=5, Z=7. Bn tin trnh P1, P2, P3, P4 c yu cu ti nguyn ti a cho trong bng M sau: X P1 P2 P3 P4 7 3 9 2 Y 5 2 0 2 Z 3 2 2 2

Yu cu ti a Xt trng thi ca h thng vi lng ti nguyn cp, cn li, cn cn nh sau: X P1 P2 P3 0 2 3 Y 1 0 0 Z 0 0 2 X 3 Y 3 Z 4 P1 P2 P3 X 7 1 6 Y 4 2 0 Z 3 2 0


65

Cn li

T Minh Phng - HVCNBCVT

Qun l tin trnh P4 2 1 1 P4 0 1 1

cp

Cn cn cp

Trng thi ny l trng thi an ton do c th tm ra cch cp pht khng dn n b tc, v d theo th t P2, P4, P3, P1. Gi s h thng ang nm trong trng thi an ton nh trn v P1 yu cu cp 3 ti nguyn dng Y, tc l yu cu = (0,3,0). Nu yu cu ny c tha mn, h thng s chuyn sang trng thi tip theo X 3 Y 0 Z 4 P1 P2 P3 P4 X 7 1 6 0 Y 1 2 0 1 Z 3 2 0 1

Cn li

Cn cn cp y l trng thi khng an ton v khng th tm ra cch cp pht no cho php bt k tin trnh no thc hin n cng trc khi c th tr li ti nguyn. Do vy yu cu (0,3,0) phi b t chi. Vic kim tra xem mt trng thi c phi l trng thi an ton khng c th thc hin bng thut ton th hin trn 2.19. 1. Khai bo mng W kch thc m v mng F kch thc n. (F[i] cha tnh trng tin trnh th i kt thc hay cha, W cha lng ti nguyn cn li) Khi to W=A v F[i]=false (i=0,,n-1) 2. Tm i sao cho: F[i] = false v C[i][j] W[j] vi mi j=0,,m-1 Nu khng c i nh vy th chuyn sang bc 4 3. a) W = W + D[i] b) F[i] = true c) Quay li bc 2 4. If F[i] = true vi mi i =0,,n-1 th trng thi an ton Else trng thi khng an ton Hnh 2.19. Thut ton xc nh trng thi an ton 2.4.8.5. Pht hin b tc v x l Cc bin php ngn nga v phng trnh b tc s dng rng buc khi cp pht ti nguyn trnh cho b tc khng xy ra. c im chung ca hai nhm gii php ny l an ton nhng u nh hng ti hiu qu s dng ti nguyn. Pht hin b tc (deadlock detection) l cch tip cn khc. H thng khng thc hin bin php ngn nga hay phng trnh v do vy b tc c th xy ra. H thng nh k kim tra pht hin c tnh trng b tc hay khng, nu c, h thng s x l khi phc li
T Minh Phng - HVCNBCVT 66

Qun l tin trnh trng thi khng c b tc. Tip theo y, ta s xem xt hai ni dung: cch pht hin b tc v cch khi phc li trng thi khng b tc. Pht hin b tc Trng hp mi dng ti nguyn ch c mt ti nguyn duy nht. Trong trng hp ny, vic pht hin b tc c thc hin tng i n gin bng cch s dng th biu din quan h ch i ln nhau gia tin trnh (tm gi l th ch i), c xy dng nh sau. Trc ht, ta xy dng th cp pht ti nguyn nh th hin trn Hnh 2.20.a, trong cc nt l tin trnh v ti nguyn. Ti nguyn c ni vi tin trnh bng cung c hng nu ti nguyn c cp cho tin trnh . Tin trnh c ni vi ti nguyn bng cung c hng nu tin trnh ang c cp ti nguyn . th ch i c xy dng t th cp pht ti nguyn bng cch b i cc nt tng ng vi ti nguyn v nhp cc cung i qua nt b b. Hnh 2.20.b minh ha cho vic xy dng th ch i t th cp pht ti nguyn bn tri. th ch i cho php pht hin tnh trng tin trnh ch i vng trn l iu kin sinh ra b tc. Trong v d va xt, ta c th thy tin trnh P1, P2, P4 ang b b tc do phi ch i vng trn ln nhau. Trong trng hp tng qut, pht hin b tc trn th ch i c th s dng thut ton pht hin chu trnh trn th c hng.

Hnh 2.20. th cp pht ti nguyn v th c hng Thi im pht hin b tc Trong phn trn ta xem xt thut ton pht hin b tc. Vn tip theo l khi no h thng cn s dng nhng thut ton ny pht hin b tc (nu c). Chu k chy thut ton pht hin b tc s ph thuc vo h thng c th v tn sut xut hin b tc trn . Tuy nhin vic xc nh chu k chy thut ton c th da trn nhng phn tch sau.
T Minh Phng - HVCNBCVT 67

Qun l tin trnh B tc ch c th xut hin sau khi mt tin trnh no yu cu ti nguyn v khng c tha mn. Lu l khng phi yu cu khng c tha mn no cng lm pht sinh b tc. Nh vy, h thng c th chy thut ton pht hin b tc mi khi c yu cu cp pht ti nguyn khng c tha mn. Chu k pht hin b tc nh vy cho php pht hin b tc ngay khi va xNy ra. Tuy nhin, do thut ton pht hin b tc c phc tp nht nh nn vic chy thng xuyn nh vy lm gim hiu nng h thng. trnh nh hng n hiu nng, c th gim tn sut chy thut ton pht hin b tc, chng hn sau tng chu k t vi chc pht ti vi gi. Ngoi ra c th chy thut ton khi c mt s du hiu nh hiu sut s dng CPU gim xung di mt ngng no . Vic gim hiu sut s dng CPU c th c nguyn nhn l tin trnh b b tc khng th thc hin tip v do vy khng s dng CPU. X l khi b b tc Khi pht hin b tc, h iu hnh cn c bin php x l khi phc li h thng v tnh trng khng b tc. Nhn chung, h iu hnh c th s dng mt trong nhng phng php sau x l khi pht hin b tc: Kt thc tt c tin trnh ang b b tc. y l cch gii quyt n gin nht v cho php chm dt ngay b tc. Nhc im ca phng php ny l b ph phn vic tin trnh thc hin trc khi b tc. Kt thc ln lt tng tin trnh ang b b tc cho n khi ht b tc. H iu hnh s phi chy li thut ton pht hin b tc sau khi kt thc mi tin trnh. H iu hnh c th chn th t kt thc tin trnh da trn tiu ch no , chng hn tin trnh ang gi nhiu ti nguyn hn s b chn kt thc trc. Khi phc tin trnh v thi im trc khi b b tc sau cho cc tin trnh thc hin li t im ny. Phng php ny i hi h iu hnh lu tr trng thi c th thc hin quay lui v khi phc v cc im kim tra trc . Ngoi ra, khi chy li t nhng im cha b tc, cc tin trnh c th li ri vo b tc tip. Ln lt thu hi li ti nguyn t cc tin trnh b tc cho ti khi ht b tc. Tin trnh b thu hi ti nguyn c khi phc v trng thi trc khi c cp ti nguyn.

2.4.8.6. V d ngn nga b tc cho bi ton trit gia n cm Trong mt phn trc, ta xem xt gii php loi tr tng h cho bi ton trit gia n cm (hnh 2.21). Gii php ny s dn ti b tc trong tnh hung c nm ngi cng ly c a bn tri nhng sau khng ly c a bn phi do a b ngi bn phi gi. trnh b tc c th s dng mt s bin php nh sau: t hai thao tc ly a ca mi trit gia vo on nguy him m bo trit gia ly c hai a cng mt lc. Quy c bt i xng v th t ly a, v d ngi c s th t chn ly a tri trc a phi, ngi c s th t l ly a phi trc a tri. Ti mi thi im ch cho ti a bn ngi ngi vo bn.
68

T Minh Phng - HVCNBCVT

Qun l tin trnh Sau y, ta s xem xt vic thc hin bin php ch cho ti a bn ngi ngi vo bn bng cch ci tin gii php s dng c hiu trnh by trn. Gii php ng b s dng thm mt c hiu table c gi tr khi to bng 4. Trit gia phi gi thao tc wait(table) trc khi ngi vo bn v ly a. Gii php mi c th hin trn hnh 2.21.

semaphore chopstick[5] = {1,1,1,1,1,1}; semaphore table = 4; void Philosopher(int i){ //ti n trnh P(i) for(;;){ //l p v h n wait(table); wait(chopstick[i]); //l y a bn tri wait(chopstick[(i+1)%5]); //l y a bn ph i <n cm> signal(chopstick[(i+1)%5]); signal(chopstick[i]); signal(table); <Suy ngh> } } void main(){ // ch y ng th i 5 ti n trnh StartProcess(Philosopher(1)); ... StartProcess(Philosopher (5)); }

Hnh 2.21. Gii php ng b khng b tc cho bi ton trit gia n cm

T Minh Phng - HVCNBCVT

69

Qun l b nh

CHNG 3:

QUN L B NH

B nh l ti nguyn quan trng th hai sau CPU trong mt h thng my tnh. B nh bao gm cc byte hoc cc t c nh a ch. y l ch cha cc tin trnh v d liu ca tin trnh. Vic qun l v s dng b nh hp l nh hng ti tc v kh nng ca ton b h thng tnh ton, do vy, qun l b nh l mt chc nng quan trng ca h iu hnh. Cc cng vic lin quan ti qun l b nh bao gm qun l b nh trng, cp pht b nh trng cho cc tin trnh v gii phng b nh cp pht, ngn chn vic truy cp tri php ti cc vng b nh, nh x gia a ch lgic v a ch vt l. Trong trng hp yu cu v b nh ca cc tin trnh ln hn dung lng b nh vt l, h iu hnh cho php trao i thng tin gia a v b nh hoc t chc b nh o tho mn nhu cu cc tin trnh. Trong chng ny ta s xem xt nhng kiu t chc h thng v cch thc khc nhau qun l b nh. Cc kiu t chc c xem xt t n gin nh h thng n chng trnh cho ti phc tp hn - a chng trnh. 3.1. NA CH V CC VN LIN QUAN C th hnh dung b nh my tnh nh mt chui cc nh c nh a ch bt u t 0. n v nh a ch c th l t my (words) nhng thng l byte. Trong qu trnh thc hin tin trnh, CPU c cc lnh t b nh v thc hin cc lnh ny. Cc lnh c th c yu cu c, x l v ghi d liu ngc vo b nh. c th thc hin cc lnh v x l d liu, c d liu v lnh u phi c gn a ch. CPU s dng a ch xc nh lnh v d liu c th. 3.1.1. Vn gn a ch Chng trnh my tnh thng khng c vit trc tip trn ngn ng my, tr th h my tnh u tin, m vit trn mt ngn ng bc cao hoc trn hp ng. Cc chng trnh ngun phi qua mt qu trnh dch v lin kt trc khi tr thnh chng trnh c th ti vo v thc hin. Qu trnh c biu din trn hnh 3.1. mi giai on, a ch c biu din theo mt cch khc nhau. Khi vit chng trnh, chng ta s dng a ch di dng cc tn (v d tn bin, tn hm). Khi dch, chng trnh dch nh x cc tn thnh cc a ch tng i tnh t u mun chng trnh. Chng trnh lin kt sau s nh x a ch ny thnh cc a ch tng i tnh t u chng trnh. thc hin mt chng trnh, h iu hnh c chng trnh t a vo b nh v to ra tin trnh tng ng. V tr m chng trnh s c ti vo trong b nh l c th thay i v thng khng bit trc. Chng hn, mc d a ch u ca b nh l 00000, a ch u ca tin trnh hon ton c th khc 00000 v thm ch c th thay i trong qu trnh thc hin tin trnh. Do , khi vit chng trnh, lp trnh vin cha bit v cha th gn a ch cho cc lnh cng nh d liu. Cc chng trnh dch v lin kt cng khng bit a ch chnh xc khi thc hin cng vic ca mnh.
T Minh Phng - HVCNBCVT

70

Qun l b nh Nh vy, h iu hnh cn c kh nng gn a ch v nh x cc a ch ny tu thuc vo v tr tin trnh trong b nh. Kh nng s dng nhng vng nh khng c nh cho tin trnh v nh x a ch l mt yu cu rt quan trng i vi h iu hnh khi thc hin chc nng qun l b nh. 3.1.2. a ch l gic v a ch vt l Do v tr tin trnh trong b nh c th thay i, cn phn bit hai loi a ch: a ch lgic v a ch vt l. a ch lgic l a ch c gn cho cc lnh v d liu khng ph thuc vo v tr c th ca tin trnh trong b nh. Khi thc hin chng trnh, CPU nhn thy v s dng a ch lgic ny tr n cc phn khc nhau ca lnh, d liu. Mt dng a ch lgic in hnh l a ch tng i, trong mi phn t ca chng trnh c gn mt a ch tng i vi mt v tr no , chng hn u chng trnh. Ton b a ch c gn trong chng trnh to thnh khng gian nh lgic ca chng trnh. Trong trng hp s dng b nh o, a ch lgic cn c gi l a ch o.

M ngu n m un khc (printf.c)

M ngu n (prog.c)

Chng trnh d ch

Chng trnh d ch

M un object (printf.o)

M un object (prog.o)

Th vi n ha

Th vi n (*.lib)

Chng trnh lin k t

M un t i c (prog.exe)

Chng trnh t i (h i u hnh) Ti n trnh trong b nh

Hnh 3.1. Qu trnh to v ti chng trnh vo b nh


T Minh Phng - HVCNBCVT 71

Qun l b nh

truy cp b nh, a ch l gic cn c bin i thnh a ch vt l. a ch vt l l a ch chnh xc trong b nh ca my tnh v c phn cng qun l b nh t ln ng a ch truy cp nh tng ng. a ch vt l cn c gi l a ch tuyt i. Thng thng, khng gian nh vt l khc vi khng gian nh lgic ca chng trnh. Trong thi gian thc hin tin trnh, a ch lgic c nh x sang a vt l nh mt c ch phn cng gi l khi nh x b nh (MMU=Memory Mapping Unit). C nhiu cch khc nhau thc hin nh x ny. C ch nh x c th cho nhng cch t chc b nh khc nhau s c trnh by trong cc phn sau. 3.2. MT S CCH T CHC CHNG TRNH Mt vn quan trng trong t chc chng trnh v qun l b nh l lm sao gim c khng gian chng trnh chim trn a v trong b nh, qua c th s dng khng gian nh hiu qu hn. Theo cch thng thng nht, chng trnh c to thnh t mt s m un khc nhau. Cc m un c th c vit v dch thnh file object (ui .o), sau lin kt vi nhau thnh chng trnh thc hin c hay cn gi l chng trnh ti c. Mt s m un object cha cc hm hay dng c th c lu tr di dng th vin tin cho vic lin kt vi cc m un khc ca chng trnh. Khi cn thc hin chng trnh, h iu hnh s ti ton b chng trnh vo b nh. Qu trnh ny c th hin trn hnh 3.1. Cch t chc chng trnh nh vy c th gi l cch t chc tnh. Mc d n gin v trc qun, cch t chc, lin kt v ti chng trnh nh vy khng cho php s dng b nh hiu qu. Sau y, ta xem xt mt s k thut cho php gii quyt vn ny. 3.2.1. Ti trong qu trnh thc hin Bnh thng, ton b chng trnh c ti vo b nh thc hin. i vi cc chng trnh ln, trong mt phin lm vic, mt s phn ca chng trnh c th khng c dng ti, chng hn cc hm x l li. Cc hm ny s chim ch v ch trong b nh, ng thi lm tng thi gian ti chng trnh lc u. T nhn xt ny, mt k thut c p dng l ti cc hm hay chng trnh con trong qu trnh thc hin chng trnh, hay cn gi l ti ng. Thc cht ca k thut ny l hon vic ti cc hm cho n khi hm c s dng. Hm no cha c gi n th cha c ti vo b nh. Mi khi c mt li gi hm, chng trnh gi s kim tra xem hm c gi nm trong b nh cha. Nu cha, chng trnh ti s c gi ti hm vo b nh, nh x a ch hm vo khng gian nh chung ca chng trnh v thay i bng a ch ghi li cc nh x . Trong k thut ny, vic kim tra v ti cc hm do chng trnh ngi dng m nhim. H iu hnh khng kim sot qu trnh ti m ch cung cp cc hm phc v vic ti cc m un thi. 3.2.2. Lin kt ng v th vin dng chung
T Minh Phng - HVCNBCVT 72

Qun l b nh Trong qu trnh lin kt truyn thng, cn gi l lin kt tnh, cc hm th vin c lin kt lun vo m chng trnh. Kch thc chng trnh khi s bng kch thc chng trnh va c dch cng vi kch thc cc hm th vin. Trn thc t, c cc hm th vin c dng trong hu ht cc chng trnh, v d a s chng trnh vit cho Windows s dng cc hm qun l ca s v giao din ho. Nu lin kt tnh, cc hm ny s c mt lp i lp li trong cc chng trnh lm tng khng gian chung m cc chng trnh chim, bao gm c khng gian trn a v khng gian b nh chnh khi cc chng trnh c ti vo thc hin. Mt trong nhng cch gii quyt vn ny l s dng k thut lin kt ng v cc th vin hm dng chung.V bn cht, k thut ny ch thc hin lin kt th vin vo chng trnh trong thi gian thc hin. Trong giai on lin kt, chng trnh lin kt khng kt ni cc m un th vin vo m un chng trnh. Thay vo , mt on m nh s c chn vo v tr ca hm th vin. on m ny cha thng tin v m un th vin nh m un nm trong th vin no, v tr (a ch) m m un chim trong khng gian a ch ca chng trnh.
M un khc (printf.c) M ngu n (prog.c)

Chng trnh d ch

Chng trnh d ch

M un object (printf.o)

M un object (prog.o)

Th vi n ha

Chng trnh lin k t

Th vi n dng chung (*.dll)

M un t i c (prog.exe)

Chng trnh t i ng (h i u hnh)

Chng trnh t i (h i u hnh)

Ti n trnh trong b nh

Hnh 3.2: Lin kt ng trong thi gian thc hin

T Minh Phng - HVCNBCVT

73

Qun l b nh Trong thi gian chy, khi on m chn vo c thc hin, on ny s kim tra xem m un th vin c nm trong b nh cha. Nu cha, m un th vin s c c vo b nh, sau chng trnh s thay a ch on m chn thnh a ch m un th vin. Trong ln thc hin tip theo, khi ti on n on chng trnh ny, m un th vin s c thc hin ngay, khng cn mt thi gian kim tra v ti li. i vi m un th vin c s dng bi nhiu tin trnh, tt c tin trnh c th dng chung mt bn duy nht phn m chng trnh ca th vin. Th vin khi c gi l th vin dng chung. K thut lin kt ng c minh ha trn hnh 3.2. Ngoi u im tit kim b nh, th vin dng chung cn gip cho vic cp nht v sa li th vin d dng hn. Khi c thay i trong th vin, ngi lp trnh khng cn bin dch v lin kt li ton b chng trnh. Thay vo , chng trnh ch cn cha thng tin v phin bn ca th vin tng thch vi chng trnh v la chn phin bn ph hp. Mt v d s dng lin kt ng v th vin dng chung l h iu hnh Windows. Th vin dng chung ca Windows c cha trong cc file c ui l DLL (Dynamic Linking Library). Khi xy dng chng trnh, trnh lin kt cho php ngi lp trnh la chn ch lin kt tnh hay lin kt ng. Nu lin kt tnh, ton b cc m un chng trnh v th vin c lin kt thnh mt file thc hin duy nht c th ci v chy trn my khc. Ngc li, nu chn lin kt ng, file thc hin khng cha th vin v c kch thc nh hn so vi lin kt tnh. Tuy nhin, khi ci t trn my khc cn ci t c file thc hin chnh v cc file .DLL cha th vin. H thng s thng bo khng tm c file DLL cn thit trong trng hp khng tm c cc file ny. 3.3. PHN CHNG B NH thc hin tin trnh, h iu hnh cn cp pht cho tin trnh khng gian nh cn thit. Vic cp pht v qun l vng nh l chc nng quan trng ca h iu hnh. Trong phn ny, chng ta s xem xt mt k thut cp pht n gin nht, trong mi tin trnh c cp mt vng b nh lin tc. Cc k thut tin tin hn s c cp trong cc phn sau. H thng my tnh hin i thng l h thng a chng trnh trong h iu hnh cho php ti v gi trong b nh nhiu tin trnh cng mt lc. c th cha nhiu tin trnh cng mt lc trong b nh, h iu hnh tin hnh chia s b nh gia cc tin trnh. K thut n gin nht l chia b nh thnh cc phn lin tc gi l chng (partition), mi tin trnh s c cung cp mt chng cha lnh v d liu ca mnh. Qu trnh phn chia b nh thnh chng nh vy gi l phn chng b nh (partitioning) hay cn gi l cp pht vng nh lin tc. Mc d k thut phn chng thun ty c coi l li thi, tuy nhin vic xem xt k thut ny l c s tm hiu v nhiu vn khc trong qun l khng gian nh, v do vy vn c cp ti y. Ty vo vic la chn v tr v kch thc ca chng, c th phn bit phn chng c nh v phn chng ng. 3.3.1. Phn chng c nh
T Minh Phng - HVCNBCVT 74

Qun l b nh Phn chng c nh l phng php n gin nht phn chia b nh cho cc tin trnh. B nh c phn thnh nhng chng c kch thc c nh nhng v tr c nh. Mi chng cha c ng mt tin trnh do s tin trnh ti a c th cha ng thi trong b nh s b gii hn bi s lng chng. Khi c ti vo, tin trnh c cp pht mt chng. Sau khi tin trnh kt thc, h iu hnh gii phng chng v chng c th c cp pht tip cho tin trnh mi. Kch thc cc chng c th chn bng nhau hoc khng bng nhau. Vic chn cc chng kch thc bng nhau mc d n gin hn mt cht song rt khng mm do. Tin trnh c kch thc ln hn kch thc chng s khng th ti vo chng v chy c. Mun cho chng cha c cc tin trnh ln, ta phi tng kch thc ca chng bng kch thc ca tin trnh ln nht. Do mi tin trnh chim c mt chng, cc tin trnh nh cng c cung cp v chim c chng nh mt tin trnh ln. Phn b nh rt ng k cn li ca chng s b b trng gy lng ph ln b nh. Hin tng ny gi l phn mnh trong (internal fragmentation). Trn thc t, h iu hnh ch s dng phng php phn chng vi kch thc chng khng bng nhau. Gi s cc chng c kch thc khc nhau v xut hin yu cu cung cp chng cho tin trnh. Cc tin trnh cn c ti vo c sp xp trong hng i ch n lt c cp chng nh. C hai cch la chn chng nh cp cho tin trnh ang ch i. Cch th nht l la chn chng nh nht c th cha tin trnh, tm gi l la chn chng ph hp nht, cp. Mi chng khi c mt hng i ring. Tin trnh c kch thc ph hp vi chng no s nm trong hng i ca chng (hnh 3.3 a).
Nhi u hng i Chng 4 500 KB Cc ti n trnh trong m t hng i Chng 3 300KB Chng 2 200KB Chng 1 150KB H i u hnh Chng 3 300KB Chng 2 200KB Chng 1 150KB H i u hnh Chng 4 500 KB

(a)

(b)

Hnh 3.3. Cp pht b nh s dng phn chng c nh. (a) Mi chng c hng i ring. (b) Mt hng i chung cho tt c cc chng
T Minh Phng - HVCNBCVT 75

Qun l b nh u im ca cch cp chng ny l cho php gim ti thiu phn mnh trong v do tit kim c b nh. Tuy nhin tnh t quan im ton cc ca h thng, cch cp chng ny c mt nhc im ng k sau. Do mi chng c mt hng i ring nn s c thi im hng i ca chng ln hn th rng v chng cng khng cha tin trnh no, trong khi hng i ca chng nh hn th c cc tin trnh. Cc tin trnh nh ny buc phi i c cp chng nh trong khi c th ti vo chng ln hn v chy. Trn hnh 3.3 a, chng 3 trng v khng c s dng, cn cc tin trnh nh vn phi ch chng 1,2. Cch th hai cho php khc phc nhc im ni trn. Trong cch ny, h iu hnh s dng mt hng i duy nht cho tt c cc chng (hnh 3.3 b). Mi khi c khi c mt chng trng, tin trnh nm gn u hng i nht v c kch thc ph hp vi chng s c ti vo thc hin. Vi cch la chn nh vy, c th tin trnh u hng i hn v c th t u tin cao hn s b ti vo sau. trnh cho tin trnh b b qua nhiu ln do kch thc khng ph hp v phi ng qu lu trong hng i, c th quy nh s ln ti a n m mi tin trnh b b qua. Mi khi tin trnh b chen ngang trong hng i, tin trnh s c thm mt im. Khi tin trnh c n im, h iu hnh s tm kh nng gn nht ti tin trnh vo b nh. Mt v d kinh in v s dng thnh cng phng php phn chng ny l h iu hnh cho my tnh ca hng IBM OS/360 vi phng php c tn gi MFT (Multiprogramming with Fixed number of Tasks). Kch thc v s lng chng do ngi vn hnh my quy nh v c gi nguyn trong nhng khong thi gian tng i di. Mc d phng php phn chng c nh tng i n gin, song phng php ny c mt s nhc im. Th nht, s lng tin trnh trong b nh b hn ch bi s lng chng. Th hai, do b phn mnh trong nn b nh c s dng khng hiu qu. Hin nay, phng php phn chng ny hu nh khng c s dng. 3.3.2. Phn chng ng Trong phng php phn chng ny, kch thc v s lng chng u khng c nh v c th thay i. Mi khi tin trnh c ti vo b nh, tin trnh c cp mt lng b nh ng bng lng b nh m tin trnh cn, sau khi kt thc, tin trnh gii phng b nh. Vng b nh do tin trnh chim trc tr thnh mt l (vng trng) trong b nh nu cc vng nh trc v sau thuc v cc tin trnh khc. Nh vy, mi thi im, trong b nh tn ti mt tp hp cc vng trng c kch thc khc nhau. H iu hnh s dng mt bng bit c phn b nh no c dng, phn no ang cn trng. Cc vng b nh cng c th c lin kt thnh mt danh sch kt ni. Tin trnh cn b nh c xp trong hng i ch ti lt mnh. Mi khi n lt mt tin trnh, h iu hnh s c gng cung cp b nh cho tin trnh bng cch tm mt l (vng b nh) trng c kch thc ln hn hoc bng kch thc tin trnh. Nu khng c vng b nh trng no tho mn iu kin ny, h iu hnh c th ch cho ti khi mt vng b nh ln c gii phng cp pht hoc tm kim trong hng i mt tin trnh nh c th cha trong nhng vng b nh cn trng.
T Minh Phng - HVCNBCVT 76

Qun l b nh Trong trng hp kch thc vng trng tm c ln hn kch thc tin trnh, vng trng c chia thnh hai phn. Mt phn cp cho tin trnh, phn cn li tr thnh mt vng trng c kch thc nh hn vng trng ban u v c b sung vo danh sch cc vng trng m h iu hnh qun l. Mi tin trnh sau khi kt thc to ra mt vng trng mi. Nu vng trng ny nm k cn vi mt vng trng khc, chng s c ni vi nhau to ra vng trng mi c kch thc ln hn. Trn hnh 3.4 th hin tnh trng b nh khi tin trnh c cp pht v gii phng chng nh theo thi gian s dng k thut phn chng ng.

C B A H i u hnh A H i u hnh B A H i u hnh

C B

D H i u hnh H i u hnh H i u hnh

Theo th i gian

Hnh 3.4. Tnh trng b nh khi phn chng ng. Vng bi xm l vng nh trng Cng vi thi gian, vic phn chng ng c th sinh ra trong b nh cc vng trng kch thc qu nh v do vy khng th cp pht tip cho bt k tin trnh no. Khng gian m cc vng trng ny chim do vy b b ph. Hin tng ny gi l phn mnh ngoi. S d gi nh vy l do khng gian bn ngoi cc chng b chia nh, tri vi phn mnh trong nh ta nhc ti trn. gii quyt vn phn mnh ngoi, ngi ta s dng k thut dn b nh. Cc chng thuc v cc tin trnh c dch chuyn li nm k nhau. Cc vng trng gia cc tin trnh khi s dn thnh mt vng trng duy nht. K thut dn b nh i hi mt s thi gian nht nh di chuyn cc chng b nh v lm ny sinh vn b tr li a ch trong cc tin trnh. Mt yu t nh hng nhiu ti phn mnh ngoi l la chn vng trng ph hp khi cp b nh cho tin trnh. Chin lc la chn vng trng ng n cp pht s lm gim ng k phn mnh ngoi. C ba chin lc cp b nh thng c s dng: Vng thch hp u tin (first fit): chn vng trng u tin c kch thc ln hn hoc bng kch thc cn cp pht. Vic tm kim c th bt u t u danh sch cc vng trng hay t v tr ca ln cp pht cui cng. Trong trng hp sau, chin lc c t tn l vng thch hp tip theo (next fit). Chin lc ny n gin v do thc hin nhanh nht. Vng thch hp nht (best fit): chn vng trng nh nht trong s cc vng trng c
T Minh Phng - HVCNBCVT 77

Qun l b nh kch thc ln hn hoc bng kch thc cn cp pht. Vng trng sinh ra sau khi cp pht do vy s c kch thc b nht. Vng khng thch hp nht (worst fit): t nhn xt l cc vng trng sinh ra sau khi cp pht theo chin lc th hai (best fit) c kch thc b v do thng khng thch hp cho vic cp pht tip theo, ngi ta ngh ra chin lc th ba ny. Vng trng ln nht s c cp pht. Khng gian cn tha t vng trng ny sau khi cp xong to ra vng trng mi c kch thc ln hn so vi hai chin lc trn. V d: trong b nh c 4 vng trng c kch thc ln lt nh sau 3MB, 8MB, 7MB, v 10MB; yu cu cp pht vng nh kch thc 6MB. Ba chin lc cp pht trn s cho kt qu nh sau: Chin lc first fit s chn khi 8MB chia v cp pht. Chin lc best fit s chn vng trng 7MB. Chin lc worst fit s chn vng trng 10MB.

quyt nh chin lc no l tt nht, nhiu nghin cu c thc hin. Kt qu m phng v thc nghim cho thy, hai phng php u cho php gim phn mnh ngoi tt hn phng php th ba. Trong hai phng php u, phng php th nht n gin v c tc nhanh nht. 3.3.3. Phng php k cn C hai phng php phn chng ni trn u c cc nhc im. Phn chng c nh hn ch s lng tin trnh trong b nh v gy phn mnh trong. Phn chng ng, mc d trnh c cc nhc im ny, song tng i phc tp trong vic qun l vng trng v la chn vng trng ph hp, ng thi gy phn mnh ngoi. Mt phng php cho php dung ho cc nhc im ca hai phng php ni trn c gi l phng php k cn (buddy systems). Trong phng php ny, h iu hnh qun l v cp pht khi nh c kch thc l lu tha ca 2. Gi s cc khi trng c kch thc l 2 K vi L<=K<=H, trong 2L l kich thc khi nh nh nht c th c cp pht (thng khng nh hn 1KB), 2 H l kch thc khi nh ln nht c th cp pht (thng bng kch thc ton b nh). Khi u, ton b nh l mt khi trng duy nht c kch thc 2 H. Gi s c yu cu cp pht khi nh kch thc s. Nu 2 H-1 < s 2H th ton khi nh s c cp pht. Trong trng hp s 2 H-1, khi nh c chia i thnh hai khi k cn, mi khi c kch thc 2H1 . So snh tip, nu 2 H-2 < s 2H-1 , mt trong hai khi 2 H-2 s c cp pht. Ngc li, mt trong hai khi 2 H-2 c chia i tip thnh cc khi k cn kch thc 2H-3. Qu trnh ny tip tc cho ti khi khi nh nh nht c kch thc ln hn hoc bng s c to ra hoc ta t gii hn di 2 L. Sau mt thi gian tin hnh phn chia nh vy, trong b nh s hnh thnh tp hp cc khi trng kch thc 2 K . H iu hnh qun l cc khi ny bng cch to ra danh sch mc ni cho nhng khi c kch thc bng nhau. Cc khi b chia i c chuyn sang danh sch khi b hn. Ngc li, khi c hai khi k cn cng kch thc, chng s c kt hp
T Minh Phng - HVCNBCVT 78

Qun l b nh li to ra khi c kch thc gp i v c chuyn vo danh sch cc khi kch thc tng ng. Mt v d minh ha qu trnh cp pht v gii phng b nh s dng phng php k cn c th hin qua hnh 3.5. 1GB trng Cp 205MB Cp 120MB Cp 500MB Gii phng B Gii phng C Gii phng A
A = 205MB A = 205MB A = 205MB A = 205MB A = 205MB 256MB B=120MB 128MB B=120MB 128MB 256MB 256MB 1GB 1GB 512MB 512MB C=500MB C=500MB 512MB

Hnh 3.5. V d cp pht v gii phng chng nh s dng k thut k cn Cng nh k thut phn chng ni chung, phng php k cn thun ty hin c coi l c nhiu nhc im. Tuy nhin, phng php ny c th s dng kt hp vi k thut phn trang s c trnh by phn sau tn dng u im ca mnh. H iu hnh Linux s dng phng php k cn kt hp vi trang nh kch thc 4KB qun l b nh vt l. 3.3.4. nh x a ch v chng truy cp b nh tri php Vi vic phn chng b nh, cc tin trnh s c ti vo cc chng b nh thc hin. V tr cc chng trong b nh thng khng c bit trc v c th thay i trong qu trnh thc hin tin trnh (v d khi h thng tin hnh dn b nh phng php phn chng ng). Do , mt vn cn gii quyt l nh x cc a ch lgic ca tin trnh thnh a ch vt l. Vn tip theo cng cn gii quyt l chng truy cp tri php b nh. Vi nhiu tin trnh cha trong b nh, cc tin trnh c th v tnh (do li) hoc c truy cp ti vng b nh thuc tin trnh khc. Vic truy cp tri php c th ph v an ton bo mt thng tin. Nu tin trnh b truy cp tri php l tin trnh ca h iu hnh th vic truy cp c th gy ra li lm hng ton b h thng. Hai vn ni trn c th gii quyt bng cch s dng mt c ch phn cng nh minh ha trn hnh 3.6. Khi h iu hnh ti tin trnh vo v thc hin, hai thanh ghi c bit ca processor s c s dng. Thanh ghi th nht gi l thanh ghi c s cha a ch bt u ca tin trnh trong b nh. Thanh ghi th hai gi l thanh ghi gii hn v cha gii hn a ch l gic ca
T Minh Phng - HVCNBCVT 79

Qun l b nh tin trnh tc di chng cha tin trnh. a ch lgic c so snh vi ni dung thanh ghi gii hn. Ch nhng a ch lgic nh hn gi tr thanh ghi ny mi c coi l hp l v c nh x thnh a ch vt l. a ch vt l c to ra bng cch cng ni dung thanh ghi c s vi a ch lgic.
Thanh ghi gi i h n Thanh ghi c s

CPU

a ch l gic

yes

<
no

a ch v t l

B nh

L i truy c p b nh

Hnh 3.6. C ch nh x a ch v chng truy cp tri php

Trong trng hp cc chng b di chuyn trong b nh, chng hn nh khi h iu hnh tin hnh dn b nh trnh phn mnh ngoi, ni dung thanh ghi c s s c thay i thnh a ch mi ca chng. Cc php nh x sau vn din ra nh c. 3.3.5. Trao i gia b nh v a (swapping) Trong cc h a chng trnh, c th thc hin nhiu tin trnh mt lc, cc tin trnh ang thc hin c th b tm thi ti ra a nhng ch ti cc tin trnh khc vo v thc hin. Sau cc tin trnh b ti ra li c ti vo thc hin tip. Vic trao i gia a v b nh nh vy c th thc hin khi mt tin trnh ht khong thi gian s dng CPU ca mnh v phi i cho ti khi n lt. Tin trnh khi b ti ra nhng ch cho tin trnh khc n lt s dng CPU. Tin trnh cng c th b ti ra nhng ch cho mt tin trnh khc c th t u tin cao hn. Cc tin trnh thng c ti ra v ti vo t cc a tc cao. Thi gian ti ph thuc vo tc truy cp a, tc truy cp b nh v kch thc tin trnh. Khi c ti vo li, tin trnh c th c cha vo v tr c hoc c cp cho mt chng a ch hon ton mi. Mt hn ch vi cc tin trnh b trao i l tin trnh phi trng thi ngh, c bit khng thc hin cc thao tc vo ra. Gi s, tin trnh P1 c mt yu cu vo ra ang trong hng i do thit b vo ra bn. Ta ti P1 ra v ti P2 vo v tr ca P1. Khi thao tc vo ra ca P1 c p ng, thao tc ny s truy cp vng a ch ca P1 trc kia m hin gi P2 ang chim. 3.4. PHN TRANG B NH
T Minh Phng - HVCNBCVT 80

Qun l b nh Trong k thut phn chng trnh by trn, mi tin trnh chim mt chng tc mt vng lin tc trong b nh. Nhc im ca vic phn chng b nh l to ra phn mnh: phn mnh trong i vi phn chng c nh, phn mnh ngoi i vi phn chng ng, hu qu u l vic khng tn dng ht b nh. hn ch nhc im ca k thut cp pht cho tin trnh chng nh, c th s dng phng php cp pht cho tin trnh nhng vng nh khng nm lin nhau. Trong phn ny ta s xem xt k thut phn trang (paging), l mt trong hai k thut cp pht b nh nh vy. 3.4.1. Khi nim phn trang b nh Trong cc h thng phn trang, b nh vt l c chia thnh cc khi nh kch thc c nh v bng nhau gi l khung trang (page frame) hoc n gin l khung. Khng gian a ch lgic ca tin trnh cng c chia thnh nhng khi gi l trang (page) c kch thc bng kch thc ca khung. Mi tin trnh s c cp cc khung cha cc trang nh ca mnh. Cc khung thuc v mt tin trnh c th nm cc v tr khc nhau trong b nh ch khng nht thit nm lin nhau theo th t cc trang. Hnh 3.7 sau cho thy c ba tin trnh c ti vo b nh. Tin trnh A v C chim cc khung nm cnh nhau trong khi tin trnh D chim cc khung nm trong hai vng nh cch xa nhau.

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

A.0 A.1 A.2 D.0 D.1 C.0 C.1 C.2 D.2 D.3

0 1 2

A.0 A.1 A.2 Ti n trnh A

0 1 2

C.0 C.1 C.2 Ti n trnh B

0 1 2 3

D.0 D.1 D.2 D3 Ti n trnh C

Khng gian nh l gic c a cc ti n trnh A v B: 3 trang D: 4 trang

B nh

Hnh 3.7: Phn trang b nh K thut phn trang c im tng t vi phn chng c nh, trong mi khung tng t mt chng, c kch thc v v tr khng thay i. Tuy nhin, khc vi phn chng, mi tin trnh c cp pht nhiu khung kch thc nh, nh vy gim ng k phn mnh trong. Khi phn trang, khong khng gian b ph do phn mnh trong bng phn khng gian khng s dng trong trang cui ca tin trnh, nu kch thc tin trnh khng bng bi s kch thc trang. Tnh trung bnh, mi tin trnh b b ph mt na trang do phn mnh trong.
T Minh Phng - HVCNBCVT 81

Qun l b nh Phng php phn trang khng b nh hng ca phn mnh ngoi do tng khung trong b nh u c th s dng cp pht.

3.4.2. nh x a ch Bng trang. Do tin trnh nm trong nhng khung nh khng lin k nhau, nh x a ch lgic ca tin trnh thnh a ch vt l, vic dng mt thanh ghi c s cho mi tin trnh nh phng php phn chng l khng . Thay vo ngi ta s dng mt bng gi l bng trang (page table). Mi ca bng tng ng vi mt trang v cha s th t hay a ch c s ca khung cha trang trong b nh. Trn hnh 3.8 l v d bng trang cho ba tin trnh A, C, D c minh ha hnh 3.7. Cn lu l mi tin trnh c bng trang ring ca mnh.

0 1 2

0 1 2

0 1 2

5 6 7

0 1 2 3

3 4 8 9 B ng trang ti n trnh D

B ng trang ti n trnh A

B ng trang ti n trnh C

Hnh 3.8. V d bng trang ca cc tin trnh a ch. a ch l gic khi phn trang bao gm hai phn: s th t trang (p) v dch (o) ca a ch tnh t u trang . S th t trang c dng tm ra tng ng trong bng trang, t bng ta tm c a ch c s ca khung tng ng. a ch ny c cng vo dch trong trang to ra a ch vt l v c chuyn cho mch iu khin b nh truy cp. Cu trc a ch l gic c th hin trn hnh sau, trong di a ch l gic l m+n bit, tng ng vi khng gian nh l gic ca tin trnh l 2 m+n. Phn m bit cao cha s th t ca trang, v n bit thp cha dch trong trang nh. Kch thc trang nh khi s bng 2n. a ch l gic di s th t trang (p) m dch trong trang (0) n

V d: cho trang nh kch thc 1024B, di a ch l gic 16 bit. a ch l gic 1502, hay 0000010111011110 dng nh phn, s c: phn p = 1502/1024 = 1 tng ng vi 6 bit cao 000001 phn o = 1502 module 1024 = 478 tng ng vi 10 bit thp 0111011110. C ch nh x a ch. Qu trnh bin i t a ch l gic thnh a ch vt l c thc hin nh phn cng theo c ch c th hin trn hnh 3.9. Cn lu l vic nh x a ch u phi da vo phn cng v thao tc nh x cn thc hin thng xuyn v nh hng ln ti tc ton h thng.
T Minh Phng - HVCNBCVT 82

Qun l b nh Do vic phn trang phi da vo s h tr ca phn cng khi bin i a ch, kch thc trang v khung do phn cng quyt nh. thun tin cho vic nh x a ch theo c ch trn hnh 3.9, kch thc trang lun c chn bng ly tha ca 2, v nm trong khong t 512B n 16MB. Lu rng vi kch thc trang bng ly tha ca 2, vic tch phn p v o trong a ch l gic c thc hin d dng bng php dch bit thay v thc hin php chia v chia m un thng thng (xem v d v a ch l gic trn).

Hnh 3.9. Phn cng nh x a ch khi phn trang Nh ni trn, phn mnh trong khi phn trang c gi tr trung bnh bng na trang. Nh vy, gim kch thc trang cho php tit kim b nh. Tuy nhin, kch thc trang nh lm s lng trang tng ln, dn ti bng trang to hn, kh qun l. Kch thc trang qu b cng khng tin cho vic trao i vi a, vn c thc hin theo tng khi ln. Trn thc t, ngi ta thng chn trang c kch thc va phi. V d, vi x l Pentium ca Intel hin nay h tr kch thc trang bng 4KB hoc 4MB. H iu hnh Windows 32 bit chn kch thc trang bng 4KB. Qun l khung. cp pht c b nh, h iu hnh cn bit cc khung trang no cn trng, khung trang no c cp v cp cho tin trnh no. qun l c cc thng tin ny, h iu hnh s dng mt bng gi l bng khung (frame table). Mi khon mc ca bng khung ng vi mt khung ca b nh vt l v cha cc thng tin v khung ny: cn trng hay c cp, cp cho tin trnh no.v.v. Vi vic phn trang, cch nhn ca ngi dng v chng trnh ng dng i vi b nh (tc l b nh lgic) hon ton khc vi b nh vt l thc. B nh lgic khi c chng trnh ng dng coi nh mt khi lien tc v duy nht cha chng trnh . Thc t, chng trnh c th gm cc trang nm xa nhau v ri rc trong b nh. C ch nh x gia hai loi a ch hon ton trong sut i vi chng trnh v do h iu hnh qun l. Tin trnh ng dng, do , khng c kh nng truy cp ti vng b nh thc nm ngoi cc trang c cp cho tin trnh . 3.4.3. T chc bng phn trang Tc truy cp bng phn trang
T Minh Phng - HVCNBCVT 83

Qun l b nh Mi thao tc truy cp b nh u i hi thc hin nh x gia a ch lgic v a chvt l, tc l i hi truy cp bng phn trang. Tc truy cp bng phn trang do nh hng rt ln ti tc truy cp b nh ca ton h thng. Vy phi t chc bng phn trang sao cho tc truy cp l cao nht. Cch n gin nht l s dng mt tp hp cc thanh ghi dnh ring lm bng phn trang. Tc truy cp bng phn trang khi rt cao nhng kch thc v s lng bng phn trang s b hn ch do s lng thanh ghi ca CPU khng nhiulm. Cc my tnh hin i u c b nh ln v do cng cn bng phn trang tng ng. Phng php dng thanh ghi d khng p dng c. Cc bng phn trang khi c gi trong b nh. V tr ca mi bng s c tr ti bi mt thanh ghi gi l thanh ghi c s ca bng trang (PTBR-Page-Table Base Register). Do tc b nh tng i chm nn i hi nhiu thi gian cho vic truy cp bng. Gii php thng p dng tng tc l s dng b nh cache tc cao. Chi tit v nguyn tc v ch t chc cache s c cp ti mt trong cc chng sau. Bng phn trang nhiu mc Cc h thng tnh ton hin i cho php s dng khng gian a ch lgic rt ln (232 n 264). Kch thc bng phn trang do cng tng theo. Gi s khng gian a ch lgic l 232, kch thc trang nh l 4KB=212. S lng khon mc cn c trong bng phn trang s l 232/212=220. Nu mi khon mc c kch thc 4 byte, kch thc bng phn trang s l 222=4MB. Mi tin trnh cn c mt bng phn trang ring nh vy. Vic tm ra vng trng kch thc 4MB trong b nh c th khng n gin, do vy cn chia bng phn trang ra thnh nhng phn nh hn. Vic chia nh c thc hin bng cch t chc bng phn trang nhiu mc. Mi khon mc ca bng mc trn khng ch ti mt trang m ch ti mt bng phn trang khc. Ta ly v d bng hai mc. a ch 32 bit khi c chia thnh 3 phn. Phn th nht p 1 kch thc 10 bit cho php nh v khon mc trong bng mc trn. T y ta tm c bng mc di tng ng. Phn p2 cho php nh v khon mc trong bng mc di. Khon mc ny cha a ch ca khung tng ng. Phn cn li o kch thc 12 bit cha dch trong trang.

{ { {

T Minh Phng - HVCNBCVT

84

Qun l b nh Hnh 3.10. Bng phn trang hai mc 3.5. PHN ON B NH Trong phn ny, ta s xem xt mt k thut cp pht b nh khc, trong mi tin trnh c cp pht nhng vng nh khng nht thit nm gn nhau. 3.5.1 Khi nim Mi chng trnh bao gm mt s thnh phn c ngha khc nhau: d liu, lnh, hm, ngn xp.v.v. , Tuy nhin, khi phn trang, chng trnh c chia thnh cc trang kch thc u nhau, khng quan tm n t chc lgic v ngha cc thnh phn. B nh c coi nh mt khi duy nht cc byte hoc cc t. Mt cch t chc khc cho php tnh ti t chc lgic ca chng trnh l phn on (segmentation). Chng trnh c chia thnh nhng phn kch thc khc nhau gi l on (segment) tu theo ngha ca chng. Chng hn, ta c th phn bit: on chng trnh, cha m ton b chng trnh, hay mt s hm hoc th tc ca chng trnh. on d liu, cha cc bin ton cc, cc mng. on ngn xp, cha ngn xp ca tin trnh trong qu trnh thc hin.

Khng gian a ch lgic ca tin trnh khi s gm tp hp cc on. Mi on tng ng vi khng gian a ch ring, c phn bit bi tn v di ca mnh. Ngoi cch dng tn, on cng c th c nh s phn bit. Mi a ch lgic do CPU sinh ra khi s gm hai phn: s th t ca on v dch trong on. Vic chia chng trnh thnh cc on c th do ngi lp trnh thc hin, chng hn khi lp trnh bng assembly, hoc do chng trnh dch t ca ngn ng bc cao t ng chia. Ngi lp trnh khi cn bit kch thc ti a c php ca on, v d khng khai bo mng vt kch thc ti a ny. Phn on b nh ging vi phn chng ng ch b nh c cp pht theo tng vng kch thc thay i. Tuy nhin, khc vi phn chng ng, mi chng trnh c th chim nhng on b nh khng nm lin k nhau. Mi khi c yu cu cp pht b nh cho cc on, thut ton cp pht first-fit hoc best-fit nh phn chng ng s c s dng. Cng nh phn chng ng, phn on khng sinh phn mnh trong nhng li to phn mnh ngoi. Mc phn mnh ngoi ph thuc vo kch thc trung bnh ca on. on cng nh th phn mnh ngoi cng gim. Trng hp c bit, nu kch thc on l mt byte hay mt t tc l bng n v thng tin nh nht c nh a ch ca b nh th s hon ton khng c phn mnh ngoi. Tuy nhin, s lng on tng lm tng kch thc ca bng phn on v tng thi gian qun l cc on. Kch thc on thng ph thuc kch thc b nh. B nh cng ln th kch thc on cng c chn cng ln. Nhn chung, phn mnh ngoi khi phn on nh hn phn chng ng do tin trnh c chia thnh cc on kch thc nh hn. 3.5.2. nh x a ch v chng truy cp tri php
T Minh Phng - HVCNBCVT 85

Qun l b nh a ch. Khi s dng phn on, khng gian nh l gic s bao gm khng gian nh ca cc on. Do vy, a ch l gic bao gm hai thnh phn, ch r hai thng tin: a ch thuc on no, v dch t u on l bao nhiu. Hai thng tin ny cn c ngi lp trnh cung cp r rng, khc vi trng hp phn trang, trong tin trnh cung cp duy nht mt a ch v phn cng c nhim v tch a ch ny thnh s trang v dch. i vi on c nh s, a ch l gic s c hai thnh phn, c cu trc nh sau: <s th t o n (s), d ch trong o n (o) >

i vi trng hp chng trnh vit trn ngn ng bc cao, a ch l gic vi hai thnh phn nh vy c chng trnh dch sinh ra trong qu trnh dch th hin cu trc v ngha cc on ca chng trnh ngun. nh x a ch. a ch l gic cn phi c bin i thnh a ch vt l xc nh nh c th ca my tnh. Tng t nh trong trng hp phn trang, vic nh x c thc hin da trn bng on (segment table). Mi ca bng on cha a ch c s v gii hn ca on. a ch c s l v tr bt u ca on trong b nh my tnh, cn gii hn on chnh l di on v s c s dng chng truy cp tri php ra ngoi on. Mi tin trnh c mt bng nh vy. Bng on c s dng kt hp vi mt c ch phn cng cho php bin i t a ch l gic sang a ch tuyt i (hnh 3.11). Vic chng truy cp tri php c thc hin nh cc bit bo v cha trong khon mc ca bng phn on. Cc on c gn bit bo v da theo ngha ca on . Chng hn, cc on cha lnh s khng cho php ghi m ch cho php c.

Hnh 3.11. C ch nh x a ch khi phn on 3.5.3. Kt hp phn on vi phn trang kt hp cc u im ca phn don vi cc u im ca phn trang, cc h thng tnh ton hin i thng kt hp c hai phng php t chc b nh ny. Tin trnh bao gm
T Minh Phng - HVCNBCVT 86

Qun l b nh nhiu on. Mi on li c phn trang. Nh vy mi tin trnh c mt bng phn on ring v mi on li c bng phn trang ring ca mnh. nh v nh trong phng php ny, a ch phi gm ba phn (s,p,o). Phn th nht s l s th t on. s cho php xc nh khon mc ng vi on trong bng chia on. Khon mc cha con tr ti bng chia trang cho on . S th t trang p cho php xc nh khung trang tng ng. dch o s c cng vo a ch khung tnh ra a ch vt l.

Hnh 3.12. nh x a ch kt hp phn on vi phn trang

3.6. B NH O 3.6.1. Khi nim b nh o Qua cc ni dung trnh by phn trn: phn trang, phn on, trao i b nh-a, c th rt ra mt s nhn xt nh sau: - Tin trnh c th b chia thnh nhng phn nh (trang hoc on) v c xp nm ri rc trong b nh. Cc phn nh ny c th b trao i ra a hoc t a vo trong qu trnh thc hin. - Cc php truy cp a ch trong tin trnh u s dng a ch lgic, a ch ny sau c nh x thnh a ch vt l nh cc c ch phn cng. Vic nh x c thc hin trong thi gian thc hin, vi tin trnh cng nh ngi dng khng nhn thy v khng cn bit n vic nh x ny.

T Minh Phng - HVCNBCVT

87

Qun l b nh Phn tch vic thc hin cc tin trnh cng cho thy khng phi tin trnh no khi chy cng s dng tt c cc lnh v d liu ca mnh vi tn sut nh nhau. V d cc on lnh x l li c th rt t khi c gi. Cc nhn xt ny cho php rt ra mt kt lun rt quan trng: khng nht thit ton b cc trang hoc on ca mt tin trnh phi c mt ng thi trong b nh khi tin trnh chy. Cc trang hoc on c th c trao i t a vo b nh khi c nhu cu truy cp ti. Vic thc hin cc tin trnh ch nm mt phn trong b nh c mt s u im sau: - S lng tin trnh c cha ng thi trong b nh tng ln do mi tin trnh chim t ch hn. Cng nhiu tin trnh trong b nh th CPU cng c s dng trit hn. - Kch thc tin trnh c th ln hn kch thc thc ca b nh. Ngi lp trnh c th vit nhng chng trnh ln m khng cn quan tm ti hn ch ca b nh thc. iu ny cho php gii quyt mt trong nhng vn c bn ca lp trnh: gii hn kch thc chng trnh. H iu hnh s t phn chia chng trnh, ti vo thc hin khi cn, ngi lp trnh khng cn quan tm ti cc vn ny. Ti y ta c th a ra khi nim b nh o. Trc ht, nhc li khi nim b nh thc. B nh thc l b nh vt l ca my tnh, lnh v d liu ch c x l khi nm trong b nh thc. B nh o l b nh lgic theo cch nhn ca ngi lp trnh v tin trnh v khng b hn ch bi b nh thc. B nh o c th ln hn b nh thc rt nhiu v bao gm c khng gian trn a. B nh o l mt phng php t chc b nh quan trng c s dng trong hu ht cc h iu hnh hin i. N n gin ho rt nhiu nhim v ca ngi lp trnh v cho php s dng khng gian nh ln hn khng gian nh thc. B nh o thng c xy dng da trn phng php phn trang trong cc trang l n v np t a vo khi cn. Trong phng php kt hp phn on vi phn trang, trang cng c s dng nh n v xy dng b nh o. Phng php phn on tng i t c s dng lm c s cho b nh o do cc thut ton i on phc tp hn i trang. Nguyn nhn chnh ca s phc tp l do kch thc on khng c nh. Trong cc phn sau, t chc b nh o trn c s phn on khng c cp ti. 3.6.2. Np trang theo nhu cu Np trang theo nhu cu (demand paging) da trn phn trang kt hp trao i b nha. Tin trnh c phn trang v cha trn a. Khi cn thc hin tin trnh, ta np tin trnh vo b nh. Tuy nhin, khng phi ton b cc trang ca tin trnh c np cng mt lc. Ch nhng trang ang cn n mi c np vo. Do c tn gi np trang theo nhu cu. Ti mt thi im, mi tin trnh s gm c tp hp cc trang ang trong b nh v nhng trang cn trn a. nhn bit trang trong b nh hay ngoi, ngi ta thm mt bit (tm gi l bit P) vo khon mc trong bng phn trang. Gi tr ca bit bng 1(0) cho thy trang tng ng trong (ngoi) b nh hoc ngc li. Hnh 3.13 minh ha mt v d tin trnh vi cc trang trong v ngoi b nh.
T Minh Phng - HVCNBCVT 88

Qun l b nh Khi tin trnh truy cp ti mt trang, bit P ca trang s c kim tra. Nu trang trong b nh, vic truy cp din ra bnh thng. Ngc li, nu trang cha c np vo, mt s kin gi l thiu trang hay li trang (page-fault) s xNy ra. Phn cng lm nhim v nh x a ch trang sinh ra mt ngt v c chuyn cho h iu hnh x l. Th tc x l ngt sinh ra do thiu trang gm cc bc sau (hnh 3.14):

Hnh 3.13. Phn trang b nh - H iu hnh tm mt khung trng trong danh sch cc khung trng. - Trang tng ng s c c t a vo khung trang va tm c. - Sau khi trang c c vo, khon mc tng ng trong bng phn trang s c sa i tng ng vi v tr ca trang trong b nh, trng thi bit P th hin vic trang trong b nh. - Lnh ca tin trnh gy ra ngt c thc hin li. Lnh ny by gi c th truy cp trang va c np vo. Sau khi ngt c x l xong v trang c np, ton b trng thi tin trnh c khi phc li nh ban u v ta c th thc hin tip tin trnh vi mt trang va c np. Ti thi im ny, mt s trang ca tin trnh c th vn nm ngoi b nh. Nu tin trnh truy cp cc trang , s kin thiu trang li xNy ra v qu trnh x l nh trn s lp li. Vi s x l thiu trang nh trn y, ta c th bt u mt tin trnh m khng np bt k trang no ca tin trnh vo b nh. Khi con tr lnh c h iu hnh chuyn ti lnh u tin (cha c ti vo b nh) ca tin trnh thc hin, s kin thiu trang s sinh ra v trang tng ng c np vo. Tin trnh sau thc hin bnh thng cho ti ln
T Minh Phng - HVCNBCVT 89

Qun l b nh thiu trang tip theo. S np trang nh vy l trng hp ring ca np trang theo nhu cu v c gi l np trang hon ton theo nhu cu. Trong cc s khc, mt s trang c th c np sn v c gi trong b nh trnh xy ra thiu trang. Vic la chn s trang np sn c trnh by trong mt phn sau.
3 H i u hnh

0 1 2 1 B C 2 3 4 5 6 7 D E F G H B nh logic 5 3 4 5 6 7 9 6 0 4 1 0 1 0 0 1 0 0 B ng trang 7 8 9 10 11 12 B nh v t l F a 4 5 6 C C F A D G B E H 3 4 A

2 0 1 2 A

Hnh 3.14. Cc bc x l thiu trang Chin lc np trang khc vi np trang theo nhu cu c gi l np trang trc (prepage), trong cc trang cha cn n cng c np vo b nh. Chin lc ny da trn c im ca a hoc bng t trong cc khi lin tip trn a cng thuc mt tin trnh c c ng thi vo b nh hn ch thi gian di chuyn u t c a. Tuy nhin, cc nghin cu cho thy, chin lc np trang trc l khng hiu qu v nhiu mt v do s khng c cp ti na. Mt vn gn vi np trang theo nhu cu l mt lnh c th sinh ra cc yu cu truy cp b nh khc nhau ( c lnh v cc ton hng). Nu cc a ch truy cp thuc v nhng trang mi khc nhau th lnh s gy ra nhiu s kin thiu trang v do vy lm gim nghim trng tc thc hin. Tuy nhin trong thc t, hin tng ny t xy ra do tnh cc b ca lnh v d liu. Ta s quay li vn ny sau. 3.7. I TRANG 3.7.1. Ti sao phi i trang
T Minh Phng - HVCNBCVT 90

Qun l b nh Khi xNy ra thiu trang, h iu hnh tm mt khung trng trong b nh, c trang thiu vo khung v tin trnh sau hot ng bnh thng. Tuy nhin, do kch thc ca cc tin trnh c th ln hn kch thc b nh thc rt nhiu nn ti mt lc no s xy ra tnh trng ton b b nh c cp pht, h iu hnh khng th tm c khung trng ti trang mi vo. Cch gii quyt n gin nht trong trng hp l h iu hnh kt thc tin trnh do khng tho mn c nhu cu b nh. Nhng, nh ta bit, mc ch ca b nh o l cho php cc tin trnh s dng c khng gian nh ln hn khng gian nh thc v tng tnh a chng trnh ca h thng. Tin trnh v ngi dng cn c p ng nhu cu v b nh. Cch gii quyt th hai l tm trao i tin trnh ra a, gii phng ton b khng gian m tin trnh chim trong b nh v ch ti khi thun li (nhiu b nh trng hn) mi np li tin trnh vo b nh thc hin tip. Cch gii quyt ny l cn thit trong mt s trng hp. Cch gii quyt th ba c p dng trong a s trng hp. l s dng k thut i trang. Thao tc i trang Bn cht ca vic i trang nh sau. Nu khng c khung no trng, h iu hnh chn mt khung cp pht nhng hin gi khng dng ti v gii phng khung trang ny. Ni dung ca khung c trao i ra a, trang nh cha trong khung s c nh du khng cn nm trong b nh (bng cch thay i bit P tng ng) trong bng phn trang c cha trang ny. Khung c gii phng c cp pht cho trang mi cn np vo. C th, qu trnh i trang din ra qua mt s bc sau: Bc 1: Xc nh trang cn np vo trn a Bc 2: Nu c khung trng trng th chuyn sang bc 4. Bc 3: a) La chn mt khung gii phng. Khung c la chn theo mt thut ton hay chin lc i trang no . b) Ghi ni dung khung b i ra a (nu cn); cp nht bng trang v bng khung. Bc 4: c trang cn np vo khung va gii phng; cp nht bng trang v bng khung th hin thay i ny. Bc 5: Thc hin tip tin trnh t im b dng trc khi i trang. i trang c ghi v i trang khng ghi. Nu nhu cu i trang xut hin khi np trang mi, thi gian np trang s tng ng k do xut hin thm nhu cu ghi trang b i ra a. gim thi gian ny, cc trang nh c ni dung khng thay i t lc np vo c h iu hnh nhn bit v khng ghi ngc ra a. Vic nhn bit c thc hin bng cch s dng mt bit trong khon mc ca trang gi l bit sa i (ta s k hiu l bit M). Mi khi c
T Minh Phng - HVCNBCVT 91

Qun l b nh mt byte hay t ca trang b sa i, bit ny s c xc lp bng 1. Mt trang nh c bit sa i bng 1 s c ghi ra a khi i trang. Cc khung b kho: Khi tm cc khung gii phng v i trang, h iu hnh s tr ra mt s khung. Cc khung v trang cha trong khung ny c nh du b kho v s khng bao gi b i ra a. thng l cc khung cha trang nh thuc cc tin trnh nhn ca h iu hnh hoc cha nhng cu trc thng tin iu khin quan trng. Cc khung b kho c nhn bit bi mt bit ring cha trong bng khung. 3.7.2. Cc chin lc i trang Mt vn quan trng i vi h iu hnh l chn khung no trong cc khung khng b kho tin hnh i trang. Chin lc la chn thch hp cho php ti u mt s thng s, trong quan trng nht l gim tn s thiu trang. Cc chin lc i trang c xut v kho st trong rt nhiu nghin cu v qun l b nh. Trong phn ny, mt s chin lc i trang s c trnh by v phn tch. Cc chin lc i trang c trnh by trong phn ny bao gm: i trang ti u( OPT) i trang theo nguyn tc FIFO Trang t c dng nht (LRU) Chin lc ng h

a. i trang ti u (OPT) Vi chin lc ny, h iu hnh chn trang nh s khng c dng ti trong khong thi gian lu nht trao i. Chin lc ny cho php gim ti thiu s kin thiu trang v do l ti u theo tiu chuNn ny. Tuy nhin, s dng chin lc ny, h iu hnh cn on trc nhu cu s dng cc trang trong tng lai. iu ny l khng th thc hin c. Chin lc i trang ti u, do , khng th p dng trong thc t m ch c dng so snh vi cc chin lc i trang khc. V d: Gi s tin trnh c cp 3 khung, khng gian nh ca tin trnh c 5 trang v cc trang ca tin trnh c truy cp theo th t sau: 2, 3, 2, 1, 5, 2, 4, 5, 3, 2, 5, 2. Th t i trang khi s dng phng php i trang ti u c minh ha trn hnh sau, trong F k hiu cho tnh hung thiu trang gy ra i trang mi. i trang ti u i hi 3 ln i trang cho chui truy cp trn.

b. Vo trc, ra trc (FIFO)

T Minh Phng - HVCNBCVT

92

Qun l b nh y l chin lc n gin nht. Cc trang sau khi c np vo s c cha trong mt hng i. Khi c nhu cu i trang, trang ng u hng s b i. Trang va np vo s c chn vo cui hng i. Ngoi c im n gin, chin lc FIFO cha ng mt lgic nh sau: trang b trao i l trang nm trong b nh lu nht. Do nm trong b nh lu nht nn c nhiu kh nng trang khng cn cn ti na. R rng, lgic ny l khng ng trong nhiu trng hp. C nhng phn lnh v d liu ca chng trnh c dng rt nhiu trong sut qu trnh tn ti ca tin trnh. Kt qu i trang s dng FIFO cho chui truy cp v d trn c minh ha trn hnh sau:

c. i trang t s dng nht trong thi gian cui LRU (Least Recently Used) chin lc i trang ny, trang b i l trang m thi gian t ln truy cp cui cng n thi im hin ti l lu nht. Theo nguyn tc cc b v thi gian, chnh l trang t c kh nng s dng ti nht trong tng lai. Phng php ny ngc vi phng php i trang ti u. y thi gian c s dng lm tiu ch so snh l khong thi gian khng s dng trang trong qu kh ch khng phi trong tng lai. Thc t cho thy, LRU cho kt qu tt gn nh phng php i trang ti u. Vi v d chui truy cp trang trn, LFU cho kt qu i trang nh sau:

Vic trin khai LRU tng i kh khn so vi phng php FIFO v thng i hi s h tr ca phn cng. Vn t ra l xc nh c trang c ln truy cp cui din ra cch thi im hin ti lu nht. Sau y l hai cch gii quyt: S dng bin m: mi khon mc ca bng phn trang s c thm mt trng cha thi gian truy cp trang ln cui. y khng phi thi gian thc m l thi gian lgic do ta t t ra. CPU cng c thm mt b m thi gian lgic ny. Ch s ca b m tng mi khi xy ra truy cp b nh. Mi khi mt trang nh c truy cp, ch s ca b m s c ghi vo trng thi gian truy cp trong khon mc ca trang . Nh vy trng ny lun cha thi gian truy cp trang ln cui. Trang b i s l trang c gi tr trng ny nh nht. Nh vy mi khi c yu cu i trang, h iu hnh s tm trong bng phn trang xc nh trang c tui b nht. S dng ngn xp: mt ngn xp c s dng cha cc s trang. Mi khi mt trang nh c truy cp, s trang s c chuyn ln nh ngn xp. Nh vy nh ngn xp s
93

T Minh Phng - HVCNBCVT

Qun l b nh cha trang c truy cp gn y nht, trong khi y ngn xp chnh l trang LRU, tc l trang cn trao i. Lu , ngn xp y l ngn xp c bit trong cc phn t c th ly ra t v tr bt k ch khng nht thit t nh, do vy khng ging vi ngn xp truyn thng. Mc d vic chuyn v tr s trang trong ngn xp i hi mt s thi gian xong ta li trnh c vic tm kim trong bng phn trang. Phng php ny rt thch hp cho vic thc hin bng phn mm. d. Thut ton ng h Thut ton ng h (clock), cn gi l thut ton c hi th hai (second chance), l mt ci tin ca thut ton FIFO nhm trnh thay th nhng trang mc d c np vo lu nhng hin vn c kh nng c s dng. Thut ton ng h c thc hin nh sau. Mi trang c gn thm mt bit gi l bit s dng, k hiu l U, cha trong bng phn trang. Mi khi trang c truy cp c hoc ghi, bit u c t gi tr bng 1. Nh vy, ngay khi trang c c vo b nh, bit U ca trang c t bng 1. Cc khung c th b i, hay trang tng ng, c lin kt vo mt danh sch vng, tc l danh sch c u v cui trng nhau. Danh sch ny c mt con tr c th chuyn ng theo mt chiu nht nh tr ln lt vo cc trang trong danh sch. Khi mt trang no b i, con tr c dch chuyn tr vo trang tip theo trong danh sch. Danh sch c th th hin tng t nh mt mt ng h vi cc khung/trang l con s v v con tr l kim ng h chuyn ng theo mt chiu nht nh (hnh 3.15).
Khung u tin thch h p cho thay th

n-1
Trang 9 U=1

Trang 19 U=1 Trang 1 U=1

Con tr t i khung ti p theo

Trang 45 U=1

Trang 222 U=0

Trang 191 U=1

3
Trang 556 U=0 Trang 67 U=1 Trang 13 U=0

Trang 33 U=1

Hnh 3.15. .Thut ton ng h Khi c nhu cu i trang, h iu hnh kim tra trang ang b tr ti. Nu bit U ca trang bng 0, trang s b i ngay. Ngc li, nu bit U bng 1, h iu hnh s t bit U bng 0, chuyn sang trang tip theo trong danh sch v lp li th tc trn.
T Minh Phng - HVCNBCVT 94

Qun l b nh Vi cch thc hin nh trn, nu ti thi im i trang bit U ca tt c trang trong danh sch bng 1 th con tr s quay ng mt vng, t bit U ca tt c trang bng 0, sau trang hin thi ang b tr ti s b i. Minh ha cho thut ton ng h:

So vi FIFO, thut ton ng h cn c trn hai thng tin a ra quyt nh i trang. Thng tin th nht l thi gian trang c ti vo, th hin qua v tr trang trong danh sch tng t nh FIFO. Thng tin th hai l vic gn y trang c c s dng khng, th hin qua ni dung bit U. Vic kim tra thm bit U tng t vic cho trang thm kh nng c gi trong b nh v v vy thut ton c tn gi khc l c hi th hai. e. Thut ton ng h ci tin Mt s bin th ca thut ton ng h c th s dng tn dng thm thng tin ph gip cho vic i trang c tt hn. Chng hn, ngoi bit U, thut ton ng h c th s dng thm thng tin v vic ni dung trang c b thay i khng. Trong mt phn trc, ta bit rng nu ni dung trang b thay i sau khi np vo th khi i trang s mt thi gian hn do phi ghi ni dung trang ra a. nh du nhng trang c ni dung thay i, h thng s dng bit M, vi M c t bng 1 mi khi ghi vo trang. Kt hp bit U v bit M, ta c bn kh nng sau: U=0, M=0: cho thy trang gn y khng c truy cp v ni dung cng khng b thay i, rt thch hp b i ra ngoi. U=0, M=1: trang c ni dung thay i nhng gn y khng c truy cp, cng l ng vin i ra ngoi mc d i hi thi gian ghi ra a so vi trng hp trn. U=1, M=0: trang mi c truy cp gn y v do vy theo nguyn l cc b v thi gian c th sp c truy cp tip. U=1, M=1: trang c ni dung b thay i v mi c truy cp gn y, cha tht thch hp i.

C th nhn thy, i t trn xung di, nhng trng hp pha trn nn i trc trng hp pha di. i trang theo th t lit k trn, thut ton ng h ci tin thc hin cc bc sau: Bc 1: Bt u t v tr hin ti ca con tr, kim tra cc trang. Trang u tin c U=0 v M=0 s b i. bc ny, thut ton ch kim tra m khng thay i ni dung bit U, bit M. Bc 2: Nu quay ht mt vng m khng tm c trang c U=0 v M=0 th qut li
T Minh Phng - HVCNBCVT 95

Qun l b nh danh sch ln hai. Trang u tin c U=0 v M=1 s b i. Trong qu trnh qut li, thut ton t bit U ca trang qut n nhng c b qua bng 0. Nu hai bc trn khng cho kt qu th thc hin li bc 1. Nu vn cha c kt qu th thc hin li bc 2. D dng kim tra, vic thc hin thut ton cho php tm ra trang i theo th t u tin lit k trn. 3.7.3. S dng m trang Mt k thut thng c s dng kt hp vi thut ton i trang ni trn l s dng m trang (page-buffering). H iu hnh dnh ra mt s khung trng c kt ni thnh danh sch lin kt gi l cc trang m. Khi c yu cu i trang, mt trang b i nh bnh thng nhng ni dung trang ny khng b xa ngay khi b nh nhng cho trang mi. Thay vo , khung cha trang c nh du l khung trng v thm vo cui danh sch trang m. Thay v np vo khung cha trang va b i, trang mi s c np vo khung ng u trong danh sch trang m. Ti thi im thch hp, h thng s ghi ni dung cc trang trong danh sch m ra a. K thut m trang cho php ci tin tc do mt s l do sau: Th nht, nu trang b i c ni dung cn ghi ra a, h iu hnh vn c np trang mi vo ngay, vic ghi ra a s c li li ti mt thi im mun hn. Thao tc ghi ra a c th thc hin ng thi vi nhiu trang nm trong danh sch c nh du trng. Vic ghi nhiu trang ng thi nh vy thng tit kim thi gian hn do thao tc ghi a c tin hnh theo khi ln. Th hai, trang b i vn c gi trong b nh mt thi gian. Trong thi gian ny, nu c yu cu truy cp, trang s c ly ra t danh sch m v s dng ngay m khng cn np li t a. Vng m khi ng vai tr ging nh b nh cache. 3.8. CP PHT KHUNG TRANG 3.8.1. Gii hn s lng khung Vi b nh o, tin trnh khng nht thit phi nm hon ton trong b nh my tnh. Mt s trang ca tin trnh c cp pht khung nh trong khi nhng trang khc tm nm trn a. Vn t ra vi h iu hnh l cp pht bao nhiu khung cho mi tin trnh. S khung cp cho mi tin trnh cng nh th cng cha c nhiu tin trnh trong b nh ti mi thi im. Tuy nhin, khi la chn s lng khung ti a cho mi tin trnh, cn ch hai nhn xt sau: - Khi s lng khung cp ti a cp cho mi tin trnh gim xung ti mt mc no , li thiu trang s din ra thng xuyn. Chng hn, khi vic thc hin mt lnh yu cu truy cp ti nhiu trang hn s khung c cp th vic thiu trang s lp i lp li do khng bao gi cc trang nh yu cu c mt ng thi trong b nh. - Vic cp thm khung cho tin trnh s lm gim tn sut thiu trang. Tuy nhin, khi
T Minh Phng - HVCNBCVT 96

Qun l b nh s lng khung cp cho tin trnh tng ln n mt mc no , th vic tng thm khung cho tin trnh khng lm gim ng k tn sut thiu trang na. L do ch yu l do s lng khung tr nn bo ha (xp x yu cu b nh ti a ca tin trnh), hoc do nguyn tc cc b, theo , ti mi thi im, nhng trang nh cn truy cp ng thi c ti vo s khung c cp pht. T nhn xt th nht, h iu hnh thng c t mt gii hn ti thiu cc khung cp pht cho mi tin trnh. Mi tin trnh s c cp pht s lng khung khng nh hn gii hn ny. Gii hn ti thiu c xc nh da trn kin trc phn cng my tnh. Nhng yu t c bn xc nh gii hn l s ton hng trong mt lnh my v kch thc trang nh. Trn c s nhn xt th hai, c hai phng php thng c h iu hnh s dng quyt nh s lng khung ti a cp pht cho mi tin trnh: phng php cp pht s lng khung c nh v cp pht s lng khung thay i. a) Cp pht s lng khung c nh. Theo cch cp pht ny, h iu hnh cp cho tin trnh mt s lng c nh khung cha trang nh ca mnh. S lng ny c xc nh vo thi im to mi tin trnh v khng thay i trong qu trnh tin trnh tn ti. n y li c hai cch tnh s lng khung ti a. Cp pht bng nhau. Theo cch ny, mi tin trnh c cp mt s lng khung ti a ging nhau, khng ph thuc vo c im ring ca tin trnh. S lng khung ti a khi c xc nh da trn kch thc b nh v mc a chng trnh mong mun. Cp pht khng bng nhau. S lng khung ti a cp cho tin trnh c th khc nhau v c tnh ton da trn c im tin trnh nh kch thc khng gian nh l gic, dng tin trnh (tin trnh nn, tin trnh tng tc trc tip .v.v.). Cch n gin nht l cp cho mi tin trnh s lng khung t l thun vi kch thc tin trnh. Trong nhng h thng c quy nh mc u tin cho tin trnh, tin trnh vi mc u tin cao hn c th c cp nhiu khung hn tin trnh vi mc u tin thp. b) Cp pht s lng khung thay i Theo phng php ny, s lng khung ti a cp cho mi tin trnh c th thay i trong qu trnh thc hin. Vic thay i s khung ti a ph thuc vo tnh hnh thc hin ca tin trnh. Tin trnh c tn sut i trang cao s c cp thm khung nh, trong khi tin trnh c tn sut i trang thp c th b thu hi bt khung. Phng php cp pht s lng khung thay i cho php s dng b nh hiu qu hn phng php c nh. Tuy nhin, thay i s lng khung ti a mt cch hp l, h iu hnh cn theo di v x l thng tin v tnh hnh s dng b nh ca tin trnh. Phng php cp pht s lng khung thay i c lin quan cht ch vi phm vi cp pht khung c trnh by ngay sau y. 3.8.2. Phm vi cp pht khung
T Minh Phng - HVCNBCVT

97

Qun l b nh Phm vi cp pht l vn quan trng khc khi cp khung cho tin trnh. Phm vi cp pht c phn thnh cp pht ton th (global) v cp pht cc b (local). Chin lc cp pht ton th cho php tin trnh i trang mi vo bt c khung no (khng b kha), k c khung c cp pht cho tin trnh khc. Ngc li, vi phng php cp pht cc b, trang ch c i vo khung ang c cp cho tin trnh. Phm vi cp pht c quan h mt thit vi s lng khung ti a trnh by trn. C th l, s lng khung c nh tng ng vi phm vi cp pht cc b. Khi t ti s lng khung ti a cho php, nu mun np trang mi vo, tin trnh phi gii phng mt khung ang s dng m bo khng tng s lng khung, tc l tin trnh phi i trang vi mt trang ca mnh. Trong khi , vi s lng khung ti a thay i, tin trnh c th i trang vo mt khung khng phi ca mnh, qua tng s lng khung c s hu. Vic i trang mi vo khung ca tin trnh khc cng ng thi lm gim s lng khung ca tin trnh kia. 3.9. TNH TRNG TR TR Khi s khung cp cho tin trnh gim xung mt mc no , tin trnh s ri vo tnh trng thiu b nh v phi i trang lin tc. np mt trang mi vo, tin trnh phi i mt trang. Do cc trang u ang cn dng ti nn trang va b i ra s lp tc gy thiu trang v qu trnh ny s tip din. Tnh trng i trang lin tc do khng b nh c gi l tr tr (thrashing). Mt tin trnh ri vo tnh trng tr tr khi thi gian i trang ca tin trnh ln hn thi gian thc hin. Du hiu d nhn thy ca tnh trng ny l hot ng lin tc ca a cng trong khi tin trnh khng c tin trin. Tnh trng khng hong b nh nh hng nghim trng ti tc my tnh v do vy cn c bin php gii quyt. Tnh trng tr tr xy ra khi b nh my tnh c kch thc hn ch, tin trnh i hi truy cp ng thi nhiu trang nh v h thng c mc a chng trnh cao, tc l nhiu tin trnh cng thc hin mt lc. Trn thc t, tnh trng ny c th xy ra c khi mc a chng trnh thp, chng hn khi khi tin trnh lm vic vi d liu kch thc ln (nh, file d liu) v thut ton i hi truy cp nhng phn khc nhau ca d liu cng mt lc. 3.9.1. Kim sot tn sut thiu trang Khi tin trnh ri vo tnh trng tr tr, tn sut thiu trang ca tin trnh s tng ln ng k. y l thng tin quan trng c s dng pht hin v gii quyt vn tr tr. C th, h thng theo di v ghi li tn sut thiu trang. Tn sut thiu trang tng ln l du hiu cho thy tin trnh c cp khng khung, trong khi tn sut thiu trang thp cho thy tin trnh c cp hoc thm ch tha khung. H iu hnh c th t ra gii hn trn v gii hn di cho tn sut thiu trang ca tin trnh. Khi tn sut vt gii hn trn, h thng cp cho tin trnh thm khung mi. Ngc li, khi tn sut thiu trang thp hn gii hn di, h thng thu hi mt s khung ca tin trnh.
T Minh Phng - HVCNBCVT 98

Qun l b nh Trong trng hp tn sut vt gii hn trn v h thng khng th tm khung cp thm, tin trnh s b treo (suspend) hoc b kt thc. Gii php ny mt mt trnh cho tin trnh khng ri vo tr tr, ng thi cho php gii phng mt s khung cp cho tin trnh khc. 3.10. QUN L B NH TRONG INTEL PENTIUM Vi x l Pentium ca Intel h tr c ch qun l b nh, trong phn on c kt hp vi phn trang. Khng gian nh ca tin trnh bao gm nhiu on, mi on c th c kch thc khc nhau v c phn trang trc khi t vo b nh. Nh phn tch trn, vic kt hp cho php kt hp u im ca hai phng php qun l b nh vt l. nh x a ch. a ch l gic c nh x thnh a ch vt l qua hai giai on (hnh 3.16). Giai on th nht do khi phn on chu trch nhim, a ch l gic c dch thnh a ch tuyn tnh (linear address). Giai on hai do khi phn trang chu trch nhim, a ch tuyn tnh c bin i thnh a ch vt l. Phn on Vi x l Pentium cho php tin trnh c ti a 16KB (hn 16000) on, mi on c kch thc ti a 4GB. y l s lng ln hn rt nhiu so vi kh nng thc ca b nh my tnh hin nay.

a ch l gic

Kh i phn o n

a ch tuy n tnh

Kh i phn trang

a ch v t l

Hnh 3.16: nh x a ch trong Intel Pentium Khng gian nh l gic c chia thnh hai phn. Phn th nht dnh ring cho tin trnh, bao gm ti a 8KB on. Phn th hai c dng chung cho tt c tin trnh, bao gm c h iu hnh, v cng gm ti a 8KB on. Thng tin qun l tin trnh thuc phn th nht v phn th hai c cha ln lt trong hai bng gi l bng m t cc b (local descriptor table LDT) v bng m t ton th (global descriptor table GDT). Mi trong cc bng ny c kch thc 8 byte v cha thng tin v on tng ng, bao gm c a ch c s v gii hn ( di) on. tng tc nh x a ch, Pentium c 6 thanh ghi on, cho php tin trnh truy cp ng thi 6 on. Ngoi ra thng tin v on c cha trong 6 thanh ghi kch thc 8 byte trnh vic c cc ca LDT v GDT mi khi truy cp b nh. a ch l gic bao gm hai phn (selector, offset), phn th nht cho php chn tng ng t hai bng m t LDT, GDT, phn th hai l dch trong on kch thc 32bit. Phn selector di 16 bit c cu trc nh sau: s 13 bit
T Minh Phng - HVCNBCVT

g 1 bit

p 2 bit
99

Qun l b nh Trong : s l s th t on, g cho bit on thuc GDT (g=0) hay LDT(g=1), p cho bit ch bo v (p=0 l ch nhn, p=3 l ch ngi dng). a ch tuyn tnh c to ra nh sau: trc ht phn selector c s dng tm tng ng trong GDT, LDT cha m t on (descriptor) (hnh 3.17 a); phn m t on sau c kt hp vi dch trong on to ra a ch tuyn tnh theo c ch m t trn hnh 3.17 b.

(a)

{
(b)
Hnh 3.17: Bin i a ch l gic thnh a ch tuyn tnh Phn trang Vi x l Pentium h tr bng kch thc trang bng 4KB hoc 4MB, ty thuc gi tr c kch thc trang (Page Size flag). Trong trng hp kch thc trang bng 4KB, bng trang c t chc thnh hai mc, bng trang mc mt v mc hai u c kch thc 4KB. a ch tuyn tnh kch thc 32 bit c cu trc nh sau: p1 10 bit
T Minh Phng - HVCNBCVT

p2 10 bit

o 12 bit
100

Qun l b nh Phn p1 cho php tm bng trang mc hai (trong Pentium c gi l page directory), phn p2 cho php tm tng ng trong bng trang mc hai kt hp vi dch o to ra a ch vt l. C ch bin i t a ch tuyn tnh thnh a ch vt l c th hin trn hnh 3.18. Trong trng hp trang nh kch thc trang bng 4MB, bng trang ch c mt mc vi phn p kch thc 10bit v phn dch o kch thc 22 bit cho php tr ti v tr c th trong trang nh 4MB. Ton b c ch nh x t a ch l gic sang a ch vt l c th hin chi tit trn hnh 3.19

Hnh 3.18: C ch nh x a ch tuyn tnh thnh a ch vt l ca Pentium

Hnh 3.19. ton b c ch nh x a ch trong Pentium


T Minh Phng - HVCNBCVT 101

Qun l b nh 3.11. QUN L B NH TRONG WINDOWS XP Windows XP cho php tin trnh s dng b nh o vi khng gian nh 4GB, trong 2GB c dng ring cho tin trnh v 2GB sau c dng chung cho h thng. B nh o c thc hin bng k thut np trang theo nhu cu v i trang. Kch thc trang nh bng 4KB v bng trang c t chc thnh hai mc s dng trit s h tr ca vi x l Intel x86. Cch t chc bng trang v nh x a ch hon ton ging nh m t trong phn phn trang ca Pentium phn trn. tng hiu qu np trang, Windows XP s dng k thut np trang theo cm. Khi xy ra thiu trang, thay v ch np trang b thiu, h iu hnh np c cm, bao gm mt s trang nm sau trang b thiu. H iu hnh kim sot s lng trang m tin trnh c trong b nh bng cch gn cho mi tin trnh s lng trang ti a v ti thiu. Tin trnh c m bo c s lng khung khng nh hn s lng ti thiu nhng khng c ln hn s lng ti a. S lng khung ti a v ti thiu i vi tin trnh ng dng thng c t tng ng l 345 v 50. Trong qu trnh thc hin, s lng trang ti a v ti thiu cp cho tin trnh c thay i ty vo tnh trng b nh trng. H iu hnh lu danh sch khung trng, ng thi s dng mt ngng an ton. Khi s khung trng t hn ngng ny, h iu hnh xem xt cc tin trnh ang thc hin. Tin trnh c s trang ln hn s lng ti thiu s b gim s trang cho ti khi t ti s lng ti thiu ca mnh. Ty vo vi x l, Windows XP s dng thut ton i trang khc nhau. Khi thc hin trn h thng Intel x86 vi mt CPU, Windows XP s dng thut ton ng h chn trang b i. Trong trng hp khc, h iu hnh s dng thut ton FIFO.

T Minh Phng - HVCNBCVT

102

H thng file

CHNG 4:

H THNG FILE

Trong cc thnh phn ca h iu hnh, h thng file (file system) l phn m ngi dng thng xuyn tip xc v lm vic mt cch trc quan nht. Tt c cc thao tc chy chng trnh, lu tr thng tin ra a, c thng tin t a vo, sao chp, dch chuyn thng tin u lin quan n h thng file. t chc lu tr thng tin trn b nh ngoi, h iu hnh c th s dng ng thi mt hoc nhiu h thng file khc nhau trong cng mt h thng my tnh. C th nhn h thng file theo hai cch. T pha ngi dng, h thng file bao gm tp hp cc file cha d liu hoc chng trnh v h thng th mc cho php t chc v lu tr thng tin v cc file . Ngi dng ch quan tm ti cc vn nh: cu trc th mc ra sao, gi hn kch thc file l bao nhiu, quy tc t tn file th no, c th thc hin cc thao tc g vi file.v.v. y chnh l biu hin bn ngoi ca h thng file. Trong khi , t pha h iu hnh, vi vai tr qun l file v th mc, cc vn c quan tm l phng php nh x file ln cc a, t chc bn trong ca file v th mc, cu trc d liu dng cho biu din file. Ni cch khc, i vi h iu hnh, h thng file c nhn t bn trong. Trong chng ny, h thng file s c trnh by ln lt theo hai cch nhn ni trn. Trc ht, cc vn lin quan n file v th mc theo cch nhn ca ngi dng s c xem xt. Sau , chng ta s xem xt cc phng php t chc bn trong h thng file: cch nh x file ln cc a, t chc d liu bn cho th mc. Cui cng, cc vn lin quan ti tin cy v bo mt cho h thng file s c cp. 4.1. KHI NIM FILE 4.1.1. File l g ? B nh ngoi bao gm cc thit b khc nhau nh a t, bng t, a quang, a quang t, th nh dng cng USB B nh ngoi c nhiu u im nh dung lng ln, gi thnh r hn b nh trong, ni dung lu tr khng b mt ngay c khi khng c cp in. Vic truy cp b nh ngoi i hi thng tin chi tit v c im ca tng loi thit b v cch t chc lu tr d liu trn . Chng hn c v ghi ln a cng cn bit cc cng tng ng ca b iu khin a, cng nh s lng u c, s rnh trn a.v.v. ca a ang s dng. Vic cn bit nhng chi tit ny gy kh khn cho thao tc lu tr thng tin trn b nh ngoi. thun tin, gip ngi dng khng phi quan tm n chi tit thit b nh, h iu hnh trnh nhng chi tit c th bng cch tru tng ho cc thit b nh ngoi. Thng tin lu tr trn b nh ngoi c nhn mt cch thng nht di dng file. File l khi nim lgic, khng ph thuc vo thit b lu tr c th. H iu hnh s m nhim vic nh x ln cc thit b lu tr. File c nh ngha nh tp hp cc thng tin lin quan n nhau c t tn v c lu tr trn b nh ngoi.
T Minh Phng - HVCNBCVT 103

H thng file C th thy, nh ngha ny rt tng qut. Trn thc t, file c th cha chng trnh (m ngun hoc m chy c), hoc d liu. D liu trong file c th c dng s, dng k t hay dng nh phn, c th c cu trc, c th khng. Ni mt cch chung nht, file l tp hp cc bit, cc byte, cc dng vn bn hay cc bn ghi. ngha cc n v thnh phn ny ca file hon ton do ngi to ra file v ngi s dng file quy nh. Vic nh ngha file mt cch tng qut, do vy, l hp l v cn thit. Nh c khi nim file, ngi dng c th quy nh cu trc, ngha, cch s dng cho thng tin cn lu tr v t tn cho tp cc thng tin ny. Ngi s dng c th khng quan tm ti vic file c lu tr c th u, ra sao. 4.1.2. Thuc tnh ca file Ngoi thng tin v d liu c lu tr trong file, h iu hnh cn gn cho file cc thng tin c tc dng m t. Cc thng tin ny gi l thuc tnh (attribute) ca file. Cc thuc tnh c th c th thay i nhng h iu hnh khc nhau. Di y lit k mt s thuc tnh file c th gp trong nhng h iu hnh thng dng: Tn file: L thuc tnh rt quan trng v thng c ngi dng s dng khi truy cp file Kiu file: Mt s h iu hnh phn bit cc kiu file khc nhau. V d, trong Linux, file c th l file thng thng cha d liu hay l file cha thng tin v th mc v c dng cho mc ch qun l file. Kch thc file: Kch thc hin thi ca file. Kch thc ny thng tnh bng byte nhng cng c th tnh theo n v t (word) hay bn ghi (record). Kch thc file c th bao gm kch thc thc v kch thc m file chim trn a. Do c im lu tr d liu trn a, trong mi file chim mt s nguyn cc khi hay cung nn kch thc thc v kch thc m file c cp pht trn a c th khc nhau. Ngi to file, ngi s hu file: Cha tn hoc s nh danh ca ngi to ra v ngi ang c quyn s hu file. Ngi to file v ngi s hu c th khng trng nhau. V d, trong Windows NT, 2000, qun tr h thng c th chim quyn s hu file t ngi to file trong trng hp cn thit. Quyn truy cp file: Cha thng tin v vic ai c quyn thc hin c, thay i ni dung, xo file.v.v. Thi gian to file, sa file, truy cp file ln cui: Bao gm thi gian, ngy thng to, ssa, truy cp ln cui. Cc thng tin ny c th cn thit cho vic qun l sao lu, bo mt, ng b ni dung file. V tr file: Cho bit d liu ca file c lu tr u trn b nh ngoi. Thng tin ny cn thit cho h iu hnh khi truy cp ti file.

C hai cch lu tr thuc tnh file trn a. Theo cch th nht, thuc tnh file c lu tr trong khon mc ng vi file trong th mc (s cp ti trong phn v th mc). Theo cch th hai, thuc tnh c lu tr lun cng vi d liu file, chng hn trong phn tiu (header) nm u file.
T Minh Phng - HVCNBCVT 104

H thng file c v thay i cc thng tin v thuc tnh file, h iu hnh thng cung cp cc li gi h thng tng ng. V d, MS-DOS cho php c v thay i thuc tnh file bng hm 43h ca ngt 21h, thi gian sa file ln cui c th thay i bng hm 57h ca ngt 21h. t tn cho file Trong s cc thuc tnh, tn file l thuc tnh rt quan trng cho php xc nh file, v l thng tin m ngi dng thng s dng nht khi lm vic vi file. Tn tn ti cng vi file v cho php truy cp ti file khi cn. Trong qu trnh tn ti ca file, tn c th thay i nu cn thit. Ni chung khng c quy tc t tn file thng nht cho cc h iu hnh. DOS ch h tr tn file di 8 k t cng 3 k t phn m rng, khng phn bit ch hoa vi ch thng (ngha l file VIDU.TXT vi file vdu.txt c coi l mt), trong khi LINUX li h tr tn file ti 256 k t, c phn bit ch hoa vi ch thng. Cc la chn khi quy nh vic t tn cho file bao gm di cho php ca tn file, cc k t c th dng trong tn file, c phn bit ch hoa v ch thng khng, c s dng phn m rng khng. V d quy tc t tn cho h thng file ca MS-DOS phin bn c (FAT), Windows NT (FAT, NTFS) v Linux (EXT3) c cho trong bng sau: Bng 4.1: Quy tc t tn file ca mt s h iu hnh H iu hnh MS-DOS di ti a Phn bit ch hoa, ch thng khng Cho php s dng du cch khng Cc k t cm

8 cho tn file 3 cho m rng

Windows NT FAT Windows NT NTFS Linux (EXT3)

255 k t cho khng c tn file v ng dn 255 khng

Bt u bng ch ci hoc s Khng c cha cc k t / \[]:;|=,^?@ Bt u bng ch ci hoc s Khng c cha cc k t / \ [] : ; | = , ^ ? @ Khng c cha cc k t / \<>*|: Khng c cha cc k t ! @#$%^&*()[]{}/ \:;<>`

256

c (nu tn file cha trong ngoc kp)

Rt nhiu h iu hnh h tr vic chia tn file thnh hai phn, cch nhau bi du chm (.). Phn sau du chm l phn m rng v cha mt s thng tin b sung v file (thng l kiu file). V d, phn m rng ca tn file trong FAT phin bn c c di ti a l 3 v cho bit kiu file nh progrm.c l file chng trnh ngun trn C. UNIX v LINUX h tr
T Minh Phng - HVCNBCVT 105

H thng file phn m rng c s lng v di tu . Tn file c th c nhiu hn mt phn m rng, chng hn myfile.tar.z. Vic gn phn m rng cho tn file c th c ch trong mt s trng hp. V d, mt s chng trnh dch c th phn bit file chng trnh ngun vi cc file khc thng qua phn m rng. 4.1.3. Cu trc file File l tp hp cc thng tin do ngi to file nh ra. Cc thng tin ny c th rt khc nhau: vn bn, m ngun chng trnh, chng trnh c dch v lin kt, hnh nh t my qut, cc bn ghi ca c s d liu.v.v. Cu trc ca file do vy cng rt khc nhau v ph thuc vo thng tin cha trong file. File vn bn s gm cc k t xp lin nhau trong khi file c s d liu l cc bn ghi c cu trc nht nh. Vy h iu hnh c cn bit v h tr cc kiu cu trc file hay khng? Vic h tr cu trc file mc h iu hnh c mt s u im sau. Th nht, cc thao tc vi file s d dng hn i vi ngi lp trnh ng dng. Th hai, h iu hnh c th kim sot c cc thao tc vi file. Vic kim sot c cc thao tc vi file cho php hn ch mt s li. V d, khi ta v tnh in mt file chng trnh ( c dch v lu tr di dng nh phn) ra my in, h iu hnh s pht hin ra rng file kiu nh phn khng h tr in n v ngn chn vic in ra nh vy. Tuy nhin, h tr cu trc file mc h iu hnh c cc hn ch l lm tng kch thc h thng. C bao nhiu kiu cu trc file c h iu hnh h tr th phi c by nhiu on chng trnh c thm vo h iu hnh thao tc vi nhng kiu cu trc ny. Mt s lng ln cu trc file s khin kch thc h iu hnh tng ln ng k. Nhc im th hai quan trng hn l tnh mm do ca h iu hnh b gim. Cc chng trnh ch c th s dng cc file c cu trc do h iu hnh nh sn. Vic to ra mt file c cu trc khc vi cc cu trc m h thng h tr s b ngn cn. Ta hy xem xt v d sau. Gi s h iu hnh ch h tr cc file vn bn v file chng trnh. Do yu cu bo mt, ngi dng mun to ra mt file vn bn c m ho. Sau khi m ho, file vn bn s c dng nh mt file nh phn, tc l ging vi file chng trnh hn file vn bn. H iu hnh khi c th nhm v xp file m ho vo kiu file chng trnh v ngn cn vic c file ny gii m. Do cc nhc im nu trn, a s h iu hnh khng h tr v qun l kiu cu trc file. Cu trc file s do chng trnh ng dng v ngi dng t qun l. UNIX, DOS, WINDOWS l cc h iu hnh nh vy. Trong cc h iu hnh ny, cc file c xem nh tp hp (khng c cu trc) cc byte1. Cc chng trnh ng dng khc nhau s to ra v t qun l cu trc file ring ca mnh. Chng hn, h thng qun l d liu s to ra file bao gm cc bn ghi, chng trnh x l ho lu file di dng m nh phn c nn.v.v. Cch t chc nh vy cho php chng trnh ng dng hon ton t do trong vic t chc lu tr thng tin ca mnh. 4.2. CC PHNG PHP TRUY CP FILE
Tuy nhin h iu hnh vn phi nhn bit v h tr mt s loi file nht nh. V d nh file chng trnh phi c cu trc ph hp cho vic ti vo b nh v chy chng trnh . Cc v d l file kiu EXE ca Windows.
1

T Minh Phng - HVCNBCVT

106

H thng file c thng tin t file hay ghi thng tin ra file h iu hnh phi quy nh cch thc truy cp ti ni dung file. C th c nhiu cch truy cp thng tin nh vy. Mi h iu hnh c th h tr mt hoc nhiu cch truy cp khc nhau. Di y l nhng phng php truy cp thng gp: 4.2.1. Truy cp tun t a s cc h iu hnh c in ch h tr cch truy cp ny. Truy cp tun t l phng php trong thng tin cha trong file c c hoc ghi ln lt t u file, v d theo tng byte hay tng bn ghi. Chng hn, ta khng th c byte th 2 sau b qua byte th 3 v c thng byte th 4 c. Mt con tr c s dng nh v v tr hin thi trong file. Thao tc c tr v ni dung byte hoc bn ghi v tr hin thi. Tng t, thao tc ghi s ghi d liu ln v tr hin thi. Sau mi thao tc c hoc ghi con tr s c tng ln 1 tr ti v tr tip theo. Thng thng khi mi m file, con tr v tr c t tr ti v tr u tin ca file. truy cp v tr nm trc v tr hin thi cn t li con tr v u file, sau di chuyn tin ti v tr cn truy cp. Cch thc truy cp ny rt ph hp vi cc file c lu tr trn bng t. Thng tin c ghi hoc c ln lt theo chiu quay ca bng. Mc d cc h iu hnh ngy nay h tr nhng kiu truy cp phc tp v u im hn song rt nhiu chng trnh ng dng vn truy cp file theo kiu tun t. V d, cc trnh son tho vn bn hoc chng trnh dch thng c v x l d liu ln lt t u file. Tuy nhin, i vi ng dng i hi c/ghi mt s thng tin trong file, kiu truy cp trc tip khng thch hp do mt thi gian duyt qua phn trc thng tin cn truy cp. 4.2.2. Truy cp trc tip Vic lu tr file trn a cho php s dng phng php truy cp trc tip (direct access), hay cn gi l truy cp tng i. Trong phng php ny, file c xem nh gm cc khi hay cc bn ghi c nh s (khi c th ch gm 1 byte). Vic c ghi cc khi c tin hnh theo th t ty . Chng hn ta c th c khi th 50 sau c khi th 13 ri khi th 101. Vic truy cp trc tip da trn c im ca a cho php truy cp cc khi bt k. File c cha trong cc khi khc nhau ca a do vy cng cho php truy cp khng cn tun theo th t. Phng php truy cp trc tip rt quan trng i vi nhng ng dng s dng file c kch thc ln nh ng dng c s d liu. Gi s ta c c s d liu v sch trong th vin. Khi ngi c cn thng tin v quyn sch no , h thng s tin hnh c trc tip bn ghi cha thng tin ny ch khng phi c tt c cc bn ghi ng trc n. c th truy cp trc tip, cc thao tc vi file cn c kh nng s dng s th t ca byte hay bn ghi nh mt thng s lm vic. C hai cch c ghi trc tip khi. Trong cch th nht, lnh c, ghi cha s th t khi cn c. Chng hn, ta c lnh READ n, trong n l s th t ca khi hay bn ghi cn c. Trong cch th hai, trc tin ta dng
T Minh Phng - HVCNBCVT 107

H thng file cc lnh nh v SEEK nhy ti v tr cn c, sau mi tin hnh c bn ghi. Trong trng hp s dng cch th 2, n c th l s th t tuyt i tnh t u file hoc cui file, hoc cng c th l khong cch tng i tnh t v tr hin thi v pha u file hoc cui file. c theo s th t khi READ n nh v xong mi c SEEK n READ

Cc khi hoc bn ghi ca file thng c nh s bt u t u file. Chng hn, a s h iu hnh coi byte th nht c s th t l 0, byte th 2 l 1.v.v. a s h iu hnh ngy nay u h tr truy cp file trc tip. Mt s h iu hnh yu cu ch r ch truy cp khi to file. File c quy nh l file truy cp tun t s khng th truy cp trc tip v ngc li. Tuy nhin nu file c th truy cp trc tip th vic truy cp tun t c th c m phng d dng nu cn. 4.2.3. Truy cp da trn ch s Phng php truy cp da trn ch s cho php truy cp ti bn ghi trong file khng theo s th t hoc v tr ca bn ghi trong file m theo mt kho ng vi bn ghi . Trong phng php ny, mi file c cha mt ch s ring ca mnh. Ch s gm cc kho v con tr ch ti cc bn ghi trong file. truy cp ti bn ghi, ta tm kho tng ng trong ch s, sau theo con tr ch s xc nh bn ghi v tin hnh truy nhp trc tip bn ghi ny. V d, tm kim bn ghi v mt ngi trong c s d liu, ta c th cung cp cho h thng tn ca ngi . H thng s duy tr ch s trong tn c s dng lm kho v c sp xp cho d tm kim. Cng vi kho ny l s th t bn ghi. Sau khi tm c tn cn thit trong ch s, h thng c th truy cp trc tip ti bn ghi theo s th t bn ghi tm c cng vi kho. Hnh 4.1 minh ho cch nh ch s nh vy Mt v d s dng ch s khc l vic nh ch s cc t kho (cc thut ng) cui cc sch. Cc thut ng c sp theo vn ch ci, bn cnh l s trang trong thut ng xut hin.
Tn n An B c ... Giang 3 S th t b n ghi File d li u

Hnh 4.1: Truy cp theo khi ch s

T Minh Phng - HVCNBCVT

108

H thng file Cc ch s c th c c trc vo b nh tng tc cho vic tm kim v truy cp file tip theo. Phng php truy cp theo ch s rt hay c dng trong file c s d liu gip cho vic nh v v truy cp bn ghi theo mt kha no thc hin nhanh hn. 4.3. CC THAO TC VI FILE Nh ni trn, file l mt kiu d liu l gic, l ni c th lu tr v truy cp thng tin. H iu hnh cng quy nh ra cc thao tc m ngi dng v ng dng c th thc hin vi file. Cc thao tc ny c h iu hnh thc hin khi chng trnh ng dng gi li gi h thng tng ng. Nhng thao tc vi file thng gp trong cc h iu hnh bao gm: To file. Mt file trng cha c d liu c to ra. File c dnh mt ch trong th mc km theo mt s thuc tnh nh thi gian to file, tn file, ngi to file.v.v. Xo file. Thao tc xo file bao gm gii phng khng gian m file chim trn a, sau gii phng ch ca file trong th mc. Vic gii phng khng gian c th n thun l nh du khng gian nh khng gian t do. M file. Thao tc m file c tin hnh trc khi c hoc ghi file. H iu hnh cn c vo tn file cn m tm kim thng tin v file cha trong th mc. Thc cht ca vic m file l c cc thuc tnh ca file v v tr file trn a vo b nh tng tc cho cc thao tc c ghi tip theo. H iu hnh s lu tr mt bng cha thng tin lin quan ti cc file ang c m trong b nh. Mi khi cn c ghi cc file ang m, h iu hnh s ly thng tin cn thit (chng hn v tr file trn a) t bng ny ch khng phi tm kim trong th mc na. Lnh m file thng tr v con tr ti mc cha thng tin v file trong bng cc file ang m. Con tr ny s c s dng lm thng s cho cc thao tc tip theo vi file. ng file. Sau khi hon thnh tt c cc thao tc c ghi file, file cn c ng, c ngha l cc thng tin v file cha trong bng ni trn b xo nhng ch cho cc file sp m. Rt nhiu h iu hnh hn ch s lng file c th m cng mt lc, do , vic ng cc file truy cp xong l rt quan trng. Ghi vo file. V tr ca file trn a c xc nh t thng tin ghi trong thuc tnh ca file. Thng thng, thng tin ny c vo b nh khi tin hnh thao tc m file. D liu c ghi vo v tr hin thi (xem phn phng php truy cp file). Nu v tr hin thi l cui file, thng tin s c thm vo v kch thc file tng ln. Nu v tr ny khng phi cui file, thng tin v tr s b ghi ln. Lnh ghi file cn cung cp thng tin cn ghi. c file. Thng tin v tr hin thi s c c. Lnh c file cn cung cp thng tin v s lng byte hoc bn ghi cn c v ni cha d liu c c t file (v d v tr b m). nh v (seek). i vi file truy cp trc tip, thao tc nh v cho php xc nh v tr hin thi tin hnh c hoc ghi. c thuc tnh ca file. Mt s chng trnh trong qu trnh lm vic cn c cc thuc tnh ca file. V d thng tin v nhng ngi c quyn truy cp file rt cn cho h thng bo mt.
T Minh Phng - HVCNBCVT 109

H thng file Xc lp thuc tnh ca file. Mt s thuc tnh ca file c th c t li gi tr. Thng tin v quyn truy cp file l mt v d thuc tnh loi ny. H iu hnh cung cp li gi h thng cho php xc lp hoc thay i gi tr thuc tnh . Cn ni thm v thao tc m file. y l thao tc khng mang tnh bt buc khi thit k h thng file ca h iu hnh nhng thng c thm vo do n gip tng hiu qu thao tc vo ra vi file. Gi s file khng c m trc khi c ghi. thc hin mi thao tc c ghi khi h iu hnh s phi tm kim file trong th mc, c cc thuc tnh ca file, xc nh v tr ca file trn a (c lu nh mt thuc tnh ca file trong th mc) sau mi thc hin thao tc c ghi. trnh lp i lp li cc cng on ny, file c m trc khi truy cp. Thao tc m file bao gm tm file (theo tn file) trong th mc, sau c mt phn thng tin t khon mc ca file vo mt bng trong b nh gi l bng cc file ang m (Hnh ??). Cc thng tin thng c c l tn file, quyn truy cp, ch s hu file v v tr cc khi cha ni dung file trn a. Ch s Tn file Ch s hu file ... Quyn truy cp r rwx V tr cc khi trn a ...

0 Mail.txt 1 myprog.c .. n

Hnh 4.2: Mt v d bng cc file ang m Sau khi c khon mc vo bng cc file m, thao tc m file tr v ch s ng vi file trong bng . Ch s c th l s th t ca file trong bng hoc con tr ti dng cha thng tin v file. Ch s ny c s dng lm thng s cho cc thao tc c ghi v sau. Cc h iu hnh khc nhau gi ch s bng nhng tn khc nhau. Trong MS-DOS ch s c gi l khi qun l file (file control block) hoc file handle, trong Windows NT, ch s cng c gi l file handle, trong khi UNIX s dng thut ng khi m t file (file descriptor) cho thng s ny. Vi cc h iu hnh cho php nhiu ngi dng cng s dng, thao tc m file phc tp hn do c th xNy ra trng hp nhiu ngi cng yu cu m file mt lc. Trong trng hp , h iu hnh s xy dng mt bng lu tr cc thng tin chung v file nh tn, v tr.v.v. v xy dng ring cho mi tin trnh mt bng cha thng tin ring lin quan n vic s dng file ca tin trnh nh v tr hin thi trong file. Nhn chung, mi file ang m thng c cc thng tin sau i km: Con tr ti v tr hin thi trong file: dng xc nh v tr c, ghi hin thi trong file. Thng tin ny c th cho mi phin lm vic vi file v do vy khng th lu tr cng cc thuc tnh khc trn a. V tr file trn a: gip cho vic c ghi ra a thc hin nhanh hn.
110

T Minh Phng - HVCNBCVT

H thng file 4.4. TH MC 4.4.1. Khi nim th mc Trong mt h thng tnh ton, s lng file lu tr trn a c th rt ln (nhiu nghn file). d dng qun l, truy cp, cc file phi c t chc theo mt cch no . Ni chung, khng gian ca a c chia thnh cc phn (partition) gi l a lgic2. Cc a lgic c th s dng vi hai mc ch. Th nht, a lgic cho php chia khng gian a thnh nhng vng ring bit, c kch thc nh hn kch thc a vt l. Cc vng ring bit ny c qun l v s dng c lp, khng ph thuc vo cc phn khc. Ngc vi cch trn, ngi ta c th to ra a lgic t nhng vng khng gian khc nhau trn cc a vt l khc nhau. Kch thc a lgic khi c th ln hn kch thc ca mi a vt l. qun l cc file trn mi a lgic, thng tin v file c lu trong th mc (directory hay folder) ca a. Th mc c to thnh t cc khon mc (entry), mi khon mc ng vi mt file. Khon mc cha cc thng tin v file nh tn file, kch thc, v tr, kiu file v cc thuc tnh khc hoc cha con tr ti ni lu tr nhng thng tin ny. C th hnh dung th mc nh mt bng, trong mi dng l khon mc ng vi mt file. Vic tm ra dng cn thit c thc hin theo tn file. Ni cch khc, th mc cho php nh x t tn file vo bn thn file . Vi cc h iu hnh khc nhau, c nhiu cch khc nhau lu thng tin v file trong th mc. Theo cch th nht, ton b thuc tnh ca file c lu trong th mc, bn thn file ch cha d liu (Hnh 4.3.a). MS-DOS s dng kiu t chc th mc ny. Kch thc ca mi khon mc v c th mc ni chung khi rt ln. Theo cch th hai, mt phn thuc tnh c lu tr lun cng vi d liu ca file. Th mc ch lu thng tin ti thiu cn thit cho vic tm v tr ca file trn a (Hnh 4.3.b). Kch thc th mc do vy gim xung. Ton b hoc mt phn ln ca th mc c th c c vo b nh tng tc x l. y l cch t chc th mc s dng trong h thng file EXT2 v EXT3 ca Linux.
thu c tnh thu c tnh thu c tnh thu c tnh

file1.txt file2.c file3.pas file4.doc (a)

Thu c tnh Thu c tnh Thu c tnh Thu c tnh

file1.txt file2.c file3.pas file4.doc (b)

Hnh 4.3: Lu tr thuc tnh file (a) Trong th mc; (b) cng vi file Khi thc hin thao tc m file, h iu hnh tm trong th mc khon mc tng ng vi tn file cn m. Sau h iu hnh c cc thuc tnh v v tr d liu ca file vo mt bng cha thng tin v cc file ang m. Bng ny nm b nh trong v c s dng
2

C th c cc tn gi khc nhau nh a nh (minidisk) hoc volume

T Minh Phng - HVCNBCVT

111

H thng file cung cp thng tin nhanh chng cho thao tc c ghi file sau . Nu khon mc tr ti cu trc khc cha thuc tnh file, cu trc ny s c c vo bng ni trn. 4.4.2. Cc thao tc vi th mc C rt nhiu cch xy dng v t chc th mc khc nhau. Tuy nhin, d l cch t chc nh th no th phi h tr cc thao tc vi th mc cho thun li. Trc khi cp k n cc cch t chc v xy dng th mc, vic xem xt cc thao tc cn thc hin vi th mc l rt cn thit. Ni chung, th mc phi cho php tm kim, to file, xo file, lit k cc thng tin v file trong th mc. Sau y ta s xem xt c th cc thao tc : Tm kim file: Cu trc th mc phi cho php tm kim file theo tn file hay chnh xc hn l tm kim khon mc ng vi file theo tn file . Trong trng hp cn tm mt nhm file c tn tng t hoc tm kim file m khng nh chnh xc tn, h thng cn cung cp kh nng tm cc file c tn ph hp vi mu yu cu. Cc k t thng c s dng xy dng mu l k t * thay th cho mt chui k t bt k v k t ? thay th cho mt k t bt k. V d, trong Windows, mu *.c ng vi tt c cc file c phn m rng l c. To file: nh ni trong phn cc thao tc vi file, vic to file i hi phi to ra khon mc mi v thm vo th mc. Xo file: ngoi vic gii phng khng gian m file chim, thng tin v file v khon mc tng ng cng b xo khi th mc. Duyt th mc: mt thao tc quan trng vi th mc l lit k tt c cc file cha trong th mc cng nh thng tin cha trong khon mc ca file. i tn file: ngi dng cn c kh nng thay i tn file khi c nhu cu (chng hn phn nh ni dung mi ca file sau khi thay i). Thao tc i tn ch cn thc hin vi th mc ch khng lin quan ti d liu ca file. Tu theo cch t chc bn trong ca th mc, vic i tn file c th gy ra s sp xp li th t file trong th mc. 4.4.3. Cu trc h thng th mc Nh ni trn, th mc cha cc khon mc biu din cho file. Khi s lng file trong h thng tng ln, kch thc ca th mc cng tng, vic tm c file trong th mc tr nn kh khn. Cc vn khc cng ny sinh. Chng hn h thng c nhiu ngi dng v nhng ngi dng khc nhau c th chn tn file trng nhau. gii quyt cc vn tng t, nhiu cch t chc khc nhau ca h thng th mc c s dng. Trong phn ny, ta s xem xt mt s cu trc thng dng nht. a. Th mc mt mc v hai mc Th mc mt mc l kiu t chc th mc n gin nht hay ni chnh xc hn l khng c cu trc g c. H thng ch c mt th mc duy nht v tt c cc file c gi trong th mc ny. Th mc mt mc c minh ho trn hnh 4.4.a. Cch t chc th mc mt mc c mt s nhc im ln. Do cc file c sp xp trong mt th mc duy nht nn c th phn bit, tn file khng c php trng nhau. Khi
T Minh Phng - HVCNBCVT 112

H thng file s lng file tng, vic tm cc tn khc nhau cho file l khng d dng. c bit, khi c nhiu ngi cng s dng h thng rt d xNy ra kh nng nhiu ngi chn tn file ging nhau. Mt v d d thy khi tt c sinh vin mt lp cng lp trnh mt bi tp v lu chng trnh ca mnh trong th mc duy nht. Ngoi ra, trong trng hp di file b hn ch tng i ngn, s t hp tn file c th cng khng cho php chn nhiu tn file va c ngha va khc nhau.
Th m c g c

Th m c ng i dng

(a)

(b) = Th m c = File

Hnh 4.4: T chc th mc (a) Mt mc. (b) Hai mc


Mt nhc im na ca th mc mt mc l s lng file trong th mc rt ln, do vy vic tm c file trong th mc s tn nhiu thi gian. trnh tnh trng nhiu ngi s dng chn cng tn file, mt gii php n gin l phn cho mi ngi mt th mc ring ch cha cc file do ngi to. Mc d tt c cc file vn c cha trn cng mt a, chng c chia thnh cc nhm lgic theo tng ngi dng. H thng vn duy tr mt th mc gi l th mc gc. Cc khon mc ng vi th mc ngi dng c cha trong th mc gc ny. y l phng php t chc th mc hai mc (Hnh 4.4.b). Mi khi ngi dng truy cp file, file s c tm kim trong th mc ng vi tn ngi (tn ng nhp). Do vy, nhng ngi dng khc nhau c th t tn file trng nhau m khng s ln ln. Tn file ch cn khc nhau trong tng th mc. Cc th mc ngi dng c th c to ra v xo i nu cn. Thng thng vic to v xo th mc ngi dng s c giao cho qun tr mng. y l ngi dng c cc quyn c bit, trong c cc quyn lin quan ti qun l h thng th mc. Sau khi chia th mc thnh hai mc, mi ngi dng s lm vic vi tp hp cc file trong th mc ca mnh. Cch phn chia file c lp nh vy rt thun tin khi ngi s dng lm vic c lp vi nhau. Tuy nhin trong qu trnh lm vic, c th xut hin nhu cu s dng chung file. Mt s h thng cho php ngi dng truy cp th mc ngi dng khc nu c cp quyn. Mt s h thng hn ch ngi dng trong th mc ca mnh.

T Minh Phng - HVCNBCVT

113

H thng file Nu vic truy cp th mc ca ngi khc c cho php th ngoi tn file, ngi dng phi ch r file cn truy cp nm trong th mc no. Ni cch khc, ngi dng phi cung cp ng dn ti file. Chi tit v ng dn s c trnh by trong phn sau. Ngoi cc file do ngi dng to ra, trong h thng cn tn ti mt lot nhng file thng c nhiu ngi dng truy cp ti nh file h thng, nhng tin ch.v.v.. s dng c cc chng trnh nh vy c th chp chng vo tng th mc ca tng ngi dng. Cch ny r rng gy lng ph khng gian nh v phi lu nhiu bn sao ca chng trnh. Mt cch gii quyt tt hn v c nhiu h iu hnh s dng l lu cc chng trnh dng chung vo mt th mc c bit. Th mc ny c th to ra nh dnh cho mt ngi dng c bit no . Khi ngi chy mt chng trnh. Chng trnh trc tin c tm trong th mc ca ngi dng. Nu khng tm thy, h iu hnh s chuyn sang tm kim trong th mc c bit. H iu hnh UNIX (v tt nhin l Linux) cng s dng k thut tng t. b. Th mc cu trc cy Cu trc cy l pht trin tng ca cu trc hai mc. Thay ch cha cc file, mi th mc con li c th cha cc th mc con khc v cc file. Th mc con c nhm mt cch lgic theo mt tiu ch no , chng hn th mc con cha cc file ca cng mt ngi dng, th mc con cha cc chng trnh v d liu lin quan ti mt ng dng.v.v. H thng th mc khi c th biu din phn cp nh mt cy. Cc cnh l th mc, cn l l cc file. D dng nhn thy, th mc hai mc l trng hp ring ca cu trc cy ny.
Th m c g c

= Th m c

= File

Hnh 4.5: Th mc dng cy Mi th mc hoc th mc con khi s cha tp hp cc file v cc th mc con mc di. phn bit khon mc ca file vi khon mc ch ti th mc con mc di, ngi ta thng s dng mt bit c bit cha trong khon mc. Nu bit ny bng 1, th l khon mc ca th mc mc di, nu bng 0, l khon mc ca file.
T Minh Phng - HVCNBCVT 114

H thng file Bn thn th mc (hoc th mc con) cng c lu tr trn a nh mt file song c h iu hnh s dng khc vi cc file thng thng. to v xo th mc con, h iu hnh nh ngha nhng li gi h thng ring, khc vi li gi h thng dnh vic to v xo file. Trong trng hp th mc c cha th mc mc di hoc file, vic xo th mc s nh hng ti cc th mc mc di v file . Ni chung c hai cch gii quyt trong trng hp ny. Mt s h iu hnh nh MS-DOS khng cho php xo th mc khi th mc khng rng. Ngi dng phi xo ht cc file v th mc mc di ca mt th mc trc khi xo th mc . Ngc li, mt s h iu hnh nh UNIX, Linux cho php xo cc th mc khng rng. Khi mt th mc b xo (bng lnh rm), tt c cc cc file v th mc mc di cha trong cng b xo theo. Cch ny rt tin li, cho php tit kim thi gian v cng sc khi cn xo s lng th mc. Tuy nhin vic cho php xo th mc khng rng c th gy mt mt nhiu file v th mc con do mt lnh xo v c th xo c mt nhnh ln ca cy th mc. Ngi dng phi ht sc cNn thn khi s dng nhng lnh xo nh vy. Ti mi thi im, ngi dng lm vic vi mt th mc gi l th mc hin thi hay th mc lm vic. Trong qu trnh lm vic, ngi dng c th di chuyn sang th mc khc tc l thay i th mc hin thi. Vic thay i th mc c thc hin bng li gi h thng tng ng. Nu ngi dng g lnh i th mc t b dch lnh (shell) th b dch lnh s gi li gi h thng ny. Trong trng hp ngi dng truy cp mt file m khng thng bo c th th mc cha file th file c tm kim trc tin trong th mc hin thi sau m rng sang cc th mc c quy nh trong ng tm kim (search path) nh m t trong phn th mc hai mc. Mt s h iu hnh nh Linux, Windows NT cho php quy nh th mc hin thi khi ngi dng mi ng nhp vo h thng. Th mc ny thng cha phn ln cc file m ngi dng s s dng v cn c gi l th mc theo mc nh. Thng tin v th mc mc nh c ghi trong ti khon ngi dng cng vi cc thng tin bo mt khc v c h iu hnh c khi ngi dng ng nhp. * T chc cy th mc cho tng a: Trong mt s h thng file nh FAT ca DOS cy th mc c xy dng cho tng a. H thng th mc s c c coi nh rng trong mi cy mc trn mt a. Mun ti c mt cy th mc, trc tin ta phi ch ra a tng ng. Trong cc h iu hnh khc nh Linux, ton h thng ch gm mt cy th mc to, cc a s l cc cnh mc ra t cy ny. Thc cht, mi a l mt h thng file v c gn (mount) vo h thng th mc chung. R rng cch t chc sau mang tnh tru tng ho cao hn cch u. Ngi dng thm ch khng cn quan tm ti vic h thng c bao nhiu a v file ang c lu tr trn a no. c. Th mc cu trc th khng tun hon Ta hy xt v d sau. Hai ngi cng cn s dng mt s file, chng hn khi c hai cng lm vic vi mt d n no . Nhng file ny c th c ct vo mt th mc con dnh ring cho d n. Tuy nhin, thun tin cho cng vic, cn phi lm sao th mc con ny c mt trong c hai th mc ring ca hai ngi. ng thi, phi l bn chnh ca th mc ch khng phi cc bn sao. Vic to bn sao c th gy mt ng b d liu - khi ngi ny
T Minh Phng - HVCNBCVT 115

H thng file sa i, ngi khc khng thy ngay c sa i v vn lm vic vi bn c. hai (hoc nhiu) ngi c th s dng chung file v th mc, cn chia s file v th mc sao cho chng c th xut hin nhiu th mc ring khc nhau. Cu trc cy trnh by phn trc khng cho php thc hin chia s kiu ny.
Th m c g c

Hnh 4.6: Th mc cu trc th khng tun hon Mt cu trc th mc cho php file hoc th mc con xut hin trong nhiu th mc khc nhau c gi l cu trc graph khng tun hon (acyclic graph). y l mt cu trc graph khng cha vng (Hnh 4.6). D dng nhn thy, cu trc graph khng tun hon l dng m rng ca cu trc cy, trong l v cnh c th ng thi thuc v nhng cnh khc nhau. Cch thun tin nht trin khai graph khng tun hon - c s dng trong Linux l s dng lin kt (link). Lin kt thc cht l con tr ti th mc hoc file khc. Trong v d ni trn, hai th mc ca hai ngi dng s khng cha th mc con c cc chng trnh dng chung m ch cha cc lin kt (con tr) ti th mc con ny. Lin kt c th c s dng di dng ng dn tuyt i hoc tng i ti th mc cn lin kt. Khi mt khon mc ca th mc c nh du l lin kt, thay v tm file trong th mc , ng dn ti file s c s dng truy cp. Mt cch khc cng cho php to cu trc kiu ny l to ra cc bn sao ca cc file v th mc cn chia s ri cha vo nhng th mc khc nhau. H iu hnh sau phi theo di m bo tnh ng b v nht qun cho cc bn sao . Khi mt bn sao b thay i, h iu hnh phi chp thay i ny sang cc bn sao khc. Mc d th mc cu trc graph khng tun hon cho php qun l h thng th mc mm do hn cu trc cy song cng phc tp hn cu trc cy rt nhiu. Do file v th mc c mt nhiu ni khc nhau trong h thng th mc, trong qu trnh sao lu v thng k, chng hn khi ta cn m s lng file, phi tnh ti cc lin kt trnh sao lu hoc thng k cng mt file nhiu ln.

T Minh Phng - HVCNBCVT

116

H thng file Mt vn cn quan tm na lin quan ti vic xo file. Vic xo file c chia s phi bao gm xo cc lin kt tr ti file . Trong cc trng hp lin kt khng b xo, cc lin kt ny tip tc tr ti mt file khng tn ti hoc vo vng khng gian a c gii phng. Cc thao tc truy cp tip theo thc hin vi lin kt s sinh ra li. Thng thng vn ny c gii quyt bng cch tm v xo tt c cc lin kt n file sau khi xo file. 4.4.4. Tn ng dn Vi cu trc th mc t hai mc tr ln, xc nh file, ngoi tn file, ta cn cn ch ra v tr file trong cy th mc. Thng tin v v tr ca file c gi l ng dn c thm vo trc tn file. C hai kiu ng dn: ng dn tuyt i v ng dn tng i. ng dn tuyt i l ng dn i t gc ca cy th mc dn ti file, bao gm tt c cc th mc gia. Cc thnh phn ca ng dn, tc l tn cc th mc gia, c ngn cch vi nhau v vi tn file bi cc k t c bit. Trong DOS v Windows, k t ny l \ cn trong UNIX v Linux, k t ngn cch l /. V d tn file vi ng dn y trong DOS l c:\bc\bin\bc.exe c hiu nh sau: a c cha th mc bc, th mc ny cha th mc con bin, trong c file bc.exe. Trong Linux ng dn tuyt i c th l /usr/ast/mailbox. ng dn ny xut pht t th mc gc (k hiu /), th mc gc cha th mc con usr, usr cha ast, ast cha file mailbox. Vic s dng ng dn thuyt i cho php ch ra v tr ca file trong cy th mc m khng cn bit th mc hin thi l th mc no. ng dn tng i l ng dn tnh t th mc hin thi. c th s dng ng dn tng i, a s h iu hnh a thm vo mi th mc hai khon mc c bit . v ... . biu din th mc hin ti cn .. biu din th mc mc trn (tc l th mc b). Ta hy xem v d v ng dn tng i. Gi s ta ang trong th mc /usr. Khi ch ti file mailbox ta ch cn s dng ng dn tng i ast/mailbox l . Nu ta ang trong /usr/etc, ng dn tng i s l ../ast/mailbox.

4.5. CP PHT KHNG GIAN CHO FILE Mt nhim v quan trng ca h iu hnh trong vic qun l h thng file l cp pht khng gian trn a v cc thit b nh ngoi khc lu tr file v th mc, ng thi ghi li v tr cc khi nh cp pht c th tin hnh truy cp file v sau. Ni cch khc, h thng qun l file phi thc hin nh x file ln a (hoc thit b nh ngoi khc). Vic cp pht cc khi nh cho file phi c thc hin sao cho tit kim khng gian a v tng tc truy cp file. Ton b khng gian a c chia thnh cc khi nh (sector), y l n v thng tin nh nht m chng trnh iu khin a (disk driver) cho php c hoc ghi. Khi nh do chng trnh iu khin a xc nh c gi l khi vt l. Thng thng, h iu hnh khng cp pht trc tip khi vt l m kt hp mt hoc nhiu khi vt l to thnh khi l gic c kch thc ln hn. Mi khi l gic bao gm mt s lng khi vt l bng ly tha ca 2, chng hn 1, 2, 4 khi vt l. Cc khi lgic c nh s lin tc, bt u t 0 hoc 1.
T Minh Phng - HVCNBCVT 117

H thng file Khi lgic l n v thng tin nh nht m h iu hnh cp pht cho file v l n v nh nht cho php c t a hoc ghi ra a. Trong h iu hnh MS-DOS v Windows, khi lgic c gi l cluster3 (Mt s ti liu gi khi vt l l cung va khi lgic l lin cung). Trong khi trnh by v cc phng php cp pht khi cho file, khi cp pht s c hiu l khi lgic. 4.5.1. Cp pht cc khi lin tip Mi file c cp mt khong khng gian gm cc khi nm lin tip trn a. V tr file trn a c xc nh bi v tr khi u tin v di hoc s khi m file chim. Chng hn, nu file c cp pht n khi bt u t khi th s, khi cc khi ca file s l s, s+1, s+2, ..., s+n-1. Khon mc ca file trong th mc s cha a ch khi u tin v s khi m file chim (Hnh 4.7)

0 4 fileC 8 12 16 20

fileA 1 5 9 13 17 21

fileB 2 6 10 14 18 22 3 7 11 15 19 23 Tn file fileA fileB fileB Th m c B t u 1 3 8 di 2 3 5

Hnh 4.7: Cp pht cho file cc khi lin tc Trong trng hp cp pht khi lin tip, vic truy cp file c th thc hin d dng theo c hai cch truy cp trc tip v truy cp tun t. truy cp tun t, h iu hnh ghi nh a ch khi va c truy cp cui cng. Khi tip theo s c c khi cn thit. Vic truy cp trc tip khi th i ca mt file bt u ti a ch s c thc hin bng cch truy cp khi th s+i ca a. Ngoi vic h tr c hai phng php truy cp v d dng lu tr v tr file trong th mc, phng php cp pht cho file cc khi lin tip cn cho php tit kim thi gian di chuyn u t khi c cc khi ca file. c mt khi trn a, u t cn di chuyn ti v tr khi bng cch di chuyn ti rnh tng ng v ch cho ti khi cung cha khi quay n ni. Trong trng hp cc khi ca file nm k nhau c th c lin tip m khng thc hin cc di chuyn ni trn. Trong trng hp cc khi nm trn cc rnh khc nhau (v d fileC trn hnh 4.7) th u t cng ch phi di chuyn sang rnh bn cnh. Do khng phi di chuyn u c nn tc truy cp file s tng ln.

M t s ti li u g i kh i v t l l cung va kh i lgic l lin cung

T Minh Phng - HVCNBCVT

118

H thng file Ngoi cc u im ni trn, vic cp pht cho file cc khi lin tip c mt s nhc im ln. Kh khn u tin lin quan ti vic tm ra khong khng gian trng ln trn a cp pht cho file. Sau mt thi gian s dng, cc khi c cp pht khi to file v gii phng khi xo file s to ra cc vng trng trn a. Khi c yu cu cp pht, h iu hnh phi kim tra cc vng trng tm ra vng c kch thc thch hp. Vic ny i hi mt thi gian nht nh. Vic la chn trng cp pht cho file c th thc hin theo mt trong cc chin lc cp pht b nh ng c trnh by trong phn phn on b nh. Chin lc thng c s dng l tm vng trng u tin thch hp (first fit) hoc tm vng trng thch hp nht (best fit). Tng t nh trong trng hp cp pht b nh ng, phng php cp pht khi lin tip gy ra lng ph khng gian a do hin tng phn mnh ngoi (external fragmentation). l hin tng cc vng trng cn li trn a c kch thc qu nh v do vy khng th cp pht cho file c kch thc ln hn. V d, trn hnh 4.7, vng trng nm trc fileA c kch thc 1 khi v khng th cp pht cho file kch thc ln hn. Nhng vng trng nh vy do b b ph. Tu thuc vo kch thc a, di khi v di trung bnh ca file, hin tng phn mnh ngoi s gy lng ph khng gian nhiu hay t. Mc d hin tng ny c th khc phc bng cch chuyn cc file li gn nhau tp trung tt c vng trng v cui a nhng vic di chuyn file cn kh nhiu thi gian, c bit khi kch thc a ln, v do vy khng th tin hnh thng xuyn. Mt nhc im khc ca phng php ny l cn phi bit kch thc file khi to file. Trong mt s trng hp nh khi chp file t ni ny sang ni khc, ta bit trc kch thc file cn to. Tuy nhin, trong a s trng hp, kch thc file khng c bit trc m ch bit sau khi ghi thng tin vo file. Mt khc, kch thc file lun lun thay i. Sau khi file c to, vic tng di file c th gp kh khn nu cc khi nm sau v tr ca file b file khc chim. Gii php duy nht tng kch thc file l chuyn ton b file sang vng khng gian trng ln hn. 4.5.2. S dng danh sch kt ni Cc phn tch phn trn cho thy, vic cp pht khi lin tip c nhiu nhc im ng k v do vy t khi c s dng. Mt phng php cho php khc phc nhng nhc im ny l s dng danh sch kt ni (linked list). Trong phng php ny, cc khi thuc v mi file c ni vi nhau thnh mt danh sch mc ni. Trn hnh 4.8 l v d mt file bt u t khi 1 v bao gm cc khi 1,3, 8,17,6. Mi khi cha con tr ti khi tip theo. cha con tr, h iu hnh dnh ra mt s byte u mi khi. Chng hn, vi khi kch thc l 512 byte, ta c th dnh 508 byte cha d liu ca file, cn 4 byte cha con tr ti khi tip theo. Khc vi cch cp pht khi phn trc, cc khi thuc v mt file c th nm bt c ch no trn a cha khng nht thit nm lin k nhau. xc nh v tr file trn a, khon mc ca th mc s cha con tr ti khi u tin ca file. Khi mi to file, con tr ny c gi tr nil (du hiu kt thc file v c th c cc gi tr khc nhau tu vo h thng c th). Mi khi file c cp thm khi mi, khi va cp
T Minh Phng - HVCNBCVT 119

H thng file c thm vo cui danh sch. truy cp file, h iu hnh c ln lt tng khi v s dng con tr xc nh khi tip theo. Do cc khi thuc v mt file c th nm bt c ch no trn a, khng nht thit phi nm cnh nhau nn phng php cp pht ny cho php trnh c hin tng phn mnh ngoi. Khng c khi trng no b b ph. Phng php cp pht ny cng khng yu cu bit trc kch thc khi to file. Kch thc file c th tng d dng sau khi c to. tng kch thc file, h iu hnh ch vic thm khi trng vo danh sch v sa li con tr khi cui. Mc d gii khc phc c cc nhc im ca phng php cp khi lin tc, s dng danh sch kt ni cng c mt s nhc im. Nhc im ln nht l phng php ny ch h tr truy cp tun t m khngcho php truy cp file trc tip. c mt khi no ta phi theo tt c cc con tr t khi u tin cho ti khi cn c. Do con tr nm ngay trong cc khi v khi l n v nh nht c th tin hnh c nn xc nh con tr, ta phi c c khi. Nh vy, c mt khi, ta phi c ln lt tt c cc khi nm trc bt u t khi u tin.

0 4 8 17 12 16 20

fileA 1 3 5 9 13 17 6 21

2 6 -1 10 14 18 22

3 8 7 11 15 19 23 Tn file fileA Th m c B t u 1

Hnh 4.8: Cc khi ca file c kt ni thnh danh sch Nhc im th hai lin quan ti tc truy cp file. Do cc khi thuc v mt file c th nm ri rc nhiu ni trn a nn u t ca a phi thc hin nhiu thao tc di chuyn mi truy cp c ht d liu ca file. Vic lin kt cc khi thuc v mt file bng con tr cng lm gim tin cy v tnh ton vn ca h thng file. Trong trng hp gi tr cc con tr b thay i khng ng do li vic xc nh khi no thuc file no s khng chnh xc. Chi tit v tnh ton vn ca h thng file s c trnh by trong mt phn sau. 4.5.3. S dng danh sch kt ni trn bng ch s Vn khng h tr truy cp trc tip ca phng php dng danh sch kt ni c th khc phc bng cch s dng danh sch kt ni trn bng ch s. Bng ch s l mt bng trong mi ng vi mt khi ca a. Con tr ti khi tip theo ca file khng cha ngay trong khi na m c cha trong tng ng ca bng ny (hnh 4.9). Mi a lgic c
T Minh Phng - HVCNBCVT 120

H thng file mt bng ch s c lu v tr xc nh, thng phn u a. trnh trng hp bng ny b hng, gy mt thng tin v khi, nhiu h iu hnh to ra cc bn sao ca bng. Bn sao c s dng trong trng hp bng chnh b h hng. Kch thc mi trong bng ph thuc vo s lng khi trn a. V d, kch thc 4 byte cho php cha con tr ti mt trong 2 32 khi. Vic s dng bng ch s cho php tip hnh truy cp file trc tip. Thay v c tt c cc khi nm trc khi cn truy cp, ta ch cn i theo chui con tr cha trong bng ch mc. trnh phi c bng ch s nhiu ln, h iu hnh c th c v cache c bng ny trong b nh. Tuy nhin, vic c ton b bng ch mc vo b nh i hi mt lng b nh ng k. Gi s a c 2 20 khi. Bng ch mc s dng 4 byte cho mi . Kch thc bng khi s l 2 20*4B=4MB. Mt v d bng ch s c s dng rt thnh cng l bng FAT (file allocation table) ca h iu hnh MS-DOS, OS/2 v Windows (tr cc bn Windows s dng NTFS). Bng FAT v cc bn sao c lu tr u mi a lgic sau sector khi ng (BOOT). Tu vo phin bn FAT 12, FAT 16 hay FAT 32, mi ca bng FAT c kch thc 12, 16 hay 32 bit v cho php qun l ti a 2 12, 2 16, 232 khi.
th m c Tn file ... 6

0 B ng ch s

3
9

6 3

9
-1

10

Hnh 4.9: Danh sch kt ni cc khi s dng bng ch s 4.5.4. S dng khi ch s Khi ch s (Index block hay Index node I-node) l phng php trong tt c con tr ti cc khi thuc v mt file c tp trung mt ch cho tin vic truy cp trc tip n tng khi ca file. Trong phng php ny, mi file c mt mng ring ca mnh cha trong mt khi gi l khi ch s (I-node). Mng ny cha thuc tnh ca file v v tr cc khi ca file trn a (xem hnh 4.10). th i ca mng ny cha con tr ti khi th i ca file. Vic c khi th i ca file do vy c thc hin theo a ch cha trong th i ca khi ch s. Khi mi to file, tt c cc ny c gi tr nil. thm khi mi vo file, khi c ly t danh sch cc khi trng, sau a ch khi c thm vo tng ng trong ch s.

T Minh Phng - HVCNBCVT

121

H thng file

Tn file 0 4 8 12 16 20 1 3 5 9 13 17 21 2 6 10 14 18 22 3 7 11 15 19 23 9 11 6 22 -1 -1 fileA

Th m c Kh i ch s 19

Hnh 4.10: Phng php s dng khi ch s xc nh khi ch s ng vi file, khon mc ca file trong th mc cha con tr ti khi ch s ny. Sau khi xc nh c khi ch s tng ng, khi ny c th c c vo v cache trong b nh (v d khi m file) gim thi gian cho thao tc c ghi file tip theo. Vic s dng khi ch s cho php tin hnh truy cp trc tip cc khi trong file m khng phi c cc khi trc . Cc khi thuc v mt file cng khng cn phi nm gn nhau do khng gy ra hin tng phn mnh ngoi. Mt vn quan trng t ra l chn kch thc cho i-node. I-node cng nh th cng tit kim khng gian. Tuy nhin, i-node nh khng cho php cha con tr ti cc khi nu file ln. Ngc li nu i-node ln (c hng trm ) trong khi file nh ch chim 1 hoc 2 th cc cn li khng c s dng v gy lng ph b nh. C hai cch gii quyt vn ny. Cch 1: Cho php thay i kch thc i-node bng cch s dng danh sch kt ni. Mi i-node s c cp pht mt khi trn a lu cc ca mnh. Nu kch thc i-node tng ln, h iu hnh s lin kt cc i-node to thnh i-node c kch thc ln hn. Khi , cc pha trn ca i-node cha con tr ti cc khi ca file trong khi cui cng cha con tr ti i-node tip theo. Cch 2: S dng i-node nhiu mc c cu trc nh sau. I-node bao gm mt s cha a ch cc khi nh trn a. Trong h thng file Ext2 ca Linux v phin bn BSD UNIX i-node c 15 nh vy. 12 u tin ca i-node tr trc tip ti khi nh cha d liu ca file trn a. Nu kch thc file ln v s lng cc ny khng , 3 cui ca i-node cha con tr ti cc khi ch s gin tip. du tin trong 3 ( th 13) cha a ch mt khi ch s khc gi l ch s gin tip mc 1. Cc ca ch s ny khng cha d liu m con tr ti cc khi cha d liu ca file. Trong trng hp vn khng nh v ht cc khi ca file, tip theo ca i-node s c s dng tr ti khi ch s gin tip mc 2. Cc ca khi ny tr ti khi a ch gin tip mc 1 khc. Nu ch s gin tip mc 2 vn cha , ch s gin tip mc 3 s c
T Minh Phng - HVCNBCVT 122

H thng file s dng. Vi khi ch s gian tip mc 3 nh vy, h iu hnh c th nh v cc file kch thc ln. Kch thc ti a ca file ph thuc vo s ca khi ch s gin tip v kch thc khi cha d liu ca file (hnh 4.11). Phng php s dng khi ch s cng b nhc im tng t nh s dng danh sch kt ni. l do cc khi thuc v mt file khng nm gn nhau, tc truy cp file b gim v phi di chuyn u c nhiu ln. 4.6. QUN L KHNG GIAN TRN A Khng gian trn a c cp pht theo tng khi khng phn chia. qun l hiu qu khng gian trn a, ngoi phng php cp pht khi nh cho file, cn ch ti hai vn : vn la chn kch thc cho khi, v cch qun l nhng khi trng (hin khng cp pht cho file no). 4.6.1. Kch thc khi Khi l n v cp pht nh nht ca h iu hnh, mi file bao gm mt s nguyn cc khi nh. Trong trng hp kch thc file khng bng bi s kch thc khi, khi cui cng ca file s khng c s dng ht v b b ph. Hin tng ny gi l phn mnh trong (internal segmentation). V d, nu kch thc khi l 1KB v file c kch thc 5,6KB th file s cn tt c 6 khi, trong khi cui cng c 0,4KB khng c s dng. H thng file NTFS ca Windows NT hoc Windows th h sau cho php hin th kch thc chnh xc ca file cng nh kch thc m file chim trn a c tnh da trn s khi cp pht cho file.
Kh i ch s Thu c tnh d li u liu d li u kh i ch s gin ti p m c 1 kh i ch s gin ti p m c 2 d li u d li u ... d li u ... ... d li u d li u

a ch tr c ti p . . . Gin ti p m c 1 Gin ti p m c 1 Gin ti p m c 1

d li u d li u

... kh i ch s gin ti p m c 3

...

d li u

Hnh 4.11: Khi ch s nhiu mc Vic la chn kch thc khi nh hng trc tip ti hiu qu lu tr v truy cp d liu trn a. Nu chn khi nh c kch thc ln, khng gian b b ph do phn mnh trong
T Minh Phng - HVCNBCVT 123

H thng file s tng ln. Vic la chn khi nh kch thc nh cho php tit kim khng gian nh gim nh hng ca phn mnh trong. Tuy nhin, kch thc khi nh ng ngha vi vic mi file s bao gm nhiu khi hn. Nu cc khi ny nm ri rc trn a, thi gian cn thit cho vic c/ghi file s tng ln. Ngoi ra, h iu hnh s phi dnh nhiu khng gian hn lu thng tin qun l khi. Nh vy, yu cu v trnh phn mnh trong mu thun vi yu cu v tc truy cp v i hi gii php dung ha hai yu cu ny. i vi a c dung lng ln, vic tit kim khng quan trng bng tc nn c th chn khi kch thc ln. Ngc li, vi a dung lng nh, khi s c kch thc nh hn. H iu hnh c th la chn kch thc khi t ng da trn dung lng a hoc cho php ngi dng la chn khi format a. Trn thc t, kch thc khi vt l (sector) nh nht thng c chn bng 512B v kch thc khi l gic l ly tha 2 ca kch thc khi vt l, thng nm trong khong t 512B ti 32KB. 4.6.2. Qun l cc khi trng c th cp pht khi nh trn a cho file, h iu hnh cn bit khi no hin ang trng. Cc khi trng bao gm nhng khi cha c cp pht ln no hoc cp pht ri nhng c gii phng. qun l khi trng ny, h iu hnh thng s dng danh sch khi trng hoc duy tr mt kiu bn cc khi trn a. Khi cn thit, cc khi c ly t danh sch ny v cp pht cho file. Sau khi file b xo hoc gim kch thc, cc khi c gii phng li c tr v danh sch khi trng. Sau y l mt s phng php thng dng lu tr danh sch hoc bn khi trng ny. Bng bit. Bng bit hay bn bit (bit map) l mt mng mt chiu. Mi ca mng c kch thc 1 bit v ng vi 1 khi nh trn a. Khi c cp pht c bit tng ng l 0, khi cha c cp pht c bit tng ng l 1 (hoc ngc li). V d: Trong trng hp sau, cc khi 0, 1, 8, 9, 10 c cp pht, cc khi cn li cha b s dng: 00111111000111111... Do nhiu b vi x l cung cp cc lnh cho php tm ra cc bit u tin c gi tr 1 hoc 0 trong mt t nh (v d vi x l Intel bt u t 80386 v Motorola bt u t 68020) nn vic tm ra vng cc khi trng c th thc hin rt nhanh mc phn cng. H iu hnh c th chia vect bit thnh cc t v kim tra xem t c khc. Sau v tr bit u tin bng 0 c xc nh. Khi tng ng chnh l khi trng cn tm. Tuy nhin, vic tm kim nh trn ch c th thc hin nu ton b vect bit c cha trong b nh. Vi nhng a kch thc ln, vic c ton b vect bit vo b nh nh vy c th i hi kh nhiu b nh. V d mt a kch thc 8GB vi nu chia thnh khi kch thc 1KB s c vect bit tng ng l 1Mb. Danh sch kt ni. Tng t nh trong trng hp s dng danh sch kt ni cho file, cc khi trng c lin kt vi nhau thnh danh sch. Mi khi trng cha a ch ca khi

T Minh Phng - HVCNBCVT

124

H thng file trng tip theo. a ch khi trng u tin trong danh sch ny c lu tr mt v tr c bit trn a v c h iu hnh gi trong b nh khi cn lm vic vi cc file. Ging nh trng hp danh sch kt ni cho file, vic s dng danh sch kt ni qun l khi trng i hi truy cp ln lt cc khi trng khi cn duyt danh sch ny. Tuy nhin, trong a s trng hp, h iu hnh t khi phi duyt danh sch m c th cp pht ngay cc khi u danh sch. Vic duyt ch cn thit khi cn tm cc khi trng nm k nhau nh trong phng php cp pht khi lin tip. Danh sch vng trng. Phng php ny li dng mt c im l cc khi nm lin nhau thng c cp pht v gii phng ng thi. Do , thay v lu tr a ch tng khi trng, h iu hnh lu v tr khi trng u tin ca vng cc khi trng lin tip v s lng cc khi trng nm lin ngay sau . Hai thng s ny sau s c lu trong mt danh sch ring. V s lng vng trng t hn s lng tng khi trng nn danh sch vng trng c kch thc b hn danh sch tng khi trng rt nhiu. Mt s h thng file c th khng s dng cc cu trc ring ni trn qun l khi trng m kt hp lun vo cu trc qun l khng gian trung ca a. V d, h thng file FAT ca MS-DOS v Windows qun l ngay khi trng trong FAT bng cch nh du cc khi ny mt cch c bit: tng ng vi khi trng trong bng FAT c gi tr 0. Khng c cu trc d liu no c to ring qun l khi trng na. 4.7. T CHC BN TRONG CA TH MC Nh ni trong cc phn trc, file c biu din bi khon mc trong th mc. tin hnh thao tc m file, xo file, to file, trc tin h iu hnh duyt th mc v tm ra khon mc tng ng. Khon mc ny s cung cp thng tin v v tr file trn a cho php ta thc hin cc thao tc tip theo vi file. Hiu qu vic to, xo, tm kim khon mc trong th mc ph thuc rt nhiu vo cch t chc bn trong, cch lu tr v qun l th mc. Phn ny s cp ti mt s phng php xy dng th mc. 4.7.1. Danh sch Cch n gin nht l t chc th mc di dng danh sch cc khon mc. Danh sch ny c th l bng, danh sch kt ni hay mt cu trc khc. Vic tm kim khon mc khi c thc hin bng cch duyt ln lt danh sch. thm file mi vo th mc, trc tin ta phi duyt c th mc kim tra xem khon mcvi tn file nh vy c cha. Khon mc mi sau c thm vo cui danh sch hoc mt trong bng nu ny cha c s dng. m file hoc xa file, ta cng tin hnh tm tun t khon mc tng ng. Nhc im c bn ca phng php t chc th mc ny l vic tm kim trong danh sch rt chm do phi duyt ln lt. Khi s lng file trong th mc tng ln, thi gian tm kim c th rt ln ( mc ngi dng c th nhn bit c). Vic cache th mc trong b nh m nhiu h iu hnh thc hin ch cho php tit kim thi gian c th mc t a ch khng gim c thi gian tm kim trong th mc. 4.7.2. Cy nh phn
T Minh Phng - HVCNBCVT 125

H thng file tng tc tm kim cn dng cu trc d liu c h tr sp xp. Cu trc d liu thng c dng xy dng th mc l cy nh phn (B tree) hoc cy nh phn cn bng. Khi thm khon mc mi vo th mc, h thng sp xp khon mc vo nhnh tng ng ca cy. Vic tm kim trong cy sp xp nhanh hn rt nhiu. H thng file NTFS ca Windows NT l mt v d s dng th mc kiu ny. 4.7.3. Bng bm Mt kiu cu trc d liu khc c th dng cho th mc l bng bm (hash table). Bng bm l cu trc d liu cho php dng hm bm tnh v tr ca khon mc trong th mc theo tn file. Thi gian tm kim trong th mc do gim xung rt nhiu so vi dng danh sch nh phn trn. Vic to v xo file cng c thc hin n gin bng cch tnh v tr ca khon mc cn to hay xo trong bng bm. Trng hp nhiu n file cng bm ti mt v tr c gii quyt nh trong cc bng bm thng thng. Nhc im ln nht ca cu trc ny l hm bm ph thuc vo kch thc ca bng bm do bng phi c kch thc c nh. Nu s lng khon mc vt qu kch thc chn cho bng bm th phi chn li hm bm. V d, ta c bng bm vi 128 khon mc. Hm bm bin i tn file thnh cc s nguyn t 0 n 127 bng cch ly phn d sau khi chia cho 128. Nu s lng file trong th mc tng ln qu 128, chng hn 130 file, kch thc bng bm cng phi tng ln, chng hn thnh 150 khon mc. Khi ta cn xy dng hm bm mi cho php nh x tn file sang khong mi t 0 n 149. 4.7.4. T chc th mc ca DOS (FAT) Mi a lgic trong MS-DOS c cy th mc ring ca mnh. Cy th mc bt u t th mc gc ROOT. Th mc gc c t phn u ca a, ngay sau sector khi ng BOOT v bng FAT. Th mc gc cha cc file v th mc con. Th mc con n lt mnh c th cha file v th mc mc di.
8 Tn file Ph n m r ng tn file Thu c tnh 3
1

10 Ph n d phng

4 di

Th i gian t o file

S th t cluster u Ngy t o file

Hnh 4.12: Ni dung khon mc trong th mc ca h thng file FAT Th mc ca MS-DOS c t chc di dng bng. Mi khon mc chim mt dng trong bng ny v c di c nh l 32 byte. Cu trc ca khon mc c th hin trn hnh 4.12 (dng trong phin bn c, cu trc phin bn mi xem trong phn m t h thng file FAT cui chng).Cc khon mc c th tr ti file hoc tr ti th mc con mc di. S lng khon mc trong th mc gc b hn ch khng c vt qu mt s lng cho trc. V d th mc gc ca a mm thng ch cha ti a 128 khon mc. Mt s phin bn ci tin ca FAT cho php s dng tn file c di ti a l 255 k t. Trong trng hp , khon mc di 32 byte khng cha ht cc tn file di.
T Minh Phng - HVCNBCVT 126

H thng file cha ht tn file, h iu hnh s dng nhiu khon mc cho mt file. Mi khon mc di 32 byte s cha mt phn tn file. Ch c khon mc cui cng cha v tr bt u file v cc thuc tnh khc. 4.7.5. Th mc ca Linux Th mc h thng file Ext2 ca Linux c cch t chc bn trong n gin. Mi khon mc cha tn file v a ch i-node. Ton b thng tin cn li v thuc tnh v v tr cc khi d liu ca file c lu trong i-node ch khng phi trong th mc. Kch thc khon mc khng c nh m ph thuc vo di tn file. Do vy, phn u mi khon mc c mt trng cho bit kch thc ca khon mc ny (xem hnh 4.13).
Kho n m c i-node di Tn file

B ng i-node . . .

Hnh 4.13: Cu trc khon mc trong th mc h thng file Linux Ext 4.8. TIN CY CA H THNG FILE File l ni lu gi thng tin mang tnh lu bn. Cc thng tin ny c th rt quan trng i vi ngi dng, thm ch quan trng hn chnh bn thn h thng tnh ton. H thng file, do vy, phi c tnh bn vng cao, ngha l phi m bo lu tr thng tin sao cho thng tin c ton vn v khng b mt mt. Thng tin ca h thng file lu trn a v cc thit b nh ngoi khc c th b sai lch hoc mt mt do nhiu nguyn nhn: li phn cng, li phn mm, s c k thut (mt in).v.v. Mc d khng th ngn chn cc s c nh vy, h thng file cn c c xy dng sao cho c kh nng pht hin v khc phc hu qu trong kh nng cao nht c th. Trong phn ny ta s xem xt mt s vn lin quan ti tin cy v tnh ton vn ca h thng file. 4.8.1. Pht hin v loi tr cc khi hng Trong qu trnh sn xut cng nh s dng, a c th cha cc khi hng, khng th dng cho ghi, c thng tin. i vi a mm, cc khi hng thng xut hin trong qu trnh s dng. a cng, ngc li, thng c cc khi hng ngay trong qu trnh sn xut. Nhng khi hng ny c nh sn xut pht hin trong qu trnh kim tra a v c lu trong danh sch khi hng i cng vi a. trnh mt thng tin do cc khi hng gy ra cn pht hin khi hng v trnh ghi thng tin ln . C hai phng php thng c s dng cho php thc hin vic ny.
T Minh Phng - HVCNBCVT 127

H thng file Trong phng php th nht, mt sector trn a c dnh ring cha danh sch cc khi hng. Mt s khi khng hng c dnh ring d tr. Cc khi hng s c thay th bng cc khi d tr bng cch thay th a ch khi d tr thnh a ch khi hng. Mi truy cp ti khi hng do vy s tr thnh truy cp ti khi d tr. Phng php th hai n gin hn. H iu hnh tp trung tt c cc khi hng thnh mt file. Do thuc v file, cc khi ny c nh du nh cp pht v do vy khng c s dng na. 4.8.2. Sao d phng Sao d phng (backup) hay sao lu l to ra mt bn sao ca a trn mt vt mang khc. Trong trng hp a cn sao l a mm, ni dung a c th sao sang mt a mm khc. Vi a cng, c bit cc a c dung lng ln, vt mang c chn cho bn sao d phng thng l bng t. u im ca bng t l dung lng ln, gi thnh r. Mc d tc truy cp bng t thp hn a v bng t khng h tr truy cp trc tip, xong vic truy cp ti bng t t khi xy ra (ch trong trng hp a gc b h hng), do nhc im ny khng phi l vn ln lm. Bng dng sao lu c th l bng video thng thng vi thit b ghi i km. C hai phng php sao lu c s dng. Phng php th nht l sao lu ton b (full backup). Tt c thng tin trn a s c sao sang bng t. Phng php ny thng kh tn thi gian nu dung tch ca a ln. Phng php th hai cho php tip kim thi gian sao lu v c tn gi l sao lu tng dn (incremental backup). Sao lu tng dn c s dng sau khi tin hnh sao lu ton b t nht mt ln. Thay v sao lu ton a, phng php ny ch sao cc file b thay i sau ln sao lu cui cng. Thng thng ngi ta p dng c 2 phng php trn. Sao lu ton b c tin hnh hng tun hoc hng thng, cn sao lu tng dn c tin hnh hng ngy. s dng phng php sao lu th hai, h thng lu tr thng tin v cc ln lu tr file. Nu sau ln lu tr cui file b thay i th file s c sao lu li. H iu hnh qun l vic sao lu bng ch kim tra thi gian sao lu cui ny. Trong mt s h thng nh MSDOS, thay v ghi li thi gian ln sao lu cui cng, h thng s dng mt bit c bit gn vi mi file gi l archive bit. Sau khi sao d phng, cc bit ny c xo v 0. Mi khi ni dung file thay i, bit c t li bng 1. Trong ln sao lu tip theo, h iu hnh kim tra archive bit ca cc file. File c bit tng ng bng 1 l file b thay i v cn phi sao lu. 4.8.3. Tnh ton vn ca h thng file Nh trnh by cc phn trn, h thng file cha nhiu cu trc d liu c cc mi lin kt vi nhau. Chng hn, phn qun l khng gian cha s dng cha danh sch cc khi trng c lin kt vi nhau, th mc cha con tr ti cc i-node, i-node li cha lin kt ti cc khi.v.v. Nu thng tin v cc lin kt ny b h hi, tnh ton vn ca h thng cng b ph v.

T Minh Phng - HVCNBCVT

128

H thng file Trong qu trnh lm vic, h thng file thng phi c cc khi cha thng tin v cc lin kt vo b nh, thay i cc lin kt ny, sau ghi ngc ra a. V d, khi xo file, h thng file c a ch cc khi thuc v file, nh du khi thnh khi trng sau gii phng khon mc cha file. Trong nhiu trng hp, cc lin kt ny c th b ph v v tr nn khng ton vn c bit trong trng hp th mc, i-node hoc danh sch khi trng b h hi. Vic h hi xy ra khi vng a cha cc thng tin ny b hng hoc khi h thng b s c khi ang thay i cc cu trc ni trn. Ta hy xem xt mt s trng hp ph v tnh ton vn. Trng hp th nht, cc khi khng c mt trong danh sch cc khi trng, ng thi cng khng c mt trong mt file no. H thng, do , mt quyn kim sot vi cc khi ny. Trong trng hp khc, mt khi c th va thuc v mt file no va c mt trong danh sch khi trng v do c th b h iu hnh cp pht ln th hai cho mt file khc. Nu mt khi ng thi thuc v hai file cng mt lc s dn n mu thun v gy mt d liu. i vi file, file c th b xo trong khi khon mc ng vi file trong th mc vn cn. C th xy ra trng hp ngc li, khon mc ng vi file b xo cn file th cha. gii quyt cc vn ni trn, h iu hnh thng c cc chng trnh kim tra tnh ton vn ca h thng. Cc chng trnh ny c chy khi h thng khi ng, c bit khi ng li sau cc s c. V d c bit n rng ri ca chng trnh loi ny l chng trnh SCANDISK ca Windows v DOS. V d chng trnh kim tra tnh ton vn trong Unix lm vic nh sau: Kim tra tnh ton vn ca khi. To hai s m cho mi khi. S m th nht cha s ln khi xut hin trong danh sch khi trng. S m th hai cha s ln khi xut hin trong file. Khi u, tt c s m c khi to bng 0. Chng trnh ln lt duyt danh sch khi trng v ton b i-node ca cc file. Nu mt khi xut hin trong danh sch khi trng, s m tng ng th nht c tng mt n v. Nu khi xut hin trong i-node ca file, s m tng ng th hai c tng mt n v. Trn hnh ??? l v d s m ca mt s khi sau khi duyt xong ton h thng. Vi mi khi c th c th xNy ra ba trng hp sau: Tng s m th nht v th hai ca khi bng 1 nh vi cc khi 1, 2: kt qu bnh thng, cho thy khi ang trng hoc c cp pht cho duy nht 1 file. Tng s m th nht v th hai ca khi bng 0 nh vi khi 0: kt qu li, cho thy khi hin khng thuc danh sch khi trng, ng thi cng khng thuc file no. C th khc phc li ny bng cch thm khi vo danh sch khi trng. Tng s m th nht v th hai ca khi ln hn 1 nh vi khi 3, 4, 5: kt qu li, cho thy file va c nh du cn trng, va c nh du cp pht cho file, hoc c cp cho nhiu hn mt file. Trong trng hp ny vic khc phc c th gy mt d liu nu khi thuc v nhiu file v c ghi d liu ln .

T Minh Phng - HVCNBCVT

129

H thng file
S th t kh i 1 2 3 4 1 0 1 0 S th t kh i 1 2 3 4 0 1 1 3

S l n xu t hi n trong danh sch tr ng

0 0

5 1

S l n xu t hi n trong file

0 0

5 2

Hnh 4.14: Kt qu kim tra tnh ton vn ca khi 4.8.4. m bo tnh ton vn bng cch s dng giao tc Mc d c th kim tra tnh ton vn ca cc lin kt trong h thng file nh va trnh by trong phn trc, nhng phng php ny c mt s nhc im. Th nht, vic kim tra ton b h thng file, chng hn bng cch chy SCANDISK, i hi kh nhiu thi gian. Th hai, vic kim tra ch cho php pht hin li sau khi xy ra v khng m bo khi phc d liu i vi mt s li. Mt s h thng file hin nay s dng k thut tin tin hn, cho php hn ch nhng nhc im ni trn. K thut ny da trn khi nim giao tc (transaction), mt khi nim c ngun gc t lnh vc c s d liu. Giao tc l mt tp hp cc thao tc cn phi c thc hin trn vn cng vi nhau. Nu bt c mt thao tc no cha hon thnh, th coi nh ton b giao tc cha c thc hin. i vi h thng file, mi giao tc s bao gm nhng thao tc thay i lin kt cn thc hin cng nhau, v d cc thao tc cp nht lin kt lin quan vi mt khi trn a. Ton b trng thi h thng file, c th l nhng thay i thc hin vi cc lin kt v cu trc qun l file, c h thng ghi li trong mt file log (mt dng file nht k ghi li thng tin v h thng theo thi gian). Mi khi thc hin giao tc, h thng kim tra xem giao tc c c thc hin trn vn khng. Nu giao tc khng c thc hin trn vn do s c, h iu hnh s s dng thng tin t log khi phc h thng file v trng thi khng li, trc khi bt u thc hin giao tc. Phng php s dng giao tc cho php a h thng file v mt trng thi khng li trong khi khng phi kim tra ton b lin kt ca file v th mc. H thng file NTFS ca Windows NT v cc phin bn sau s dng k thut giao tc va trnh by. Tuy nhin, h thng ch p dng giao tc vi thay i lin kt, v khng s dng k thut ny cho thay i ni dung file. 4.9. BO MT CHO H THNG FILE Bo mt cho h thng file l ngn cn vic truy cp tri php cc thng tin lu tr trong file v th mc. i vi cc h thng nh dnh cho mt ngi dng, vn bo mt tng i n gin v c th thc hin bng cc bin php vt l, v d, khng cho nhng ngi khc tip cn ti h thng. Trong nhng h thng tnh ton a ngi dng, vic bo mt cho file v th mc thc hin bng cch kim sot quyn truy cp ti cc ti nguyn ny. H thng qun l quyn truy cp bng cch hn ch cc thao tc truy cp ti file hoc th mc. Cc thao tc thng c xem xt hn ch l c, ghi, thc hin (i vi file
T Minh Phng - HVCNBCVT 130

H thng file chng trnh), thm vo file, xo file. i vi th mc, cc thao tc cn kim sot l xem ni dung th mc, thm file vo th mc, xo file khi th mc. Di y ta s cp ti mt s c ch bo mt thng gp. 4.9.1. S dng mt kh u Mi file s c mt mt khNu gn vi mt s quyn no . Khi ngi dng hoc chng trnh ng dng truy cp file c, ghi hoc thc hin thao tc khc, h thng s yu cu cng cp mt khNu tng ng v vic truy cp ch c thc hin nu mt khNu ng. V d s dng c ch bo mt kiu ny c s dng trong Windows 95/98 chia s cc th mc gia cc my ni mng theo m hnh nhm (workgroup). Nhc im ch yu ca phng php ny l vic nh mt khNu cho tng file hoc tng th mc l v cng kh khn nu s lng file ln. Ngoi ra, do mi thao tc truy cp u i hi cung cp mt khNu nn rt mt thi gian v khng tin li. 4.9.2. Danh sch qun l truy cp Mi file s c gn mt danh sch i km gi l danh sch qun l truy cp ACL (Access Control List). Danh sch ny cha thng tin nh danh ngi dng v cc quyn m ngi dng c thc hin vi file. Thng tin nh danh ngi dng c th cha tn ngi dng hoc s nhn dng m h iu hnh cp khi ngi dng ng nhp vo h thng. Danh sch qun l quyn truy cp thng c lu tr nh mt thuc tnh ca file hoc th mc. Phng php s dng ACL thng c s dng cng vi c ch ng nhp. Ngi dng c h thng cp mt s nh danh uid, gn vi tn v mt khNu. Sau khi ng nhp thnh cng, uid s gn vi ngi dng trong phin lm vic. Khi ngi dng (hoc chng trnh ng dng ca ngi dng) truy cp file, h thng file i chiu uid vi cc quyn ghi trong ACL ca file tng ng quyt cho php hay khng cho php truy cp

A ch file c ghi

File 1 B c

File 2 C c ghi B ch file c ghi C c

Hnh 4.15: V d danh sch qun l truy cp cho hai file Cc quyn truy cp thng s dng vi file bao gm: Quyn c (Read): ngi c quyn ny c php c ni dung file. Quyn ghi, thay i (Write, Change): c php ghi vo file, tc l thay i ni dung file. Quyn xa (Delete): c php xa file. Thc cht, quyn ny tng ng vi quyn thay i file. Quyn thay i ch file (Change owner)
131

T Minh Phng - HVCNBCVT

H thng file Quyn th t c nhc ti trn lin quan ti khi nim ch file (owner). Ch file l ngi c quyn cao nht vi file, trong c quyn cp quyn cho ngi dng khc i vi file do mnh lm ch. Nhng quyn lit k trn l nhng quyn c s v c th c t hp vi nhau to ra quyn mi. Chng hn, nu ngi dng c quyn c file th s c quyn thc hin file, thc cht l c v ti ni dung file chng trnh vo b nh thc hin. Trong trng hp s lng ngi dng c quyn vi file ln, kch thc ACL c th rt ng k. ng thi, vic gn quyn cho tng ngi dng ring l tn rt nhiu thi gian. Do , h iu hnh s dng thm khi nim nhm ngi dng. Nhm ngi dng bao gm nhng ngi c quyn ging nhau i vi file hoc th mc. Ta c th thm tng nhm ngi dng vo ACL ca file (Windows NT) hoc thm ngi dng vo nhm gn vi file (Linux). Di y l v d giao din lm vic vi quyn truy cp trong Windows (s dng h thng file NTFS). i vi Windows, quyn truy cp c hin th v thay i thng qua giao din ha nh trn hnh 4.16. 4.10. H THNG FILE FAT H thng file FAT c thit k ban u s dng trong h iu hnh DOS, v sau c s dng trong mt s phin bn ca h iu hnh Windows nh Windows 3.0, 3.1, 95/98, ME. Hin nay, FAT khng c dng lm h thng file cho a cng trong nhng phin bn mi nht ca Windows do c mt s nhc im nh tc v tin cy khng cao, khng h tr c ch bo mt. Tuy nhin, FAT vn l h thng file thng dng nht, c s dng trong hu ht cc h iu hnh hin nay qun l th nh, a mm, a CD, v c s dng nh phng tin trung gian thun tin khi cn trao i file gia cc h iu hnh khc nhau. Ngoi ra, rt nhiu h thng nhng s dng FAT qun l file do s n gin ca h thng file ny.

T Minh Phng - HVCNBCVT

132

H thng file

Hnh 4.16: Giao din phn qun l quyn truy cp file ca Windows Vista H thng file FAT c ba phin bn l FAT12, FAT16, v FAT32, trong ch s sau phn ch ch kch thc ca bng FAT tng ng l 12, 16, v 32 bit. Hin nay, a s FAT c s dng cho a cng l FAT32, trong khi FAT16 c s dng cho thit b nh ngoi c dung lng nh hn nh CD, th nh ngoi. 4.10.1. a lgic n v t chc trong h thng file FAT l a lgic (logical disk). i vi a cng, ton b a c chia thnh cc vng (partition), bao gm vng chnh (primary partition) v vng m rng (extended partition). Vng m rng c chia tip thnh mt s a l gic. Bn thn vng chnh cng c coi l a l gic vi khc bit l c th khi ng h iu hnh t y. i vi thit b nh ngoi khc, mi a mm, CD, th nh ngoi c coi l mt a l gic vi y cu trc qun l a l gic ca mnh. a l gic c t tn bng cc ch ci A,B,C,D,.v.v. vi mt s quy c nh A l a mm, C l a l gic u tin trn cng. n v cp pht khng gian trn a (khi l gic) l cluster. Mi cluster cha mt s lng sector bng ly tha ca 2. Kch thc cluster cng vi phin bn FAT (12, 16, hay 32) quyt nh kch thc ti a ca a l gic m FAT c th qun l. Thng thng, kch thc cluster nm trong khong t 2KB n 32KB. T chc thng tin trn a lgic Thng tin trn a l gic c t chc nh trn hnh 4.17.
T Minh Phng - HVCNBCVT 133

H thng file Boot sector v cc khi d phng Bng FAT1 Bng FAT2 Th mc gc (ch c trn FAT12 v FAT16) Phn cn li cho ti cui a cha cc file v th mc ca a l gic

Hnh 4.17: Cu trc a l gic Kch thc cc vng, tnh bng s sector m vng chim, c th xc nh bng cch c thng tin ghi trong phn boot sector nh sau. - Boot Sector v d phng: bng s lng sector d phng. - FAT1+FAT2: s lng bng FAT x kch thc FAT. - Th mc gc: (s lng khon mc trong th mc gc x 32)/kch thc sector. Qua hnh v, ta thy a l gic ca h thng file FAT gm 4 phn chnh: 1) Boot sector cc cc sector d phng. Sector u tin trong phn ny ng thi l sector u tin ca a l gic l boot sector. Boot sector cha thng tin m t cu trc a l gic nh kch thc sector, cluster, kch thc bng FAT.v.v. Ngoi ra, nu a l gic l a khi ng h iu hnh th boot sector cn cha m ca chng trnh mi (loader) dng ti h iu hnh. Do chng trnh mi c th di, hoc h thng cn phi cha thm mt s thng tin khc, nn ngoi boot sector, vng ny c th bao gm thm mt s sector d phng khc. Kch thc ton b vng ny c ghi trong cu trc thng tin cha trong boot sector. FAT: Vng ny cha bng FAT, thc cht l bng ch s dng cho vic qun l cc khi v cc file. Do thng tin trong bng FAT rt quan trng nn h iu hnh thng duy tr hai bng FAT, trong mt bng l bn sao ca bn kia. Tuy nhin, s lng bng FAT c th thay i v khng phi l hai. S lng bng FAT cho a c th c ghi trong boot sector. Th mc gc (root directory). Trong phin bn FAT12 v FAT16, vng ny cha cc th mc gc, tc l th mc trn cng ca a. Kch thc vng ny c xc nh bng s lng ti a khon mc trong th mc gc v c ghi trong boot sector. FAT32 khng s dng vng ny m lu tr th mc gc nh cc file v th mc thng thng. Vng d liu: chim ton b khng gian cn li trn a, cha cc file v th mc ca a l gic. Thng thng, vng ny bt u t cluster s 2.

2)

3)

4)

4.10.2. Boot sector Boot sector l sector u tin trn a v cha thng tin m t cu trc a cng vi m ti h iu hnh i vi a mi h iu hnh. Cu trc c th ca boot sector nh sau: 32 byte u tin:
T Minh Phng - HVCNBCVT 134

H thng file V tr 0 3 ngha Lnh Jump. Ch th cho CPU b qua phn thng tin v nhNy ti thc hin phn m mi ca h iu hnh nu y l a mi h iu hnh. Tn hng sn xut, b sung du trng cui cho 8B. V d: IBM 3.3, MSDOS5.0.v.v. Bytes per sector. Kch thc sector tnh bng byte. Gi tr thng gp l 512 i vi a cng. y cng l v tr bt u ca Khi Thng s BIOS (BIOS Parameter Block, vit tt l BPB) Sectors per cluster. S sector trong mt cluster, lun l ly tha ca 2 v khng ln hn 128. Reserved sectors. S lng sector dnh cho vng u a n trc FAT, bao gm boot sector v cc sector d phng. S lng bng FAT. Thng bng 2. S khon mc ti a trong th mc gc ROOT. Ch s dng cho FAT12 v FAT16. Bng 0 vi FAT32. Total sector. Tng s sector trn a. Nu bng khng th s lng sector c ghi bng 4 byte ti v tr 0x20. M t loi a. V d 0xF0 l a mm 3.5 hai mt vi 80 rnh trn mi mt, 0xF1 l a cng .v.v. Sectors per FAT. Kch thc FAT tnh bng sector (i vi FAT12/16) Sectors per track. S sector trn mt rnh. Number of heads. S lng u c (mt a c s dng) Hidden sectors. S lng sector Nn. Total sector. Tng s sector trn a cho trng hp c nhiu hn 65535.

di 3 8

11

13 14 16 17 19 21 22 24 26 28 32

1 2 1 2 2 1 2 2 2 4 4

Phn cn li c cu trc khc nhau i vi FAT12/16 v FAT32. C th, cc byte tip theo trong FAT12/16 cha cc thng tin sau: V tr 36 37 38 39 di 1 1 1 4 D phng Du hiu ca phn m mi. Cha gi tr 0x29 (k t )) hoc 0x28. S x ri ca a (Volume Serial Number) c to lc format a
135

ngha S th t vt l ca a (0: a mm, 80h: a cng .v.v.)

T Minh Phng - HVCNBCVT

H thng file 43 54 62 510 11 8 448 2 Volume Label. Nhn ca a c to khi format. Tn h thng file FAT, v d"FAT12 ", "FAT16 ". M mi h iu hnh, y l phn chng trnh ti h iu hnh khi khi ng. Du hiu Boot sector (0x55 0xAA)

i vi FAT32, cc byte tip theo c ngha khc, v cha thng tin sau: V tr 36 0x28 0x2a 0x2c 0x30 0x32 0x34 0x40 0x41 0x42 0x43 0x47 0x52 0x5a di 4 2 2 4 2 2 12 1 1 1 4 11 8 420 C ca FAT Version. Phin bn. S th t ca cluster u tin ca th mc gc root. S sector ca Information Sector. y l phn nm trong s sector d phng ngay sau boot sector. S th t sector u tin ca bn sao ca boot sector (nu c) D phng S th t vt l ca a D phng Du hiu ca phn m mi m rng. S x ri ca a (Volume Serial Number) Volume Label "FAT32 " M mi h iu hnh Du hiu Boot sector (0x55 0xAA) ngha Sectors per FAT. Kch thc FAT tnh bng sector.

0x1FE 2

4.10.3. Bng FAT Bng FAT l bng ch s, dng qun l cc khi (cluster) trn a v cc file theo nguyn tc cc khi thuc v mt file c lin kt vi nhau thnh danh sch mc ni v con tr c cha trong tng ng ca bng FAT. Phng php ny c m t trong phn cp pht khng gian cho file trn. C th, mi trong bng FAT tng ng vi mt cluster trn a. Chng hn, s 2 ca FAT tng ng vi cluster s 2. Mi trong bng FAT cha mt trong cc thng tin sau: S th t ca cluster tip theo trong danh sch cluster ca file.
136

T Minh Phng - HVCNBCVT

H thng file Du hiu kt thc danh sch nu tng ng vi cluster cui cng trong file. Du hiu nh du cluster b hng, khng c s dng. Du hiu nh du cluster d phng. Bng 0 nu cluster trng, cha c cp pht cho file no. Mi ca FAT c th cha gi tr c th nh lit k di y. FAT12 0x000 0x001 0x002 0xFEF 0xFF0 0xFF6 0xFF7 0xFF8 0xFFF FAT16 0x0000 0x0001 0x0002 0xFFEF 0xFFF0 0xFFF6 0xFFF7 0xFFF8 0xFFFF FAT32 0x00000000 0x00000001 0x00000002 0x0FFFFFEF Cluster trng Cluster d phng, khng c s dng Cluster c cp cho file. Cha s th t cluster tip theo ca file. ngha

0x0FFFFFF0 Cluster d phng 0x0FFFFFF6 0x0FFFFFF7 Cluster hng.

0x0FFFFFF8 Cluster cui cng ca file 0x0FFFFFFF

FAT12, 16, 32 dnh tng ng 12, 16, v 32 bit cho mi ca FAT. Kch thc mi cng ln th cng qun l c nhiu cluster, ng thi cng i hi nhiu khng gian hn lu bng FAT. Cc h thng FAT32 hin nay ch s dng 28 bit thp. 4 bit cao dng lm d phng v c gi tr bng 0. Do cluster u tin ca vng d liu c nh s th t bng 2 nn hai u tin ca bng FAT khng c s dng. 4.10.4. Th mc gc Mi th mc c lu trong bng th mc, thc cht l mt file c bit cha cc khon mc ca th mc. Mi khon mc c kch thc 32 byte cha thng tin v mt file hoc th mc con thuc th mc ang xt. i vi FAT12/16, th mc trn cng ca a c cha trong mt vng c bit gi l th mc gc (root). Cc th mc mc thp hn cng nh th mc gc ca FAT 32 c cha trong vng d liu ca a cng vi file. Mi th mc bao gm cc khon mc 32 byte xp lin nhau. Mi khon mc i vi trng hp tn file ngn 8.3 c cu trc nh sau: V tr 0 8 11 di 8 3 1 M t Tn file, thm bng du trng cui nu ngn hn 8 byte Phn m rng, thm bng du trng cui nu ngn hn 3 byte Byte thuc tnh ca file. Cc bit ca byte ny nu bng 1 s c ngha nh sau:
137

T Minh Phng - HVCNBCVT

H thng file Bit 0: file ch c c Bit 1: file Nn Bit 2: file h thng Bit 3: Volume label Bit 4: th mc con Bit 5: archive Bit 6: thit b nh khc (dng cho h iu hnh) Bit 7: khng s dng Byte thuc tnh bng 0x0F l du hiu ca file tn di. D phng Thi gian to file tnh theo n v 10ms, gi tr t 0 n 199 Thi gian to file theo format sau: bit 15-11: gi (0-23); bit 10-5: pht (0-59); bit 4-0: giy/2 (0-29) Ngy to file theo format sau. Bit 15-9: nm (0-1980, 127 =2107); bit 8-5: thng (1-12); bit 4-0: ngy (1-31) Ngy truy cp cui, theo format nh ngy to file 2 byte cao ca s th t cluster u tin ca file trong FAT32 Thi gian sa file ln cui, theo format thi gian to file Ngy sa file ln cui, theo format nh ngy to file S th t cluster u tin ca file trong FAT12/16. 2 byte thp ca s th t cluster u tin trong FAT32 Kch thc file tnh bng byte. Bng 0 vi th mc con

12 13 14 16 18 20 22 24 26 28

1 1 2 2 2 2 2 2 2 4

Tn file di. Cu trc trn ch cho php lu tn file v phn m rng khng qu 8 v 3 byte. s dng tn file di ti 255 k t, mi khon mc ca file c to thnh bng cch ghp nhiu cu trc 32 byte vi nhau.

T Minh Phng - HVCNBCVT

138

H thng file

TI LIU THAM KHO


1. A. Silbeschatz, P.B. Galvin, G. Gagne. Operating system concepts. 8th edition. John Wiley & Sons. 2009. 2. W. Stallings. Operating Systems: Internals and Design Principles. 5 th edition. Prentice Hall 2005. 3. A.S. Tanenbaum. Modern operating systems. 3rd edition. Prentice Hall 2008 . 4. Nguyn Thanh Tng. Gio trnh H iu hnh. HBK H ni 1999. 5. H Quang Thy. Gio trnh Nguyn l cc h iu hnh. In ln th ba. NXB KHKT 2009. 6. C. Crowley. Operating systems: A design-oriented approach. Irwin Professional Publishing 1996.

T Minh Phng - HVCNBCVT

139

You might also like