You are on page 1of 217

I HC HU TRNG I HC KHOA HC KHOA CNG NGH THNG TIN

GIO TRNH

L THUYT H IU HNH

BIN SON: NGUYN KIM TUN

Hu 06/2004

MC LC
Trang

Chng I: TNG QUAN V H IU HNH


I.1. Chc nng v lch s pht trin ca h iu hnh ....................................... 1 I.1.1. Chc nng ca h iu hnh ...................................................................... 1 I.1.2. Lch s pht trin ca h iu hnh ........................................................... 3

I.2. Mt s khi nim ca h iu hnh .............................................................. 5


I.2.1. I.2.2. I.2.3. I.2.4. I.2.5. Tin trnh (Process) v tiu trnh (Thread) ............................................... 5 B x l lnh (Shell) ................................................................................ 5 S phn lp h thng (System Layering) ................................................. 6 Ti nguyn h thng (System Resources) ................................................ 7 Li gi h thng (System Calls) .............................................................. 7

I.3. H iu hnh v phn loi h iu hnh ....................................................... 8 I.3.1. H iu hnh l g? ................................................................................... 8 I.3.2. Phn loi h iu hnh ............................................................................. 9 I.4. Thnh phn v cu trc ca h iu hnh .................................................. 12 I.4.1. Cc thnh phn ca h iu hnh ........................................................... 12 I.4.2. Cc cu trc ca h iu hnh ................................................................ 16

I.5. H iu hnh Windows95 ............................................................................ 21


I.5.1. Gii thiu v h iu hnh Windows95.................................................. 22 I.5.2. Cu trc ca windows95 ........................................................................ 24 I.5.3. B nh o trong windows95 .................................................................. 25 I.6. H iu hnh Windows 2000 ....................................................................... 26 I.6.1. Gii thiu v h iu hnh Windows 2000 ............................................ 26 I.6.2. Mt s c tnh ca Windows 2000........................................................ 27 I.6.3. Mt s khi nin trong Windows 2000 .................................................. 28 I.6.4. Kin trc ca Windows 2000 ................................................................. 31

I.7. H iu hnh Linux ..................................................................................... 37

Chng II: QUN L TIN TRNH


II.1. Tng quan v tin trnh.............................................................................. 41 II.1.1. Tin trnh v cc loi tin trnh .............................................................. 41 II.1.2. M hnh tin trnh .................................................................................. 42 II.1.3. Tiu trnh v tin trnh ........................................................................... 45 II.1.4. Cc trng thi tin trnh .......................................................................... 46 II.1.5. Cu trc d liu ca khi qun l tin trnh ........................................... 50

Chng 1: Tng quan v H iu hnh

212

II.1.6. Cc thao tc iu khin tin trnh .......................................................... 52 II.2. Ti nguyn gng v on gng ................................................................. 53 II.2.1. Ti nguyn gng (Critical Resource) .................................................... 53 II.2.2. on gng (Critical Section) ................................................................ 57 II.2.3. Yu cu ca cng tc iu qua on gng ....................................... 59 II.3. iu tin trnh qua on gng ............................................................. 60 II.3.1. Cc gii php phn cng ........................................................................ 60 II.3.2. Cc gii php dng bin kho ................................................................ 62 II.3.3. Cc gii php c h tr bi h iu hnh v ngn ng lp trnh........ 63 II.3.4. Hai bi ton iu phi lm v d ............................................................ 72 II.4. Tc nghn (Deadlock) v chng tc nghn .............................................. 79 II.4.1. Tc nghn .............................................................................................. 79 II.4.2. iu kin hnh thnh tt nghn ............................................................. 81 II.4.3. Ngn chn tc nghn (Deadlock Prevention) ........................................ 81 II.4.4. Nhn bit tc nghn (Deadlock Detection) ........................................... 81 II.5. iu phi tin trnh II.5.1. Mc tiu iu phi ................................................................................ 83 II.5.2. T chc iu phi .................................................................................. 86 II.5.3. Cc chin lc iu phi ....................................................................... 87 II.6. Tin trnh trong Windows NT ................................................................... 89

Chng III: QUN L B NH


III.1. Nhim v ca qun l b nh ................................................................... 93 III.2. K thut cp pht b nh (np chng trnh vo b nh chnh) ......... 95 III.2.1. K thut phn vng c nh (Fixed Partitioning) ................................ 95 III.2.2. K thut phn vng ng (Dynamic Partitioning) ............................ 97 III.2.3. K thut phn trang n (Simple Paging) ......................................... 103 III.2.4. K thut phn on n (Simple Segmentation)...106 III.3. K thut b nh o (Virtual Memory) ................................................... 109 III.3.1. B nh o ......................................................................................... 109 III.3.2. K thut b nh o ........................................................................... 112 III.4. Qun l b nh RAM ca DOS .............................................................. 126 III.4.1. Program Segment Prefix (PSP).......................................................... 126 III.4.2. Chng trnh COM v EXE...................................................................... III.4.3. Memory Control Block (MCB) ................................................................ III.5. S phn trang/on trong h iu hnh Windown NT ......................... 130 III.4.1. Segmentation .................................................................................... 130 III.4.2. Paging............................................................................................... 132

Chng 1: Tng quan v H iu hnh

213

III.6. Cc thut ton thay trang ....................................................................... 133 III.7. Cp pht khung trang ............................................................................. 136 III.8. Mt s vn v qun l b nh ca Windows 2000 ........................... 137 III.8.1. Nhim v qun l b nh ca Windows 2000 ................................. 137 III.8.2. Cc dch v trnh qun l b nh cung cp ...................................... 138 III.8.3. Address Space Layout ...................................................................... 141 III.8.4. Chuyn i a ch ............................................................................ 142

Chng IV: QUN L FILE v A


IV.1. Tng quan v qun l tp tin v a ....................................................... 148 IV.1.1. Tp tin v h thng qun l tp tin..................................................... 148 IV.1.2. Bng danh mc v tp tin chia s....................................................... 151 IV.1.3. Qun l khng gian a ...................................................................... 153 IV.1.4. Qun l cc block cha file trn a................................................... 155 IV.1.5. An ton trong qun l tp tin.............................................................. 158 IV.1.6. Hiu sut h thng file ....................................................................... 162 IV.2. Cc iu khin h thng tp tin............................................................... 164 IV.3. Cc h thng file trn cc h iu hnh hin nay .................................. 166 IV.4. T chc a ca MS_DOS........................................................................ 167 IV.5. Qun l file trn a ca MS_DOS ......................................................... 172 IV.6. T chc bng th mc gc ca Windows98 .......................................... 185 IV.7. T chc a ca windows 2000 ............................................................... 188 IV.7.1. Cc loi partition ............................................................................... 188 IV.7.2. Cc loi volume multipartition.......................................................... 192 IV.8. Qun l lu tr file trn a ca windowsNT/2000............................... 195 IV.8.1. Mt s chc nng c h tr bi NTFS ca windows 2000......... 195 IV.8.2. Cu trc ca MFT............................................................................ 196 IV.8.3. Qun l danh sch cc block cha file trn a .............................. 203 IV.9. Mt s k thut c h tr bi h thng file NTFS ............................ 206 IV.9.1. Lp bng ch mc ............................................................................. 206 IV.9.2. nh x Bad-cluster .......................................................................... 207 IV.10. T chc lu tr file trn a CD_ROM.................................................. 209

Mc lc .............................................................................................. 212 Ti liu tham kho ............................................................................ 215

Chng 1: Tng quan v H iu hnh

214

Chng I

TNG QUAN V H IU HNH


Nu khng c phn mm, my tnh ch l mt thit b in t thng thng. Vi s h tr ca phn mm, my tnh c th lu tr, x l thng tin v ngi s dng c th gi li c thng tin ny. Phn mm my tnh c th chia thnh nhiu loi: chng trnh h thng, qun l s hot ng ca chnh my tnh. Chng trnh ng dng, gii quyt cc vn lin quan n vic s dng v khai thc my tnh ca ngi s dng. H iu hnh thuc nhm cc chng trnh h thng v n l mt chng trnh h thng quan trng nht i vi my tnh v c ngi s dng. H iu hnh iu khin tt c cc ti nguyn ca my tnh v cung cp mt mi trng thun li cc chng trnh ng dng do ngi s dng vit ra c th chy c trn my tnh. Trong chng ny chng ta xem xt vai tr ca h iu hnh trong trng hp ny. Mt my tnh hin i c th bao gm: mt hoc nhiu processor, b nh chnh, clocks, a, giao din mng, v cc thit b vo/ra khc. Tt c n to thnh mt h thng phc tp. vit cc chng trnh theo di tt c cc thnh phn ca my tnh v s dng chng mt cch hiu qu, ngi lp trnh phi bit processor thc hin chng trnh nh th no, b nh lu tr thng tin nh th no, cc thit b a lm vic (ghi/c) nh th no, li no c th xy ra khi c mt block a, y l nhng cng vic rt kh khn v qu kh i vi ngi lp trnh. Nhng rt may cho c ngi lp trnh ng dng v ngi s dng l nhng cng vic trn c h iu hnh h tr nn h khng cn quan tm n na. Chng ny cho chng ta mt ci nhn tng quan v nhng g lin quuan n vic thit k ci t cng nh chc nng ca h iu hnh h iu hnh t c mc tiu: Gip ngi s dng khai thc my tnh d dng v chng trnh ca ngi s dng c th chy c trn my tnh.

I.1. Chc nng v lch s pht trin ca h iu hnh


I.1.1. Chc nng ca h iu hnh
Mt h thng my tnh gm 3 thnh phn chnh: phn cng, h iu hnh v cc chng trnh ng dng v ngi s dng. Trong h iu hnh l mt b phn quan trng v khng th thiu ca h thng my tnh, nh c h iu hnh m ngi s dng c th i thoi v khai thc c cc chc nng ca phn cng my tnh.

Chng 1: Tng quan v H iu hnh

C th ni h iu hnh l mt h thng cc chng trnh ng vai tr trung gian gia ngi s dng v phn cng my tnh. Mc tiu chnh ca n l cung cp mt mi trng thun li ngi s dng d dng thc hin cc chng trnh ng dng ca h trn my tnh v khai thc trit cc chc nng ca phn cng my tnh. t c mc tiu trn h iu hnh phi thc hin 2 chc nng chnh sau y: Gi lp mt my tnh m rng: My tnh l mt thit b vi in t, n c cu thnh t cc b phn nh: Processor, Memory, I/O Device, Bus, ... , do i thoi hoc khai thc my tnh ngi s dng phi hiu c c ch hot ng ca cc b phn ny v phi tc ng trc tip vo n, tt nhin l bng nhng con s 0,1 (ngn ng my). iu ny l qu kh i vi ngi s dng. n gin cho ngi s dng h iu hnh phi che y cc chi tit phn cng my tnh bi mt my tnh m rng, my tnh m rng ny c y cc chc nng ca mt my tnh thc nhng n gin v d s dng hn. Theo khi cn tc ng vo my tnh thc ngi s dng ch cn tc ng vo my tnh m rng, mi s chuyn i thng tin iu khin t my tnh m rng sang my tnh thc hoc ngc li u do h iu hnh thc hin. Mc ch ca chc nng ny l: Gip ngi s dng khai thc cc chc nng ca phn cng my tnh d dng v hiu qu hn. Qun l ti nguyn ca h thng: Ti nguyn h thng c th l: processor, memory, I/O device, printer, file, ..., y l nhng ti nguyn m h iu hnh dng cp pht cho cc tin trnh, chng trnh trong qu trnh iu khin s hot ng ca h thng. Khi ngi s dng cn thc hin mt chng trnh hay khi mt chng trnh cn np thm mt tin trnh mi vo b nh th h iu hnh phi cp pht khng gian nh cho chng trnh, tin trnh chng trnh, tin trnh np c vo b nh v hot ng c. Trong mi trng h iu hnh a nhim c th c nhiu chng trnh, tin trnh ng thi cn c np vo b nh, nhng khng gian lu tr ca b nh c gii hn, do h iu hnh phi t chc cp pht b nh sao cho hp l m bo tt c cc chng trnh, tin trnh khi cn u c np vo b nh hot ng. Ngoi ra h iu hnh cn phi t chc bo v cc khng gian nh cp cho cc chng trnh, tin trnh trnh s truy cp bt hp l v s tranh chp b nh gia cc chng trnh, tin trnh, c bit l cc tin trnh ng thi hot ng trn h thng. y l mt trong nhng nhim v quan trng ca h iu hnh. Trong qu trnh hot ng ca h thng, c bit l cc h thng a ngi dng, a chng trnh, a tin trnh, cn xut hin mt hin tng khc, l nhiu chng trnh, tin trnh ng thi s dng mt khng gian nh hay mt tp tin (d liu, chng trnh) no . Trong trng hp ny h iu hnh phi t chc vic chia s v gim st vic truy xut ng thi trn cc ti nguyn ni trn sao cho vic s dng ti nguyn c hiu qu nhng trnh c s mt mt d liu v lm hng cc tp tin. Trn y l hai dn chng in hnh chng ta thy vai tr ca h iu hnh trong vic qun l ti nguyn h thng, sau ny chng ta s thy vic cp

Chng 1: Tng quan v H iu hnh

pht, chia s, bo v ti nguyn ca h iu hnh l mt trong nhng cng vic kh khn v phc tp nht. H iu hnh chi ph nhiu cho cng vic ni trn t c mc tiu: Trong mi trng hp tt c cc chng trnh, tin trnh nu cn c cp pht ti nguyn hot ng th sm hay mun n u c cp pht v c a vo trng thi hot ng. Trn y l hai chc nng tng qut ca mt h iu hnh, cng c xem nh l cc mc tiu m cc nh thit k, ci t h iu hnh phi hng ti. Cc h iu hnh hin nay c cc chc nng c th sau y: H iu hnh cho php thc hin nhiu chng trnh ng thi trong mi trng a tc v - Multitasking Environment. H iu hnh multitasking bao gm: Windows NT, Windows 2000, Linux v OS/2. Trong h thng multasking h iu hnh phi xc nh khi no th mt ng dng c chy v mi ng dng c chy trong khon thi gian bao lu th phi dng li cho cc ng dng khc c chy. H iu hnh t np n vo b nh - It loads itself into memory: Qu trnh np h iu hnh vo b nh c gi l qu trnh Booting. Ch khi no h iu hnh c np vo b nh th n mi cho php ngi s dng giao tip vi phn cng. Trong cc h thng c nhiu ng dng ng thi hot ng trn b nh th h iu hnh phi chu trch nhim chia s khng gian b nh RAM v b nh cache cho cc ng dng ny. H iu hnh v API: Application Programming Interface: API l mt tp cc hm/th tc c xy dng sn bn trong h thng, n c th thc hin c nhiu chc nng khc nhau nh shutdown h thng, o ngc hiu ng mn hnh, khi ng cc ng dng, H iu hnh gip cho chng trnh ca ngi s dng giao tip vi API hay thc hin mt li gi n cc hm/th tc ca API. Np d liu cn thit vo b nh - It loads the requied data into memory: D liu do ngi s dng cung cp c a vo b nh x l. Khi np d liu vo b nh h iu hnh phi lu li a ch ca b nh ni m d liu c lu . H iu hnh phi lun theo di bn cp pht b nh, ni d liu v chng trnh c lu tr . Khi mt chng trnh cn c d liu, h iu hnh s n cc a ch b nh ni ang lu tr d liu m chng trnh cn c c li n. H iu hnh bin dch cc ch th chng trnh - It interprets program instructions: H iu hnh phi c v gii m cc thao tc cn c thc hin, n c vit trong chng trnh ca ngi s dng. H iu hnh cng chu trch nhim sinh ra thng bo li khi h thng gp li trong khi ang hot ng. H iu hnh qun l ti nguyn - It managers resources: N m bo vic s dng thch hp tt c cc ti nguyn ca h thng nh l: b nh, a cng, my in,

I.1.2. Lch s pht trin ca h iu hnh


I.1.2.a. Th h 1 (1945 - 1955): Vo nhng nm 1950 my tnh dng ng chn khng ra i. th h ny mi my

Chng 1: Tng quan v H iu hnh

tnh c mt nhm ngi thc hin, bao gm vic thit k, xy dng chng trnh, thao tc, qun l, .... th h ny ngi lp trnh phi dng ngn ng my tuyt i lp trnh. Khi nim ngn ng lp trnh v h iu hnh cha c bit n trong khong thi gian ny. I.1.2.b. Th h 2 (1955 - 1965): My tnh dng bn dn ra i, v c sn xut cung cp cho khch hng. B phn s dng my tnh c phn chia r rng: ngi thit k, ngi xy dng, ngi vn hnh, ngi lp trnh, v ngi bo tr. Ngn ng lp trnh Assembly v Fortran ra i trong thi k ny. Vi cc my tnh th h ny thc hin mt thao tc, lp trnh vin dng Assembly hoc Fortran vit chng trnh trn phiu c l sau a phiu vo my, my thc hin cho kt qa my in. H thng x l theo l cng ra i trong thi k ny. Theo , cc thao tc cn thc hin trn my tnh c ghi trc trn bng t, h thng s c bng t , thc hin ln lt v cho kt qu bng t xut. H thng x l theo l hot ng di s iu khin ca mt chng trnh c bit, chng trnh ny l h iu hnh sau ny. I.1.2.c. Th h 3 (1965 - 1980) My IBM 360 c sn xut hng lot tung ra th trng. Cc thit b ngoi vi xut hin ngy cng nhiu, do cc thao tc iu khin my tnh v thit b ngoi vi ngy cng phc tp hn. Trc tnh hnh ny nhu cu cn c mt h iu hnh s dng chung trn tt c cc my tnh ca nh sn xut v ngi s dng tr nn bc thit hn. V h iu hnh ra i trong thi k ny. H iu hnh ra i nhm iu phi, kim sot hot ng ca h thng v gii quyt cc yu cu tranh chp thit b. H iu hnh u tin c vit bng ngn ng Assembly. H iu hnh xut hin khi nim a chng, khi nim chia s thi gian v k thut Spool. Trong giai on ny cng xut hin cc h iu hnh Multics v Unix. I.1.2.d. Th h 4 (t 1980) My tnh c nhn ra i. H iu hnh MS_DOS ra i gn lin vi my tnh IBM_PC. H iu hnh mng v h iu hnh phn tn ra i trong thi k ny. Trn y chng ti khng c nh trnh by chi tit, y v lch s hnh thnh ca h iu hnh, m chng ti ch mun mn cc mc thi gian v s ra i ca cc th h my tnh ch cho bn thy qu trnh hnh thnh ca h iu hnh gn lin vi qu trnh hnh thnh my tnh. Mc tiu ca chng ti trong mc ny l mun nhn mnh vi cc bn my im sau y: Cc ngn ng lp trnh, c bit l cc ngn ng lp trnh cp thp, ra i trc cc h iu hnh. a s cc h iu hnh u c xy dng t ngn ng lp trnh cp thp tr h iu hnh Unix, n c xy dng t C, mt ngn ng lp trnh cp cao. Nu khng c h iu hnh th vic khai thc v s dng my tnh s kh khn v phc tp rt nhiu v khng phi bt k ai cng c th s dng

Chng 1: Tng quan v H iu hnh

my tnh c. S ra i v pht trin ca h iu hnh gn lin vi s pht trin ca my tnh, v ngc li s pht trin ca my tnh ko theo s pht trin ca h iu hnh. H iu hnh thc s pht trin khi my tnh PC xut hin trn th trng. Ngoi ra chng ti cng mun gii thiu mt s khi nim nh: h thng x l theo l, h thng a chng, h thng chia s thi gian, k thut Spool, ..., m s xut hin ca nhng khi nim ny nh du mt bc pht trin mi ca h iu hnh. Chng ta s lm r cc khi nim trn trong cc chng sau ca ti liu ny.

I.2. Mt s khi nim ca h iu hnh


I.2.1. Tin trnh (Process) v tiu trnh (Thread)
Tin trnh l mt b phn ca chng trnh ang thc hin. Tin trnh l n v lm vic c bn ca h thng, trong h thng c th tn ti nhiu tin trnh cng hot ng, trong c c tin trnh ca h iu hnh v tin trnh ca chng trnh ngi s dng. Cc tin trnh ny c th hot ng ng thi vi nhau. mt tin trnh i vo trng thi hot ng th h thng phi cung cp y ti nguyn cho tin trnh. H thng cng phi duy tr ti nguyn cho tin trnh trong sut qu trnh hot ng ca tin trnh. y cn phn bit s khc nhau gia tin trnh v chng trnh, chng trnh l mt tp tin th ng nm trn a, tin trnh l trng thi ng ca chng trnh. Cc h iu hnh hin i s dng m hnh a tiu trnh, trong mt tin trnh c th c nhiu tiu trnh. Tiu trnh cng l n v x l c bn trong h thng, n cng x l tun t on code ca n, n cng s hu mt con tr lnh, mt tp cc thanh ghi v mt vng nh stack ring v cc tiu trnh cng chia s thi gian x l ca processor nh cc tin trnh. Cc tiu trnh trong mt tin trnh chia s mt khng gian a ch chung, iu ny c ngha cc tiu trnh c th chia s cc bin ton cc ca tin trnh, c th truy xut n stack ca tiu trnh khc trong cng tin trnh. Nh vy vi m hnh tiu trnh, trong h thng c th tn ti nhiu dng x l cng chia s mt khng gian a ch b nh, cc dng x l ny hot ng song song vi nhau.

I.2.2. B x l lnh (Shell)


Shell l mt b phn hay mt tin trnh c bit ca h iu hnh, n c nhim v nhn lnh ca ngi s dng, phn tch lnh v pht sinh tin trnh mi thc hin yu cu ca lnh, tin trnh mi ny c gi l tin trnh p ng yu cu. Shell nhn lnh thng qua c ch dng lnh, chnh l ni giao tip gia ngi s dng v h iu hnh, mi h iu hnh khc nhau c c ch dng lnh khc nhau, vi MS_DOS l con tr lnh v du nhc h iu hnh (C:\>_), vi Windows 9x l nt Start\Run. Tp tin Command.Com chnh l Shell ca MS_DOS. Trong mi trng h iu hnh n nhim, v d nh MS_DOS, khi tin 5

Chng 1: Tng quan v H iu hnh

trnh p ng yu cu hot ng th Shell s chuyn sang trng thi ch, ch cho n khi tin trnh p ng yu cu kt thc th Shell tr li trng thi sn sng nhn lnh mi. Trong mi trng h iu hnh a nhim, v d nh Windows 9x, sau khi pht sinh tin trnh p ng yu cu v a n vo trng thi hot ng th Shell s chuyn sang trng thi sn sng nhn lnh mi, nh vy Shell c kh nng khi to nhiu tin trnh p ng yu cu n hot ng song song vi nhau, hay chnh xc hn trong mi trng h iu hnh a nhim ngi s dng c th khi to nhiu chng trnh n hot ng ng thi vi nhau. Ch : Hu ht cc ngn ng lp trnh u h tr cc cng c ngi s dng hay ngi lp trnh c th gi shell ngay trong cc ng dng ca h. Khi mt ng dng cn gi thc hin mt chng trnh no th: Trong Assembly, cc ng dng gi hm 4Bh/21h ca MS_DOS. Trong Pascal, cc ng dng gi th tc Exec. Trong Visual Basic, cc ng dng gi hm/ th tc Shell. V d dng lnh sau: Shell C:\Windows\Notepad.exe c th gi thc hin chng trnh Notepad ca Windows. Trong Windows 9x/ Windows NT, cc ng dng gi hm ShellExecute.

I.2.3. S phn lp h thng (System Layering)


Nh bit, h iu hnh l mt h thng cc chng trnh bao quanh my tnh thc (vt l) nhm to ra mt my tnh m rng (logic) n gin v d s dng hn. Theo , khi khai thc my tnh ngi s dng ch cn tc ng vo lp v bc bn ngoi ca my tnh, mi s giao tip gia lp v bc ny vi cc chi tit phn cng bn trong u do h iu hnh thc hin. Mi ngi s dng khc nhau yu cu khai thc h iu hnh nhng mc khc nhau. Ngi s dng thng thng ch cn mt mi trng thun li h thc hin cc ng dng, cc lp trnh vin cn c mt mi trng lp trnh tt h c th trin khai cc ng dng, cc chuyn vin lp trnh h thng cn h iu hnh cung cp cho h cc cng c h can thip su hn vo h thng phn cng my tnh, ... p ng yu cu ca nhiu i tng ngi s dng khc nhau h iu
Ngi dung

Ngi lp trnh Trnh ng dung

Cac tin ch

Ngi thit k h iu hanh

H iu hanh Phn cng Hnh 1.1 S phn lp h thng


Chng 1: Tng quan v H iu hnh

hnh thc hin phn lp cc chng trnh bao quanh my tnh. Cc h thng nh vy c gi l h thng phn lp. Hnh v 1.1 trn minh ho cho mt h thng phn lp. Ta c th hnh dung mt h thng phn lp c t chc nh sau: Trong cng l h iu hnh. Tip theo l cc ngn ng lp trnh ... Ngoi cng l cc chng trnh ng dng . Ngi s dng tc ng vo lp trong cng s gp nhiu kh khn hn khi tc ng vo lp ngoi cng.

I.2.4. Ti nguyn h thng (System Resources)


Ti nguyn h thng l nhng tn ti v mt vt l ti mt thi im nht nh hoc ti mi thi im, v n c kh nng tc ng n hiu sut ca h thng. Mt cch tng qut c th chia ti nguyn ca h thng thnh hai loi c bn: Ti nguyn khng gian: l cc khng gian lu tr ca h thng nh a, b nh chnh, quan trng nht l khng gian b nh chnh, ni lu tr cc chng trnh ang c CPU thc hin. Ti nguyn thi gian: chnh l thi gian thc hin lnh ca processor v thi gian truy xut d liu trn b nh. Sau y l mt vi ti nguyn h thng: B nh: c trng c bn ca b nh l thi gian truy cp trc tip, thi gian truy cp tun t, v dung lng nh. B nh c gi l thc hin nu processor c th thc hin mt cu lnh trong n, loi b nh ny c thi gian truy cp trc tip v tun t l nh nhau. B nh trong (RAM) ca PC l b nh thc hin v n c qun l bi h thng. Khi s dng b nh ta cn phn bit 2 khi nim: b nh v truy cp ti b nh. B nh ch vng vt l cha d liu, truy cp b nh l qu trnh tm n d liu trn b nh. C th xem y l 2 loi ti nguyn khc nhau v chng tn ti c lp vi nhau. Processor: L ti nguyn quan trng nht ca h thng, n c truy cp mc cu lnh v ch c n mi lm cho cu lnh thc hin hay ch c Processor mi a tin trnh vo trng thi hot ng. Trong thc t khi xem xt v processor ngi ta ch ch n thi gian x l ca processor. Ti nguyn o/ ti nguyn logic (Virtual Resources): L loi ti nguyn cung cp cho chng trnh ngi s dng di dng c bin i, n ch xut hin khi h thng cn ti n hoc khi h thng to ra n v n s t ng mt i khi h thng kt thc hay chnh xc hn l khi tin trnh gn vi n kt thc. Ti nguyn o c th l: a o trong mi trng MS_DOS. iu khin in trong mi trng mng ca Windows 9x/NT. Ni dung th mc Spool trong Windows 9x.

Chng 1: Tng quan v H iu hnh

Trn kha cnh cp pht ti nguyn cho cc tin trnh ang hot ng ng thi th ti nguyn h thng c chia thnh 2 loi: Ti nguyn phn chia c: l nhng ti nguyn m ti mt thi im n c th cp pht cho nhiu tin trnh khc nhau, cc tin trnh song song c th ng thi s dng cc ti nguyn ny. B nh chnh v Processor l 2 ti nguyn phn chia c in hnh nht, bi ti mt thi im c th c nhiu tin trnh cng chia nhau s dng khng gian lu tr ca b nh chnh v c th c nhiu tin trnh thay nhau s dng thi gian x l ca processor. Ti nguyn khng phn chia c: l nhng ti nguyn m ti mt thi im n ch c th cp pht cho mt tin trnh duy nht. My in l mt ti nguyn khng phn chia c in hnh nht. Vn t ra i vi h iu hnh l phi bin cc ti nguyn khng phn chia c thnh nhng ti nguyn phn chia c, theo mt cch no , cp pht cho cc tin trnh khi n c yu cu, c bit l cc tin trnh hot ng ng thi vi nhau. Cc h iu hnh a nhim ci t thnh cng mc tiu ny. Nh chng ta thy trong mi trng Windows 9x/ NT c th c nhu tin trnh/ nhiu ngi s dng khc nhau ng thi s dng mt my in. Ngoi ra h iu hnh cn phi gii quyt vn tranh chp ti nguyn gia cc tin trnh ng thi khi yu cu phc v ca cc tin trnh ny vt qu kh nng cp pht ca mt ti nguyn k c l ti nguyn phn chia c.

I.2.5. Li gi h thng (System Calls)


to mi trng giao tip gia chng trnh ca ngi s dng v h iu hnh, h iu hnh a ra cc li gi h thng. Chng trnh ca ngi s dng dng cc li gi h thng lin lc vi h iu hnh v yu cu cc dch v t h iu hnh. Mi li gi h thng tng ng vi mt th tc trong th vin ca h iu hnh, do chng trnh ca ngi s dng c th gi th tc thc hin mt li gi h thng. Li gi h thng cn c thit di dng cc cu lnh trong cc ngn ng lp trnh cp thp. Lnh gi ngt trong hp ng (Int), v th tc gi hm API trong windows c xem l mt li gi h thng. Li gi h thng c th c chia thnh cc loi: qun l tin trnh, thao tc trn tp tin, thao tc trn thit b vo/ ra, thng tin lin tin trnh, ... Sau y l mt s li gi h thng ca h iu hnh MS_DOS: S = Load_and_exec(processname): to tin trnh con v thc hin n. Fd = Open(filename, mode): m file c hoc/v ghi. N = Write(Fd, buffer, nbyte): ghi d liu t m vo file. Addr = alloc_memory(nbyte): cp pht mt khi nh Keep_pro(mem_size, status): kt thc v thng tr chng trnh. Ch : Cn phi phn bit s khc nhau gia Shell v System Call. Shell to mi trng giao tip gia ngi s dng v h iu hnh, System Call to mi trng giao tip gia chng trnh ngi s dng v h iu hnh.

Chng 1: Tng quan v H iu hnh

I.3. H iu hnh v phn loi h iu hnh


I.3.1. H iu hnh l g?
Kh c mt khi nim hay nh ngha chnh xc v h iu hnh, v h iu hnh l mt b phn c nhiu i tng khai thc nht, h c th l ngi s dng thng thng, c th l lp trnh vin, c th l ngi qun l h thng v ty theo mc khai thc h iu hnh m h c th a ra nhng khi nin khc nhau v n. y ta xem xt 3 khi nin v h iu hnh da trn quan im ca ngi khai thc h thng my tnh: Khi nim 1: H iu hnh l mt h thng m hnh ho, m phng hot ng ca my tnh, ca ngi s dng v ca lp trnh vin, hot ng trong ch i thoi nhm to mi trng khai thc thun li h thng my tnh v qun l ti u ti nguyn ca h thng. Khi nim 2: H iu hnh l h thng chng trnh vi cc chc nng gim st, iu khin vic thc hin cc chng trnh ca ngi s dng, qun l v phn chia ti nguyn cho nhiu chng trnh ngi s dng ng thi sao cho vic khai thc chc nng ca h thng my tnh ca ngi s dng l thun li v hiu qu nht. Khi nim 3: H iu hnh l mt chng trnh ng vai tr nh l giao din gia ngi s dng v phn cng my tnh, n iu khin vic thc hin ca tt c cc loi chng trnh. Khi nim ny rt gn vi cc h iu hnh ang s dng trn cc my tnh hin nay. T cc khi nim trn chng ta c th thy rng: H iu hnh ra i, tn ti v pht trin l gii quyt vn s dng my tnh ca ngi s dng, nhm gip ngi s dng khai thc ht cc chc nng ca phn cng my tnh m c th l gip ngi s dng thc hin c cc chng trnh ca h trn my tnh.

I.3.2. Phn loi h iu hnh


C nhiu cch khc nhau phn loi h iu hnh, y chng ti da vo cch m h iu hnh thc hin cc cng vic, cc tc v, cc tin trnh ca ngi s dng phn loi h iu hnh. I.3.2.a. H iu hnh x l theo l n gin H iu hnh loi ny thc hin cc tc v ln lt theo nhng ch th c xc nh trc. Khi mt tc v chm dt th h thng s t ng thc hin tc v tip theo m khng cn s can thip t bn ngoi, do h thng t tc thc hin cao. thc hin c iu ny h iu hnh phi c b phn gim st thng trc gim st vic thc hin ca cc tc v trong h thng, b phn ny thng tr trong b nh chnh.
Mi trng ngi s dung Nhp tac vu Mi trng may tnh

Hang i tac vu

Kt qua

Chng 1: Tng quan v HHoat hnh cua h iu hanh l n gian Hnh 1.2: iu ng

Trong h iu hnh ny khi h thng cn thc hin mt tc v th n phi lu chng trnh v d liu ca cc tc v vo hnh i cc cng vic, sau s thc hin ln lt tng b chng trnh v d liu ca tc v tng ng trong hng i v cho ra ln lt cc kt qu. Hnh 1.2 trn minh ha cho s hot ng ca h thng theo l a chng. Vi cch t chc hng i tc v, th h thng khng th thay i chng trnh v d liu ca cc tc v ngay c khi chng cn nm trong hng i, y l mt hn ch. Mt khc trong qu trnh thc hin tc v nu tc v chuyn sang truy xut trn thit b vo/ra th processor ri vo trng thi ch iu ny gy lng ph thi gian x l ca processor. I.3.2.b. H iu hnh x l theo l a chng Mt trong nhng hn ch ca h iu hnh x l theo l n gin l lng ph thi gian x l ca processor khi tc v hin ti truy xut n thit b vo/ra. H iu hnh x l theo l a chng s khc phc hn ch ny. H iu hnh loi ny c kh nng thc hin nhiu tc v, nhiu chng trnh ng thi. Khi cn thc hin nhiu tc v ng thi h iu hnh s np mt phn code v data ca cc tc v vo b nh (cc phn cn li s c np sau ti thi im thch hp) v tt c u trng thi sn sng thc hin, sau h iu hnh bt u thc hin mt tc v no , nhng khi tc v ang thc hin cn truy xut thit b vo/ra th processor s c chuyn sang thc hin cc tc v khc, v c nh th h iu hnh t chc chuyn hng processor thc hin ht cc phn tc v trong b nh cng nh cc tc v m h thng yu cu. H iu hnh loi ny mang li hai u im l tit kim c b nh, v khng np ht code v data ca cc tc v vo b nh, v hn ch thi gian ri ca processor. Tuy nhin n phi chi ph cao cho vic lp lch processor, tc l khi c c processor h iu hnh phi xem xt nn chuyn n cho tc v no trong s cc tc v ang trng thi sn sng. Ngoi ra h iu hnh cn phi gii quyt vic chia s b nh chnh cho cc tc v khc nhau. H iu hnh MS_DOS l h iu hnh n nhim, a chng. I.3.2.c. H iu hnh chia s thi gian Khi nim chia s thi gian ra i nh du mt bc pht trin mi ca h iu hnh trong vic iu khin cc h thng a ngi dng. Chia s thi gian y chnh l chia s thi gian x l ca processor cho cc tc v, cc tin trnh ang trong trng thi sn sng thc hin. Nguyn tc ca h iu hnh chia s thi gian tng t nh trong h iu hnh x l theo l a chng nhng vic chuyn processor t tc vu, tin trnh ny sang tc v, tin trnh khc khng ph thuc vo vic tc v, tin trnh hin ti c tuy xut n thit b vo/ra hay khng m ch ph thuc vo s iu phi processor ca h iu hnh. Cng vic iu phi processor ca h iu hnh rt phc tp ph
Chng 1: Tng quan v H iu hnh

10

thuc vo nhiu yu t khc nhau, chng ta s cp n vn ny trong chng sau ca ti liu ny. Trong h iu hnh ny thi gian chuyn i processor gia cc tc v l rt nh nn ta c cm gic cc tc v thc hin song song vi nhau. Vi h iu hnh ny ngi s dng c th yu cu h iu hnh thc hin nhiu chng trnh, tin trnh, tc v ng thi vi nhau. H iu hnh chia s thi gian l m rng logic ca h iu hnh a chng v n thng c gi l h iu hnh a nhim (Multitasking). H iu hnh Windows 9x/NT l cc h iu hnh a nhim. I.3.2.d. H iu hnh a vi x l L cc h iu hnh dng iu khin s hot ng ca cc h thng my tnh c nhiu vi x l. Cc h iu hnh a vi x l (multiprocessor) gm c 2 loi: a x l i xng (SMP: symmetric): Trong h thng ny vi x l no cng c th chy mt loi tiu trnh bt k, cc vi x l giao tip vi nhau thng qua mt b nh dng chung. H SMP cung cp mt c ch chu li v kh nng cn bng ti ti u hn, v cc tiu trnh ca h iu hnh c th chy trn bt k vi x l no nn nguy c xy ra tnh trng tc nghn CPU gim i ng k. Vn ng b gia cc vi x l c t ln hng u khi thit k h iu hnh cho h thng SMP. H iu hnh Windows NT, h iu hnh Windows 2000 l cc h iu hnh a x l i xng. a x l bt i xng (ASMP: asymmetric): Trong h thng ny h iu hnh dnh ra mt hoc hai vi x l s dng ring, cc vi x l cn li dng iu khin cc chng trnh ca ngi s dng. H ASMP n gin hn nhiu so vi h SMP, nhng trong h ny nu c mt vi x l trong cc vi x l dnh ring cho h iu hnh b hng th h thng c th ngng hot ng. I.3.2.e. H iu hnh x l thi gian thc H iu hnh ny khc phc nhc im ca h iu hnh x l theo l, tc l n c kh nng cho kt qu tc thi, chnh xc sau mi tc v. Trong h iu hnh ny cc tc v cu thc hin khng c a vo hng i m c x l tc thi v tr li ngay kt qu hoc thng bo li cho ngi s dng c yu cu. H iu hnh ny hot ng i hi s phi hp cao gia phn mm v phn cng. I.3.2.f. H iu hnh mng L cc h iu hnh dng iu khin s hot ng ca mng my tnh. Ngoi cc chc nng c bn ca mt h iu hnh, cc h iu hnh mng cn phi thc hin vic chia s v bo v ti nguyn ca mng. H iu hnh Windows 9x/NT, Windows 200, Linux, l cc h iu hnh mng my tnh. Tm li: Qua s phn loi h iu hnh trn ta c th thy c qu trnh pht trin (evolution) ca h iu hnh. khc phc hn ch v lng ph thi gian x l ca processor trong h iu hnh theo l th h iu hnh theo l a chng ra i. khai thc ti a thi gian x l ca processor v tit kim hn na khng gian b nh chnh h iu hnh chia s thi gian ra i. Chia s thi gian x l ca

Chng 1: Tng quan v H iu hnh

11

processor kt hp vi chia s khng gian b nh chnh gip cho h iu hnh c th a vo b nh chnh nhiu chng trnh, tin trnh hn v cc chng trnh, tin trnh ny c th hot ng ng thi vi nhau, nh m hiu sut ca h thng tng ln, v cng t y khi nim h iu hnh a chng ra i. H iu hnh a x l v h iu hnh mng c pht trin da trn h iu hnh a nhim. H iu hnh thi gian thc ra i l khc phc hn ch ca h iu hnh theo l v iu khin cc h thng thi gian thc. T y chng ta rt ra mt iu rng: cc h iu hnh ra i sau lun tm cch khc phc cc hn ch ca h iu hnh trc v pht trin nhiu hn na p ng yu cu ngy cng cao ca ca ngi s dng v chng trnh ngi s dng, cng nh khai thc ti a cc chc nng ca phn cng my tnh nng cao hiu sut ca h thng. Nhng chc nng ca h iu hnh cng cao th chi ph cho n cng tng theo v cu trc ca h iu hnh cng s phc tp hn. H iu hnh Windows NT v h iu hnh Windows 2000 l cc h iu hnh mnh, n c y cc chc nng ca cc loi h iu hnh, do WindowsNT/2000 cha rt nhiu thnh phn vi mt cu trc kh phc tp.

I.4. Thnh phn v cu trc ca h iu hnh


H iu hnh l mt h thng chng trnh ln, thc hin nhiu nhim v khc nhau, do cc nh thit k thng chia h iu hnh thnh nhiu thnh phn, mi thnh phn m nhn mt nhm cc nhim v no , cc nhim v ny c lin quan vi nhau. Cch phn chia nhim v cho mi thnh phn, cch kt ni cc thnh phn li vi nhau n thc hin c mt nhim v ln hn khi cn v cch gi cc thnh phn ny khi cn n thc hin mt nhim v no , ... , tt c cc phng thc trn to nn cu trc ca h iu hnh.

I.4.1. Cc thnh phn ca h iu hnh


I.4.1.a. Thnh phn qun l tin trnh H iu hnh phi c nhim v to lp tin trnh v a n vo danh sch qun l tin trnh ca h thng. Khi tin trnh kt thc h iu hnh phi loi b tin trnh ra khi danh sch qun l tin trnh ca h thng. H iu hnh phi cung cp y ti nguyn tin trnh i vo hot ng v phi m bo ti nguyn duy tr s hot ng ca tin trnh cho n khi tin trnh kt thc. Khi tin trnh kt thc h iu hnh phi thu hi nhng ti nguyn m h iu hnh cp cho tin trnh. Trong qu trnh hot ng nu v mt l do no tin trnh khng th tip tc hot ng c th h iu hnh phi tm dng tin trnh, thu hi ti nguyn m tin trnh ang chim gi, sau nu iu kin thun li th h iu hnh phi ti kch hot tin trnh tin trnh tip tc hot ng cho n khi kt thc. Trong cc h thng c nhiu tin trnh hot ng song song h iu hnh phi gii quyt vn tranh chp ti nguyn gia cc tin trnh, iu phi processor cho cc tin trnh, gip cc tin trnh trao i thng tin v hot ng ng b vi nhau, m bo nguyn tc tt c cc tin trnh c khi to phi c thc hin v kt thc c. Tm li, b phn qun l tin trnh ca h iu hnh phi thc hin nhng
Chng 1: Tng quan v H iu hnh

12

nhim v sau y: To lp, hy b tin trnh. Tm dng, ti kch hot tin trnh. To c ch thng tin lin lc gia cc tin trnh. To c ch ng b ha gia cc tin trnh. I.4.1.b. Thnh phn qun l b nh chnh B nh chnh l mt trong nhng ti nguyn quan trng ca h thng, y l thit b lu tr duy nht m CPU c th truy xut trc tip c. Cc chng trnh ca ngi s dng mun thc hin c bi CPU th trc ht n phi c h iu hnh np vo b nh chnh, chuyn i cc a ch s dng trong chng trnh thnh nhng a ch m CPU c th truy xut c. Khi chng trnh, tin trnh c yu cu c np vo b nh th h iu hnh phi cp pht khng gian nh cho n. Khi chng trnh, tin trnh kt thc th h iu hnh phi thu hi li khng gian nh cp pht cho chng trnh, tin trnh trc . Trong cc h thng a chng hay a tin trnh, trong b nh tn ti nhiu chng trnh/ nhiu tin trnh, h iu hnh phi thc hin nhim v bo v cc vng nh cp pht cho cc chng trnh/ tin trnh, trnh s vi phm trn cc vng nh ca nhau. Tm li, b phn qun l b nh chnh ca h iu hnh thc hin nhng nhim v sau: Cp pht, thu hi vng nh. Ghi nhn trng thi b nh chnh. Bo v b nh. Quyt nh tin trnh no c np vo b nh. I.4.1.c. Thnh phn qun l xut/ nhp Mt trong nhng mc tiu ca h iu hnh l gip ngi s dng khai thc h thng my tnh d dng v hiu qu, do cc thao tc trao i thng tin trn thit b xut/ nhp phi trong sut i vi ngi s dng. thc hin c iu ny h iu hnh phi tn ti mt b phn iu khin thit b, b phn ny phi hp cng CPU qun l s hot ng v trao i thng tin gia h thng, chng trnh ngi s dng v ngi s dng vi cc thit b xut/ nhp. B phn iu khin thit b thc hin nhng nhim v sau: Gi m lnh iu khin n thit b: H iu hnh iu khin cc thit b bng cc m iu khin, do trc khi bt u mt qu trnh trao i d liu vi thit b th h iu hnh phi gi m iu khin n thit b. Tip nhn yu cu ngt (Interrupt) t cc thit b: Cc thit b khi cn trao i vi h thng th n pht ra mt tn hiu yu cu ngt, h iu hnh tip nhn yu cu ngt t cc thit b, xem xt v thc hin mt th tc

Chng 1: Tng quan v H iu hnh

13

p ng yu cu t cc thit b. Pht hin v x l li: qu trnh trao i d liu thng xy ra cc li nh: thit b vo ra cha sn sng, ng truyn hng, ... do h iu hnh phi to ra cc c ch thch hp pht hin li sm nht v khc phc cc li va xy ra nu c th. I.4.1.d. Thnh phn qun l b nh ph (a) Khng gian lu tr ca a c chia thnh cc phn c kch thc bng nhau c gi l cc block, khi cn lu tr mt tp tin trn a h iu hnh s cp cho tp tin mt lng va cc block cha ht ni dung ca tp tin. Block cp cho tp tin phi l cc block cn t do, cha cp cho cc tp tin trc , do sau khi thc hin mt thao tc cp pht block h iu hnh phi ghi nhn trng thi ca cc block trn a, c bit l cc block cn t do chun b cho cc qu trnh cp block sau ny. Trong qu trnh s dng tp tin ni dung ca tp tin c th thay i (tng, gim), do h iu hnh phi t chc cp pht ng cc block cho tp tin. ghi/c ni dung ca mt block th trc ht phi nh v u c/ ghi n block . Khi chng trnh ca ngi s dng cn c ni dung ca mt y cc block khng lin tip nhau, th h iu hnh phi chn la nn c block no trc, nn c theo th t no,..., da vo m h iu hnh di chuyn u c n cc block thch hp, nhm nng cao tc c d liu trn a. Thao tc trn c gi l lp lch cho a. Tm li, b phn qun l b nh ph thc hin nhng nhim v sau: Qun l khng gian trng trn a. nh v lu tr thng tin trn a. Lp lch cho vn ghi/ c thng tin trn a ca u t. I.4.1.e. Thnh phn qun l tp tin My tnh c th lu tr thng tin trn nhiu loi thit b lu tr khc nhau, mi thit b li c tnh cht v c ch t chc lu tr thng tin khc nhau, iu ny gy kh khn cho ngi s dng. khc phc iu ny h iu hnh a ra khi nin ng nht cho tt c cc thit b lu tr vt l, l tp tin (file). Tp tin l n v lu tr c bn nht, mi tp tin c mt tn ring. H iu hnh phi thit lp mi quan h tng ng gia tn tp tin v thit b lu tr cha tp tin. Theo khi cn truy xut n thng tin ang lu tr trn bt k thit b lu tr no ngi s dng ch cn truy xut n tp tin tng ng thng qua tn ca n, tt c mi vic cn li u do h iu hnh thc hin. Trong h thng c nhiu tin trnh ng thi truy xut tp tin h iu hnh phi to ra nhng c ch thch hp bo v tp tin trch vic ghi/ c bt hp l trn tp tin. Tm li: Nh vy b phn qun l tp tin ca h iu hnh thc hin nhng nhim v sau: To/ xo mt tp tin/ th mc.

Chng 1: Tng quan v H iu hnh

14

Bo v tp tin khi c hin tng truy xut ng thi. Cung cp cc thao tc x l v bo v tp tin/ th mc. To mi quan h gia tp tin v b nh ph cha tp tin. To c ch truy xut tp tin thng qua tn tp tin.

I.4.1.f. Thnh phn thng dch lnh y l b phn quan trng ca h iu hnh, n ng vai tr giao tip gia h iu hnh v ngi s dng. Thnh phn ny chnh l shell m chng ta bit trn. Mt s h iu hnh cha shell trong nhn (kernel) ca n, mt s h iu hnh khc th shell c thit k di dng mt chng trnh c bit. I.4.1.g. Thnh phn bo v h thng Trong mi trng h iu hnh a nhim c th c nhiu tin trnh hot ng ng thi, th mi tin trnh phi c bo v khng b tc ng, c ch hay khng ch , ca cc tin trnh khc. Trong trng hp ny h iu hnh cn phi c cc c ch lun m bo rng cc File, Memory, CPU v cc ti nguyn khc m h iu hnh cp cho mt chng trnh, tin trnh th ch c chng trnh tin trnh c quyn tc ng n cc thnh phn ny. Nhim v trn thuc thnh phn bo v h thng ca h iu hnh. Thnh phn ny iu khin vic s dng ti nguyn, c bit l cc ti nguyn dng chung, ca cc tin trnh, c bit l cc tin trnh hot ng ng thi vi nhau, sao cho khng xy ra s tranh chp ti nguyn gia cc tin trnh hot ng ng thi v khng cho php cc tin trnh truy xut bt hp l ln cc vng nh ca nhau. Ngoi ra cc h iu hnh mng, cc h iu hnh phn tn hin nay cn c thm thnh phn kt ni mng v truyn thng.. p ng yu cu ca ngi s dng v chng trnh ngi s dng cc nhim v ca h iu hnh c thit k di dng cc dch v: Thi hnh chng trnh: h iu hnh phi c nhim v np chng trnh ca ngi s dng vo b nh, chun b y cc iu kin v ti nguyn chng trnh c th chy c v kt thc c, c th kt thc bnh thng hoc kt thc do b li. Khi chng trnh kt thc h iu hnh phi thu hi ti nguyn cp cho chng trnh v ghi li cc thng tin m chng trnh thay i trong qu trnh chy (nu c). Thc hin cc thao tc xut nhp d liu: Khi chng trnh chy n c th yu cu xut nhp d liu t mt tp tin hoc t mt thit b xut nhp no , trong trng hp ny h iu hnh phi h tr vic xut nhp d liu cho chng trnh, phi np c d liu m chng trnh cn vo b nh. Thc hin cc thao tc trn h thng tp tin: H iu hnh cn cung cp cc cng c chng trnh d dng thc hin cc thao tc c ghi trn cc tp tin, cc thao tc ny phi thc s an ton, c bit l trong mi trng a nhim. Trao i thng tin gia cc tin trnh: Trong mi trng h iu hnh a nhim, vi nhiu tin trnh hot ng ng thi vi nhau, mt tin trnh
Chng 1: Tng quan v H iu hnh

15

c th trao i thng tin vi nhiu tin trnh khc, h iu hnh phi cung cp cc dch v cn thit cc tin trnh c th trao i thng tin vi nhau v phi hp cng nhau hon thnh mt tc v no . Pht hin v x l li: H iu hnh phi c cc cng c chnh h iu hnh v h iu hnh gip chng trnh ca ngi s dng pht hin cc li do h thng (CPU, Memory, I/O device, Program) pht sinh. H iu hnh cng phi a ra cc dch v x l cc li sao cho hiu qu nht.

I.4.2. Cc cu trc ca h iu hnh


I.4.2.a. H thng n khi (monolithic systems) Trong h thng ny h iu hnh l mt tp hp cc th tc, mi th tc c th gi thc hin mt th tc khc bt k lc no khi cn thit. H thng n khi thng c t chc theo nhiu dng cu trc khc nhau: Sau khi bin dch tt c cc th tc ring hoc cc file cha th tc ca h iu hnh c lin kt li vi nhau v c cha vo mt file c gi l file i tng, trong file i tng ny cn cha c cc thng tin v s lin kt ca cc th tc. Sau khi bin dch cc th tc ca h iu hnh khng c lin kt li, m h thng ch to ra file hoc mt bng ch mc cha thng tin ca cc th tc h iu hnh, mi phn t trong bng ch mc cha mt con tr tr ti th tc tng ng, con tr ny dng gi th tc khi cn thit. Ta c th xem cch gi ngt (Interrupt) trong ngn ng lp trnh cp thp v cch thc hin p ng ngt da vo bng vector ngt trong MS_DOS l mt v d cho cu trc ny. Hnh v sau y minh ha cho vic p ng mt li gi dch v t chng trnh ca ngi s dng da vo bng ch mc.
C/ trnh ngi s dung 2

Main memory

Goi Kernel

C/ trnh ngi s dung 1

Chng trnh ngi s dung chay trong Uer mode

Thu tuc Dch vu

H iu hanh chay trong Kernel mode

Bang m ta

Hnh 1.3: S thc hin li goi h thng Trong : 1. Chng trnh ca ngi s dng gi yu cu n Kernel. 2. H iu hnh kim tra yu cu dch v. 3. H iu hnh xc nh (v tr) v gi th tc dch v tng ng.

Chng 1: Tng quan v H iu hnh

16

4. H iu hnh tr iu khin li cho chng trnh ngi s dng. Sau y l mt cu trc n gin ca h thng n khi, trong cu trc ny cc th tc c chia thnh 3 lp: 1. Mt chng trnh chnh (chng trnh ca ngi s dng) gi n mt th tc dch v ca h iu hnh. Li gi ny c gi l li gi h thng. 2. Mt tp cc th tc dch v (service) p ng nhng li gi h thng t cc chng trnh ngi s dng. 3. Mt tp cc th tc tin ch (utility) h tr cho cc th tc dch trong vic thc hin cho cc li gi h thng. Trong cu trc ny mi li gi h thng s gi mt th tc dch v tng ng. Th tc tin ch thc hin mt vi iu g m th tc dch v cn, chng hn nh nhn d liu t chng trnh ngi s dng. Cc th tc ca h iu hnh c chia vo 3 lp theo nh hnh v di y. Thu tuc chnh Thu tuc dch vu Thu tuc tin ch Hnh 1.4: Cu truc n gian cua mt monolithic system Nhn xt: Vi cu trc ny chng trnh ca ngi s dng c th truy xut trc tip n cc chi tit phn cng bng cch gi mt th tc cp thp, iu ny gy kh khn cho h iu hnh trong vic kim sot v bo v h thng. Cc th tc dch v mang tnh cht tnh, n ch hot ng khi c gi bi chng trnh ca ngi s dng, iu ny lm cho h iu hnh thiu ch ng trong vic qun l mi trng. I.4.2.b. Cc h thng phn lp (Layered Systems) H thng c chia thnh mt s lp, mi lp c xy dng da vo lp bn trong. Lp trong cng thng l phn cng, lp ngoi cng l giao din vi ngi s dng. Mi lp l mt i tng tru tng, cha dng bn trong n cc d liu v thao tc x l d liu . Lp n cha dng mt cu trc d liu v cc th tc c th c gi bi lp n+1 hoc ngc li c th gi cc th tc lp n-1. V d v mt h iu hnh phn lp: Lp 5: Chng trnh ng dng Lp 4: Qun l b m cho cc thit b xut nhp Lp 3: Trnh iu khin thao tc console

Chng 1: Tng quan v H iu hnh

17

Lp 2: Qun l b nh Lp 1: iu phi processor Lp 0: Phn cng h thng Hnh v 1.5 sau y cho ta thy cu trc phn lp trong h iu hnh Unix. Nhn xt: Khi xy dng h iu hnh theo h thng ny cc nh thit k gp kh khn trong vic xc nh s lng lp, th t v chc nng ca mi lp.
Giao din Ngi s dung Giao din Th vin

Ngi s dung
Chng trnh tin ch chun (Shell, Editor, compiler, ..)

Giao din li goi h thng

Th vin chun

Uesr Mode

(Open, Close, Read, Write, ..)


H iu hanh Unix
(process management, memory management Kernel Mode

the file system, I/O, vv)

Phn cng
(CPU, memory, disks, I/O, ..)

Hnh 1.5: H thng phn lp cua UNIX H thng ny mang tnh n th, nn d ci t, tm li v kim chng h thng. Trong mt s trng hp li gi th tc c th lan truyn n cc th tc khc cc lp bn trong nn chi ph cho vn truyn tham s v chuyn i ng cnh tng ln, dn n li gi h thng trong cu trc ny thc hin chm hn so vi cc cu trc khc. I.4.2.c. My o (Virtual Machine) Thng thng mt h thng my tnh bao gm nhiu lp: phn cng lp thp nht, ht nhn lp k trn. Ht nhn dng cc ch th (lnh my) ca phn cng to ra mt tp cc li gi h thng. Cc h iu hnh hin i thit k mt lp cc chng trnh h thng nm gia h iu hnh v chng trnh ca ngi s dng. Cc chng trnh h thng c th s dng cc li gi h thng hoc s dng trc tip cc ch th phn cng thc hin mt chc nng hoc mt thao tc no , do cc chng trnh h thng thng xem cc li gi h thng v cc ch th phn cng nh trn cng mt lp. Mt s h iu hnh t cho php cc chng trnh ca ngi s dng c th gi d dng cc chng trnh h thng v xem mi thnh phn di chng trnh h thng u l phn cng my tnh. Lp cc ng dng ny s dng khi nim my 18

Chng 1: Tng quan v H iu hnh

o. Mc ch ca vic s dng my o l xy dng cc h thng a chng vi nhiu tin trnh thc hin ng thi, mi tin trnh c cung cp mt my o vi y ti nguyn, tt nhin l ti nguyn o, n thc hin c. Trong cu trc ny phn nhn ca h thng tr thnh b phn t chc gim st my o, phn ny chu trch nhim giao tip vi phn cng, chia s ti nguyn h thng to ra nhiu my o, hot ng c lp vi nhau, cung cp cho lp trn. y cn phn bit s khc nhau gia my o v my tnh m rng, my o l bn sao chnh xc cc c tnh phn cng ca my tnh thc s v cho php h iu hnh hot ng trn n, sau h iu hnh xy dng my tnh m rng cung cp cho ngi s dng. Vi cu trc ny mi tin trinh hot ng trn mt my o c lp v n c cm gic nh ang s hu mt my tnh thc s.
Tin trnh Tin trnh

a
OS Phn cng Giao din lp trnh

Tin trnh

b
OS May ao 1 OS May ao 2 May ao Phn cng

Tin trnh OS May ao 3

Hnh 1.6: M hnh h thng (a) Khng co may ao (b) May ao Hnh v trn y cho chng ta thy s khc nhau trong h thng khng c my o v h thng c my o: Nhn xt: Vic ci t cc phn mm gi lp phn cng to ra my o thng rt kh khn v phc tp. Trong h thng ny vn bo v ti nguyn h thng v ti nguyn cp pht cho cc tin trnh, s tr nn n gin hn v mi tin trnh thc hin trn mt my tnh (o) c lp vi nhau nn vic tranh chp ti nguyn l khng th xy ra. Nh h thng my o m mt ng dng c xy dng trn h iu hnh c th hot ng c trn h iu hnh khc. Trong mi trng h iu hnh Windows 9x ngi s dng c th thc hin c cc ng dng c thit k thc hin trn mi trng MS_DOS, s d nh vy l v Windows cung cp cho cc ng dng ny mt my o DOS (VMD: Virtual Machine DOS) n hot ng nh ang hot ng trong h iu hnh DOS. Tng t trong mi trng h iu hnh Windows NT ngi s dng c th thc hin c cc ng dng c
Chng 1: Tng quan v H iu hnh

19

thit k trn tt c cc h iu hnh khc nhau, c c iu ny l nh trong cu trc ca Windows NT c cha cc h thng con (subsystems) mi trng tng thch vi cc mi trng h iu hnh khc nhau nh: Win32, OS/2,..., cc ng dng khi cn thc hin trn Windows NT s thc hin trong cc h thng con mi trng tng ng, ng vi mi trng m ng dng c to ra. I.4.2.d. M hnh Client/ Server (client/ server model) Cc h iu hnh hin i thng chuyn dn cc tc v ca h iu hnh ra cc lp bn ngoi nhm thu nh phn ct li ca h iu hnh thnh ht nhn cc tiu (kernel) sao cho ch phn ht nhn ny ph thuc vo phn cng. thc hin c iu ny h iu hnh xy dng theo m hnh Client/ Server, theo m hnh ny h iu hnh bao gm nhiu tin trnh ng vai tr Server c cc chc nng chuyn bit nh qun l tin trnh, qun l b nh, ..., phn ht nhn cu h iu hnh ch thc hin nhim v to c ch thng tin lin lc gia cc tin trnh Client v Server. Nh vy cc tin trnh trong h thng c chia thnh 2 loi: Tin trnh bn ngoi hay tin trnh ca chng trnh ngi s dng c gi l cc tin trnh Client. Tin trnh ca h iu hnh c gi l tin trnh Server. Khi cn thc hin mt chc nng h thng cc tin trnh Client s gi yu cu ti tin trnh server tng ng, tin trnh server s x l v tr li kt qu cho tin trnh Client. Nhn xt: H thng ny d thay i v d m rng h iu hnh. thay i cc chc nng ca h iu hnh ch cn thay i server tng ng, m rng h iu hnh ch cn thm cc server mi vo h thng. Cc tin trnh Server ca h iu hnh hot ng trong ch khng c quyn nn khng th truy cp trc tip n phn cng, iu ny gip h thng c bo v tt hn.
Tin trnh Tin trnh Server quan Server ly tin trnh quan ly File Server quan ly b nh

Client

Client

...

Hat nhn (kernel) Client gi yu cu n server Hnh 1.7: M hnh client- server Hnh v sau y cho thy cu trc ca h iu hnh Windows NT. y l mt cu trc phc tp vi nhiu thnh phn khc nhau v n c xy dng da trn m hnh h iu hnh Client/ Server.

Chng 1: Tng quan v H iu hnh

20

Trong cu trc ny chng ta thy ni r hai im sau y: Cu trc ca windows NT c chia thnh 2 mode: Kernel mode v User mode. Cc chng trnh ng dng ca ngi s dng ch chy trong User mode, cc dch v ca h iu hnh ch chy trong Kernel mode. Nh vy m vic bo v cc chng trnh ca ngi s dng cng nh cc thnh phn ca h iu hnh, trn b nh, c thc hin d dng hn.

Logon Process

OS/2 Client

Win32 Client

POSIX Client

OS/2 SubSystem Security SubSystem User Mode Kernel Mode Win32 SubSystem

POSIX SubSystem

System Services
I/O Manager Security Virtual Object Process Refrence Memory ... Manager Monitor Manager Manager File System
Cache manager Device Drivers Network Drivers

Kernel
Hardware Abstraction Layer (HAL)

HARDWARE Hnh 1.8: Cu trc ca Windows NT Trong User mode ca Windows NT c cha cc h thng con mi trng nh: OS/2 subsystem v POSIX subsystem, nh c cc h thng con mi trng ny m cc ng dng c thit k trn cc h iu hnh khc vn chy c trn h iu hnh Windows NT. y l im mnh ca cc h iu hnh Microsoft ca t Windows NT. Chng ti s gii thch r hn v hai khi nim Kernel mode v User mode, v cc thnh phn trong cu trc ca h iu hnh Windows NT phn sau, thng

Chng 1: Tng quan v H iu hnh

21

qua vic gii thiu v h iu hnh Windows 2000.

I.5. H iu hnh Windows95


I.5.1. Gii thiu v h iu hnh Windows95
Windows95 l kt qu ca mt s pht trin ln t windows31. Microsoft khng chn gii php nng cp windows31 m n thc hin vic kin trc li windows n mnh n c th thc hin c cc ng dng 32 bt trong mt mi trng n nh. Kt qu l Microsoft c c mt phin bn h iu hnh windows95 mnh, c tin cy v n nh cao, v c bit l cho php cc ng dng 16 btv DOS chy trn mi trng ca n. Windows95 gi li cc thnh phn h thng ca windows31 m bo tng thch vi Win16, USER16, GDI v cc thnh phn Kernel 16 bit. Mt trong nhng thnh phn quan trng ca windows95 l thnh phn Thunking. Nh c Thunking m cc modun 16 bt c th giao tip vi cc bn sao 32 bt ca chng v ngc li. Thunking l mt tp cc thng trnh, m n nh x cc a ch cho php cc ng dng phn on 16 bt chia s hon ton b nh phng (flat) vi cc ng dng 32 bt. Hnh v sau y cho thy vai tr v v tr ca lp Thunking trong windows95.
Win 16 virtual machine USER 16 (User. exe) T H U N K I N G USER 32 (User32.dll) Win 32 Application

Win 16 Application

GDI 16 (Gdi. exe) KERNEL 16 (krnl386.exe)

GDI 32 (Gdi32.dll)

KERNEL32 (krnl32.dll)

Hnh 1.9: Lp Thunking trong Windows95 Kin trc 32 btca Intel Hng Intel a ra vi x l 32 bt (80386) u tin cch y 10 nm, nhng n khi h iu hnh windows95 ra i th nhng im mnh trong kin trc ca n mi c pht huy, v windows95 tn dng c cc im mnh trong kin trc ca Intel 32 bt xy dng thnh mt h iu hnh 32 bt mnh. Cc h iu hnh 32 bt c th truy xut b nh theo m hnh b nh phng, trong m hnh ny h iu hnh c th nh a ch b nh theo kiu tuyn tnh ln n 4Gb, tc l n loi tr c s phn on b nh m chng ta thy trong cc h iu hnh 16 bit. Khi chy trn vi x l 80386 h iu hnh windows95 khai thc ti a cc im mnh trong ch o ca vi x l ny, vi x l 80386 c th hot ng cc ch : thc (real mode), bo v (protected mode) v o (virtual mode). Ch o ca 80386 cn c gi l ch 8086 o, trong ch 8086 o ngoi vic cung cp khng gian b nh o cho cc ng dng, 80386 cn cho php cc ng dng ch

Chng 1: Tng quan v H iu hnh

22

8086 o thc thi trong ch 8086 o, thc t thc thi trong ch bo v. Cc ng dng chy trong ch bo v c h iu hnh bo v trn b nh v c truy xut mt khng gian b nh ln hn (n 4Gb b nh RAM). Nh c ch 8086 o m windows95 c th cho chy nhiu ng dng ng thi, k c cc ng dng 16 bt ca DOS v cc ng dng 32 btca windows, trn b nh v cc ng dng ny c h iu hnh bo v cc ng dng khng truy xut bt hp l ln cc vng nh ca nhau, nu c mt ng dng b hng th cc ng dng cn li vn hot ng bnh thng. Windows95 xy dng cc my o DOS chy cc ng dng 16 bt ca DOS. Intel 80386 l mt vi x l 32 bt, nhng nu s dng vi h iu hnh 16 bt th cc h iu hnh ny xem n nh l cc vi x l 80286 16 bt, nn kh nng qun l b nh ca n s b gii hn. Vic x l d liu trong mi trng 32 bt cng c nhiu im li hn trong mi trng 16 bt. Cng mt ng dng nhng nu chy trong mi trng 16 bt th n phi chia thnh cc phn on 16 bt v ch c th truy xut d liu trong khng gian 64Kb, nhng khi chy trong mi trng 32 bt th n khng cn chia nh v c th truy xut d liu trong khng gian b nh 4Gb, trong trng hp ny d liu c tham chiu theo kiu tuyn tnh nn tc truy xut c ci thin hn. Kin trc vng bo v ca Intel Kin trc vng ca Intel l c s h iu hnh windows95 xy dng cc c ch bo v cc vng nh cp pht cho cc ng dng trong mi trng c nhiu ng dng hot ng ng thi, cng nh bo v vng nh ca h iu hnh, khng cho cc ng dng truy xut ln vng nh ca nhau v khng cho cc ng dng truy xut ln vng nh cha chnh h iu hnh. Tt c cc vi x l Intel t 80386 tr v sau u duy tr kin trc 4 vng (Ring), cc ring cng c hiu nh l cc cp u tin ca h thng, tuy nhin windows95 ch s dng hai ring: ring 0 v ring 3. Trong windows95 tt c cc ng dng u chy ti ring 3 (c xem nh ch ngi s dng), m n c ngn cn truy xut n cc vng nh khc. iu ny m bo rng mt ng dng khng th lm hng ton b h thng. Cc thnh phn ca h iu hnh chy ti ring 0 (c xem nh ch kernel), cc tin trnh chy ti ring 0 khng b gii hn truy xut n h thng (ring 0 c u tin cao nht, ring 3 c u tin thp nht) nn code ca n phi thc s tin cy. Cc tin trnh ring 3 phi thng qua cc tin trnh ring 0 truy xut vo h thng. M hnh a nhim trong Windows95 Windows95 l h iu hnh a nhim, nh c kh nng a nhim m windows95 c th cho php nhiu ng dng hot ng ng thi, nu c mt ng dng trong s ny b hng khng th tip tc th cc ng dng cn li vn hot ng bnh thng. Windows95 c hai hnh thc a nhim: a nhim hp tc (Cooperative Multitasking) v a nhim u tin (Preemptive Multitasking). Trong m hnh a nhim hp tc, ch c ng dng ang s hu processor mi quyt nh khi no tr li processor cho tin trnh khc hot ng. Trong m hnh a nhim u tin th vic chuyn processor t ng dng hin ti cho tin trnh khc c thc hin bi b phn lp lch ca h iu hnh. B phn lp lch quyt

Chng 1: Tng quan v H iu hnh

23

nh thi gian m mi tin trnh c s hu processor, khi no th dng tin trnh hin ti thu hi processor, khi c c processor th chuyn n cho tin trnh no trong s cc tin trnh ang ch c cp processor. B phn lp lch thng da vo u tin ca tin trnh quyt nh vic cp processor cho n. Cc ng dng win32 u hot ng trong mi trng a nhim u tin, trong khi cc ng dng win16 hot ng trong mi trng a nhim hp tc.

I.5.2. Cu trc ca windows95


C nhiu thnh phn to nn cu trc ca windows95, mi thnh phn thc hin mt chc nng no ca mi trng windows. Windows95 c 4 thnh phn chnh: My o h thng (VM: virtual machine): Mt trong nhng thnh phn chnh ca windows95 l trnh qun l my o. Trnh qun l my o iu khin cc ng dng MS_DOS, cc ng dng windows, cc trnh iu khin thit b o (VxD), v cc thnh phn c s chnh ca windows. Cc my o c th l my o h thng hoc cc my o DOS. My o h thng cung cp y cc chc nng dnh ring cho ngi s dng windows95, nh c n m cc chng trnh ca ngi s dng c th chy trn windows. N gm 3 yu t chnh: Cc ng dng windows 32bit, shell, v cc ng dng windows 16 bt: Cc ng dng windows 32 bt: l cc ng dng dnh ring cho win32, n cung cp kh nng a nhim tt hn so vi cc ng dng 16 bt. Tt c cc ng dng 32 bt du s dng mt khng gian a ch duy nht. Windows s dng ch a nhim u tin (preemptive multitaskig) m bo mi tc v u c chia s cng bng ti nguyn ca h thng. Mi trng shell: l windows explorer, explorer cung cp y cc kh nng 32 bt. Hay ni cch khc Shell l mt ng dng 32 bit. Cc ng dng windows 16 bt: l cc ng dng c xy dng trn cc h iu hnh trc windows95. Windows95 cho chy tt c cc ng dng ny trong mt khng gian a ch dng chung v cc ng dng ny c i x nh mt tc v duy nht. Windows s dng ch a nhim hp tc (cooperative multitasking) cho cc ng dng y. My o DOS (VMD: virtual machine DOS): L thnh phn dnh ring cho cc ng dng MS_DOS. Nh c cc my o DOS m cc ng dng c xy dng trn nn h iu hnh MS_DOS vn c th chy trn mi trng h iu hnh windows95. C th c nhiu my o ng thi chy trn windows, nh m ta c th cho php nhiu ng dng DOS chy trn mi trng windows. Mi my o c mt vng nh ring ca n v n u truy xut n cc thit b trn h thng. Cc my o DOS chy trong ch 8086 o ca cc vi x l, nh m n c bo v v nu c mt ng dng DOS b hng khi ang chy (Crash) th cc ng dng khc vn hot ng bnh thng. Giao din lp trnh ng dng (API: application Programming Interface): C 2 loi API 16 bt v 32 bt. API 32 bt ca windows95 cung cp mt tp cc dch v m tt c cc ng dng 32 bt c th truy xut c, cc ng dng

Chng 1: Tng quan v H iu hnh

24

Win 32 bt c hng cc li ch m giao din API ny cung cp. API 32 btbao gm cc thnh phn c bn: KERNEL32.DLL, USER32.DLL, GDI32.DLL, cc thnh phn ny c gi l h thng con windows (windows subsystem): Kernel32.DLL: Phn ht nhn ca windows, n cung cp mt s h tr cho nhng chc nng mc thp m mt ng dng cn chy, nu ng dng cn b nh th n s nhn t Kernel. GDI32.DLL: Giao din thit b ha ca windows, n thc hin cc chc nng v Font ch, my in, mn hnh, ... User32.DLL: Giao tip ngi s dng. H thng c s (Base System): Thnh phn ny cha tt c cc dch v c trng ca h iu hnh. y l phn li (core) ca widows95, n bao gm: H thng con qun l tp tin (File Management): thnh phn ny cung cp mt kh nng giao tip vi tt c cc thit b khi c trn my tnh, ni trc tip hoc thng qua mng, n gip my tnh truy xut c n cc thit b ny. H thng con qun mng (Network Management Subsysten) Cc dch v h iu hnh (Operating System Services) B qun l my o (Virtual Machine Manager): B phn ny thc hin cc nhim v sau: Lp lch cho cc tc v; Khi ng cng nh kt thc mi ng dng c trn h thng, k c cc ng dng DOS; Cp pht b nh v qun l c b nh o ca h thng; Gip cc tin trnh trao i thng tin vi nhau. Cc trnh iu khin thit b: Cc trnh iu khin thit b tip nhn cc yu cu ca windows v trao chng cho cc thit b di khun dng m thit b c th hiu c. Windows95 h tr hai loi trnh iu khin thit b. Th nht, l trnh iu khin thit b ch thc, hot ng trong ch thc, m ta dng trong windows3.1. Th hai, l cc trnh iu khin thit b o, hot ng trong ch bo v, l cc VxD: Virtual Anything Drivers, cc VxD cho php windows trao i vi cc thit b m khng cn chuyn qua ch thc. Vi cc VxD h thng s chy n nh hn, nhanh hn, v kh nng phc hi li tt hn so vi cc trnh iu khin thit b trong ch thc. Tuy nhin cc VxD c th lm hng h thng, v code ca n hot ng ti ring 0. Mt thnh phn khng th khng nhc n trong mi trng windows l cc DLL (Dynamic Link Liblary: Th vin lin kt ng): Trong mi trng h iu hnh Windows, ti mt thi im c th c nhiu chng trnh ng thi hot ng, v cc chng trnh ny c th cng s dng mt on m ging nhau no . Nh vy trong b nh s tn ti nhiu on m ging nhau p ng cho cc chng trnh khc nhau, iu ny gy lng ph b nh. khc phc Windows 9x a ra cc tp tin DLL, DLL cha cc on m m cc ng dng thng s dng. DLL c np vo b nh ngay sau khi khi ng h iu hnh sn sng phc v cc ng dng hoc c np vo b nh khi n c gi ln u tin. H iu hnh lun gim st vic s dng DLL ca cc ng dng, khi khng

Chng 1: Tng quan v H iu hnh

25

cn mt ng dng no s dng DLL th n c gii phng ra khi b nh. Cc m trong DLL s c lin kt vo cc ng dng khi cc ng dng c np vo b nh, cc ng dng truy cp vo h thng thng qua cc DLL. Nh vy nh c DLL m windows linh ng hn v tit kim c nhiu b nh hn.

I.5.3. B nh o (Virtual Memory) trong windows95


Mc d cc tin trnh win32 c th s dng n 4GB b nh RAM, nhng cc gii hn phn cng hin nay ngn cn hu ht cc my tnh cha nhiu b nh. m rng gii hn b nh ny cc vi x l a ra cc m hnh qun l b nh khc nhau nhm m rng kh nng qun l b nh ca vi x l cng nh cung cp nhiu hn khng gian b nh cho cc tin trnh. Vi x l 80386 s dng m hnh b nh o. Vi vi x l 80386 khng gian b nh c chia thnh cc phn on (segmentation), mi phn on li c chia thnh cc phn trang (paging), cc phn trang u c kch thc bng nhau v bng 4Kb. CPU cng nh h iu hnh s dng cc trang b nh cha code v data ca cc tin trnh, trong trng hp ny cc tin trnh cng c chia thnh cc trang c kch thc bng cc trang b nh. Trong m hnh b nh o CPU khng np tt c cc trang ca tin trnh vo b nh RAM m ch np cc trang cn thit ban u, cc trang cn li s c np sau nu cn. CPU dng cc bng trang (PCT: Page Control Table) theo di mt trang ca tin trnh l c np vo b nh RAM hay cha. Khi c mt trang mi ca tin trnh c np vo b nh hoc khi c mt trang ca tin trnh b a ra li a th h thng phi thc hin vic cp nht li PCT. Khi c yu cu np mt trang tin trnh mi vo b nh nhng trn b nh khng cn trang trng th CPU cng vi h iu hnh s tm mt trang tin trnh no khng thc s cn thit ti thi im hin ti, thng l trang t c s dng gn y nht, a ra a (swap out), ly khung trang trng np trang tin trnh va yu cu, trang tin trnh b a ra a ny s c CPU v h iu hnh np vo li b nh (swap in) ti mt thi im thch hp sau ny. Cc trang b swap out thng c cha trong mt tp tin no trn a cng, v c gi l cc tp tin swap. Trong windows95 cc tp tin swap khng b gii hn kch thc. Khi ngi s dng khi ng mt ng dng th windows95 s khi to mt tp tin swap c kch thc ban u bng kch thc ca ng dng sn sng cha cc trang ca ng dng khi cc trang ny b CPU swap out ra a. Windows95 thit k cc tp tin swap theo kiu ng, tc l kch thc ca n c th thay i tu theo s trang m n cha. Nu c nhiu trang b swap out th kch thc ca n tng ln, nu cc trang trong n c swap in vo li b nh RAM th kch thc ca n s t ng gim xung.

I.6. H iu hnh Windows 2000


I.6.1. Gii thiu v h iu hnh Windows 2000
Windows 2000 c thit k chy trn cc kin trc phn cng khc nhau nh: Cc h thng da trn nn Intel CISC v RISC, Alpha AXP, Motorola PowerPC, .... N c vit bi C v C++, ngn ng assembly ch c s dng vit cc
Chng 1: Tng quan v H iu hnh

26

thnh phn giao tip trc tip vi phn cng, m ngn ng assembly khng ch tn ti trong kernel v HAL m n cn tn ti trong phn kernel mode ca h thng con Win32, v trong mt vi th vin ca user mode. Windows 2000 l h iu hnh a x l (multiprocess) 32 bt, c xy dng qun l cc h thng mng my tnh, n h tr c 2 m hnh mng: client/server (server-based) v peer-to-peer. Windows 2000 c xy dng da trn Windows NT 4.0, n cung cp nhiu cng c tt hn qun l Internet v cc dch v trn Internet. Windows 2000 l mt h gm c 4 sn phm, mt cho client v ba cho server: Client: Windows 2000 Professional; Server: Windows 2000 Server, Windows 2000 Advanced Server, Windows 2000 datacenter Server Cc sn phm trn khc nhau cc im sau: S cc processor c h tr. S lng b nh vt l c h tr. S cc kt ni mng hin ti c h tr. Cc dch v c trong cc sn phm server khng c trong sn phm client. Cc file chnh ca Windows 2000 bao gm: Ntoskrnl.exe: Thnh phn Executive v Kernel ca h iu hnh. Ntkrnlpa.exe: Thnh phn Executive v Kernel vi s h tr m rng b nh vt l, n cho php a ch ho b nh vt l ln n 64GB. Hal.dll: Lp phn cng tru tng. Win32k.sys: B phn kernel mode ca h thng con Win32. Ntdll.dll: H tr s iu phi thc hin cc hm. Kernel32.dll, Advapi32.dll, User32.dll, Gdi32.dll: Cc file chnh ca h thng con Win32 DLLs.

I.6.2. Mt s c tnh ca Windows 2000


Windows 2000 so vi cc Windows khc: Windows 2000 h tr cc h thng multiprocessor cc windows khc khng h tr iu ny. Windows 2000 h tr h thng file an ton cc windows khc khng c h thng file an ton. Windows 2000 l h iu hnh 32 bt y , n khng cha cc m 16 bt, n h tr cc m khc chy cc ng dng windows 16 bt. Cc windows khc cha mt lng ln cc m 16 bt c t cc phin bn trc. y l im khc bit ln ca windows 2000 so vi windows 3.1 v MS_DOS. Windows 2000 cung cp mt ty chn chy cc ng dng windows 16 bt, m mi ng dng s hu mt khng gian a ch ring.
Chng 1: Tng quan v H iu hnh

27

Trong cc h iu hnh windows khc cc ng dng windows 16 bt lun chy trong khng gian a ch b nh c chia s, m cc ng dng c th b lm hng bi cc ng dng khc. B nh c chia s trong Windows 2000 l ch nhn thy khi cc tin trnh nh x n cng mt vng nh c chia s, trong Win32 API mt vng b nh c chia s c gi l file nh x. Trong cc h iu hnh windows khc tt c b nh c chia s l c nhn thy v c ghi bi tt c cc tin trnh. Do bt k mt tin trnh no cng c th ghi n bt k file nh x. Trong cc h iu hnh windows khc mt vi trang (page) quan trng ca h iu hnh trn b nh l c th c ghi t user mode, v th mt ng dng ca ngi s dng c th l hng h thng (ghi ln h iu hnh). iu ny khng xy ra i vi h iu hnh Windows 2000. c tnh ca Windows 2000 Server: Windows 2000 server cung cp ch Safe mode, cho php khi to windows 2000 server vi tp cc thit b v dch v ti thiu nht. N cng h tr chc nng Plug-n-Play. Windows 2000 server h tr cc ng dng trn nn MS_DOS, cc ng dng 16/32 bt trn nn Windows, ... v n cng a ra cc c ch bo v cc ng dng khi cc ng dng ny hot ng trn b nh. Windows 2000 server cung cp tin ch Backup, chc nng Automated System Recorver, backup d liu, khi phc d liu khi d liu tnh c b mt, recover v restore h thng trong trng hp li nghim trng xy ra trn a cng. Windows 2000 server cung cp cc cng c cp cao cho cc h thng cn c n nh v kh nng chu ng li cao. Windows 2000 server cho php qun l 2 h thng a: Basic disk v Dynamic Disk. N cng h tr cc h thng tp tin: FAT, NTFS, CDFS. Windows 2000 server h tr cc h thng Symmetric Multiprocessing, c t 4 n 8 processor. N cng c th qun l c t 4GB n 8GB b nh vt l. Windows 2000 advanced server h tr cc h thng Clusters. Cluster l mt nhm cc server c kt ni cng lm vic vi nhau, nu mt server trong cluster b hng th mt server khc trong cng cluster s c thay th hon thnh tc v m server (server b hng) ang thc hin. Windows 2000 Datacenter Server h tr 32-way SMP nh OEM (original equipment manufacturer) v c kh nng qun l n 64 GB b nh vt l. c tnh ny gip cc server Windows 2000 tr thnh cc trung tm d liu (database centric), cc kho d liu ln (data warehouses) phc v cho cc Internet Service Provider v host Web site.

I.6.3. Mt s khi nin trong Windows 2000


I.5.3.a. Tin trnh (Process) v tiu trnh (Thread)
Chng 1: Tng quan v H iu hnh

28

Tin trnh: Ngi s dng kh c th phn bit s khc nhau gia chng trnh v tin trnh, mc d n c cc s khc nhau rt c bn. Mt chng trnh l mt dy tnh cc ch th, trong khi tin trnh l ni cha mt tp cc ti nguyn c s dng bi cc tiu trnh m cc tiu trnh ny thc hin mt on m c bit no ca chng trnh. Cc tin trnh ca Windows 2000 bao gm: Mt khng gian a ch o ring, l mt tp cc a ch b nh o m cc tin trnh c th s dng. Mt chng trnh c th thc hin c, m n nh r bt k mt code v data ban u no v n c nh x vo khng gian a ch ca tin trnh. Mt danh sch m cc ti nguyn h thng khc nhau m tin trnh s dng nh cc semaphore, cc cng giao tip tin trnh, cc file, , cc ti nguyn ny c truy cp bi tt c cc tiu trnh trong tin trnh. Mt ng cnh an ton (security context), c gi l th truy cp (access token), n nh danh ngi s dng, cc nhm an ton, v cc cp c quyn c lin quan vi tin trnh. Mt nh danh duy nht, c gi l Process ID. C t nht mt tiu trnh. Tiu trnh: Mt tiu trnh l mt thc th trong tin trnh m h iu hnh c th lp lch n thc hin, khng c n th cc tin trnh ca n khng th thc hin c. Mt tiu trnh bao gm cc thnh phn c bn sau:
Access token Process Object
Handle Table Virtual Address Descriptors

VAD

VAD

VAD

Object Object

Thread

Thread

Thread

...

Access token

Hnh 1.10: Cc tin trnh v ti nguyn ca n Ni dung ca cc thanh ghi trong CPU miu t trng thi ca processor. Hai Stack, mt cho tiu trnh s dng khi thc hin trong kernel

Chng 1: Tng quan v H iu hnh

29

mode v mt cho tiu trnh s dng trong user mode. Mt vng lu tr ring c gi l TLS (theard local storage) s dng bi cc h thng Connection, cc th vin run-time, v cc DLL. Mt nh danh duy nht, c gi l Theard ID. i khi cc tiu trnh cng s hu mt ng cnh an ton ring, n thng c s dng bi cc ng dng server a tiu trnh. Cc thanh ghi, cc stack v cc vng lu tr ring c gi l ng cnh ca tiu trnh. Bi v cc thng tin ny l khc nhau cho mi kin trc my khc nhau m Windows 2000 chy trn n. Cu trc ng cnh ny c tr v bi hm Win32 API GetThreardContexxt. Mc d cc tiu trnh c mt ng cnh thc hin ring, nhng mi tiu trnh trong phm vi mt tin trnh u chia s khng gian a ch o ca tin trnh, iu ny c ngha rng tt c cc tiu trnh trong mt tin trnh c th ghi n hoc c t b nh ca tiu trnh khc. Cc tiu trnh khng th tham chiu n khng gian a ch ca cc tin trnh khc, tr khi tin trnh khc a ra mt phn khng gian a ch ring ca n nh l mt phn b nh c chia s. Ngoi khng gian a ch ring v mt hoc nhiu tiu trnh, mi tin trnh cn c mt nh danh an ton v mt danh sch iu khin cc i tng nh l cc file, cc section b nh c chia s hoc mt hoc nhiu i tng ng b nh l: cc mutexe, cc event, cc semaphore. iu ny c minh ha hnh trn. I.5.3.b. B nh o (Virtual Memory) trong windows 2000 Windows 2000 ci t mt h thng b nh o da trn mt khng gian a ch 32 bt. Ba hai bt ca a ch o ny chuyn thnh 4GB b nh o. Windows 2000 dng na thp ca 4GB ny cp cho cc tin trnh, na cn li dnh ring cho h iu hnh, phn ny c bo v bi chnh h iu hnh. S nh x ca na thp thay i tng ng vi tin trnh ang thc hin, nhng s thay i ca na cao lun ph hp vi b nh o ca h iu hnh. Nh li rng, khng gian a ch o ca tin trnh l mt tp cc a ch c sn cho cc tiu trnh ca tin trnh s dng. B nh o cung cp mt ci nhn logic ca b nh, nh n m rng c sc mnh lu tr tiu trnh ca b nh vt l. Trong qu trnh hot ng ca h thng, vi s gip ca phn cng, trnh bin dch hoc cc nh x, ca trnh qun l b nh s chuyn a ch o thnh a ch vt l, ni d liu c lu tr thc t. Bng cch iu khin s bo v v s nh x, h iu hnh c th m bo rng mt tin trnh ring l khng lm hng cc tiu trnh v khng ghi ln d liu ca h iu hnh. Hnh v 1.11 sau y cho thy c 3 trang o lin k c nh x thnh 3 trang khng lin k trong b nh vt l. B nh o B nh V.l

Chng 1: Tng quan v H iu hnh

30

Hnh 1.11: B nh o v b nh Vt l a s cc h thng u c b nh vt l nh hn tng s b nh o m cc tin trnh cn s dng khi thc hin, 2 GB hoc 3 GB cho mi tin trnh. Khi iu ny xy ra th trnh qun l b nh s di chuyn mt ni dung ca mt vi trang b nh ra a, ly khng gian trang trng ny s dng cho cc tin trnh khc hoc cho chnh h iu hnh. Khi mt tiu trnh truy cp n mt trang a ch o m ni dung ca trang ny b a ra a th b phn qun l b nh o s np thng tin ny tr li b nh t a. Cc ng dng khng cn thay i bt k mt iu g ph hp vi s phn trang, bi v phn cng h tr cho php trnh qun l b nh thc hin s phn trang m khng cn hiu bit hoc s tr gip ca cc tin trnh hoc cc tiu trnh. I.5.3.c. a x l i xng (SMP: Symmetric Multiprocessing) a tc v (multitasking) l mt k thut ca h iu hnh dng chia s mt processor n cho nhiu tiu trnh ang thc hin. Khi my tnh c nhiu hn mt processor th n c th thc hin hai tiu trnh ng thi. Nhng ngc li h iu hnh a tc v ch c v nh thc hin a tiu trnh ti cng mt thi im, h iu hnh a x l thc t lm c iu , thc hin mt tiu trnh trn mi processor ca n. Mt trong nhng mc tiu thit k ca h iu hnh Windows NT l lm cho NT chy tt trn cc h thng my tnh multiprocessor. Windows 2000 cng l h iu hnh SMP. N khng c processor master, h iu hnh cng nh cc tiu trnh ca ngi s dng u c th c chia s trn bt k mt processor no. Ngoi ra, tt c cc processor cng ch chia s mt khng gian b nh ring. y l m hnh tng phn vi m hnh a x l bt i xng (ASMP: asymmetric multiprocisor), trong m hnh ny h iu hnh chy trn mt processor ring, cc processor cn li ch dng chy cc tiu trnh ca ngi s dng. S processor s dng ph thuc vo phin bn Windows 2000 c s dng. Con s ny c lu tr trong Registry ti kho: HKLM\SYSTEM\CurrentControlSet\Control\Session\Manager\LicensedPro cessor chy tt trn mt h thng SMP th h iu hnh Windows 2000 phi c thit k sao cho n phi tun th mt cch nghim ngt cc nguyn tc sau y, l cc nguyn tc ca mt h iu hnh Multiprocessor: C kh nng chy m ca h iu hnh trn bt k mt processor c sn no v chy c trn multiprocessor ti cng mt thi im. a tiu trnh c thc hin trong mt tin trnh n, mi tiu trnh c th thc hin ng thi trn cc processor khc nhau.
Chng 1: Tng quan v H iu hnh

31

Cho php cc thnh phn khc nhau ca h thng nh device driver, server process chy tt trn h thng multiprocessor.

I.6.4. Kin trc ca Windows 2000


Kernel Mode & User Mode bo v h iu hnh trnh s truy cp v/hoc thay i bt hp l ca cc chng trnh ng dng ca ngi s dng, Windows 2000 s dng hai ch x l truy cp: Kernel mode v User mode. Cc chng trnh ng dng ca ngi s dng chy trong user mode, trong khi cc dch v h thng v cc chng trnh iu khin thit b ca h iu hnh chy trong kernel mode. Kernel mode ch n mt ch ca vic thc hin trong processor m n c ton quyn truy cp n tt c h thng b nh v tt c cc ch th ca CPU. Trong cu trc ny phn mm h iu hnh c cung cp mt mc c quyn cao hn so vi mc c quyn ca cc chng trnh ng dng ca ngi s dng. Processor cung cp cc c s cn thit ngi thit k h iu hnh m bo rng cc ng dng khng th ph v trng thi n nh ca h thng v lm hng n. Cc tiu trnh trong user mode thc hin trong khng gian a ch b nh c bo v, mi thnh phn trong user mode s hu mt khng gian a ch tin trnh ring. Trong khi Windows 2000 khng cung cp bt k mt s bo v no trn cc khng gian b nh ring c s dng bi cc thnh phn chy trong kernel mode. Trong mt tuyn b khc, trong kernel mode, m h iu hnh v cc chng trnh iu khin thit b hon ton c th truy cp n khng gian b nh h thng v c th vt qua s gim st an ton ca Windows 2000 truy cp n cc i tng. Bi v phn ln m ca h iu hnh Windows 2000 chy trong kernel mode, cc thnh phn quan trng nht ca h iu hnh chy trong kernel mode c thit k v c kim tra rt cn thn m bo rng n khng vi phm n s an ton ca h thng. Ch : Kin trc ca processor Intel x86 nh ngha 4 cp/ vng c quyn truy cp (Privilege levels/ Rings), bo v code v data ca h thng, trnh s ghi (overwrite) c ch (maliciously) hoc khng ch (inadvertently) bi cc code c cp c quyn truy cp thp hn. Windows 2000 s dng cp 0/ vng 0 cho Kernl mode v cp 3/ vng 3 cho Uer mode. Nguyn nhn m Windows 2000 ch s dng c 2 cp l do mt vi kin trc phn cng trc , chng hn nh Compaq Alpha v Silicon Graphics, ch c ci c 2 cp c quyn truy cp. Kin trc ca Windows 2000 Hnh v 1.12 sau y cho ta thy kin trc c n gin ho ca Windows 2000. System Support Processes Service Processes User Applicatioes Environment Subsystem

Subsystem DLLs User mode Kernel mode Windows And Graphics

Chng 1: Tng quan v H iu hnh

Executive

32

Hnh v cho ta thy kin trc ca h iu hnh Windows 2000 c chia thnh hai phn: User mode v Kernel mode. User mode bao gm cc thnh phn: System support processes, Service Processes, User applications, v Environment subsystems, mi thnh phn ny s hu mt khng gian a ch tin trnh ring. Cc thnh phn trong User mode: System support processes (cc tin trnh h tr h thng): Nh l tin trnh logon, qun l cc Session, cc thnh phn ny khng phi l cc dch v ca Windows 2000, do n khng c khi ng bi thnh phn Service Control Manager. Service processes (cc tin trnh dch v): l cc dch v ch Win32, nh l dch Task Scheduler v Spooler, v cungc c th l cc ng dng server Windows 2000 nh l Microsoft SQL Server, Exchange Server v cc thnh phn chy nh l cc dch v. User applications (cc ng dng ngi s dng): N c th l mt trong nm loi sau: Win32, Windows 3.1, MS_DOS, POSIX, hoc OS/2 1.2. Environment subsystems (cc h thng con mi trng): n a ra cc dch v nguyn thu ca h iu hnh, cc ng dng ca ngi s dng thng qua mt tp cc hm c th gi c, do n cung cp mt mi trng h iu hnh cho cc ng dng. Windows 2000 a ra ba h thng con mi trng: Win32, POSIX v OS/2, trong Win32 l h thng con c bit nht, Windows 2000 khng th chy nu khng c n, do n phi lun trng thi chy ngay sau khi h thng c khi ng. POSIX v OS/2 c cu hnh l ch khi to khi cn. Cc ng dng c vit trn cc h iu hnh khc nhau c th chy trn Windows 2000 nh s dng cc environment subsystem. Subsystem DLLs (h thng con cc th vin lin kt ng): Hnh trn cho thy trong Windows 2000 cc ng dng ca ngi s dng khng th gi trc tip cc dch v nguyn thy ca h iu hnh, m chng phi thng qua mt hoc nhiu cc DLL. Vai tr ca cc Subsystem DLL l chuyn cc yu cu gi hm vo bn trong cc dch v h thng ca Windows 2000. Cc thnh phn trong Kernel mode: Windows 2000 Executive: Cha cc dch v c s ca h iu hnh, nh l: qun l b nh, qun l cc tin trnh v tiu trnh, qun l s an ton
Chng 1: Tng quan v H iu hnh

33

h thng, qun l I/O, v thc hin vic truyn thng lin tin trnh. Windows 2000 Kernel: Bao gm cc chc nng cp thp ca h iu hnh nh l: lp lch tiu trnh, ng b cho cc h thng multiprocessor. N cng cung cp mt tp cc thng trnh v cc i tng c s m Executive s dng ci t cc chc nng cp cao. Device drivers (cc trnh iu khin thit b): Bao gm c hai: iu khin thit b phn cng v iu khin h thng file v mng. iu khin thit b phn cng c nhim v chuyn cc li gi hm I/O t pha ngi s dng thnh cc yu cu I/O thit b phn cng c th. HAL: Hardware Abstraction Layer (lp phn cng tru tng): Lp ny lm tru tng ho cc chi tit phn cng bn trong ca PC, lm cho Windows 2000 Server tng thch vi nhiu kin trc phn cng khc nhau. N cho php Windows 2000 chy trn cc nn vi x l khc nhau nh Intel v Alpha, m khng cn duy tr 2 version khc ca Windows 2000 Execute. HAL bo v tt c phn cng v h tr cc nn c th cn cho mi thnh phn trong h thng i vi tt c phn cng v h tr nm c th. HAL c ci t nh l mt DLL v ng vai tr nh l giao din gia cc thnh phn phn cng v phn mm. Window Manager and Graphical device interface (GDI): Window Manager v GDI c s dng qun l h thng hin th. Window Manager bo v mn hnh v nhn cc lnh t cc thit b nhp nh l Mouse hoc bn phm. GDI iu khin vic v v thc hin cc thao tc ho vi s gip ca cc chc nng khc nhau c nh ngha trc. Sau y chng ta s tm hiu r hn v mt s thnh phn trong kin trc ca h iu hnh Windows 2000: Environment Subsystem v Subsystem DLL: Vai tr ca h thng con mi trng l a ra mt vi tp con c s cc dch v h thng trong Windows 2000 executive cho cc ng dng. Mi h thng con c th cung cp truy cp n cc tp con khc nhau ca cc dch v nguyn thy ca Windows 2000. T mt ng dng c xy dng trn mt h thng con ny khng th gi n mt ng dng c xy dng trn mt h thng con khc. Cc li gi hm khng th ln ln gia cc h thng con. Tc l mt ng dng trn POSIX ch c th gi cc dch v c a ra bi h thng con POSIX, v mt ng dng Win32 ch c th gi cc dch v c a ra bi h thng con Win32. Nh bit cc ng dng ngi s dng khng th gi trc tip cc dch v h thng ca Windows 2000 m phi thng qua mt hoc nhiu cc h thng con DLL. Cc h thng con DLL Win32 nh kernel32.dll, Advapi32.dll, User32.dll v Gdi32.dll, ci t cc hm Win32 API, cc ng dng ca ngi s dng gi n thng qua tp hm ny. Khi mt ng dng gi mt hm trong h thng con DLL, th mt trong ba trng hp sau s xy ra: Hm c ci t hon ton trong h thng con DLL. Ni cch khc l khng c thng ip gi ti tin trnh Vai tr ca h thng con mi

Chng 1: Tng quan v H iu hnh

34

trng, v khng c mt dch v h thng no trong Windows 2000 executive no c gi. Hm c thc hin trong user mode v kt qu c tr v cho chng trnh gi. Hm yu cu mt hoc nhiu li gi n Windows 2000 executive. V d khi cc hm Win32 ReadFile v WriteFile c gi th n phi gi n cc dch v h thng I/O NtReadFile v NtWriteFile trong Windows 2000. Hm yu cu mt vi cng vic thc hin trong tin trnh,.ca h thng con mi trng. Cc tin trnh ca h thng con mi trng chy trong user mode, chu trch nhim duy tr trng thi ca cc ng dng client chy di s iu khin ca n. Trong trng hp ny mt client/server yu cu to mt h thng con mi trng qua mt thng ip gi ti mt h thng con thc hin mt vi thao tc. H thng con DLL th i tr li trc khi tr v cho ng dng gi. Mt vi hm c th kt hp 2 trong 3 trng trn, nh cc hm Win32: CreateProcess v CreateThread. Tp tin Ntdll.Dll l mt h thng c bit, n h tr th vin chnh cho vic s dng cc h thng con DLL. N cha hai loi hm sau: Dch v h thng gi n cc dch v h thng Windows 2000 executive. Cc hm h tr bn trong c s dng bi cc h thng con, cc h thng con DLL v cc hm nguyn thy in hnh khc. Cc hm nhm u tin cung cp mt giao din Windows 2000 executive c th c gi t user mode. C hn 200 hm nh th v cc hm ny c th truy cp thng qua Win32 API. Ntdll cng cha cc hm h tr nh l image loader, heap manager v cc hm truyn thng tin trnh Win32. Executive: Windows 2000 executive l lp trn ca Ntoskrnl.exe (kernel l lp thp). Executive bao gm cc hm sau: Cc hm c a ra v c th gi t user mode. y l cc hm c gi v c a ra qua Ntdll. Hu ht cc dch v l c truy cp thng qua cc hm Win32 API hoc cc API ca cc Vai tr ca h thng con mi trng khc. Cc hm ch c th c gi t kernel mode, n c a ra v c cung cp in Windows 2000 DDK Windows 2000 Installable File System (IFS) Kit. Cc hm c a ra v c th gi t kernel mode nhng khng c gii thiu trong Windows 2000 DDK v IFS Kit. Cc hm c nh ngha nhng khng c a ra. y l cc hm h tr bn trong, n c gi trong phm vi Ntoskrnl. Windows 2000 Executive cha cc thnh phn quan trng sau y:

Chng 1: Tng quan v H iu hnh

35

Configuration Manager (qun l cu hnh): chu trch nhim ci t v qun l Registry h thng. I/O Manager (qun l I/O): Thnh phn ny chuyn cc lnh c/ ghi trong user mode n vic c/ghi ca IRP (I/O Request Packets). N gm c: cc h thng file, cc iu khin thit b, qun l b nh cache, qun l b nh o. InterProcess Communication - IPC Manager (qun l truyn thng lin tin trnh): Qun l IPC l to lin kt gia client v server. Environment subsystem ng vai tr nh l mt client v Executive ng vai tr nh l mt server. N c to ra t 2 thnh phn: Remote Procedure Call - RPC: gi thng tin v kt ni gia cc client v cc server trn cc my tnh khc nhau. Local Procedure Call - RPC: gi thng tin v kt ni gia cc client v cc server trn cng mt my tnh. Security Manager (qun l s an ton): y l thnh phn to nn s an ton h thng bng cch bt buc cc chnh sch an ton trn cc my tnh cc b. Plug and Play Manager (qun l plug and play): Plug and play theo di cc hot ng ti thi im Boot ca cc thit b plug and play v n tng tc vi HAL, cc iu khin thit b v Executive. N xc nh cc iu khin bus thc hin vic cu hnh v m nh th no. N cng xc nh khi no th cc iu khin thit b c thm vo hoc khi no th khi to mt thit b. Process and Thread Manager (qun l tin trnh v tiu trnh): To v kt thc cc tin trnh v tiu trnh. H tr cc tin trnh v tiu trnh c ci t bn trong Windows 2000 kernel. V mt s thnh phn khc nh: Power manager (qun l ngun); Cache manager (qun l cache); Virtual memory manager (qun l b nh o), Ngoi ra executive cn cha bn nhm chnh cc hm h tr m n c s dng bi ch cc thnh phn executive c lit k. Sau y l bn loi hm h tr: Object Manager (qun l i tng): To, qun l, xo cc i tng Windows 2000 executive v cc loi d liu tru tng m n c s dng ch n cc ti nguyn ca Windows 2000 nh: cc tin trnh, cc tiu trnh, v cc i tng ng b khc. LPC facility: Chuyn thng ip gia cc tin trnh client v cc tin trnh server trn cng my tnh. LPC c tnh mm do, v l version c ti u ca remote function call (RPC). Mt tp cc hm th vin run-time nh l: x l string, thc hin cc php tnh, chuyn i cc kiu d liu v x l cc cu trc an ton. Executive support routine: nh l cp pht b nh h thng,

Chng 1: Tng quan v H iu hnh

36

kho truy cp b nh v cc i tng ng b. Kernel: Kernel bao gm mt tp cc hm trong Ntoskrnl.exe m n cung cp cc k thut c bn, nh iu phi tiu trnh v ng b cc dch v, c s dng bi cc thnh phn executive, cng nh h tr cho cc kin trc phn cng cp thp trn cc kin trc processor khc nhau. a s cc m ca kernel c vit bng C, mt s t thnh phn quan trong can thip su vo phn cng c vit bng assembly. Mt s cc hm ca kernel c a ra trong DDK, y l cc thnh phn cn thit cho vic ci t cc trnh iu khin thit b. Hardware Abstraction Layer (HAL): Nh bit mt trong nhng mc tiu thit k ca Windows 2000 l lm cho n d dng tng thch trn cc nn phn cng khc nhau. HAL l thnh phn ch cht c th to nn s tng thch ny. HAL l mt modun kernel mode c th c np (Hal.dll) m n c th cung cp mt giao din cp thp Windows 2000 c th chy trn cc nn phn cng khc nhau. HAL lm n cc chi tit phn cng, nh: cc giao din I/O, cc iu khin ngt v cc c ch truyn thng gia cc processor trong h thng multiprocessor, vi bt k mt hm no trong c cc kin trc c th v cc my ph thuc. Trong Windows 2000 c nhiu tp tin Hal*.dll, mi tp tin h tr cho mt h thng my tnh no . Hal.dll h tr cho cc PC chun, Halmps.dll h tr cho cc PC Multiprocessor, Device Drivers: Cc Device Driver (*.sys) l cc modun kernel, n l giao din gia thnh phn qun l I/O v cc phn cng c lin quan. Cc device driver khng thao tc trc tip trn phn cng, n ch gi cc hm trong HAL giao tip vi phn cng. Windows 2000 c cc loi divice driver sau y: Cc hardware device driver thao tc phn cng, s dng HAL, ghi/c trn cc thit b vt l hoc mng. Loi ny bao gm: cc iu khin bus, cc iu khin thit b giao tip vi ngi s dng, cc iu khin thit b lu tr khi, Cc file system driver l cc iu khin m Windows 2000 dng n truy cp cc file trong h thng. Kernel Mode Drivers: Kernel Mode Drivers cng c ci t nh l mt thnh phn, n cha tt c cc chc nng cn thit. N gm c: WMD (Windows Drive Model) driver, cng vi nhiu driver h tr cho cc yu cu ca cc thit b c th.

I.7. H iu hnh Linux


Linux l h iu hnh min ph c xy dng t h iu hnh Unix. N c pht trin bi Linus Torvalds, mt sinh vin ca trng i hc Hensinki. Linus ch chu trch nhim to ra h thng kernel. Kernel l phn li ca h iu hnh, n chu trch nhim thc hin cc tc v ca h thng. Linux by gi nh mt tp cc

Chng 1: Tng quan v H iu hnh

37

phn mm m trong bao gm kernel v cc thnh phn khc n tr thnh mt h iu hnh hon chnh. Mt trong nhng nguyn nhn lm cho Linux c nhiu ngi bit n l n c cung cp min ph vi m ngun m. Hnh v 1.13 di y cho thy cu trc ca h iu hnh Unix. Hnh v cho thy h iu hnh Linux c chia thnh 2 cp: User Level (cp ngi s dng) v Kernel Level (cp li). Kernel l cp c quyn, y khng c gii hn no i vi kernel ca h thng. Kernel c th s dng tt c cc lnh ca vi x l, iu khin ton b b nh v truyn thng trc tip n tt c cc thit b ngoi vi. User l cp khng c c quyn, tt c cc chng trnh ca ngi s dng phi hot ng cp ny. y cc tin trnh khng th thc hin tt c cc lnh ca vi x l, khng th truy cp trc tip vo h thng phn cng v n ch c quyn s dng khng gian nh c cp pht. Cc tin trnh y ch c th thc hin cc thao tc trong mi trng ca ring n m khng lm nh hng n cc tin trnh khc v n c th b ngt bt c lc no. Cc tin trnh hot ng trong User Level khng th truy cp trc tip ti nguyn ca h thng m n phi thng qua giao din li gi h thng (System call Interface). Mt li gi h thng l mt yu cu c gi t tin trnh ca chng trnh ngi s dng n Kernel, Kernel s x l yu cu trong ch kernel sau tr kt qu v li cho tin trnh tin trnh tip tc thc hin. User Programs Trap Libraries
User Level Kernel Level

System Call Interface

File Subsystem
Process Control Subsystem

Inter Processor Communication Scheduler Memory Management

Buffer Cache

Character Block Device Drivers


Chng 1: Tng quan v H iu hnh

38

Hardware Control

Sau y l mt vi c im ca Linux: Min ph (Free): Linux l mt h iu hnh c cung cp min ph trn Internet, chng ta khng phi tr bt k mt chi ph no cho vic download n. Linux c cung cp cng vi cc phn mm chy trn n. M ngun m (Open Source): iu ny c ngha ngi s dng khng ch s dng h iu hnh v thc hin cc chng trnh m cn c th xem v sa i m ngun ca n, pht trin n theo tng mc ch c th ca ngi s dng. Yu cu phn cng (Hardware): Linux c th chy trn hu ht cc phn cng hin c, n c th hot ng trn cc vi x l: 386, 486, Pentium MMX, Pentium II, Sparc, Dec Alpha hoc Motorola 68000. a tc v (Multi-Tasking): Linux l h iu hnh a tc v, tc l mt ngi s dng c th chy nhiu chng trnh ti cng mt thi im. Mi tc v l mt tin trnh. Theo cch ny ngi s dng khng cn phi i cho mt tin trnh k thc hp l khi ng mt tin trnh khc. a ngi s dng (Multi-User): iu ny c ngha c nhiu hn mt ngi s dng c th s dng h thng ti cng mt thi im. Khi nim multi user xut pht trc tip t kha cnh multi-tasking. H thng c th iu khin nhiu hn mt ngi s dng ti cng mt thi im ging nh cch m n iu khin nhiu hn mt cng vic. H tr a vi x l (Multi Processor Support): Linux c th iu hnh cc h thng my tnh c nhiu hn mt vi x l. My ch web (Web Server): Linux c th c s dng chy nh l mt web server, v p ng cc giao thc ng dng nh l HTTP hoc FTP. H tr mng TCP/IP (TCP/IP Networking Support): H tr mng TCP/IP c xy dng trong chnh kernel ca Linux. Linux mt trong cc h iu hnh mng tt nht. N bao gm cc chng trnh nh l: Telnet, Ftp, Rlogin, Rsh v nhiu chng trnh khc. H tr lp trnh (Programming Support): Linux cung cp h tr lp trnh cho Fortran, C, C++, Tcl/Tk, Perl v nhiu ngn ng lp trnh khc.

Chng 1: Tng quan v H iu hnh

39

an ton cao (High Level Security): Mt trong nhng thun li chnh ca Linux l n cung cp mt s an ton cao cp bng cch s dng s xc thc ngi s dng. N cng lu tr password trong dng thc c m ho, password mt khi c m ho th khng th gii m. Linux cng bao gm h thng file an ton, n c m rng t h thng file ang tn ti.

Chng 1: Tng quan v H iu hnh

40

Chng II

QUN L TIN TRNH


Tt c cc h iu hnh a chng, t cc h iu hnh n ngi s dng n cc h iu hnh c th h tr n hng ngn ngi s dng, u phi xy dng da trn khi nim tin trnh. V th, mt yu cu quan trng trong thit k h iu hnh l thnh phn qun l tin trnh ca h iu hnh phi p ng tt c nhng g lin quan n tin trnh: H iu hnh phi cho php thc hin nhiu tin trnh ng thi khai thc ti a thi gian x l ca processor nhng cng cung cp c thi gian hi p hp l. H iu hnh phi cp pht ti nguyn tin trnh hot ng mt cch hiu qu vi mt chnh sch hp l nhng khng xy ra tnh trng tc nghn trong h thng. H iu hnh c th c yu cu h tr truyn thng lin tin trnh v ngi s dng to ra tin trnh. H iu hnh phi c nhim v to ra tin trnh, iu khin s hot ng ca tin trnh v kt thc tin trnh. Mt s h iu hnh phn bit hai khi nim tin trnh v tiu trnh. Tin trnh lin quan n quyn s hu ti nguyn, tiu trnh lin quan n s thc hin chng trnh. Trong cc h iu hnh a chng, c nhiu tin trnh tn ti trn b nh chnh, cc tin trnh ny lun phin gia hai trng thi: s dng processor v i thc hin vo/ra hay mt vi s kin no xy ra. Tt c nhng vn trn s c lm sng t trong chng ny.

II.1. Tng quan v tin trnh


II.1.1. Tin trnh v cc loi tin trnh
Tin trnh (process): Trong chng I chng ta c khi nim v tin trnh: Tin trnh l mt b phn ca mt chng trnh ang thc hin, n v thc hin tin trnh l processer. y chng ti nhn mnh thm rng: V tin trnh l mt b phn ca chng trnh nn tng t nh chng trnh tin trnh cng s hu mt con tr lnh, mt con tr stack, mt tp cc thanh ghi, mt khng gian a ch trong b nh chnh v tt c cc thng tin cn thit khc tin trnh c th hot ng c. Khi nim trn y mang tnh trc quan, thy c bn cht ca tin trnh cc chuyn gia v h iu hnh a ra nhiu nh ngha khc nhau v tin
Chng 2: Qun l Tin trnh

40

trnh, y chng ti nu ra hai nh ngha cc bn tham kho. nh ngha ca Saltzer: Tin trnh l mt chng trnh do mt processor logic thc hin. nh ngha ca Horning & Rendell: Tin trnh l mt qu trnh chuyn t trng thi ny sang trng thi khc di tc ng ca hm hnh ng, xut pht t mt trng thi ban u no . nh ngha ca Saltzer cho thy, trn gc thc hin th tin trnh hon ton tng t chng trnh, ch khc ch: tin trnh do processor logic ch khng phi processor vt l thc hin. iu ny s c lm sng t trong phn m t v tin trnh sau y. nh ngha ca Horning & Rendell cho thy trong qu trnh hot ng ca tin trnh l qu trnh chuyn t trng thi ny sang trng thi khc nhng s chuyn i ny khng phi do chnh bn thn tin trnh m l do s tc ng t bn ngoi, c th y l b phn iu phi tin trnh ca h iu hnh. iu ny s c lm sng t trong phn m t v cc trng thi tin trnh sau y. Cc loi tin trnh: Cc tin trnh trong h thng c th chia thnh hai loi: tin trnh tun t v tin trnh song song. Tin trnh tun t l cc tin trnh m im khi to ca n l im kt thc ca tin trnh trc . Tin trnh song song l cc tin trnh m im khi to ca tin trnh ny mn thn ca cc tin trnh khc, tc l c th khi to mt tin trnh mi khi cc tin trnh trc cha kt thc. Tin trnh song song c chia thnh nhiu loi: Tin trnh song song c lp: l cc tin trnh hot ng song song nhng khng c quan h thng tin vi nhau, trong trng hp ny h iu hnh phi thit lp c ch bo v d liu ca cc tin trnh, v cp pht ti nguyn cho cc tin trnh mt cch hp l. Tin trnh song song c quan h thng tin: trong qu trnh hot ng cc tin trnh thng trao i thng tin vi nhau, trong mt s trng hp tin trnh gi thng bo cn phi nhn c tn hiu t tin trnh nhn tip tc, iu ny d dn n b tc khi tin trnh nhn tn hiu khng trong trng thi nhn hay tin trnh gi khng trong trng thi nhn thng bo tr li. Tin trnh song song phn cp: Trong qua trnh hot ng mt tin trnh c th khi to cc tin trnh khc hot ng song song vi n, tin trnh khi to c gi l tin trnh cha, tin trnh c to gi l tin trnh con. Trong m hnh ny h iu hnh phi gii quyt vn cp pht ti nguyn cho cc tin trnh con. Tin trnh con nhn ti nguyn u, t tin trnh cha hay t h thng. gii quyt vn ny h iu hnh a ra 2 m hnh qun l ti nguyn: Th nht, m hnh tp trung, trong m hnh ny h iu hnh chu trch nhim phn phi ti nguyn cho tt c cc tin trnh trong h thng. Th hai, m hnh phn tn, trong m hnh ny h iu hnh cho php tin trnh con nhn ti nguyn t tin trnh cha, tc l tin trnh khi to c nhim v nhn ti nguyn t h iu hnh cp pht cho cc tin trnh m n to ra, v n c nhim v thu hi li ti nguyn cp pht tr v cho h iu hnh trc khi kt thc. Tin trnh song song ng mc: l cc tin trnh hot ng song song s dng chung ti nguyn theo nguyn tc ln lt, mi tin trnh sau mt khong thi gian chim gi ti nguyn phi t ng tr li ti nguyn cho tin trnh kia. Cc tin trnh tun t ch xut hin trong cc h iu hnh n nhim a

Chng 2: Qun l Tin trnh

41

chng, nh h iu hnh MS_DOS, loi tin trnh ny tn ti nhiu hn ch, in hnh nht l khng khai thc ti a thi gian x l ca processor. Cc tin trnh song song xut hin trong cc h iu hnh a nhim a chng, trn c h thng uniprocessor v multiprocessor. Nhng s song song thc, ch c cc h thng multiprocessor, trong h thng ny mi processor chu trch nhim thc hin mt tin trnh. S song song trn cc h thng uniprocessor l s song song gi, cc tin trnh song song trn h thng ny thc cht l cc tin trnh thay nhau s dng processor, tin trnh ny ang chy th c th dng li nhng processor cho tin trnh khc chy v s tip tc li sau khi c c processor. y l trng hp m trn ta cho rng: im khi to ca tin trnh ny nm thn ca tin trnh khc. Hnh v sau y minh ha s khc nhau, v mt thc hin, gia cc tin trnh song song/ ng thi trong h thng uniprocessor vi cc tin trnh song song/ ng thi trong h thng multiprocessor.
P1 P2 P3 Time

a. Trong h thng uniprocessor


P1 P2 P3 Time

b. Trong h thng Multiprocessor Hnh 2.1: S thc hin ng thi ca cc tin trnh trong h thng uniprocessor (a) v h thng multiprocessor (b). Trong ti liu ny chng ta ch kho st s hot ng ca cc tin trnh song song (hay ng thi) trn cc h thng uniprocessor. i vi ngi s dng th trong h thng ch c hai nhm tin trnh. Th nht, l cc tin trnh ca h iu hnh. Th hai, l cc tin trnh ca chng trnh ngi s dng. Cc tin trnh ca h iu hnh hot ng trong ch c quyn, nh m n c th truy xut vo cc vng d liu c bo v ca h thng. Trong khi cc tin trnh ca chng trnh ngi s dng hot ng trong ch khng c quyn, nn n khng th truy xut vo h thng, nh m h iu hnh c bo v. Cc tin trnh ca chng trnh ngi s dng c th truy xut vo h thng thng qua cc tin trnh ca h iu hnh bng cch thc hin mt li gi h thng.

II.1.2. M hnh tin trnh


a s cc h iu hnh u mun a s a chng, a nhim vo h thng. Tc l, trong h thng c th c nhiu chng trnh hot ng ng thi (concurrence) vi nhau. V nguyn tc, thc hin c iu ny th h thng phi c nhiu

Chng 2: Qun l Tin trnh

42

processor, mi processor c nhim v thc hin mt chng trnh, nhng mong mun ca h iu hnh cng nh ngi s dng l thc hin s a chng trn cc h thng ch c mt processor, v trn thc t xut hin nhiu h iu hnh thc hin c iu ny, h iu hnh windows9x, windowsNT/2000 chy trn my tnh c nhn l mt v d. thc hin c iu ny h iu hnh s dng m hnh tin trnh to ra s song song gi hay to ra cc processor logic t processor vt l. Cc processor logic c th hot ng song song vi nhau, mi processor logic chu trch nhim thc hin mt tin trnh. Trong m hnh tin trnh h iu hnh chia chng trnh thnh nhiu tin trnh, khi to v a vo h thng nhiu tin trnh ca mt chng trnh hoc ca nhiu chng trnh khc nhau, cp pht y ti nguyn (tr processor) cho tin trnh v a cc tin trnh sang trng thi sn sng. H iu hnh bt u cp processor cho mt tin trnh trong s cc tin trnh trng thi sn sng tin trnh ny hot ng, sau mt khong thi gian no h iu hnh thu hi processor ca tin trnh ny cp cho mt tin trnh sn sng khc, sau h iu hnh li thu hi processor t tin trnh m n va cp cp cho tin trnh khc, c th l tin trnh m trc y b h iu hnh thu hi processor khi n cha kt thc, v c nh th cho n khi tt c cc tin trnh m h iu hnh khi to u hot ng v kt thc c. iu ng ch trong m hnh tin trnh ny l khong thi gian chuyn processor t tin trnh ny sang tin trnh khc hay khong thi gian gia hai ln c cp pht processor ca mt tin trnh l rt nh nn cc tin trnh c cm gic lun c s hu processor (logic) hay h thng c cm gic cc tin trnh/ chng trnh hot ng song song nhau. Hin tng ny c gi l s song song gi. Gi s trong h thng c 3 tin trnh sn sng P1, P2, P3 th qu trnh chuyn processor gia 3 tin trnh ny c th minh ha nh sau: Thi im Trng thi cc tin trnh P1: c cp processor t1 P1: b thu hi processor (khi cha kt thc) t2 P3: c cp processor P3: b thu hi processor (khi cha kt thc) t3 P1: c cp processor P1: kt thc v tr li processor t4 P2: c cp processor P2: kt thc v tr li processor t5 P3: c cp processor P3: kt thc v tr li processor t6 Hnh sau y minh ha qu trnh thc hin ca 3 tin trnh P1, P2, P3 trn:
P1 P2 P3 t1 t2 t3 t4 t5 t6

Time

Hnh 2.2: S hot ng song song ca cc tin trnh P1, P2, P3 i


Chng 2: Qun l Tin trnh

43

Chng ta u bit, chc nng c bn ca processor l thc hin cc ch th my (machine instrustion) thng tr trong b nh chnh, cc ch th ny c cung cp t mt chng trnh, chng trnh bao gm mt dy tun t cc ch th. V theo trn, tin trnh l mt b phn ca chng trnh, n cng s hu mt tp lnh trong b nh chnh, mt con tr lnh, Nn xt v bn cht, th vic chuyn processor t tin trnh ny sang tin trnh khc thc cht l vic iu khn processor n thc hin xen k cc ch th bn trong tin trnh. iu ny c th thc hin d dng bng cch thay i hp l gi tr ca con tr lnh, chnh l cp thanh ghi CS:IP trong cc processor thuc kin trc Intel, con tr lnh ch n cc ch th cn thc hin trong cc tin trnh. thy r hn iu ny ta hy xem v d sau y: Gi s h thng cn thc hin ng thi 3 tin trnh P1, P2, P3, bt u t tin trnh P1. Cc ch th ca cc tin trnh ny c np vo b nh ti cc a ch nh sau: Tin trnh P1: Tin trnh P2: Tin trnh P3: a+0 b+0 c+0 a+1 b+2 c+1 a+3 b+3 c+4 a+5 c+6 Trong : a: l a ch bt u ca chng trnh ca tin trnh P1 b: l a ch bt u ca chng trnh ca tin trnh P2 c: l a ch bt u ca chng trnh ca tin trnh P3 Th gi tr ca con tr lnh, chnh xc l gi tr cp thanh ghi CS:IP, ln lt l: a + 0, b + 0, c + 0, a + 1, b + 2, c + 1, a + 3, b + 3, c + 4, a + 5, c + 6. Tc l, processor thc hin xen k cc ch th ca 3 tin trnh P1, P2, P3 t lnh u tin n lnh cui cng, cho n khi tt c cc ch th ca 3 tin trnh u c thc hin. Nhng khong thi gian t khi con tr lnh = a + 0 n khi = a + 1, hay t khi = b + 0 n khi = b + 2, l rt nh, nn h thng c cm gic 3 tin trnh P1, P2, P3 hot ng ng thi vi nhau. V d trn y cho ta thy bn cht ca vic thc hin song song (hay ng thi) cc tin trnh trn cc h thng uniprocessor. R rng vi m hnh tin trnh h thng c c 2 iu li: Tit kim c b nh: v khng phi np tt c chng trnh vo b nh m ch np cc tin trnh cn thit nht, sau ty theo yu cu m c th np tip cc tin trnh khc. Cho php cc chng trnh hot ng song song nn tc x l ca ton h thng tng ln v khai thc ti a thi gian x l ca processor. Vic chn thi im dng ca tin trnh ang hot ng (ang chin gi processor) thu hi processor chuyn cho tin trnh khc hay vic chn tin trnh tip theo no trong s cc tin trnh ang trng thi sn sng cp processor l nhng vn kh phc tp i hi h iu hnh phi c mt c ch iu phi thch hp th mi c th to ra c hiu ng song song gi v s dng ti u thi gian x l ca processor. B phn thc hin chc nng ny ca h iu hnh c gi l b iu phi (dispatcher) tin trnh.

Chng 2: Qun l Tin trnh

44

II.1.3. Tiu trnh v tin trnh


Tiu trnh: Thng thng mi tin trnh c mt khng gian a ch v mt dng x l. Nhng trong thc t c mt s ng dng cn nhiu dng x l cng chia s mt khng gian a ch tin trnh, cc dng x l ny c th hot ng song song vi nhau nh cc tin trnh c lp trn h thng. thc hin c iu ny cc h iu hnh hin nay a ra mt c ch thc thi (cc ch th trong chng trnh) mi, c gi l tiu trnh. Tiu trnh l mt n v x l c bn trong h thng, n hon ton tng t nh tin trnh. Tc l n cng phi x l tun t cc ch th my ca n, n cng s hu con tr lnh, mt tp cc thanh ghi, v mt khng gian stack ring. Mt tin trnh n c th bao gm nhiu tiu trnh. Cc tiu trnh trong mt tin trnh chia s mt khng gian a ch chung, nh m cc tiu trnh c th chia s cc bin ton cc ca tin trnh v c th truy xut ln cc vng nh stack ca nhau. Cc tiu trnh chia s thi gian x l ca processor ging nh cch ca tin trnh, nh m cc tiu trnh c th hot ng song song (gi) vi nhau. Trong qu trnh thc thi ca tiu trnh n cng c th to ra cc tin trnh con ca n. a tiu trnh trong n tin trnh: im ng ch nht ca m hnh tiu trnh l: c nhiu tiu trnh trong phm vi mt tin trnh n. Cc tin trnh n ny c th hot ng trn cc h thng multiprocessor hoc uniprocessor. Cc h iu hnh khc nhau c cch tip cn m hnh tiu trnh khc nhau. y chng ta tip cn m hnh tiu trnh t m hnh tc v (Task), y l cc tip cn ca windows NT v cc h iu hnh a nhim khc. Trong cc h iu hnh ny tc v c nh ngha nh l mt n v ca s bo v hay n v cp pht ti nguyn. Trong h thng tn ti mt khng gian a ch o lu gi tc v v mt c ch bo v s truy cp n cc file, cc ti nguyn Vo/Ra v cc tin trnh khc (trong cc thao tc truyn thng lin tin trnh). Trong phm v mt tc v, c th c mt hoc nhiu tiu trnh, mi tiu trnh bao gm: Mt trng thi thc thi tiu trnh (running, ready,). Mt lu tr v ng cnh ca processor khi tiu trnh trng thi not running (mt cch xem tiu trnh nh mt b m chng trnh c lp hot ng trong phm vi tc v). Cc thng tin thng k v vic s dng cc bin cc b ca tiu trnh. Mt stack thc thi. Truy xut n b nh v ti nguyn ca tc v, c chia s vi tt c cc tiu trnh khc trong tc v. Trong cc ng dng server, chng hn nh ng dng file server trn mng cc b, khi c mt yu cu hnh thnh mt file mi, th mt tiu trnh mi c hnh thnh t chng trnh qun l file. V mt server s phi iu khin nhiu yu cu, c th ng thi, nn phi c nhiu tiu trnh c to ra v c gii phng trong, c th ng thi, mt khong thi gian ngn. Nu server l mt h thng multiprocessor th cc tiu trnh trong cng mt tc v c th thc hin ng thi trn cc processor khc nhau, do hiu sut ca h thng tng ln. S hnh thnh cc tiu trnh ny cng tht s hu ch trn cc h thng uniprocessor, trong trng hp mt chng trnh phi thc hin nhiu chc nng khc nhau. Hiu qu ca vic s dng tiu trnh c thy r trong cc ng dng cn c s truyn thng

Chng 2: Qun l Tin trnh

45

gia cc tin trnh hoc cc chng trnh khc nhau. Cc thao tc lp lch v iu phi tin trnh ca h iu hnh thc hin trn c s tiu trnh. Nhng nu c mt thao tc no nh hng n t c cc tiu trnh trong tc v th h iu hnh phi tc ng vo tc v. V tt c cc tiu trnh trong mt tc v chia s cng mt khng gian a ch, nn tt c cc tiu trnh phi c a vo trng thi suspend ti cng thi im. Tng t, khi mt tc v kt thc th s kt thc tt c cc tiu trnh trong tc v . Trng thi suspend s c gii thch ngay sau y.

II.1.4. Cc trng thi tin trnh


T khi c a vo h thng cho n khi kt thc tin trnh tn ti cc trng thi khc nhau. Trng thi ca tin trnh ti mt thi im c xc nh bi hot ng hin thi ca tin trnh ti thi im . Tin trnh hai trng thi: Mt s t h iu hnh ch cho php tin trnh tn ti mt trong hai trng thi: Not Running v Running. Khi h iu hnh to ra mt tin trnh mi, h iu hnh a tin trnh vo h thng trng thi Not Running, tin trnh trng thi ny ch c chuyn sang trng thi Running. V mt l do no , tin trnh ang thc hin b ngt th b iu phi tin trnh ca h iu hnh s thu hi li processor ca tin trnh ny v chn mt tin trnh trng thi Not running cp processor cho n v chuyn n sang trng thi Running. Tin trnh b thu hi processor s c chuyn v li trng thi Not running.
Dispatch
Enter

Not Running
Pause

Exit

Running

Hnh 2.3.a: S chuyn trng thi tin trnh Ti mt thi im xc nh ch c duy nht mt tin trnh trng thi Runnig, nhng c th c nhiu tin trnh trng thi Not running, cc tin trnh trng thi Not running c cha trong mt hng i (Queue). Tin trnh ang trng thi Running b chuyn sang trng thi Not running s c a vo hng i. Hnh v sau y m t vic chuyn trng thi tin trnh trong cc h iu hnh s dng 2 trng thi tin trnh.
Queue Enter Dispatch
Pause

Processor

Exit

Hnh 2.3.b: S chuyn tin trnh vo hng i Tin trnh ba trng thi: a s h iu hnh u cho php tin trnh tn ti mt trong ba trng thi, l: ready, running, blocked:

Chng 2: Qun l Tin trnh

46

Trng thi Ready (sn sng): Ngay sau khi khi to tin trnh, a tin trnh vo h thng v cp pht y ti nguyn (tr processor) cho tin trnh, h iu hnh a tin trnh vo trng thi ready. Hay ni cch khc, trng thi ready l trng thi ca mt tin trnh trong h thng ang ch c cp processor bt u thc hin. Trng thi Running (thc hin): L trng thi m tin trnh ang c s hu processor hot ng, hay ni cch khc l cc ch th ca tin trnh ang c thc hin/ x l bi processor. Trng thi Blocked (kho): L trng thi m tin trnh ang ch c cp pht thm ti nguyn, mt s kin no xy ra, hay mt qu trnh vo/ra kt thc. Qu trnh chuyn trng thi ca cc tin trnh trong c m t bi s sau:
New

2 Ready 4 Running 3 6 Blocked 5


Exit

Hnh 2.4.a: S chuyn trng thi tin trnh Trong : 1. (Admit) Tin trnh c khi to, c a vo h thng, c cp pht y ti nguyn ch thiu processor. 2. (Dispatch) Tin trnh c cp processor bt u thc hin/ x l. 3. (Release) Tin trnh hon thnh x l v kt thc. 4. (Time_out) Tin trnh b b iu phi tin trnh thu hi processor, do ht thi gian c quyn s dng processor, cp pht cho tin trnh khc. 5. (Event wait) Tin trnh ang ch mt s kin no xy ra hay ang ch mt thao vo/ra kt thc hay ti nguyn m tin trnh yu cu cha c h iu hnh p ng. 6. (Event Occurs) S kin m tin trnh ch xy ra, thao tc vo/ra m tin trnh i kt thc, hay ti nguyn m tin trnh yu cu c h iu hnh p ng, B phn iu phi tin trnh thu hi processor t mt tin trnh ang thc hin trong cc trng hp sau: Tin trnh ang thc hin ht thi gian (time-out) c quyn s dng processor m b phn iu phi dnh cho n. C mt tin trnh mi pht sinh v tin trnh mi ny c u tin cao hn tin trnh hin ti. C mt tin trnh mi pht sinh v tin trnh ny mi cn mt khong thi gian ca processor nh hn nhiu so vi khong thi gian cn li m tin trnh hin ti cn processor. 47

Chng 2: Qun l Tin trnh

Ti mt thi im xc nh trong h thng c th c nhiu tin trnh ang trng thi Ready hoc Blocked nhng ch c mt tin trnh trng thi Running. Cc tin trnh trng thi Ready v Blocked c cha trong cc hng i (Queue) ring.
Ready Queue Admit Dispatch Processor Release

Time-out Event Occurs Blocked Queue Event Wait

Hnh 2.4.b: S chuyn tin trnh vo cc hng i C nhiu l do mt tin trnh ang trng thi running chuyn sang trng thi blocked, do a s cc h iu hnh u thit k mt h thng hng i gm nhiu hng i, mi hnh i dng cha nhng tin trnh ang i cng mt s kin no . Tin trnh 4 trng thi: Trong mi trng h iu hnh a nhim th vic t chc cc Queue lu cc tin trnh cha th hot ng l cn thit, nhng nu tn ti qu nhiu tin trnh trong Queue, hay chnh xc hn trong b nh chnh, s dn n trnh trng lng ph b nh, khng cn b nh np cc tin trnh khc khi cn thit. Mt khc nu cc tin trnh trong Queue ang chim gi ti nguyn ca h thng, m nhng ti nguyn ny li l nhng ti nguyn cc tin trnh khc ang cn, iu ny dn n tnh trng s dng ti nguyn khng hp l, lm cho h thng thiu ti nguyn (thc cht l tha) trm trng v c th lm cho h thng tc nghn. Vi nhng l do trn cc h iu hnh a nhim thit k thm mt trng thi tin trnh mi, l trng thi Suspend (tm dng). Trng thi ny rt cn thit cho cc h thng s dng k thut Swap trong vic cp pht b nh cho cc tin trnh. Khi nim Swap s c cp n trong chng Qun l b nh ca ti liu ny.
New Ready Activate Running End

Suspend Suspend

Blocked

Hnh 2.5.a: S chuyn trng thi tin trnh c suspend Trng thi Suspend l trng thi ca mt tin trnh khi n ang c lu tr trn b nh ph, hay chnh xc hn y l cc tin trnh ang trong trng thi

Chng 2: Qun l Tin trnh

48

blocked v/hoc ready b h iu hnh chuyn ra a thu hi li khng gian nh cp cho tin trnh hoc thu hi li ti nguyn cp cho tin trnh cp cho mt tin trnh khc ang rt cn c np vo b nh ti thi im hin ti. Tin trnh 5 trng thi: Trong thc t h iu hnh thit k 2 trng thi suspend, mt trng thi suspend dnh cho cc tin trnh t blocked chuyn n, trng thi ny c gi l blocked-suspend v mt trng thi suspend dnh cho cc tin trnh t ready chuyn n, trng thi ny c gi l ready-suspend. Ti y ta c th hiu cc trng thi tin trnh nh sau: trng thi Ready tin trnh c nh v trong b nh chnh v ang ch c cp processor thc hin. trng thi Blocked tin trnh c nh v trong b nh chnh v ang i mt s kin hay mt qu trnh I/O no . trng thi Blocked-suspend tin trnh ang b cha trn b nh ph (a) v ang i mt s kin no . trng thi Ready-suspend tin trnh ang b cha trn b nh ph nhng sn sng thc hin ngay sau khi c np vo b nh chnh.
Admit New Admit Suspend Ready suspend Activate Ready Suspend Event Occurs Event Occurs Blocked suspend Activate Blocked Exit Running Release

Hnh 2.5.b: S chuyn trng thi tin trnh vi 2 suspend Sau y chng ta xem xt s chuyn trng thi tin trnh trong s trn: 1. Blocked sang Blocked-suspend: nu khng cn tin trnh ready trong b nh chnh v b nh chnh khng cn khng gian nh trng th phi c t nht mt tin trnh blocked b chuyn ra ngoi, blocked-suspend, dnh b nh cho mt tin trnh khng b kho (not blocked) khc. 2. Blocked-suspend sang Ready-suspend: mt tin trnh ang trng thi blocked-suspend c chuyn sang trng thi ready-suspend khi s kin m n i xy ra. 3. Ready-suspend sang Ready: c 2 l do h iu hnh chn khi chuyn mt tin trnh trng thi ready-suspend sang trng thi ready: Khng cn tin trnh ready trong b nh chnh, h iu hnh

Chng 2: Qun l Tin trnh

49

phi np mt tin trnh mi vo n tip tc thc hin Nu c tin trnh ready-suspend c u tin cao hn so vi cc tin trnh ready hin ti th h iu hnh c th chuyn n sang trng thi ready n nhiu c hi c thc hin hn. 4. Ready sang Ready suspend: H iu hnh thng chuyn cc tin trnh blocked sang suspend hn l cc tin trnh ready, v cc tin trnh trng thi blocked khng th thc hin ngay lp tc nhng li chim nhiu khng gian b nh chnh hn so vi cc tin trnh trng thi ready. Tuy nhin, nu vic chn tin trnh chuyn sang suspend da vo 2 iu kin: chim t khng gian b nh hn v c u tin thp hn th h iu hnh c th chuyn mt tin trnh ready sang trng thi suspend. Nh vy vi vic chuyn tin trnh sang trng thi suspend h iu hnh s ch ng hn trong vic cp pht b nh v ngn chn cc tnh hung tc nghn c th xy ra do s tranh chp v ti nguyn, nh vy m h iu hnh tit kim c b nh, chia s c ti nguyn cho nhiu tin trnh v tng c mc a chng ca h thng. Tuy nhin, c c nhng li ch trn h iu hnh phi chi ph rt nhiu cho vic tm dng tin trnh. H iu hnh phi xem xt tin trnh no c chn suspend, khi suspend mt tin trnh h iu hnh phi lu li tt c cc thng tin lin quan n tin trnh (con tr lnh, ti nguyn m tin trnh c cp, ...), h iu hnh phi la chn thi in thch hp a tin trnh ra b nh ngoi, ... nhng thao tc s lm chm tc thc hin ca ton b h thng. Nhng du sao i na th h iu hnh vn phi s dng trng thi suspend v tng mc a chng ca h thng l mt trong nhng mc tiu ln ca h iu hnh.

II.1.5. Cu trc d liu ca khi qun l tin trnh


qun l cc tin trnh v ti nguyn trong h thng, h iu hnh phi c cc thng tin v trng thi hin thi ca mi tin trnh v ti nguyn. Trong trng hp ny h iu hnh xy dng v duy tr cc bng thng tin v mi i tng (memory, devices, file, process) m n qun l, l cc bng: memory table cho i tng b nh, I/O table cho i tng thit b vo/ra, file table cho i tng tp tin, process table cho i tng tin trnh. Memory table c s dng theo di c b nh thc ln b nh o, n phi bao gm cc thng tin sau: Khng gian b nh chnh dnh cho tin trnh. Khng gian b nh ph dnh cho tin trnh. Cc thuc tnh bo v b nh chnh v b nh o. Cc thng tin cn thit qun l b nh o. y chng ti im qua mt vi thng tin v memory table, l lu vi cc bn rng: nhim v qun l tin trnh v qun l b nh ca h iu hnh c quan h cho vi nhau, b phn qun l tin trnh cn phi c cc thng tin v b nh iu khin s hot ng ca tin trnh, ngc li b phn qun l b nh phi c cc thng tin v tin trnh t chc np tin trnh vo b nh, iu ny cng ng vi cc b phn qun l Vo/ ra v qun l tp tin. Trong phn trnh by sau y chng ti ch cp n Process Table ca h iu hnh. qun l v iu khin c mt tin trnh, th h iu hnh phi bit c v tr np tin trnh trong b nh chnh, phi bit c cc thuc tnh ca tin trnh cn thit cho vic qun l tin trnh ca n:

Chng 2: Qun l Tin trnh

50

nh v ca tin trnh (process location): nh v ca tin trnh ph thuc vo chin lc qun l b nh ang s dng. Trong trng hp n gin nht, tin trnh, hay chnh xc hn l hnh nh tin trnh, c lu gia ti cc khi nh lin tc trn b nh ph (thng l a), tin trnh thc hin c th tin trnh phi c np vo b nh chnh. Do , h iu hnh cn phi bit nh v ca mi tin trnh trn a v cho mi tin trnh trn b nh chnh. Trong mt s chin lc qun l b nh, h iu hnh ch cn np mt phn tin trnh vo b nh chnh, phn cn li vn nm trn a. Hay tin trnh ang trn b nh chnh th c mt phn b swap-out ra li a, phn cn li vn cn nm b nh chnh. Trong cc trng hp ny h iu hnh phi theo di tin trnh bit phn no ca tin trnh l ang trong b nh chnh, phn no ca tin trnh l cn trn a. a s cc h iu hnh hin nay u s dng chin lc qun l b nh m trong khng gian a ch ca tin trnh l mt tp cc block, cc block ny c th khng lin tip nhau. Ty theo chin lc b nh s dng m cc block ny c th c chiu di c nh (chin lc phn phn trang b nh) hay thay i (chin lc phn on b nh) hay kt hp c hai. H iu hnh cho php khng np tt c cc trang (page) v/hoc cc on (segment) ca tin trnh vo b nh. Do , process table phi c duy tr bi h iu hnh v phi cho bit v tr ca mi trang/ on tin trnh trn h thng. Nhng iu trn y s c lm r phn chin lc cp pht b nh trong chng Qun l b nh ca ti liu ny. Cc thuc tnh ca tin trnh: Trong cc h thng a chng, thng tin v mi tin trnh l rt cn cho cng tc qun l tin trnh ca h iu hnh, cc thng tin ny c th thng tr trong khi qun l tin trnh (PCB: process control block). Cc h iu hnh khc nhau s c cch t chc PCB khc nhau, y chng ta kho st mt trng hp chung nht. Cc thng tin trong PCB c th c chia thnh ba nhm chnh: nh danh tin trnh (PID: process identification): mi tin trnh c gn mt nh danh duy nht phn bit vi cc tin trnh khc trong h thng. nh danh ca tin trnh c th xut hin trong memory table, I/O table. Khi tin trnh ny truyn thng vi tin trnh khc th nh danh tin trnh c s dng h iu hnh xc nh tin trnh ch. Khi tin trnh cho php to ra tin trnh khc th nh danh c s dng ch n tin trnh cha v tin trnh con ca mi tin trnh. Tm li, cc nh danh c th lu tr trong PCB bao gm: nh danh ca tin trnh ny, nh danh ca tin trnh to ra tin trnh ny, nh danh ca ngi s dng. Thng tin trng thi processor (processor state information): bao gm cc thanh ghi User-visible, cc thanh ghi trng thi v iu khin, cc con tr stack. Thng tin iu khin tin trnh (process control information): bao gm thng tin trng thi v lp lch, cu trc d liu, truyn thng lin tin trnh, quyn truy cp tin trnh, qun l b nh, ti nguyn khi to v ti nguyn sinh ra. PCB l mt trong nhng cu trc d liu trung tm v quan trng ca h iu hnh. Mi PCB cha tt c cc thng tin v tin trnh m n rt cn cho h iu hnh. C nhiu modun thnh phn trong h iu hnh c th read v/hoc modified PCB nh: lp lch tin trnh, cp pht ti nguyn cho tin trnh, ngt tin trnh, vv. C th ni cc thit lp trong PCB nh ngha trng thi ca h iu hnh.

Chng 2: Qun l Tin trnh

51

II.1.6. Cc thao tc iu khin tin trnh


Khi khi to tin trnh h iu hnh thc hin cc thao tc sau: H iu hnh gn PID cho tin trnh mi v a tin trnh vo danh sch qun l ca h thng, tc l, dng mt entry trong PCB cha cc thng tin lin quan n tin trnh mi to ra ny. Cp pht khng gian b nh cho tin trnh. y h iu hnh cn phi xc nh c kch thc ca tin trnh, bao gm code, data v stack. Gi tr kch thc ny c th c gn mt nh da theo loi ca tin trnh hoc c gn theo yu cu ca ngi s dng khi c mt cng vic (job) c to. Nu mt tin trnh c sinh ra bi mt tin trnh khc, th tin trnh cha c th chuyn kch thc ca n n h iu hnh trong yu cu to tin trnh. Khi to cc thng tin cn thit cho khi iu khin tin trnh nh cc PID ca tin trnh cha (nu c), thng tin trng thi tin trnh, u tin ca tin trnh, thng tin ng cnh ca processor (b n chng trnh v cc thanh ghi khc), vv. Cung cp y cc ti nguyn cn thit nht, tr processor, tin trnh c th vo trng thi ready c hoc bt u hot ng c. a tin trnh vo mt danh sch tin trnh no : ready list, suspend list, waiting list, vv, sao cho ph hp vi chin lc iu phi tin trnh hin ti ca b phn iu phi tin trnh ca h iu hnh. Khi mt tin trnh to lp mt tin trnh con, tin trnh con c th c cp pht ti nguyn bi chnh h iu hnh, hoc c tin trnh cha cho tha hng mt s ti nguyn ban u ca n. Khi kt thc tin trnh h iu hnh thc hin cc thao tc sau: Khi tin trnh kt thc x l, hon thnh ch th cui cng, h iu hnh s thc hin cc thao tc sau y: Thu hi ti nguyn cp pht cho tin trnh. Loi b tin trnh ra khi danh sch qun l ca h thng. Hu b khi iu khin tin trnh. Hu ht cc h iu hnh u khng cho php tin trnh con hot ng khi tin trnh cha kt thc. Trong nhng trng hp nh th h iu hnh s ch ng vic kt thc tin trnh con khi tin trnh cha va kt thc. Khi thay i trng thi tin trnh h iu hnh thc hin cc bc sau: Khi mt tin trnh ang trng thi running b chuyn sang trng thi khc (ready, blocked, ) th h iu hnh phi to ra s thay i trong mi trng ln vic ca n. Sau y l cc bc m h iu hnh phi thc hin y khi thay i trng thi tin trnh: Lu (save) ng cnh ca processor, bao gm thanh ghi b m chng trnh (PC: program counter) v cc thanh ghi khc. Cp nht PCB ca tin trnh, sao cho ph hp vi trng thi mi ca tin trnh, bao gm trng thi mi ca tin trnh, cc thng tin tnh ton, vv. Di chuyn PCB ca tin trnh n mt hng i thch hp, p ng 52

Chng 2: Qun l Tin trnh

c cc yu cu ca cng tc iu phi tin trnh. Chn mt tin trnh khc cho php n thc hin. Cp nht PCB ca tin trnh va c chn thc hin trn, ch yu l thay i trng thi ca tin trnh n trng thi running. Cp nht cc thng tin lin quan n qun l b nh. Bc ny ph thuc vo cc yu cu chuyn i a ch b nh ang c s dng. Khi phc (Restore) li ng cnh ca processor v thay i gi tr ca b m chng trnh v cc thanh ghi khc sao cho ph hp vi tin trnh c chn trn, tin trnh ny c th bt u hot ng c. Nh vy, khi h iu hnh chuyn mt tin trnh t trng thi running (ang chy) sang mt trng thi no (tm dng) th h iu hnh phi lu tr cc thng tin cn thit, nht l Program Count, sau ny h iu hnh c th cho tin trnh tip tc hot ng tr (ti kch hot) li c. ng thi h iu hnh phi chn mt tin trnh no ang trng thi ready cho tin trnh ny chy (chuyn tin trnh sang trng thi running). Ti y, trong cc thao tc phi thc hin, h iu hnh phi thc hin vic thay i gi tr ca PC, thay i ng cnh processor, PC ch n a ch ca ch th u tin ca tin trnh running mi ny trong b nh. y cng chnh l bn cht ca vic thc hin cc tin trnh trong cc h thng uniprocessor.

II.2. Ti nguyn gng v on gng


II.2.1. Ti nguyn gng (Critical Resource)
Trong mi trng h iu hnh a nhim - a chng a ngi s dng, vic chia s ti nguyn cho cc tin trnh ca ngi s dng dng chung l cn thit, nhng nu h iu hnh khng t chc tt vic s dng ti nguyn dung chung ca cc tin trnh hot ng ng thi, th khng nhng khng mang li hiu qu khai thc ti nguyn ca h thng m cn lm hng d liu ca cc ng dng. V nguy him hn l vic hng d liu ny c th h iu hnh v ng dng khng th pht hin c. Vic hng d liu ca ng dng c th lm sai lch ngha thit k ca n. y l iu m c h iu hnh v ngi lp trnh u khng mong mun. Cc tin trnh hot ng ng thi thng cnh tranh vi nhau trong vic s dng ti nguyn dng chung. Hai tin trnh hot ng ng thi cng ghi vo mt khng gian nh chung (mt bin chung) trn b nh hay hai tin trnh ng thi cng ghi d liu vo mt file chia s, l nhng biu hin ca s cnh tranh v vic s dng ta nguyn dng chung ca cc tin trnh. cc tin trnh hot ng ng thi khng cnh tranh hay xung t vi nhau khi s dng ti nguyn dng chung h iu hnh phi t chc cho cc tin trnh ny c c quyn truy xut/ s dng trn cc ti nguyn dng chung ny. Nhng ti nguyn c h iu hnh chia s cho nhiu tin trnh hot ng ng thi dng chung, m c nguy c dn n s tranh chp gia cc tin trnh ny khi s dng chng, c gi l ti nguyn gng. Ti nguyn gng c th l ti nguyn phn cng hoc ti nguyn phn mn, c th l ti nguyn phn chia c hoc khng phn chia c, nhng a s thng l ti nguyn phn chia c nh l: cc bin chung, cc file chia s.

Chng 2: Qun l Tin trnh

53

Cc v d sau y cho thy hu qu ca vic s dng ti nguyn gng trong cc chng trnh c cc tin trnh hot ng ng thi: V d 1: Gi s c mt chng trnh, trong c hai tin trnh P1 v P2 hot ng ng thi vi nhau. Tin trnh P1 phi tng bin Count ln 1 n v, tin trnh P2 phi tng bin Count ln 1 n v, vi mc ch tng Count ln c 2 n v. Chng trnh c th thc hin nh sau: 1. Tin trnh P1 ghi ni dung bin ton cc Count vo bin cc b L1 2. Tin trnh P2 ghi ni dung bin ton cc Count vo bin cc b L2 3. Tin trnh P1 thc hin L1:= L1 + 1 v Count := L1 4. Tin trnh P2 thc hin L2:= L2 + 1 v Count := L2 Nh vy thot nhn ta thy rng chc chn Count tng c 2 n v, nhng trong thc t c th Count ch tng c 1 n v. Bi v, nu P1 v P2 ng thi nhn gi tr ca Count (gi s ban u Count = 4) vo L1 v L2, sau P1 tng L1 ln 1 v P2 tng L2 ln 1 (L1 = 5, L2 = 5), ri sau c P1 v P2 ng thi ghi gi tr bin L ca n vo li Count, th Count ch tng c 1 n v, Count = 6. y l iu m chng trnh khng mong mun nhng c chng trnh v h iu hnh u kh c th pht hin c. Nguyn nhn trn l do 2 tin trnh P1 v P2 ng thi truy xut bin Count, c khi nhn gi tr ca count, ln khi ghi gi tr vo Count. Trong trng hp ny nu h iu hnh khng cho php hai tin trnh P1 v P2 ng thi truy xut Count, hoc h iu hnh cho php mi tin trnh c c quyn truy xut Count trong on code sau, th li trn s khng xy ra.
P1: Begin L1 := Count; L1 := L1 + 1; Count := L1; End; P2: Begin L2 := Count; L2 := L2 + 1; Count := L2; End;

Trong trng hp ny ti nguyn gng l bin count. V d 2: Gi s c mt ng dng K ton, hot ng trong mi trng a nhim, a ngi s dng. Mi ngi s dng trong mi trng ny khi cn thc hin thao tc rt tin t trong ti khon chung th phi khi to mt tin trnh, tm gi l tin trnh rt tin, tin trnh rt tin ch c th thc hin c thao tc rt tin khi s tin cn rt nh hn s tin cn li trong ti khon chung. Trong mi trng ny c th c nhiu ngi s dng ng thi thc hin thao tc rt tin t ti khon chung ca h thng. Nh vy cc tin trnh rt tin, gi s c hai tin trnh rt tin P1 v P1, c th hot ng ng thi vi nhau v cng chia s khng gian nh lu tr bin Ti khon, cho bit s tin cn trong ti khon dng chung ca h thng. V mi tin trnh rt tin khi mun rt mt khong tin t ti khon (Tin rt) th phi thc hin kim tra Ti khon sau mi thc hin vic rt tin. Tc l mi tin trnh rt tin, khi cn rt tin u phi thc hin on code sau y:
IF (Ti khon - Tin rt >= 0) {kim tra ti khon}

Chng 2: Qun l Tin trnh

54

Ti khon := Ti khon - Tin rt Else Thng bo li EndIf;

{thc hin rt tin} {khng th rt tin}

Nu ti mt thi im no : Trong ti khon cn 800 ngn ng (Ti khon = 800). Tin trnh rt tin P1 cn rt 500 ngn ng (Tin rt = 500). Tin trnh rt tin P2 cn rt 400 ngn ng (Tin rt = 400). Tin trnh P1 v P2 ng thi rt tin. Th theo nguyn tc iu trn khng th xy ra, v tng s tin m hai tin trnh cn rt ln hn s tin cn li trong ti khon (500 + 400 > 800). Nhng trong mi trng a nhim, a ngi s dng nu h iu hnh khng gim st tt vic s dng ti nguyn dng chung ca cc tin trnh hot ng ng thi th iu trn vn c th xy ra. tc l, c hai tin trnh P1 v P2 u thnh cng trong thao tc rt tin, m ng dng cng nh h iu hnh khng h pht hin. Bi v, qu trnh rt tin ca cc tin trnh P1 v P2 c th din ra nh sau: 1. P1 c cp processor thc hin vic rt tin: P1 thc hin kim tra ti khon: Ti khon - Tin rt = 800 -500 = 300 > 0, P1 ghi nhn iu ny v chun b rt tin. 2. Nhng khi P1 cha kp rt tin th b h iu hnh thu hi li processor, v h iu hnh cp processor cho P2. P1 c chuyn sang trng thi ready. 3. P2 nhn c processor, c chuyn sang trng thi running, n bt u thc hin vic rt tin nh sau: kim tra ti khon: Ti khon - Tin rt = 800 - 400 = 500 >= 0, P2 ghi nhn iu ny v thc hin rt tin: Ti khon = Ti khon - Tin rt = 800 - 400 = 400. 4. P2 hon thnh nhim v rt tin, n kt thc x l v tr li processor cho h iu hnh. H iu hnh cp li processor cho P1, ti kch hot li P1 n tip tc thao tc rt tin. 5. Khi c hot ng tr li P1 thc hin ngay vic rt tin m khng thc hin vic kim tra ti khon (v kim tra trc ): Ti khon = Ti khon - Tin rt = 400 - 500 = -100. 6. P1 hon thnh nhim v rt tin v kt thc tin trnh. Nh vy c 2 tin trnh P1 v P2 u hon thnh vic rt tin, khng thng bo li, m khng gp bt k mt li hay mt tr ngi no. Nhng y l mt li nghim trng i vi ng dng, v khng th rt mt khong tin ln hn s tin cn li trong ti khon, hay Ti khon khng th nhn gi tr m. Nguyn nhn ca li ny khng phi l do hai tin trnh P1 v P2 ng thi truy xut bin Ti khon, m do hai thao tc: kim tra ti khon v thc hin rt tin, ca cc tin trnh ny b tch ri nhau. Nu h iu hnh lm cho hai thao tc ny khng tch ri nhau th li ny s khng xy ra. Trong trng hp ny ti nguyn gng l bin Ti khon.

Chng 2: Qun l Tin trnh

55

V d 3: Gi s mt h iu hnh a nhim, cung cp cho cc tin trnh ca cc chng trnh ngi s dng mt th tc Echo. Th tc Echo ny cho php cc tin trnh nhn mt k t t bn phm ri a k t ny ln mn hnh, mi khi gi n. Tt c cc tin trnh ca chng trnh ngi s dng trong h thng c th ng thi gi Echo mi khi cn a mt k t t bn phm ln mn hnh. Sau y l code ca th tc Echo:
Procedure Echo; Var out, in: chracter; Begin Input(In, keyboard); Out:=In; Output(Out, Screen); End;

{Input l hm nhp, n nhn k t} {t bn phm a vo In. Output l} {hm xut, n a k t t bin Out} {ln mn hnh}

tit kim b nh h iu hnh np Echo vo khng gian nh ton cc ca h thng v cc tin trnh s chia s khng gian nh cha th tc Echo ny. S chia s ny l cn thit v hu ch, nhng cc tin trnh, hai tin trnh P1 v P2, c th khng t c mc tiu khi gi Echo, c th tin trnh P1 g k t A nhng mn hnh li xut hin k t B, B l k t ca tin trnh P2. Bi v h thng c th xy ra trng hp sau: 1. Tin trnh P1 gi th tc Echo v b ngt ngay lp tc sau khi hm nhp Input c thc hin. Ti thi im ny, k t va c nhp gn y nht l A, c lu tr trong bin In. 2. Tin trnh P2 c kch hot v gi th tc Echo, v th tc c chy cho n khi kt thc. Gi s nhp v xut k t B ra mn hnh. 3. Tin trnh P1 c tip tc tr li. Lc ny gi tr A ca bin In b ghi , c th l k t B ca tin trnh P2, bin In = B. Tin trnh P1 tip tc cng vic ca th tc Echo, Out:= In v Out = B. Sau hm xut Output s a gi tr ca bin out ln mn hnh. Tc l trn mn hnh xut hin k t B. y l iu m tin trnh P1 khng h mong mun. Nh vy l k t A b mt, nhng k t B li xut hin hai ln. Bn cht ca vn ny l nm bin ton cc In (ti nguyn gng l bin In). V h iu hnh cho nhiu tin trnh hot ng ng thi trn h thng c quyn truy xut v truy xut ng thi vo bin ny. trnh li ny h iu hnh cn phi c c ch bo v bin ton cc dng chung v ch cho php mt tin trnh duy nht iu khin cc code truy xut n n. Nu h iu hnh chp nhn quy tc: ti mt thi im ch c mt tin trnh c php s dng th tc Echo v th tc ny phi chy cho n khi hon thnh mi c trao cho tin trnh khc. Th li trn s khng cn xut hin na. Vic s dng th tc Echo ca cc tin trnh P1 v P2 c th xy ra theo th t nh sau: 1. Tin trnh P1 gi th tc Echo v b dng li ngay sau khi hm input c thc hin xong. Gi s In = A. 2. Tin trnh P2 c kch hot v gi th tc Echo. Nhng v tin trnh

Chng 2: Qun l Tin trnh

56

P1 cn ang trong th tc ny, cho d ang b treo, nn P2 phi c chuyn sang trng thi blocked ch th tc Echo ri. 3. Mt khong thi gian sau, tin trnh P1 c ti kch hot tr li. P1 tip tc th tc echo cho n khi hon thnh. Tc l, hin th k t A ln mn hnh. 4. Khi kt thc P1 tr li th tc echo. Khi P2 ton quyn s dng th tc Echo nhp v hin th k t ln mn hnh. Trng hp ny khng xy ra li l do tin trnh P2 khng tip tc th tc Echo, mc d gi, v n bit P1 ang trong th tc Echo. Chng ta nn lu iu ny, iu ny s c tho lun trong mc cc phng php iu tin trnh qua on gng ngay sau y. Qua cc v d trn ta thy rng trong cc h thng a chng, a ngi s dng thng xy ra hin tng, nhiu tin trnh ng thi cng c/ghi d liu vo mt vng nh, ni cha cc bin ca chng trnh, v nu khng c s can thip ca h iu hnh th c th gy hu qu nghim trng cho ng dng v cho c h thng. ngn chn cc tnh hung trn h iu hnh phi thit lp c ch c quyn truy xut trn trn ti nguyn dng chung. Tc l, ti mi thi im ch c mt tin trnh duy nht c php truy xut trn cc ti nguyn dung chung. Nu c nhiu tin trnh hot ng ng thi cng yu cu truy xut ti nguyn dng chung th ch c mt tin trnh c chp nhn truy xut, cc tin trnh khc phi xp hng ch c truy xut sau. Chng ta cng thy rng nguyn nhn tim n ca s xung t gia cc tin trnh hot ng ng thi khi s dng ti nguyn gng l: cc tin trnh ny hot ng ng thi vi nhau mt cch hon ton c lp v khng trao i thng tin vi nhau nhng s thc thi ca cc tin trnh ny li nh hng n nhau. Trng hp li trong v d 3 trn minh chng cho iu ny.

II.2.2. on gng (Critical Section)


on code trong cc tin trnh ng thi, c tc ng n cc ti nguyn c th tr thnh ti nguyn gng c gi l on gng hay min gng. Tc l, cc on code trong cc chng trinh dng truy cp n cc vng nh chia s, cc tp tin chia s c gi l cc on gng. Trong v d 2 trn, on code sau y l on gng: { IF (Ti khon - Tin rt >= 0)
Ti khon := Ti khon - Tin rt }

Trong v d 1 trn c hai on gng l: v Count := L1 }. { L1 := Count hn ch cc li c th xy ra do s dng ti nguyn gng, h iu hnh phi iu khin cc tin trnh sao cho, ti mt thi im ch c mt tin trnh nm trong on gng, nu c nhiu tin trnh cng mun vo (thc hin) on gng th ch c mt tin trnh c vo, cc tin trnh khc phi ch, mt tin trnh khi ra khi (kt thc) on gng phi bo cho h iu hnh v/hoc cc tin trnh khc bit cc tin trnh ny vo on gng, vv. Cc cng tc iu khin tin trnh thc hin on gng ca h iu hnh c gi l iu tin trnh qua on gng.

Chng 2: Qun l Tin trnh

57

cng tc iu tin trnh qua on gng c thnh cng, th cn phi c s phi hp gia vi x l, h iu hnh v ngi lp trnh. Vi x l a ra cc ch th, h iu hnh cung cp cc cng c ngi lp trnh xy dng cc s iu hp l, m bo s c quyn trong vic s dng ti nguyn gng ca cc tin trnh. Trong phn sau y chng ta s tm hiu v cc phng php v cc s iu tin trnh qua on gng. Nhng trc ht y chng ta chp nhn mt mu chng trnh c s dng trong cc s iu tin trnh. Mu chng trnh ny mang tnh cht tru tng, dng minh ho cho cc tng iu . Rt t ngn ng lp trnh h tr c pht vit chng trnh iu ny. Mc du cung cp y cc cng c iu tin trnh cho ngi lp trnh, nhng cc h iu hnh hin nay u t chc iu tin trnh ngay trong li (kernel) ca n nn ngi lp trnh t quan tm n t chc iu tin trnh khi lp trnh. Sau y l s iu minh ho:
Program MultualExclution; Const N = .. /*s lng tin trnh */ {--------------------------------------------------} Procedure P(i: integer); Begin Repeat {kim tra v xc lp quyn vo on gng} EnterCritical(R); <on gng ca P>; {xc lp khi ri on gng} ExitCritical(R); <on khng gng ca>; Until .F. End; {---------------------------------------------------} {*chng trnh chnh cha cc tin trnh ng thi*} BEGIN PerBegin P(1); P(2); .. P(n); ParEnd; END. {---------------------------------------------------}

S trn t chc iu cho n tin trnh P, n tin trnh ny hot ng ng thi vi nhau v chia s ti nguyn dng chung R. Mi tin trnh trong trng hp ny c mt on gng vi ti nguyn R. t chc truy xut c quyn trn ti nguyn gng, mi tin trnh trc khi vo on gng tin trnh phi gi th tc EnterCritical thit lp quyn vo on gng, bo cho cc tin trnh bit l tin

Chng 2: Qun l Tin trnh

58

trnh hin ti ang trong on gng. ra khi on gng mi tin trnh phi gi th tc ExitCritical, bo cho cc tin trnh khc bit l tin trnh hin ti ra khi on gng.

II.2.3. Yu cu ca cng tc iu qua on gng


Trc ht chng ta lu li rng, nhim v iu tin trnh phi l s phi hp gi phn cng vi x l, h iu hnh, ngn ng lp trnh v ngi lp trnh, trong nhim v chnh l ca h iu hnh v ngi lp trnh. Vi x l, h iu hnh v ngn ng lp trnh cung cp cc cng c h iu hnh v/hoc ngi lp trnh t chc s iu . H iu hnh s gim st v t chc thc hin cc s iu ny. Cho d nhim v iu l ca thnh phn no, th tt c phi t c cc yu cu sau: 1. Ti mt thi im khng th c hai tin trnh nm trong on gng. 2. Nu c nhiu tin trnh ng thi cng xin c vo on gng th ch c mt tin trnh c php vo on gng, cc tin trnh khc phi xp hng ch trong hng i. 3. Tin trnh ch ngoi on gng khng c ngn cn cc tin trnh khc vo on gng. 4. Khng c tin trnh no c php lu v hn trong on gng v khng c tin trnh phi ch lu mi c vo on gng (ch trong hng i). 5. Nu ti nguyn gng c gii phng th h iu hnh c nhim v nh thc cc tin trnh trong hng i ra to iu kin cho n vo on gng. Trc khi tm hiu v cc gii php iu tin trnh qua on gng chng ta cn lu mt ln na rng: nguyn l c bn ca iu l t chc truy xut c quyn trn ti nguyn gng, nhng s bt buc c quyn ny cn tn ti hai hn ch ln: 1. C th dn n tc nghn (Deadlock) trong h thng. Chng ta s tm hiu v tc nghn sau, by gi chng ta hy xem mt v d v tc nghn: Gi nh c hai tin trnh P1 v P2, v hai ti nguyn gng R1 v R2, mi tin trnh u cn truy xut n m thc hin mt hm ca n. V trng hp sau y hon ton c th xy ra: R1 ang c giao cho P2, R2 c giao cho P1. Mi tin trnh u ch i c s dng ti nguyn th hai. Khng mt tin trnh no gii phng ti nguyn m n ang s hu cho n khi c nhn c ti nguyn cn li v thc hin on gng ca n. C hai tin trnh u b tc nghn. 2. Cc tin trnh c th b i (Stravation) ti nguyn: V d sau y cho thy s i ti nguyn ca cc tin trnh trn h thng: Gi s rng c 3 tin trnh P1, P2, P3, mi tin trnh u cn truy xut nh k n ti nguyn R. Xt trng hp P1 ang s hu ti nguyn cn hai tin trnh P2, P3 phi ch i ti nguyn . Khi m P1 thot khi on gng ca n, c P2 ln P3 u c th c chp nhn truy xut n R. Gi s rng P3 c truy xut R, sau trc khi P3 kt thc on gng ca n P1 li mt ln na cn truy xut, v gi nh P1 c truy xut sau khi P3 kt thc on gng, v nu nh P1, P3 thay nhau nhn c quyn truy xut th P2 hu nh khng th truy cp n ti nguyn, cho d khng c s tc
Chng 2: Qun l Tin trnh

59

nghn no xy ra.

II.3. iu tin trnh qua on gng


II.3.1. Cc gii php phn cng
II.3.2.a. Dng cp ch th STI & CLI Mt s vi x l cung cp cp ch th CLI v STI ngi lp trnh thc hin cc thao tc m ngt (STI: Setting Interrupt) v cm ngt (CLI: Clean Interrupt) ca h thng trong lp trnh. Ngi lp trnh c th dng cp ch th ny t chc iu cho cc tin trnh nh sau: Trc khi vo on gng tin trnh thc hin ch th CLI, yu cu cm cc ngt trong h thng, khi ngt ng h khng th pht sinh, ngha l khng c mt tin trnh no khc c th pht sinh, nh m tin trnh trong on gng ton quyn s dng ti nguyn gng cho n ht thi gian x l ca n. Khi kt thc truy xut ti nguyn gng, tin trnh ra khi on gng, tin trnh thc hin ch th STI cho php ngt tr li. Khi cc tin trnh khc c th tip tc hot ng v c th vo on gng. Trong s iu ny tin trnh Pi c vit nh sau:
Procedure P(i: integer); Begin Repeat {cm ngt trc khi vo on gng} CLI; <on gng ca P>; {m ngt khi ra khi on gng } STI; <on khng gng>; Until .F. End; {-----------------------------------------------}

S trn cho thy, khi tin trnh trong on gng n khng h b ngt, do cm ngt pht sinh, nn n c c quyn s dng ti nguyn gng cho n khi ra khi on gng. S iu ny n gin, d ci t. Tuy nhin, cn phi c s h tr ca vi x l v d gy ra hin tng treo ton b h thng, khi tin trnh trong on gng khng c kh nng ra khi on gng. Tin trnh khng ra khi on gng nn n khng th thc hin ch th STI m ngt cho h thng, nn h thng b treo hon ton. Gii php ny khng th s dng trn cc h thng multiprocessor, v CLI ch cm ngt trn vi x l hin ti ch khng th cm ngt ca cc vi x l khc. Tc l, sau khi cm ngt, tin trnh trong on gng vn c th b tranh chp ti nguyn gng bi cc tin trnh trn cc vi x l khc trong h thng. II.3.2.b. Dng ch th TSL (Test and set) Trong v d 2 trn ta thy, nguyn nhn ca li l do hai thao tc kim tra ti khon v rt tin, b tch ri nhau. t chc iu cho nhng trng hp nh vy, mt s vi x l cung cp mt ch th c bit cho php kim tra v cp nht ni
Chng 2: Qun l Tin trnh

60

dung mt vng nh trong mt thao tc khng th phn chia c, gi l Test and Set lock (TSL). TSL c nh ngha nh sau :
Function TestAndSetLock(Var I:Integer):Boolean; Begin IF I = 0 Then Begin {hai lnh ny khng} I := 1; TestAndSetLock:=True; {th tch ri} End Else TestAndSetLock := False End; {-------------------------------------------------}

t chc iu tin trnh vi TSL chng trnh phi s dng bin chia s Lock, khi gn bng 0. Theo , mi tin trnh trc khi vo on gng phi kim tra gi tr ca Lock. Nu Lock = 0 th vo on gng. Nu Lock = 1 th phi i cho n khi Lock = 0. Nh vy, trc khi vo on gng tin trnh phi gi hm TestAndSetLock, kim tra gi tr tr v ca hm ny: Nu bng False, l ang c mt tin trnh trong on gng, th phi ch cho n khi hm tr v True, c mt tin trnh va ra khi on gng. Nu bng True, th tin trnh s vo on gng s dng ti nguyn gng. Khi kt thc s dng ti nguyn gng ra khi on gng th tin trnh phi t li ga tr ca Lock, Lock = 0, cc tin trnh khc c th vo on gng. Nn nh rng TestAndSetLock l ch th ca processor, nn h thng t chc thc hin c quyn cho n. Tc l, cc thao tc m h thng phi thc hin trong ch th ny l khng th tch ri nhau. Trong s iu ny tin trnh P c vit nh sau:
Procedure P(Lock: integer); Begin Repeat While (TestAndSetlock(lock)) DO; <on gng ca P>; Lock:= 0; <on khng gng>; Until .F. End; {---------------------------------------------}

S ny n gin, d ci t nhng cn phi c s h tr ca vi x l. Ngoi ra n cn mt hn ch ln l gy lng ph thi gian x l ca processor do tn ti hin tng ch i tch cc trong s (While (TestAndSetlock(lock)) DO;). Hin tng ch i tch cc l hin tng processor ch ch mt s kin no xy ra m khng lm g c.

Chng 2: Qun l Tin trnh

61

Tm li: Vic s dng cc ch th phn cng c bit t chc iu tin trnh qua on gng, hay cn gi l t chc truy xut c quyn trn ti nguyn gng, c nhng thun li v bt li sau y: Thun li: N thch hp vi mt s lng bt k cc tin trnh c trn h h thng Uniprocessor v h thng Multiprocessor. N kh n gin cho nn d xc nh chnh xc. N c th c s dng h tr cho nhiu on gng; mi on gng c th nh ngha cho n mt bin ring. Bt li: Trong khi mt tin trnh ang ch i c vo on gng th n tip tc lm tn thi gian x l ca processor, m ta gi l ch i tch cc. S i ti nguyn c th xy ra. Khi mt tin trnh ri khi mt on gng, b phn iu tin trnh phi chn mt tin trnh trong s nhiu tin trnh ngoi on gng cho n vo on gng. Vic chn ny c th dn n hin tng c mt tin trnh i mi m khng th vo on gng c. S tc nghn c th xy ra. Hy xt mt tnh hung trn mt h thng uniprocessor. Tin trnh P1 thc thi ch th c bit (TesAndSetLock, Exchange) v vo on gng ca n. P1 sau b ngt nhng processor cho P2, P2 l tin trnh c u tin cao hn. Nu nh P2 cng nh s dng ti nguyn nh P1, P2 s b t chi truy xut bi v c ch c quyn. Do P2 s i vo vng lp busywaitting. Tuy nhin, P1 s khng bao gi c cp processor tip tc v n c u tin thp hn so vi P2.

II.3.2. Cc gii php dng bin kho


II.3.3.a. Dng bin kho chung Xut pht t nguyn tc c bn ca t chc c quyn l, ti mi thi im ch c duy nht mt tin trnh c th truy xut n mt vng nh chia s, cc h iu hnh s dng bin kho chung t chc truy xut c quyn trn ti nguyn gng. Phng php ny cn gi l phng php Busy and Waitting (bn v i), n c nh ton hc ngi H Lan tn l Dekker xut. Vi mi ti nguyn gng, h iu hnh dng mt bin chung iu khin vic s dng ti nguyn ny ca cc tin trnh ng thi. Tm gi l bin chung ny l Lock, Lock c chia s cho nhiu tin trnh v c khi gn = 0. Theo , mi tin trnh trc khi vo on gng phi kim tra gi tr ca Lock: Nu Lock = 1, tc l c tin trnh no trong on gng, th tin trnh phi ch cho n khi Lock = 0 (c th chuyn sang trng thi blocked ch). Nu Lock = 0, tc l khng c tin trnh no trong on gng, th tin trnh thit lp quyn vo on gng, t Lock = 1, v vo on gng. Tin trnh va ra khi on gng phi t Lock = 0, cc tin trnh khc c th vo on gng. Trong s iu ny tin trnh P c vit nh sau:
Chng 2: Qun l Tin trnh

62

Procedure P(Lock: integer); Begin Repeat

While Lock = 1 DO ;
Lock :=1; <on gng ca P>; Lock:= 0; <on khng gng>; Until .F.

{i cho n khi Lock = 0} {thit lp quyn vo on gng} {vo on gng} {thng bo l ri on gng }

End; {------------------------------------------------}

S iu dng bin kho chung ny n gin, d xy dng nhng vn xut hin hin tng ch i tch cc, khi ch cho n khi Lock = 0 (While Lock = 1 DO;). Hin tng ch i tch cc gy lng ph thi gian ca processor. Nu mt tin trnh trong on gng khng th ra khi on gng, th cc tin trnh ch ngoi on gng c th ch i v hn (v Lock khng c t li = 0). II.3.3.b. Dng bin kho ring khc phc hn ch ca phng php dng bin chung, cc h iu hnh c th dng gii php bin ring t chc iu tin trnh. Mi tin trnh s dng mt bin kho Lock ring, tng ng vi mt ti nguyn gng trong h thng. Bin kho ring ca tt c cc tin trnh u c khi gn bng 0, tc l cha vo on gng Theo , mi tin trnh trc khi vo on gng ng vi mt ti nguyn gng no th trc ht phi kim tra bin kho ring, tng ng vi ti nguyn gng m tin trnh mun truy xut, ca tt c cc tin trnh cn li: Nu tn ti mt bin kho ring ca mt tin trnh no bng 1, Lock = 1, tc l c mt tin trnh no trong on gng, th tin trnh phi ch ngoi on gng cho n khi tt c bin kho ring = 0. Nu tt c cc bin kha ring ca cc tin trnh u = 0, Lock = 0, tc l khng c tin trnh no trong on gng, th tin trnh thit lp quyn vo on gng, t Lock = 1, v vo on gng. Tin trnh va ra khi on gng phi t Lock = 0, cc tin trnh khc c th vo on gng. Sau y l s iu dng bin kho ring cho hai tin trnh ng thi P1 v P2. Hai tin trnh ny dng hai bin kho ring l Lock1 v Lock2:
Program MultualExclution; Const N:2; Var Lock1, Lock2: byte; BEGIN Lock1 = 0; Lock2 = 0; ParBegin

Chng 2: Qun l Tin trnh

63

P1: Repeat

{tin trnh P1} {P2 ang trong on gng }

While Lock2 = 1 Do ;

Lock1 := 1; {P1 thit lp quyn vo on gng} <on gng ca P1>; {P1 ra khi on gng} Lock1 := 0; <on khng gng ca P1>; Until .F. {tin trnh P2} P2: Repeat

While Lock1 = 1 Do;

{P1 ang trong on gng }

{P2 thit lp quyn vo on gng} Lock2 := 1; <on gng ca P2>; {P2 ra khi on gng} Lock2 := 0; <on khng gng ca P2>; Until .F.

ParEnd END. {--------------------------------------------------------}

S ny n gin d ci t. Mt tin trnh no ngoi on gng b blocked s khng ngn cn c cc tin trnh khc vo on gng, nhng nu tin trnh trong on gng b li khng th ra khi on gng , Lock lun lun = 0, th cc tin trnh khc s khng c quyn vo on gng. Phng php ny vn cn tn ti hin tng ch i tch cc v s iu s tr nn phc tp khi c nhiu hn hai tin trnh mun vo on gng. S ny c th xy ra mt li nghim trng l: C th c hai tin trnh cng nm trong on gng. Nguyn nhn ca li ny l do vic kim tra quyn vo on gng v v vic xc lp quyn vo on gng ca tin trnh b tch ri khi thc hin. Tc l, P1 v P2 c th b iu phi thc hin theo th t sau: 1. P1 c cp processor: P1 thc thi vng lp While v tm xem th Lock2 = 1 khng. Khi P1 va nhn thy Lock2 = 0, th b thu hi processor. 2. P2 c cp processor: P2 thc thi vng lp While v tm xem th Lock1 = 1 khng. Khi P2 va nhn thy Lock1 = 0, th b thu hi processor. 3. P1 c cp processor tr li: P1 khng kim tra li Lock2 m ch t Lock1 = 1 v vo on gng ca n. Khi va vo on gng th b thu hi processor. 4. P2 c cp processor tr li: P2 khng kim tra li Lock1 m ch t Lock2 = 1 v vo on gng ca n. R rng vi thc t ny th c P1 v P2 u nm trong on gng. V chng ta bit iu g s xy ra khi hai tin trnh ng thi truy xut ti nguyn gng trong cc v d v ti nguyn gng trn. Nhiu nh thit k h iu hnh ci tin s iu trn khc phc

Chng 2: Qun l Tin trnh

64

hn ch trn y v mt s hn ch khc ca n.

II.3.3. Cc gii php c h tr bi h iu hnh v ngn ng lp trnh


Cc gii php trn tn ti hin tng ch i tch cc, gy lng ph thi gian x l ca processor. iu ny c th khc phc bng mt nguyn tc rt c bn: nu mt tin trnh khi cha iu kin vo on gng th c chuyn ngay sang trang thi blocked n tr li processor cho h thng, h thng cp cho tin trnh khc. thc hin c iu ny cn phi c s h tr ca h iu hnh v cc ngn ng lp trnh cc tin trnh c th chuyn trng thi ca n. Hai th tc Sleep v Wakeup c h iu hnh cung cp s dng cho mc ch ny: Khi tin trnh cha iu kin vo on gng n s thc hin mt li gi h thng gi Sleep chuyn n sang trng thi blocked, v tin trnh c gi ny a vo hng i i cho n khi c mt tin trnh khc gi th tc Wakeup gii phng n ra khi hng i v c th a n vo on gng. Mt tin trnh khi ra khi on gng phi gi Wakeup nh thc mt tin trnh trong hang i blocked ra to iu khin cho tin trnh ny vo on gng. Nh vy gii php ny c p dng trn nhm cc tin trnh hot ng ng thi c trao i thng tin vi nhau, v cc tin trnh phi hp thc vi nhau hon thnh nhim v. Cc tin trnh ny lin lc vi nhau bng cch gi tn hiu cho nhau. Mt tin trnh trong h thng ny c th b buc phi dng (b blocked) cho n khi nhn c mt tn hiu no t tin trnh bn kia, l tin trnh hp tc vi n. Thc t ch ra c rng, nu ch dng hai th tc trn th s iu s khng p ng c cc yu cu ca cng tc iu , do khi ci t cc h iu hnh ch s dng tng ca Sleep v Wakeup. Sau y l cc gii php s dng tng ca Sleep v Wakeup. II.3.3.a. Gii php dng Semaphore (n bo) Gii php ny c Dijkstra xut vo nm 1965. Semaphore c nh ngha s dng trong cc s iu nh sau: Semaphore S l mt bin nguyn, khi gn bng mt gi tr khng m, l kh nng phc v ca ti nguyn gng tng ng vi n. ng vi S c mt hng i F(s) lu cc tin trnh ang b blocked trn S. Ch c hai thao tc Down v Up c tc ng n semaphore S. Down gim S xung mt n v, Up tng S ln mt n v. Mi tin trnh trc khi vo on gng th phi gi Down kim tra v xc lp quyn vo on gng. Khi tin trnh gi Down(S) th h thng s thc hin nh sau: S := S -1, nu S > = 0 th tin trnh tip tc x l v vo on gng, nu S < 0 th tin trnh phi vo hng i ch cho n khi S > = 0. Down c ci t nh sau:
Procedure Down(s); Begin

Chng 2: Qun l Tin trnh

65

S := S -1; If S < 0 Then Begin Status(p)= blocked; Enter(p, F(s)); end; End;

{S >= 0 th tip tc} {chuyn tin trnh sang blocked} {a tin trnh vo hng i F(S)}

Mi tin trnh ngay sau khi ra khi on gng phi gi Up kim tra xem c tin trnh no ang i trong hng i hay khng, nu c th a tin trnh trong hng i vo on gng. Khi tin trnh gi Up th h thng s thc hin nh sau: S:= S + 1, nu S <= 0 a mt tin trnh trong F(s) vo on gng. Up c ci t nh sau:
Procedure Up(s); Begin S := S + 1; If S <= 0 Then Begin Exit(Q,F(s) ); Status(Q) = ready ; Enter(Q, ready-list ); End; End;

{a tin trnh ra khi F(S)} {chuyn tin trnh sang ready} {a tin trnh vo ready list}

Sau y l s iu dng Semaphore cho 2 tin trnh P1 v P2, hai tin trnh ny hot ng ng thi cng truy xut n ti nguyn gng tng ng vi semaphore S. Ti nguyn gng ny ch c th p ng cho mt tin trnh ti mt thi im nn S c khi gn bng 1.
Program MultualExclution; Const n = 2; Var s: semaphore; {-------------------------------------} Procedure P(i:Integer); Begin Repeat {kim tra v xc lp quyn vo on gng} Down(s); <on gng>; {ri on gng v kch hot tin trnh khc} Up(s); <on khng gng>; Until .F.; End; {------------------------------------------} BEGIN

Chng 2: Qun l Tin trnh

66

S := 1;
ParBegin P(1); P(2); ParEnd; END. {-------------------------------------------}

y chng ta cn lu rng: Down v Up l cc th tc ca h iu hnh, nn h iu hnh ci t c ch c quyn cho n, tc l cc lnh bn trong n khng th tch ri nhau. Nu iu ny khng c thc hin th s ny tr nn v ngha. Hai th tc Down(S) v Up(S) m chng ti a ra trn ch minh ha cho nguyn l hot ng ca Down v Up. S dng semaphore iu tin trnh, mang li nhng thun li sau: Mi tin trnh ch kim tra quyn vo on gng mt ln, khi ch n khng lm g c, tin trnh ra khi on gng phi nh thc n. Khng xut hin hin tng ch i tch cc, nn khai thc ti a thi gian x l ca processor. Nh c ch hng i m h iu hnh c th thc hin gn u tin cho cc tin trnh khi chng trong hnh i. Tr tuyt i ca S cho bit s lng cc tin trnh ang i trn F(S). Nn nh rng, Down v Up l cc th tc ca h iu hnh nn s iu s b thay i khi thay i h iu hnh. y l mt tr ngi ca vic s dng semaphore t chc iu tin trnh. Cc v d sau y thay cho s gii thch v s iu trn: V d 1: S thc hin ca hai tin trnh P1 v P2 trong s iu trn
P thc hin Down/Up S Trng thi ca P1/P2

1. 2. 3. 4. 5.

P1 P2 P1 P1 P2

Down(S) Down(S) Up(S) Down(S) Down(S)

1 0 -1 0 -1 0

P1 hot ng P2 ch P2 hot ng P1 ch P1 hot ng

V d 2: Nu trong h thng c 6 tin trnh hot ng ng thi, cng s dng ti nguyn gng, ti nguyn gng ny ch cho php mt tin trnh truy xut n n ti mt thi im. Tc l h iu hnh phi t chc truy xut c quyn trn ti nguyn gng ny. Th t yu cu s dng ti nguyn gng ca cc tin trnh, cng vi thi gian m tin trnh cn processor khi n trong on gng (cn ti nguyn gng) v u tin ca cc tin trnh, c m t nh sau: C 6 tin trnh yu cu s dng ti nguyn gng tng ng vi S ln 67

Chng 2: Qun l Tin trnh

lt l: A B C D E u tin ca cc tin trnh l (5 l u tin cao nht): 1 1 2 4 2 Thi gian cc tin trnh cn s dng ti nguyn gng l: 4 2 2 2 1

F 5 1

Nu dng s iu semaphore trn t chc iu cho 6 tin trnh ny th ta c c bng m t s thc hin ca cc tin trnh A, B, C, D, E, F nh sau: T 0 1 2 3 4 5 6 7 8 9 10 11 12 Down/ Up Down Down Down Down Up Down Up Down Up Up Up Up Tin trnh thc hin A B C D A E D F C F E B S 1 0 -1 -2 -3 -2 -3 -2 -3 -2 -1 0 1 A A A A D D C C F E B Tin trnh hot ng Cc tin trnh trong hng i B C B D C B C B C E B E B F E B E B B -

Bng trn lu vi chng ta hai iu. Th nht, tr tuyt i ca S cho bit s lng cc tin trnh trong hnh i F(S). Th hai, tin trnh cha c vo on gng th c a vo hng i v tin trnh ra khi on gng s nh thc tin trnh c u tin cao nht trong hnh i a n vo on gng. Tin trnh c a vo hng i sau nhng c u tin cao hn s c a vo on gng trc cc tin trnh c a vo hng i trc n. II.3.3.b. Gii php dng Monitors Gii php ny c Hoar xut nm 1974 sau vo nm 1975 c Brinch & Hansnen xut li. Monitor l cu trc phn mm c bit c cung cp bi ngn ng lp trnh, n bao gm cc th tc, cc bin v cc cu trc d liu c nh ngha bi Monitor. Monitor c nh ngha trong cc ngn ng lp trnh nh pascal+, Modula2, Modula-3. Monitor ca Hoar c cc tnh cht sau y: 1. Cc bin v cu trc d liu bn trong monitor ch c th c thao tc bi cc th tc c nh ngha bn trong monitor . 2. Mt tin trnh mun vo monitor phi gi mt th tc ca monitor . 3. Ti mt thi im, ch c mt tin trnh duy nht c hot ng bn trong monitor. Cc tin trnh khc gi monitor phi hon li ch monitor rnh.

Chng 2: Qun l Tin trnh

68

Hai tnh cht 1 v 2 tng t nh cc tnh cht ca cc i tng trong lp trnh hng i tng. Nh vy mt h iu hnh hoc mt ngn ng lp trnh hng i tng c th ci t monitor nh l mt i tng c cc tnh cht c bit. Vi tnh cht th 3 monitor c kh nng thc hin cc c ch c quyn, cc bin trong monitor c th c truy xut ch bi mt tin trnh ti mt thi im. Nh vy cc cu trc d liu dng chung bi cc tin trnh c th c bo v bng cch t chng bn trong monitor. Nu d liu bn trong monitor l ti nguyn gng th monitor cung cp s c quyn trong vic truy xut n ti nguyn gng . Monitor cung cp cc cng c ng b ho ngi lp trnh s dng trong cc s iu . Cng c ng b ho c nh ngha s dng trong cc s iu nh sau: Trong mt monitor, c th nh ngha cc bin iu kin v hai thao tc km theo l Wait v Signal, ch c wait v signal c tc ng n cc bin iu kin. Gi s C l bin iu kin c nh ngha trong monitor. Wait(c): khi mt tin trnh gi wait, th wait s chuyn tin trnh gi sang trng thi blocked, v t tin trnh ny vo hng i trn bin iu kin c. Wait c ci t nh sau:
Procedure Wait(c); Begin Status(p) = blocked; Enter(p,f(c)); End;

Signal(c): khi mt tin trnh gi signal, th signal s kim tra trong hng i ca c c tin trnh no hay khng, nu c th ti kch hot tin trnh , v tin trnh gi signal s ri khi monitor. Signal c ci t nh sau:
Procedure Signal(c); Begin If f(c) <> Null Then Begin {Q l tin trnh ch trn C} Exit(Q,f(c)); Status(Q) = ready; Enter(Q,ready-lits); end; End,

Trnh bin dch chu trch nhim thc hin vic truy xut c quyn n d liu trong monitor. thc hin iu ny, h iu hnh dng mt semaphore nh phn. Mi monitor c mt hng i ton cc lu cc tin trnh ang ch c vo monitor, ngoi ra mi bin iu kin c cng gn vi mt hng i F(c). Vi mi nhm ti nguyn gng, c th nh ngha mt monitor trong c t tt c cc thao tc trn ti nguyn ny vi mt s iu kin no . Sau y l 69

Chng 2: Qun l Tin trnh

cu trc mt Monitor. Sau y l cu trc ca monitor:


Monitor <Tn monitor> Condition <Danh sch cc bin iu kin>; {------------------------------------------------------} {thao tc i} Procdure Action1(); Begin ...... End; {---------------------------} Procedure Actionn(); Begin ...... End; {---------------------------} End monitor;
{thao tc n}

Mi tin trnh mun s dng ti nguyn gng ch c th thao tc thng qua cc th tc bn trong monitor. Sau y l s iu s dng monitor cho 2 tin trnh P1 v P2.
Program MultualExclution; Monitor . Endmonitor; {monitor c nh ngha nh trn} {------------------------------------} BEGIN ParBegin P1: Repeat <on khng gng ca P1>;

<monitor>.Actioni;
<on khng gng ca P1>; Until .F. P2: Repeat <on khng gng ca P2>;

{on gng ca P1};

<monitor>.Actionj ;
<on khng gng ca P2>; Until .F. Parend

{on gng ca P2};

END. {----------------------------------------------------------------}

Vi monitor, vic t chc truy xut c quyn c trnh bin dch thc hin, nn n n gin hn cho ngi lp trnh. Tuy nhin hin nay rt t ngn ng lp trnh h tr cu trc monitor cho lp trnh.

Chng 2: Qun l Tin trnh

70

II.3.3.c. Gii php trao i Message (thng ip) Khi cc tin trnh c s tng tc vi tin trnh khc, hai yu cu c bn cn phi c tha mn l: s ng b ho (synchronization) v s truyn thng (communication). Cc tin trnh phi c ng b thc hin c quyn. Cc tin trnh hp tc c th cn phi trao i thng tin. Mt hng tip cn cung cp c hai chc nng l s truyn thng ip (message passing). Truyn thng ip c u im l c th thc hin c trn c hai h thng uniprocessor v multiprocessor, khi cc h thng ny hot ng trn m hnh b nh chia s Cc h thng truyn thng ip c th c nhiu dng. Trong phn ny chng ti gii thiu mt dng chung nht m trong cp n cc c trng c trong nhiu h thng khc nhau. Cc hm ca truyn thng ip trn thc t c dng tng t nh hai hm sau: Send(destination, message): gi thng ip n tin trnh ch. Receive(source, message): nhn thng ip t tin trnh ngun. Mt tin trnh gi thng tin di dng mt thng ip (message) n mt tin trnh khc, bng hm Send, c nhn bit bi tham s destination. Mt tin trnh nhn thng ip (message), bng hm Receive, t mt tin trnh c nhn bit bi tham s source. Tin trnh gi Receive phi ch cho n khi nhn c message t tin trnh source th mi c th tip tc c. Vic s dng Send v Receive t chc iu c thc hin nh sau: C mt tin trnh kim sot vic s dng ti nguyn gng. C nhiu tin trnh khc yu cu s dng ti nguyn gng ny. Tin trnh c yu cu ti nguyn gng s gi mt thng ip n tin trnh kim sot v sau chuyn sang trng thi blocked cho n khi nhn c mt thng ip chp nhn cho truy xut t tin trnh kim sot ti nguyn gng. Khi s dng xong ti nguyn gng, tin trnh va s dng ti nguyn gng gi mt thng ip khc n tin trnh kim sot bo kt thc truy xut. Tin trnh kim sot, khi nhn c thng ip yu cu ti nguyn gng, n s ch cho n khi ti nguyn gng sn sng cp pht th gi mt thng ip n tin trnh ang b kho trn ti ngyn nh thc tin trnh ny. Trong s iu dng message tin trnh P c vit nh sau:
Procedure P(i: Integer); Begin Repeat Send(process controler, request message); Receive(process controler, accept message ); <on gng ca P>; Send(process controler ,end message); <on khng gng ca P>;

Chng 2: Qun l Tin trnh

71

Until .F. End; {----------------------------------------------------------------------}

Gii php ny thng c ci t trn cc h thng mng my tnh, c bit l trn cc h thng mng phn tn. y l li th m semaphore v monitor khng c c. S iu dng message phi ch s ng b gia cc tin trnh nhn v gi message, nu khng cc tin trnh ny s khng thot khi trng thi blocked tip tc c. iu ny cng c ngha l cng tc iu c th khng thnh cng mc d s iu c t chc rt tt. Sau y chng ta s xem xt v s ng b gi tin trnh send v tin trnh receiver trong trng hp ny. II.3.4. Hai bi ton iu phi lm v d Bi ton 1: Gi s c mt ng dng, tm gi l n dng Producer/Consumer, trong h thng a nhim a ngi s dng. ng dng ny c hai tin trnh chnh l, tin trnh ngi sn xut (Producer) v tin trnh ngi tiu th (Consumer), hai tin trnh ny hot ng ng thi vi nhau v cng chia s mt b m (Buffer) c kch thc gii hn, ch c 3 phn t. Tin trnh Producer to ra d liu v t vo Buffer, tin trnh Consumor nhn d liu t Buffer ra x l. R rng h thng ny cn phi c cc rng buc sau: 1. Hai tin trnh Producer v Consumer khng c ng thi truy xut Buffer (Buffer l ti nguyn gng). 2. Tin trnh Producer khng c ghi d liu vo Buffer khi Buffer b y. 3. Tin trnh Consumer khng c c d liu t Buffer khi Buffer rng. Hy dng cc gii php Semafore, Monitor, Message t chc iu cho cc tin trnh Producer v Consumer trong bi ton trn. II.3.4.1. Gii php dng Semaphore Vi gii php ny s iu phi s dng 3 Semaphore: Full: dng theo di s ch c d liu trong b m, n c khi gn bng 0. Tc l, ban u Buffer rng. Empty: dng theo di s ch cn trng trn b m, n c khi gn bng 3. Tc l, ban u Buffer khng cha mt phn t d liu no. Mutex: dng kim tra truy xut ng thi trn b m, n c khi gn bng 1. Tc l, ch c 1 tin trnh c php truy xut buffre. S iu s nh sau:
Program Producer/Consumer; Var Full, Empty, Mutex: Semaphore; {----------------------------------------------} Procedure Producer(); Begin Repeat

Chng 2: Qun l Tin trnh

72

< To d liu>; Down(empty); {kim tra xem buffer cn ch trng ?} {kim tra v xc lp quyn truy xut Buffer} Down(mutex); <t d liu vo Buffer>; {kt thc truy xut buffer} Up(mutex); Up(Full); { c 1 phn t d liu trong Buffer} Until .F. End; {----------------------------------} Procedure Consumer(); Begin Repeat {cn phn t d liu trong Buffer?} Down(full); Down(mutex); {kim tra v xc lp quyn truy xut Buffer} <Nhn d liu t m>; {kt thc truy xut buffer} Up(mutex); Up(empty); { ly 1 phn t d liu trong Buffer} Until .F. End; {---------------------------------------------} BEGIN Full = 0; Empty = 3; Mutex = 1; Produc er(); Consumer(); END. {----------------------------------------------}

II.3.4.2. Gii php dng Monitor Vi gii php ny ngi lp trnh phi nh ngha mt monitor, c tn l ProducerConsumer, trong c hai th tc Enter v Remove, dng thao tc trn Buffer. X l ca cc th tc ny ph thuc vo cc bin iu kin full v empty. Full v Emtry c quy nh nh s dng nh trong gii php semaphore. S iu s nh sau:
Program Producer/Consumer;

Monitor ProducerConsumer;
Condition Full, Empty; { m s phn t liu c a vo Buffer} Var Count: Integer; {s phn t ca Buffer} N: Interger; { ---------------------------------} Procedure Enter(); Begin Chng 2: Qun l Tin trnh

73

If Count = N Then Wait(Full); <t d liu vo m>; Count := Count + 1; If Count = 1 Then Signal(Empty); End; {---------------------------------------------------} Procedure Remove(); Begin If Count = 0 Then Wait(Empty); <Nhn d liu t m>; Count := Count - 1; If Count = N - 1 Then Signal(Full); End;

{nu Buffer y th i } {Buffer rng} {nu Buffer khng rng th} {bo cho consumer bit}

{nu Buffer rng th i y}

{nu Buffer khng yf th} {bo cho producer}

Endmonitor;
{------------------------------------------------------}

BEGIN
Count = 0; N = 3;

ParBegin
Procedure Producer(); Begin Repeat <To d liu>; Producer/Consumer.Enter; Until .F. End; {----------------------------------------} Procedure Consumor(); Begin Repeat Producer/Consumer.Remove; <X l d liu>; Until .F.

End; Parend
END. {--------------------------------------}

II.3.4.3. Gii php dng Message Vi gii php ny chng trnh dng thng ip empty. Empty hm c mt ch trng. Buffer. Khi khi to tin trnh Consumer gi ngay N thng ip empty n 74

Chng 2: Qun l Tin trnh

tin trnh Producer. Tin trnh Producer to ra mt d liu mi v ch n khi nhn c mt thng ip empty t consumer th gi ngc li cho Consumer mt thng ip c cha d liu m n to ra. Sau khi gi i thng ip Emtry, tin trnh consumer s ch nhn thng ip cha d liu t tin trnh producer. Sau khi x l xong d liu th consumer gi li mt thng ip empty n tin trnh producer. S iu s nh sau:
Program Producer/Consumer; Var Buffersize: integer; M, m: Message; { -------------------------------------}

{kch thc Buffer}

BEGIN
Buffersize = N;

ParBegin
Procedure Producer(); Begin Repeat <To d liu>; Receive(Consumer,m); <To thng ip d liu> Send(Consumer,m) Until .F. End; { ----------------------------------------} Procedure Consumer () Var I:integer; Begin For I := 0 to N Do Send(Producer ,m); Repeat Receive(Producer ,m); <Ly d liu t thng ip> Send (Producer,m); <X l d liu > Until .F. End.

Parend END.
{--------------------------------------------------------}

Bi ton 2: Trong mi trng h iu hnh a nhim, c th tn ti cc file chia s, c th l cc file c s d liu. Nhiu tin trnh hot ng ng thi trong
Chng 2: Qun l Tin trnh

75

h thng c th c chia s s dng mt file c s d liu ny. Tin trnh cn c ni dung ca file c s d liu c gi l l tin trnh Reader. Tin trnh cn cp nht thng tin vo file c s d liu c gi l l tin trnh Writer. Trong h thng ny, cng tc iu tin trnh cn phi thc hin cc rng buc sau: 1. C th c nhiu tin trnh Reader ng thi c file c s d liu. 2. Khng cho php mt tin trnh Writer ghi vo c s d liu khi cc tin trnh Reader khc ang c c s d liu. 3. Ch c duy nht mt tin trnh Writer c php ghi vo file c s d liu Hy dng cc gii php Semafore, Monitor, Message t chc iu cho cc tin trnh Reader v Writer trong bi ton trn. II.3.4.4. Gii php dng Semaphore Gii php ny s dng mt bin chung RC v hai semaphore l Mutex v DB. RC (readcount) dng ghi nhn s lng cc tin trnh Reader mun truy xut file c s d liu, khi gn bng 0. Mutex: dng kim sot truy xut n RC, khi gn bng 1. DB: dng kim tra s truy xut c quyn n c s d liu, khi gn bng 1. Sau y l s iu :
Program Producer/Consumer; Const Mutex: Seamafore = 1; Db : Seamafore = 1; Rc : byte = 0; {------------------------------------}

BEGIN ParBegin
Procedure Reader(); Begin Repeat Down(mutex); Rc = Rc+1; If Rc = 1 then Down(db); Up(mutex); <c d liu >; Down(mutex) Rc = Rc-1 If Rc = 0 then Up(db); Up(mutex); < X l d liu c c>

{chm dt truy xut Rc}

Chng 2: Qun l Tin trnh

76

Until .F. End; {--------------------------------------------} Procedure Writer(); Begin Repeat <To d liu >; Down(Db); <cp nhn d liu > Up(db); Until .F. End;

ParEnd End.
{--------------------------------------------} II.3.4.5. Gii php dng Monitor

Gii php ny s dng mt bin chung RC, ghi nhn s lng cc tin trnh reader mun truy xut c s d liu. Tin trnh Writer phi chuyn sang trng thi kho nu RC > 0. Khi ra khi on gng tin trnh Reader cui cng s nh thc tin trnh Write ang b kho. Sau y l s d iu :
Program Producer/Consumer; Monitor Readerwriter Condition Okwrite,Okread Var Rc: integer; Busy: boolean = False; {-------------------------------------} Procedure Beginread() Begin If (busy) then wait(okread); Rc = Rc+1; Signal(okread); End; Procedure Finishread() Begin Rc = Rc - 1; If Rc = 0 Then Wait(okwrite); End;

Chng 2: Qun l Tin trnh

77

Procedure Beginwrite(); Begin Rc = Rc - 1; If (busy) or (Rc <> 0) Then Wait(okwrite); Busy = True; End; Procedure FinishWrite() Begin Busy = False; If (Okread) Then Signal(okread) Else Signal(okwrite); End; Endmonitor. {------------------------------------------------------------}

BEGIN ParBegin
Procedure Reader (); Begin Repeat ReaderWriter.BeginRead(); <c d liu> ReaderWriter.FinishRead(); Until .F. End; Procedure Writer (); Begin Repeat ReaderWriter.BeginWrite(); <c d liu> ReaderWriter.FinishWrite(); Until .F. End;

Parend END.
{------------------------------------------------}

II.3.4.6. Gii php dng Message Gii php ny cn phi c mt tin trnh Sever iu khin vic truy xut c s d liu. Cc tin trnh Writer v Reader gi cc thng ip yu cu truy xut n server v nhn t Sever cc thng ip hi p tng ng.

Chng 2: Qun l Tin trnh

78

S iu s nh sau:
Program Producer/Consumer;

Begin ParBegin
Procedure Reader(); Begin Repeat Send (Sever,Requesread); Receive(sever,value); Print(value); Until .F. End; Procedure Writer(); Begin Repeat <To d liu>; Send (Sever, Requeswrite,value); Receive(sever, okwrite); Until .F. End;

ParEnd End.
{--------------------------------------------------}

II.4. Tc nghn (Deadlock) v chng tc nghn


II.4.1. Tc nghn
Tt c hin tng tc nghn u bt ngun t s xung t v ti nguyn ca hai hoc nhiu tin trnh ang hot ng ng thi trn h thng. Ti nguyn y c th l mt a, mt record trong c s d liu, hay mt khng gian a ch trn b nh chnh. Sau y l mt s v d minh ho cho iu trn. V d 1: Gi s c hai tin trnh P1 v P2 hot ng ng thi trong h thng. Tin trnh P1 ang gi ti nguyn R1 v xin c cp R2 tip tc hot ng, trong khi tin trnh P2 ang gi ti nguyn R2 v xin c cp R1 tip tc hot ng. Trong trng hp ny c P1 v P2 s khng tip tc hot ng c. Nh vy P1 v P2 ri vo trng thi tc nghn. V d ny c th c minh ho bi s hnh 2. Tc nghn thng xy ra do xung t v ti nguyn thuc loi khng phn chia c, mt s t trng hp xy ra vi ti nguyn phn chia c. V d sau y l trng hp tc nghn do xung t v ti nguyn b nh, l ti nguyn thuc loi phn chia c.

Chng 2: Qun l Tin trnh

79

ti nguyn R2

Yu cu
Process P1

Gi
Process P2

Gi
ti nguyn R1

Yu cu

Hnh 2.6: Ch i vng trn V d 2: Gi s khng gian b nh cn trng l 200Kb, v trong h thng c hai tin trnh P1 v P2 hot ng ng thi. P1 v P2 yu cu c s dng b nh nh sau:
P1 . Request1 80Kb .. Request2 30Kb .. P2 . Request1 70Kb .. Request2 40Kb ..

Tc nghn xy ra khi c hai tin trnh cng yu cu thm b nh ln th hai. Ti thi im ny khng gian b nh cn trng l 50Kb, ln hn lng b nh m mi tin trnh yu cu (30Kb v 40Kb), nhng v c hai tin trnh ng thi yu cu thm b nh, nn h thng khng p ng c, v tc nghn xy ra. V d 3: Trong cc ng dng c s d liu, mt chng trnh c th kho mt vi record m n s dng, dnh quyn iu khin v cho n. Nu tin trnh P1 kho record R1, tin trnh P2 kho record R2, v ri sau mi tin trnh li c gng kho record ca mt tin trnh khc. Tc nghn s xy ra. Nh vy tc nghn l hin tng: Trong h thng xut hin mt tp cc tin trnh, m mi tin trnh trong tp ny u ch c cp ti nguyn, m ti nguyn ang c mt tin trnh trong tp ny chim gi. V s i ny c th ko di v hn nu khng c s tc ng t bn ngoi. Trong trng hp ca v d 1 trn: hai tin trnh P1 v P2 s ri vo trng thi tc nghn, nu khng c s can thip ca h iu hnh. ph b tc nghn ny h iu hnh c th cho tm dng tin trnh P1 thu hi li ti nguyn R1, ly R1 cp cho tin trnh P2 P2 hot ng v kt thc, sau thu hi c R1 v R2 t tin trnh P2 cp cho P1 v ti kch hot P1 P1 hot ng tr li. Nh vy sau mt khong thi gian c P1 v P2 u ra khi tnh trng tc nghn. Trong trng hp ca v d 2 trn: nu hai tin trnh ny khng ng thi yu cu thm b nh th tc nghn khng th xy ra, hoc khi c hai tin trnh ng thi yu cu thm b nh th h iu hnh phi kim tra lng b nh cn trng ca h thng, nu khng p ng cho c hai tin trnh th h iu hnh phi c c ch ngn chn (t chi) mt tin trnh v ch cho mt tin trnh c quyn s dng b nh (p ng) th tc nghn cng khng th xy ra. Tuy nhin gii quyt vn tc nghn do thiu b nh, cc h iu hnh thng s dng c ch b nh o.
Chng 2: Qun l Tin trnh

80

B nh o l mt phn quan trong ca h iu hnh m chng ta s kho st chng Qun l b nh ca ti liu ny. Khi h thng xy ra tc nghn nu h iu hnh khng kp thi ph b tc nghn th h thng c th ri vo tnh trng treo ton b h thng. Nh trong trng hp tc nghn v d 1, nu sau c tin trnh P3, ang gi ti nguyn R3, cn R2 tip tc th P3 cng s ri vo tp tin trnh b tc nghn, ri sau nu c tin trnh P4 cn ti nguyn R1 v R3 tip tc th P4 cng ri vo tp cc tin trnh b tc nghn nh P3, c th dn dn c th dn n mt thi im tt c cc tin trnh trong h thng u ri vo tp tin trnh tc nghn. V nh vy h thng s b treo hon ton.

II.4.2. iu kin hnh thnh tt nghn


Nm 1971, Coffman a ra v chng t c rng, nu h thng tn ti ng thi bn iu kin sau y th h thng s xy ra tt nghn: 1. Loi tr ln nhau (mutual excution) hay c quyn s dng: i vi cc ti nguyn khng phn chia c th ti mi thi im ch c mt tin trnh s dng c ti nguyn. 2. Gi v i (hold and wait): Mt tin trnh hin ti ang chim gi ti nguyn, li xin cp pht thm ti nguyn mi. 3. Khng u tin (No preemption): Khng c ti nguyn no c th c gii phng t mt tin trnh ang chim gi n. Trong nhiu trng hp cc iu kin trn l rt cn thit i vi h thng. S thc hin c quyn l cn thit bo m tnh ng n ca kt qu v tnh ton vn ca d liu (chng ta thy iu ny phn ti nguyn gng trn y). Tng t, s u tin khng th thc hin mt cch tu tin, t bit i vi cc ti nguyn c lin quan vi nhau, vic gii phng t mt tin trnh ny c th nh hng n kt qu x l ca cc tin trnh khc. S tc nghn c th tn ti vi ba iu kin trn, nhng cng c th khng xy ra ch vi 3 iu kin . chc chn tc nghn xy ra cn phi c iu kin th t 4. i vng trn (Circular wait): y l trng hp ca v d 1 m chng ta nu trn. Tc l, mi tin trnh ang chim gi ti nguyn m tin trnh khc ang cn. Ba iu kin u l iu kin cn ch khng phi l iu kin xy ra tc nghn. iu kin th t l kt qu tt yu t ba iu kin u.

II.4.3. Ngn chn tc nghn (Deadlock Prevention)


Ngn chn tc nghn l thit k mt h thng sao cho hin tng tc nghn b loi tr. Cc phng thc ngn chn tc nghn u tp trung gii quyt bn iu kin gy ra tc nghn, sao cho h thng khng th xy ra ng thi bn iu kin tc nghn: i vi iu kin c quyn: iu kin ny gn nh khng trnh khi, v s c quyn l cn thit i vi ti nguyn thuc loi phn chia c nh cc bin chung, cc tp tin chia s, h iu hnh cn phi h tr s c quyn trn

Chng 2: Qun l Tin trnh

81

cc ti nguyn ny. Tuy nhin, vi nhng ti nguyn thuc loi khng phn chia c h iu hnh c th s dng k thut SPOOL (Smulataneous Peripheral Operation Online) to ra nhiu ti nguyn o cung cp cho cc tin trnh ng thi. i vi iu kin gi v i: iu kin ny c th ngn chn bng cch yu cu tin trnh yu cu tt c ti nguyn m n cn ti mt thi im v tin trnh s b kho (blocked) cho n khi yu cu ti nguyn ca n c h iu hnh p ng. Phng php ny khng hiu qu. Th nht, tin trnh phi i trong mt khong thi gian di c ti nguyn mi c th chuyn sang hot ng c, trong khi tin trnh ch cn mt s t ti nguyn trong s l c th hot ng c, sau yu cu tip. Th hai, lng ph ti nguyn, v c th tin trnh gia nhiu ti nguyn m ch n khi sp kt thc tin trnh mi s dng, v c th y l nhng ti nguyn m cc tin trnh khc ang rt cn. y h iu hnh c th t chc phn lp ti nguyn h thng. Theo tin trnh phi tr ti nguyn mc thp mi c cp pht ti nguyn cp cao hn. i vi iu kin No preemption: iu kin ny c th ngn chn bng cch, khi tin trnh b ri vo trng thi kho, h iu hnh c th thu hi ti nguyn ca tin trnh b kho cp pht cho tin trnh khc v cp li y ti nguyn cho tin trnh khi tin trnh c a ra khi trng thi kho. i vi iu kin ch i vng trn: iu kin ny c th ngn chn bng cch phn lp ti nguyn ca h thng. Theo , nu mt tin trnh c cp pht ti nguyn lp L, th sau n ch c th yu cu cc ti nguyn lp thp hn lp L. II.4.4. Nhn bit tc nghn (Deadlock Detection) Cc phng thc ngn chn tc nghn trn u tp trung vo vic hn ch quyn truy xut n ti nguyn v p t cc rng buc ln cc tin trnh. iu ny c th nh hng n mc tiu khai thc hiu qu ti nguyn ca h iu hnh, ngn chn c quyn trn ti nguyn l mt v d, h iu hnh phi ci t cc c ch c quyn bo vc cc ti nguyn chia s. V nh phn tch trn vic cp pht ti nguyn mt ln cho cc tin trnh ngn chn hin tng hold and wait cng tn ti mt vi hn ch. Cc h iu hnh c th gii quyt vn tc nghn theo hng pht hin tc nghn tm cch thot khi tc nghn. Pht hin tc nghn khng gii hn truy xut ti nguyn v khng p t cc rng buc ln tin trnh. Vi phng thc pht hin tc nghn, cc yu cu cp pht ti nguyn c p ng ngay nu c th. pht hin tc nghn h iu hnh thng ci t mt thut ton pht hin h thng c tn ti hin tng ch i vng trn hay khng. Vic kim tra, xem th h thng c kh nng xy ra tc nghn hay khng c th c thc hin lin tc mi khi c mt yu cu ti nguyn, hoc ch thc hin thnh thong theo chu k, ph thuc vo s tc nghn xy ra nh th no. Vic kim tra tc nghn mi khi c yu cu ti nguyn s nhn bit c kh nng xy ra tc nghn nhanh hn, thut ton c p dng n gin hn v ch d vo s thay i trng thi ca h thng. Tuy nhin, h thng phi tn nhiu thi gian cho mi ln kim tra tc nghn.

Chng 2: Qun l Tin trnh

82

Mi khi tc nghn c pht hin, h iu hnh thc hin mt vi gii php thot khi tc nghn. Sau y l mt vi gii php c th: 1. Thot tt c cc tin trnh b tc nghn. y l mt gii php n gin nht, thng c cc h iu hnh s dng nht. 2. Sao lu li mi tin trnh b tc nghn ti mt vi im kin tra c nh ngha trc, sau khi ng li tt c cc tin trnh. Gii php ny yu cu h iu hnh phi lu li cc thng tin cn thit ti im dng ca tin trnh, c bit l con tr lnh v cc ti nguyn tin trnh ang s dng, c th khi ng li tin trnh c. Gii php ny c nguy c xut hin tc nghn tr li l rt cao, v khi tt c cc tin trnh u c reset tr li th vic tranh chp ti nguyn l kh trnh khi. Ngoi ra h iu hnh thng phi chi ph rt cao cho vic tm dng v ti kch hot tin trnh. 3. Ch kt thc mt tin trnh trong tp tin trnh b tc nghn, thu hi ti nguyn ca tin trnh ny, cp pht cho mt tin trnh no trong tp tin trnh tc nghn gip tin trnh ny ra khi tc nghn, ri gi li thut ton kim tra tc nghn xem h thng ra khi tc nghn hay cha, nu ri th dng, nu cha th tip tc gii phng thm tin trnh khc. V ln lt nh th cho n khi tt c cc tin trnh trong tp tin trnh tc nghn u ra khi tnh trng tc nghn. Trong gi php ny vn t ra i vi h iu hnh l nn chn tin trnh no gii phng u tin v da vo tiu chun no chn la sao cho chi ph gii phng tc nghn l thp nht. 4. Tp trung ton b quyn u tin s dng ti nguyn cho mt tin trnh, tin trnh ny ra khi tc nghn, v ri kim tra xem h thng ra khi tc nghn hay cha, nu ri th dng li, nu cha th tip tc. Ln lt nh th cho n khi h thng ra khi tc nghn. Trong gii php ny h iu hnh phi tnh n chuyn ti kch hot li tin trnh sau khi h thng ra khi tc nghn. i vi cc gii php 3 v 4, h iu hnh da vo cc tiu chun sau y chn la tin trnh gii phng hay u tin ti nguyn: Thi gian x l t nht; Thi gian cn processor cn li t nht; Ti nguyn cn cp pht l t nht; Quyn u tin l thp nht.

II.5. iu phi tin trnh


Trong mi trng h iu hnh a nhim, b phn iu phi tin trnh c nhim v xem xt v quyt nh khi no th dng tin trnh hin ti thu hi processor v chuyn processor cho tin trnh khc, v khi c c processor th chn tin trnh no trong s cc tin trnh trng thi ready cp processor cho n. y chng ta cn phn bit s khc nhau gia iu tin trnh v iu phi tin trnh.

II.5.1. Mc tiu iu phi tin trnh


Cc c ch iu phi tin trnh: Trong cng tc iu phi tin trnh b iu phi s dng hai c ch iu phi: iu phi c quyn v iu phi khng c quyn. iu phi c quyn: Khi c c processor tin trnh ton quyn s dng processor cho n khi tin trnh kt thc x l hoc tin trnh t ng tr li processor cho h thng. Cc quyt nh iu phi xy ra khi: Tin trnh chuyn

Chng 2: Qun l Tin trnh

83

trng thi t Running sang Blocked hoc khi tin trnh kt thc. iu phi khng c quyn: B phn iu phi tin trnh c th tm dng tin trnh ang x l thu hi processor ca n, cp cho tin trnh khc, sao cho ph hp vi cng tc iu phi hin ti. Cc quyt nh iu phi xy ra khi: Tin trnh chuyn trng thi hoc khi tin trnh kt thc. Cc c im ca tin trnh: Khi t chc iu phi tin trnh, b phn iu phi tin trnh ca h iu hnh thng da vo cc c im ca tin trnh. Sau y l mt s c im ca tin trnh: Tin trnh thin hng Vo/Ra: L cc tin trnh cn nhiu thi gian hn cho vic thc hin cc thao tc xut/nhp d liu, so vi thi gian m tin trnh cn thc hin cc ch th trong n, c gi l cc tin trnh thin hng Vo/Ra. Tin trnh thin hng x l: Ngc li vi trn, y l cc tin trnh cn nhiu thi gian hn cho vic thc hin cc ch th trong n, so vi thi gian m tin trnh thc hin cc thao tc Vo/Ra. Tin trnh tng tc hay x l theo l: Tin trnh cn phi tr li kt qu tc thi (nh trong h iu hnh tng tc) hay kt thc x l mi tr v kt qu (nh trong h iu hnh x l theo l). u tin ca tin trnh: Mi tin trnh c gn mt u tin nht nh, u tin ca tin trnh c th c pht sinh t ng bi h thng hoc c gn tng minh trong chng trnh ca ngi s dng. u tin ca tin trnh c hai loi: Th nht, u tin tnh: l u tin gn trc cho tin trnh v khng thay i trong sut thi gian sng ca tin trnh. Th hai, u tin ng: l u tin c gn cho tin trnh trong qu trnh hot ng ca n, h iu hnh s gn li u tin cho tin trnh khi mi trng x l ca tin trnh b thay i. Khi mi trng x l ca tin trnh b thay i h iu hnh phi thay i u tin ca tin trnh cho ph hp vi tnh trng hin ti ca h thng v cng tc iu phi tin trnh ca h iu hnh. Thi gian s dng processor ca tin trnh: Tin trnh cn bao nhiu khong thi gian ca processor hon thnh x l. Thi gian cn li tin trnh cn processor: Tin trnh cn cn bao nhiu khong thi gian ca processor na hon thnh x l. B phn iu phi tin trnh thng da vo c im ca tin trnh thc hin iu phi mc tc t, hay iu phi tc v. iu phi tc v c phi thc hin trc iu phi tin trnh. mc ny h iu hnh thc hin vic chn tc v a vo h thng. Khi c mt tin trnh c to lp hoc khi c mt tin trnh kt thc x l th b phn iu phi tc v c kch hot. iu phi tc v quyt nh s a chng ca h thng v hiu qu cng nh mc tiu ca iu phi ca b phn iu phi tin trnh. V d, khi thc ti a thi gian x l ca processor th b phn iu phi tc v phi a vo h thng s lng cc tin trnh tnh hng Vo/Ra cn i vi s lng cc tin trnh tnh hng x l, cc tin trnh ny thuc nhng tc v no. Nu trong h thng c qu nhiu tin trnh tnh hng Vo/Ra th s lng ph thi gian x l ca processor. Nu trong h thng c qu nhiu tin trnh tnh hng x l th processor khng th p ng v c th cc tin
Chng 2: Qun l Tin trnh

84

trnh phi i lu trong h thng, dn n hiu qu tng tc s thp. Mc tiu iu phi: b phn iu phi tin trnh ca h iu hnh phi t c cc mc tiu sau y trong cng tc iu phi ca n. S cng bng (Fairness): Cc tin trnh u cng bng vi nhau trong vic chia s thi gian x l ca processor, khng c tin trnh no phi ch i v hn c cp processor. Tnh hiu qu (Efficiency): Tn dng c 100% thi gian x l ca processor. Trong cng tc iu phi, khi processor ri b phn iu phi s chuyn ngay n cho tin trnh khc, nu trong h thng c tin trnh ang trng thi ch processor, nn mc tiu ny d t c. Tuy nhin, nu h iu hnh a vo h thng qu nhiu tin trnh thin hng vo/ra, th nguy c processor b ri l c th. Do , t c mc tiu ny h iu hnh phi tnh ton v quyt nh nn a vo h thng bao nhiu tin trnh thin hng vo/ra, bao nhiu tin trnh thin hng x l, l thch hp. Thi gian p ng hp l (Response time): i vi cc tin trnh tng tc, y l khong thi gian t khi tin trnh a ra yu cu cho n khi nhn c s hi p. Mt tin trnh p ng yu cu ca ngi s dng, phi nhn c thng tin hi p t yu cu ca n th n mi c th tr li ngi s dng. Do , theo ngi s dng th b phn iu phi phi cc tiu ho thi gian hi p ca cc tin trnh, c nh vy th tnh tng tc ca tin trnh mi tng ln. Thi gian lu li trong h thng (Turnaround time): y l khong thi gian t khi tin trnh c a ra n khi c hon thnh. Bao gm thi gian thc hin thc t cng vi thi gian i ti nguyn (bao gm c i processor). i lng ny dng trong cc h iu hnh x l theo l. Do , b phn iu phi phi cc tiu thi gian hon thnh (lu li trong h thng) ca cc tc v x l theo l. Thng lng ti a (Throunghtput): Chnh sch iu phi phi c gng cc i c s lng tin trnh hon thnh trn mt n v thi gian. Mc tiu ny t ph thuc vo chnh sch iu phi m ph thuc nhiu vo thi gian thc hin trung bnh ca cc tin trnh. Cng tc iu phi ca h iu hnh kh c th tha mn ng thi tt c cc mc tiu trn v bn thn cc mc tiu ny c s mu thun vi nhau. Cc h iu hnh ch c th dung ha cc mc tiu ny mt mc no . V d: Gi s trong h thng c bn tin trnh P1, P2, P3, P4, thi gian (t) m cc tin trnh ny cn processor x l ln lt l 1, 12, 2, 1. Nu ban u c 2 tin trnh P1 v P2 trng thi ready th chc chn b phn iu phi s cp processor cho P1. Sau khi P1 kt thc th processor s c cp cho P2 P2 hot ng (running), khi P2 thc hin c 2t th P3 c a vo trng thi ready. Nu P2 tip tc th P3 phi ch lu (ch 8t), nh vy s vi phm mc tiu thi gian hi p v thng lng ti a (i vi P3). Nu cho P2 dng cp processor cho P3 hot ng n khi kt thc, khi th P4 vo trng thi ready, b iu phi s cp processor cho P4, v c nh th, th P2 phi ch lu, nh vy s t c mc tiu: thi gian hi p v thng lng ti a nhng vi phm mc tiu: cng bng v thi gian lu li trong h thng (i vi P2).

Chng 2: Qun l Tin trnh

85

II.5.2. T chc iu phi tin trnh t chc iu phi tin trnh h iu hnh s dng hai danh sch: Danh sch sn sng (Ready list) dng cha cc tin trnh trng thi sn sng. Danh sch i (Waiting list) dng cha cc tin trnh ang i c b sung vo danh sch sn sng. Ch c nhng tin trnh trong ready list mi c chn cp processor. Cc tin trnh b chuyn v trng thi blocked s c b sung vo waiting list. H thng ch c duy nht mt ready list, nhng c th tn ti nhiu waiting list. Thng thng h iu hnh thit k nhiu waitting list, mi waitting list dng cha cc tin trnh ang i c cp pht mt ti nguyn hay mt s kin ring bit no . Hnh sau y minh ho cho vic chuyn tin trnh gia cc danh sch:
1 Ready list 2 4 7 Waitting list 1 Waitting list 2 5 3 Processor

Hnh 2.7: S chuyn tin trnh vo cc danh sch Trong : 1. Tin trnh trong h thng c cp y ti nguyn ch thiu processor. 2. Tin trnh c b iu phi chn ra cp processor bt u x l. 3. Tin trnh kt thc x l v tr li processor cho h iu hnh. 4. Tin trnh ht thi gian c quyn s dng processor (time-out), b b iu phi tin trnh thu hi li processor. 5. Tin trnh b kha (blocked) do yu cu ti nguyn nhng cha c h iu hnh cp pht. Khi tin trnh c a vo danh sch cc tin trnh i ti nguyn (waiting list 1). 6. Tin trnh b kha (blocked) do ang i mt s kin no xy ra. Khi tin trnh c b iu phi a vo danh sch cc tin trnh i ti nguyn (waiting list 2). 7. Ti nguyn m tin trnh yu cu c h iu hnh cp pht. Khi tin trnh c b iu phi chuyn sang danh sch cc tin trnh trng thi sn sang (ready list) ch c cp processor c hot ng. 8. S kin m tin trnh ch xy ra. Khi tin trnh c b iu phi chuyn sang danh sch cc tin trnh trng thi sn sang (ready list) ch c cp processor.

Chng 2: Qun l Tin trnh

86

II.5.3. Cc chin lc iu phi tin trnh


Chin lc FIFO (First In First Out): trong chin lc ny, khi processor ri th h iu hnh s cp n cho tin trnh u tin trong ready list, y l tin trnh c chuyn sang trng thi ready sm nht, c th l tin trnh c a vo h thng sm nht. FIFO c s dng trong iu phi c quyn nn khi tin trnh c cp processor n s s hu processor cho n khi kt thc x l hay phi i mt thao tc vo/ra hon thnh, khi tin trnh ch ng tr li processor cho h thng. V d: Nu h iu hnh cn cp processor cho 3 tin trnh P1, P2, P3, vi thi im vo ready list v khong thi gian mi tin trnh cn processor c m t trong bng sau: Tin trnh thi im vo t/g x l 0 24 P1 1 3 P2 2 3 P3 Th th t cp processor cho cc tin trnh din ra nh sau: P2 P3 Tin trnh: P1 Thi im: 0 24 27 Vy thi gian ch ca tin trnh P1 l 0, ca P2 l 23 (24 - 0), ca P3 l 25 (24 + 3 - 2). V thi gian ch i trung bnh ca cc tin trnh l: (0 + 23 + 25)/3 = 16. Nh vy FIFO tn ti mt s hn ch: Th nht, c thi gian ch i trung bnh ln nn khng ph hp vi cc h thng chia s thi gian. Th hai, kh nng tng tc km khi n c p dng trn cc h thng uniprocessor. Th ba, nu cc tin trnh u ready list cn nhiu thi gian ca processor th cc tin trnh cui ready list s phi ch lu mi c cp processor. Chin lc phn phi xoay vng (RR: Round Robin): trong chin lc ny, ready list c thit kt theo dng danh sch ni vng. Tin trnh c b iu phi chn cp processor cng l tin trnh u ready list, nhng sau mt khong thi gian nht nh no th b iu phi li thu hi li processor ca tin trnh va c cp processor v chuyn processor cho tin trnh k tip (by gi tr thnh tin trnh u tin) trong ready list, tin trnh va b thu hi processor c a vo li cui ready list. R rng y l chin lc iu phi khng c quyn. Khong khon thi gian m mi tin trnh c s hu processor hot ng l bng nhau, v thng c gi l Quantum. V d: Nu h iu hnh cn cp processor cho 3 tin trnh P1, P2, P3 vi thi im vo ready list v khong thi gian mi tin trnh cn processor c m t trong bng sau: Tin trnh thi im vo t/g x l 0 24 P1 P2 1 3 87

Chng 2: Qun l Tin trnh

P3 2 3 Quantum = 4 Th th t cp processor cho cc tin trnh ln lt l: Tin trnh P1 P2 P3 P1 P1 P1 P1 P1 Thi im 0 4 7 10 14 18 22 26 Vy thi gian ch i trung bnh s l: (0 + 6 + 3 + 5)/3 = 4.46 Nh vy RR c thi gian ch i trung bnh nh hn so vi FIFO Trong chin lc ny, vn t ra i vi cng tc thit k l: nn chon quantum bng bao nhiu l thch hp, nu quantum nh th h thng phi tn nhiu thi gian cho vic cp nht ready list v chuyn trng thi tin trnh, dn n vi phm mc tiu: khai thc ti a thi gian x l ca processor. Nu quantum ln th thi gian ch i trung bnh v thi gian hi p s tng ln, dn n tnh tng tc ca h thng b gim xung. Chin lc theo u tin: trong chin lc ny, b phn iu phi tin trnh da vo u tin ca cc tin trnh t chc cp processor cho tin trnh. Tin trnh c chn cp processor l tin trnh c u tin cao nht, ti thi im hin ti. y h iu hnh thng t chc gn u tin cho tin trnh theo nguyn tc kt hp gi gn tnh v gn ng. Khi khi to tin trnh c gn u tin tnh, sau ph thuc vo mi trng hot ng ca tin trnh v cng tc iu phi tin trnh ca b phn iu phi m h iu hnh c th thay i u tin ca tin trnh. Khi h thng pht sinh mt tin trnh ready mi, th b phn iu phi s so snh u tin ca tin trnh mi pht sinh vi u tin ca tin trnh ang s hu processor (tm gi l tin trnh hin ti). Nu tin trnh mi c u tin thp hn tin trnh hin ti th b phn iu phi s chn n vo ready list ti v tr thch hp. Nu tin trnh mi c u tin cao hn tin trnh hin ti th b iu phi s thu hi processor t tin trnh hin ti cp cho tin trnh mi yu cu, nu l iu phi khng c quyn, hoc chn tin trnh mi vo ready list ti v tr thch hp, nu l iu phi c quyn. Chin lc ny cng phi s dng ready list, v ready list lun c xp theo th t gim dn ca u tin k t u danh sch. iu ny c ngha l tin trnh c chn cp processor l tin trnh u ready list. V d: Nu h iu hnh cn cp processor cho 3 tin trnh P1, P2, P3 vi u tin v khong thi gian mi tin trnh cn processor c m t trong bng sau: Tin trnh u tin thi gian x l P1 3 24 P2 1 3 P3 2 3 Th th t cp processor (theo nguyn tc c quyn) cho cc tin trnh ln lt l: Tin trnh P2 P3 P1 Thi im 0 4 7

Chng 2: Qun l Tin trnh

88

Chin lc ny c th dn n hu qu: cc tin trnh c u tin thp s ri vo tnh trng ch i v hn. khc phc iu ny h iu hnh thng h u tin ca cc tin trnh c u tin cao sau mi ln n c cp processor. Chin lc SJF (Shortest Job Fist: cng vic ngn nht): y l trng hp c bit ca chin lc theo u tin. Trong chin lc ny u tin P ca mi tin trnh l 1/t, vi t l khong thi gian m tin trnh cn processor. B iu phi s chn tin trnh c P ln cp processor, tc l u tin cho nhng tin trnh c thi gian x l (thi gian cn processor) nh. Chin lc ny c th c thi gian ch i trung bnh t cc tiu. Nhng h iu hnh kh c th on c thi gian x l m tin trnh yu cu. Chin lc nhiu cp u tin: H iu hnh phn lp cc tin trnh theo u tin ca chng c cch thc iu phi thch hp cho tng lp tin trnh. Mi cp u tin c mt realy list ring. B iu phi dng chin lc iu phi thch hp cho tng realy list. H iu hnh cng phi thit k mt c ch thch hp iu phi tin trnh gia cc lp. Trong chin lc ny h iu hnh s dng u tin tnh, v iu phi khng c quyn, do mt tin trnh thuc ready list cp u tin i s ch c cp pht processor khi trong ready list cp u tin j (j > i) khng cn mt tin trnh no. Cc tin trnh ready list c u tin thp s phi ch i processor trong mt khong thi gian di, c th l v hn. khc phc iu ny h iu hnh xy dng chin lc iu phi: Nhiu mc u tin xoay vng. Trong chin lc ny h iu hnh chuyn dn mt tin trnh ready list c u tin cao xung ready list c u tin thp hn sau mi ln s dng procesor, v ngc li mt tin trnh lu trong ready list c u tin thp th s c chuyn dn ln ready list c u tin cao hn. Khi xy dng chin lc nhiu mc u tin xoay vng h iu hnh cn xc nh cc thng tin sau: S lng cc lp u tin. Chin lc iu phi ring cho tng read list trong mi lp u tin. Mt tin trnh ready mi s c a vo ready list no. Khi no th thc hin vic di chuyn mt tin trnh t ready list ny sang ready list khc.

II.6. Tin trnh trong Windows NT


Gii thiu
Vic thit k tin trnh trong Windows NT c thc hin t nhu cu cung cp s h tr cho nhiu mi trng h iu hnh khc nhau. Cc tin trnh c h tr bi cc h iu hnh khc nhau c mt s im khc nhau, bao gm: Cch t tn cho cc tin trnh. C hay khng cc tiu trnh bn trong tin trnh. Cc tin trnh c th hin nh th no. Cc ti nguyn ca tin trnh c bo v nh th no. Cc chin lc c s dng trong giao tip v ng b tin trnh Cch m cc tin trnh lin h vi mi tin trnh khc 89

Chng 2: Qun l Tin trnh

Do , cc cu trc tin trnh v cc dch v ban u c cung cp bi kernel ca windows NT l phi t mc tiu n gin v tng qut, cho php mi h thng con h iu hnh m phng mt cu trc tin trnh ring v thit thc. Cc c tnh quan trng ca cc tin trnh windows NT l nh sau: Cc tin trnh NT c ci t nh l cc i tng. Mt tin trnh c kh nng thi hnh c th cha mt hay nhiu tiu trnh. C cc i tng tin trnh v tiu trnh c sn kh nng ng b. Kernel ca Windows NT khng duy tr mi quan h no gia cc tin trnh m n to ra, k c cc mi quan h cha con. Hnh sau y minh ho cch mt tin trnh lin h vi cc ti nguyn n iu khin hoc s dng. Th (token) truy xut, kim tra xem tin trnh c th thay i cc c tnh ca ring n hay khng. Trong trng hp ny, tin trnh khng c mt handle c m cho token truy xut ca n. Nu tin trnh c gng m mt handle nh th, h thng an ton s quyt nh cho php hay khng, v do tin trnh c th thay i cc c tnh ring ca n hay khng.
Access token Khng gian a ch o

Process
Object Table Handle 1 Handle 2 Handle 3 Available Object Thread x File y Section x

Hnh 2.8: Tin trnh v cc ti nguyn ca n Lin quan n tin trnh l mt dy cc block nh ngha khng gian a ch o ang c kt gn cho tin trnh . Tin trnh khng th trc tip sa i cc cu trc ny m phi da vo thnh phn qun l b nh o, trnh qun l b nh cung cp dch v nh v b nh cho tin trnh. Cui cng, tin trnh bao gm mt bng i tng, vi cc handle n cc i tng khc lin quan n tin trnh ny. Mt handle tn ti cho mi tiu trnh cha trong i tng ny. Trong hnh ny, tin trnh c mt tiu trnh n. Ngoi ra, tin trnh truy xut n mt i tng file v n mt i tng section m n xc nh mt section b nh chia s.

Cc i tng tin trnh v tiu trnh

Chng 2: Qun l Tin trnh

90

Cu trc hng i tng ca windows NT lm cho vic pht trin tin trnh ca n c d dng hn. Windows NT c hai kiu i tng lin quan n tin trnh: cc tin trnh v tiu trnh. Mt tin trnh l mt thc th tng ng vi mt cng vic ca ngi s dng hay ng dng m n s hu cc ti nguyn, nh b nh, v cc tp tin c m. Mt tiu trnh l mt n v c th iu phi, s thc thi ca n c th c thc hin tun t hay b ngt, do processor c th chuyn t tiu trnh ny sang tiu trnh khc. Mi tin trnh windows NT c th hin bi mt i tng, m cu trc chung ca n bao gm: loi i tng (Object type), cc thuc tnh i tng (Object Attributes) v cc dch v (Service). Mi tin trnh c nh ngha bi mt tp cc thuc tnh v cc dch v m n c th thc hin. Mt tin trnh s thc hin mt dch v nhn thng ip thch hp. Khi windows NT to ra mt tin trnh mi, n s dng lp i tng, hay kiu, nh ngha cho tin trnh windows NT nh mt template to ra mt th hin mi ca i tng. Ti thi im to , cc gi tr thuc tnh s c gn. Mt tin trnh windows NT phi cha t nht mt tiu trnh thc thi. Tiu trnh sau c th to ra cc tiu trnh khc. Trong h thng a x l, nhiu tiu trnh ca cng tin trnh c th thc thi song song. Mt s thuc tnh ca mt tiu trnh tng t vi cc thuc tnh ca mt tin trnh. Trong nhng trng hp , gi tr thuc tnh ca tiu trnh c tha k t gi tr thuc tnh ca tin trnh. V d, cc processor lin quan n cc tiu trnh l tp cc processor trong mt h thng multiprocessor (a vi x l) m n c th thc thi tiu trnh ny; tp tng ng hay mt tp con ca cc processor lin quan n tin trnh. Mt trong nhng thuc tnh ca i tng tiu trnh l ng cnh (context) ca tiu trnh. Thng tin ny cho php cc tiu trnh c th tm dng v ti kch hot tr li c. Hn th na, n c th thay i hnh vi ca mt tiu trnh bng cch thay i ng cnh ca n khi n b tm dng.

Multithreading (a tiu trnh)


Windows NT h tr ng thi nhiu tin trnh bi v cc tiu trnh trong cc tin trnh khc nhau c th thc thi ng thi. Hn na, nhiu tiu trnh bn trong cng mt tin trnh c th nh v tch bit cc processor v thc thi ng thi. Mt tin trnh a tiu trnh t c s ng thi m khng cn s dng nhiu tin trnh. Cc tiu trnh bn trong cng tin trnh c th trao i thng tin thng qua b nh chia s v truy xut cc ti nguyn chia s ca tin trnh. Mt tin trnh a tiu trnh hng i tng l mt cng c hiu qu cho vic cung cp cc ng dng server. Mt tin trnh server n l c th phc v mt s client. Mi client yu cu khi pht vic to mt tiu trnh mi bn trong server.

H tr cc h thng con h iu hnh


Mc tiu chung nht ca tin trnh v tiu trnh l phi h tr cc cu trc tin trnh v tiu trnh ca cc client trn cc h iu hnh khc nhau. l trch nhim ca mi h thng con h iu hnh, khai thc cc c tnh ca tin trnh v tiu trnh

Chng 2: Qun l Tin trnh

91

windows NT, m phng d dng tin trnh v tiu trnh ca h iu hnh tng ng ca n. Sau y chng ta hy quan st qu trnh to tin trnh trong windows NT thy c s h tr tin trnh v tiu trnh cho cc h thng con h iu hnh. Vic to tin trnh bt u vi mt yu cu mt tin trnh mi t mt ng dng h iu hnh. Yu cu to tin trnh c pht ra t mt ng dng n h thng con c bo v tng ng. n lt n, h thng con pht ra mt yu cu tin trnh cho thnh phn Executive ca windows NT. Windows NT to mt i tng tin trnh v tr ra mt handle ca i tng n cho h thng con. Khi windows NT to mt tin trnh, n khng t ng to mt tiu trnh. Do , i vi cc h iu hnh ny, h thng con gi trnh qun l tin trnh windows NT mt ln na to ra mt tiu trnh cho tin trnh mi, m n nhn c mt handle ca tiu trnh t windows NT. Thng tin tiu trnh v tin trnh thch hp sau c tr li cho ng dng. Trong Windows 16-bit v POSIX, cc tiu trnh khng c h tr. Do , i vi cc h iu hnh nh th ny, h thng con c mt tiu trnh cho tin trnh mi t windows NT, cho nn tin trnh c th c kch hot, nhng chi tr li thng tin tin trnh cho ng dng. Trong thc t, tin trnh ng dng c ci t bng cch s dng mt tiu trnh khng thy cho ng dng. Khi mt tin trnh mi c to trong Win32 hay OS/2, tin trnh mi tha k nhiu c tnh ca n t tin trnh to. Tuy nhin, trong mi trng h iu hnh windows NT, vic to tin trnh ny khng c thc hin trc tip. Mt tin trnh client ng dng pht ra yu cu to tin trnh ca n n cho h thng con h iu hnh; sau mt tin trnh trong h thng con n lt n pht ra mt yu cu tin trnh cho thnh phn Executive ca windows NT. V tc dng mong i l tin trnh mi tha k cc c tnh ca tin trnh client v khng tha k t tin trnh server, nn windows NT cho php h thng con ch nh cha ca tin trnh mi. Sau tin trnh mi tha k token truy xut, thi gian quota, u tin c s, v mi quan h processor mc nh ca tin trnh cha. Trong windows NT, khng c quan h c nh ngha trc gia cc tin trnh. Tuy nhin, c h iu hnh POSIX v h iu hnh OS/2 u p t mt mi quan h phn cp. Mi tin trnh m rng mt tin trnh ban u c to bi mt tin trnh khc v c xem nh cp di tin trnh to ra n. Bng cch s dng cc handle i tng, h thng con h iu hnh c th duy tr cc mi quan h gia cc tin trnh ny.

Chng 2: Qun l Tin trnh

92

Chng III

QUN L B NH
Qun l b nh l mt trong nhng nhim v quan trng v phc tp nht ca h iu hnh. B phn qun l b nh xem b nh chnh nh l mt ti nguyn ca h thng dng cp pht v chia s cho nhiu tin trnh ang trong trng thi active. Cc h iu hnh u mong mun c nhiu hn cc tin trnh trn b nh chnh. Cng c c bn ca qun l b nh l s phn trang (paging) v s phn on (segmentation). Vi s phn trang mi tin trnh c chia thnh nhiu phn nh c quan h vi nhau, vi kch thc ca trang l c nh. S phn on cung cp cho chngtrnh ngi s dng cc khi nh c kch thc khc nhau. H iu hnh cng c th kt hp gia phn trang v phn on c c mt chin lc qun l b nh linh hot hn.

III.1. Nhim v ca qun l b nh


Trong cc h thng n chng trnh (uniprogramming), trn b nh chnh ngoi h iu hnh, ch c mt chng trnh ang thc hin. Trong cc h thng a chng (multiprogramming) trn b nh chnh ngoi h iu hnh, c th c nhiu tin trnh ang hot ng. Do nhim v qun l b nh ca h iu hnh trong h thng a chng trnh s phc tp hn nhiu so vi trong h thng n chng trnh. Trong h thng a chng b phn qun l b nh phi c nhim v a bt k mt tin trnh no vo b nh khi n c yu cu, k c khi trn b nh khng cn khng gian trng, ngoi ra n phi bo v chnh h iu hnh v cc tin trnh trn b nh trnh cc trng hp truy xut bt hp l xy ra. Nh vy vic qun l b nh trong cc h thng a chng l quan trng v cn thit. B phn qun l b nh phi thc hin cc nhim v sau y: S ti nh v (Relocation): Trong cc h thng a chng, khng gian b nh chnh thng c chia s cho nhiu tin trnh khc nhau v yu cu b nh ca cc tin trnh lun ln hn khng gian b nh vt l m h thng c c. Do d, mt chng trnh ang hot ng trn b nh cng c th b a ra a (swap-out) v n s c a vo li (swap-in) b nh ti mt thi im thch hp no sau ny. Vn t ra l khi a mt chng trnh vo li b nh th h iu hnh phi nh v n vo ng v tr m n c np trc . thc hin c iu ny h iu hnh phi c cc c ch ghi li tt c cc thng tin lin quan n mt chng trnh b swap-out, cc thng tin ny l c s h iu hnh swap-in chng trnh vo li b nh chnh v cho n tip tc hot ng. H iu hnh buc phi swap-out mt chng trnh v n cn khng gian b nh chnh np tin trnh khc, do d sau khi swap-out mt chng trnh h iu hnh

Chng III: Qun l B nh

93

phi t chc li b nh chun b np tin trnh va c yu cu. Cc nhim v trn do b phn qun l b nh ca h iu hnh thc hin. Ngoi ra trong nhim v ny h iu hnh phi c kh nng chuyn i cc a ch b nh c ghi trong code ca chng trnh thnh cc a ch vt l thc t trn b nh chnh khi chng trnh thc hin cc thao tc truy xut trn b nh, bi v ngi lp trnh khng h bit trc hin trng ca b nh chnh v v tr m chng trnh c np khi chng trnh ca h hot ng. Trong mt s trng hp khc cc chng trnh b swap-out c th c swap-in vo li b nh ti v tr khc vi v tr m n c np trc . Bo v b nh (Protection): Mi tin trnh phi c bo v chng li s truy xut bt hp l v tnh hay c ch ca cc tin trnh khc. V th cc tin trnh trong cc chng trnh khc khng th tham chiu n cc vng nh dnh cho mt tin trnh khc thc hin cc thao tc c/ghi m khng c php (permission), m n ch c th truy xut n khng gian a ch b nh m h iu hnh cp cho tin trnh . thc hin iu ny h thng qun l b nh phi bit c khng gian a ch ca cc tin trnh khc trn b nh v phi kim tra tt c cc yu cu truy xut b nh ca mi tin trnh khi tin trnh a ra a ch truy xut. iu ny kh thc hin v khng th xc nh a ch ca cc chng trnh trong b nh chnh trong qu trnh bin dch m phi thc hin vic tnh ton a ch ti thi im chy chng trnh. H iu hnh c nhiu chin lc khc nhau thc hin iu ny. iu quan trng nht m h thng qun l b nh phi thc hin l khng cho php cc tin trnh ca ngi s dng truy cp n bt k mt v tr no ca chnh h iu hnh, ngoi tr vng d liu v cc rountine m h iu hnh cung cp cho chng trnh ngi s dng. Chia s b nh (Sharing): Bt k mt chin lc no c ci t u phi c tnh mm do cho php nhiu tin trnh c th truy cp n cng mt a ch trn b nh chnh. V d, khi c nhiu tin trnh cng thc hin mt chng trnh th vic cho php mi tin trnh cng truy cp n mt bn copy ca chng trnh s thun li hn khi cho php mi tin trnh truy cp n mt bn copy s hu ring. Cc tin trnh ng thc hin (co-operating) trn mt vi tc v c th cn chia s truy cp n cng mt cu trc d liu. H thng qun l b nh phi iu khin vic truy cp n khng gian b nh c chia s m khng vi phm n cc yu cu bo v b nh. Ngoi ra, trong mi trng h iu hnh a nhim h iu hnh phi chia s khng gian nh cho cc tin trnh h iu hnh c th np c nhiu tin trnh vo b nh cc tin trnh ny c th hot ng ng thi vi nhau. T chc b nh logic (Logical organization): B nh chnh ca h thng my tnh c t chc nh l mt dng hoc mt mng, khng gian a ch bao gm mt dy c th t cc byte hoc cc word. B nh ph cng c t chc tng t. Mc d vic t chc ny c s kt hp cht ch vi phn cng thc t ca my nhng n khng ph hp vi cc chng trnh. a s cc chng trnh u c chia thnh cc modun, mt vi trong s l khng th thay i (read only, execute only) v mt vi trong s cha d liu l c th thay i. Nu h iu hnh v phn cng my tnh c th giao dch mt cch hiu qu vi cc chng trnh ca ngi s dng v d liu trong cc modun th mt s thun li c th thy r sau y:

Chng III: Qun l B nh

94

Cc modun c th c vit v bin dch c lp, vi tt c cc tham chiu t mt modun n modun khc c gii quyt bi h thng ti thi im chy. Cc mc khc nhau ca s bo v, read-only, execute-only, c th cho ra cc modun khc nhau. N c th a ra cc c ch cc modun c th c chia s gia cc tin trnh. Cng c p ng cho yu cu ny l s phn on (segmentation), y l mt trong nhng k thut qun l b nh c trnh by trong chng ny. T chc b nh vt l (Physical organization): Nh chng ta bit b nh my tnh c t chc theo 2 cp: b nh chnh v b nh ph. B nh chnh cung cp mt tc truy cp d liu cao, nhng d liu trn n phi c lm ti thng xuyn v khng th tn ti lu di trn n. B nh ph c tc truy xut chm v r tin hn so vi b nh chnh nhng n khng cn lm ti thng xuyn. V th b nh ph c kh nng lu tr ln v cho php lu tr d liu v chng trnh trong mt khong thi gian di, trong khi b nh chnh ch gi (hold) mt khi lng nh cc chng trnh v d liu ang c s dng ti thi im hin ti. Trong gin 2 cp ny, vic t chc lung thng tin gia b nh chnh v b nh ph l mt nhim v quan trng ca h thng. S chu trch nhim cho lung ny c th c gn cho tng ngi lp trnh ring, nhng iu ny l khng hp l v c th gy rc ri, l do hai nguyn nhn: Khng gian b nh chnh dnh cho cc chng trnh cng vi d liu ca n thng l khng , trong trng hp ny, ngi lp trnh phi tin hnh mt thao tc c hiu nh l Overlaying, theo chng trnh v d liu c t chc thnh cc modun khc nhau c th c gn trong cng mt vng ca b nh, trong c mt chng trnh chnh chu trch nhim chuyn cc modun vo v ra khi cn. Trong mi trng a chng trnh, ngi lp trnh khng th bit ti mt thi im xc nh c bao nhiu khng gian nh cn trng hoc khi no th khng gian nh s trng. Nh vy nhim v di chuyn thng tin gia 2 cp b nh phi do h thng thc hin. y l nhim v c bn m thnh phn qun l b nh phi thc hin.

III.2. K thut cp pht b nh (np chng trnh vo b nh chnh)


III.2.1. K thut phn vng c nh (Fixed Partitioning)
Trong k thut ny khng gian a ch ca b nh chnh c chia thnh 2 phn c nh, phn nm vng a ch thp dng cha chnh h iu hnh, phn cn li, tm gi l phn user program, l sn sng cho vic s dng ca cc tin trnh khi cc tin trnh c np vo b nh chnh. Trong cc h thng n chng, phn user program c dng cp cho ch mt chng trnh duy nht, do nhim v qun l b nh ca h iu hnh trong trng hp ny s n gin hn, h iu hnh ch kim sot s truy xut b nh ca chng trnh ngi s dng, khng cho n truy xut ln vng nh ca h iu hnh. thc hin vic

Chng III: Qun l B nh

95

ny h iu hnh s dng mt thanh ghi gii hn ghi a ch ranh gii gia h iu hnh v chng trnh ca ngi s dng, theo khi chng trnh ngi s dng cn truy xut mt a ch no th h iu hnh s so snh a ch ny vi gi tr a ch c ghi trong thnh ghi gii hn, nu nh hn th t chi khng cho truy xut, ngc li th cho php truy xut. Vic so snh a ch ny cn phi c s h tr ca phn cng v c th lm gim tc truy xut b nh ca h thng nhng bo v c h iu hnh trnh vic chng trnh ca ngi s dng lm hng h iu hnh dn n lm hng h thng. Trong cc h thng a chng, phn user program li c phn ra thnh nhiu phn vng (partition) vi cc bin vng c nh c kch thc bng nhau hay khng bng nhau. Trong trng hp ny mt tin trnh c th c np vo bt k partition no nu kch thc ca n nh hn hoc bng kch thc ca partition v partition ny cn trng. Khi c mt tin trnh cn c np vo b nh nhng tt c cc partition u cha cc tin trnh khc th h iu hnh c th chuyn mt tin trnh no , m h iu hnh cho l hp l (kch thc va , khng ang trng thi ready hoc running, khng c quan h vi cc tin trnh running khc, ...), ra ngoi (swap out), ly partition trng np tin trnh va c yu cu. y l nhim v phc tp ca h iu hnh, h iu hnh phi chi ph cao cho cng vic ny. C hai tr ngi trong vic s dng cc phn vng c nh vi kch thc bng nhau: Th nht, khi kch thc ca mt chng trnh l qu ln so vi kch thc ca mt partition th ngi lp trnh phi thit k chng trnh theo cu trc overlay, theo ch nhng phn chia cn thit ca chng trnh mi c np vo b nh chnh khi khi to chng trnh, sau ngi lp trnh phi np tip cc modun cn thit khc vo ng partition ca chng trnh v s ghi ln bt k chng trnh hoc d liu trong . Cu trc chng trnh overlay tit kim c b nh nhng yu cu cao ngi lp trnh. Th hai, khi kch thc ca mt chng trnh nh hn kch thc ca mt partition hoc qu ln so vi kch thc ca mt partition nhng khng phi l bi s ca kch thc mt partition th d xy ra hin tng phn mnh bn trong (internal fragmentation) b nh, gy lng ph b nh. V d, nu c 3 khng gian trng kch thc 30K nm ri rc trn b nh, th cng s khng np c mt modun chng trnh c kch thc 12K, hin tng ny c gi l hin tng phn mnh bn trong. C hai vn trn c th c khc phc bng cch s dng cc phn vng c kch thc khng bng nhau. Vic a mt tin trnh vo partition trong h thng a chng vi phn vng c nh kch thc khng bng nhau s phc tp hn nhiu so vi trng hp cc phn vng c kch thc bng nhau. Vi cc partition c kch thc khng bng nhau th c hai cch la chn khi a mt tin trnh vo partition: Mi phn vng c mt hng i tng ng, theo mi tin trnh khi cn c np vo b nh n s c a n hnh i ca phn vng c kch thc

Chng III: Qun l B nh

96

va cha n, vo/ i c vo phn vng. Cch tip cn ny s n gin trong vic a mt tin trnh t hng i vo phn vng v khng c s la chn no khc y, khi phn vng m tin trnh i trng n s c a vo phn vng . Tuy nhin cc tip cn ny km linh ng v c th c mt phn vng ang trng, trong khi c nhiu tin trnh ang phi phi i c np vo cc phn vng khc, iu ny gy lng ph trong vic s dng b nh. H thng dng mt hng i chung cho tt c cc phn vng, theo tt c cc tin trnh mun c np vo phn vng nhng cha c vo s c a vo hng i chung ny. Sau nu c mt phn vng trng th h thng s xem xt a mt tin trnh c kch thc va vo phn vng trng . Cch tip cn ny linh ng hn so vi vic s dng nhiu hng i nh trn, nhng vic chn mt tin trnh trong hng i a vo phn vng l mt vic lm kh phc tp ca h iu hnh v n phi da vo nhiu yu t khc nhau nh: u tin ca tin trnh, trng thi hin ti ca tin trnh, cc mi quan h ca tin trnh,...

New Process
New Process H iu hnh H iu hnh

Hnh 3.1a: Mi partition c mt hng i ring

Hnh 3.1b: Mt hng i chung cho tt c partition

Mc du s phn vng c nh vi kch thc khng bng nhau cung cp mt s mm do hn so vi phn vng c nh vi kch thc bng nhau, nhng c hai loi ny cn mt s hn ch sau y: S lng cc tin trnh c th hot ng trong h thng ti mt thi im ph thuc vo s lng cc phn vng c nh trn b nh. Tng t nh trn, nu kch thc ca tin trnh nh hn kch thc ca mt phn vng th c th dn n hin tng phn mnh ni vi gy lng ph trong vic s dng b nh. S phn vng c nh t c s dng trong cc h iu hnh hin nay.

III.2.2. K thut phn vng ng (Dynamic Partitioning)


khc phc mt vi hn ch ca k thut phn vng c nh, k thut phn vng ng

Chng III: Qun l B nh

97

ra i. K thut ny thng c s dng trong cc h iu hnh gn y nh h iu hnh mainframe ca IBM, h iu hnh OS/MVT,... Trong k thut phn vng ng, s lng cc phn vng trn b nh v kch thc ca mi phn vng l c th thay i. Tc l phn user program trn b nh khng c phn chia trc m n ch c n nh sau khi c mt tin trnh c np vo b nh chnh. Khi c mt tin trnh c np vo b nh n c h iu hnh cp cho n khng gian va cha tin trnh, phn cn li sn sng cp cho tin trnh khc sau ny. Khi mt tin trnh kt thc n c a ra ngoi v phn khng gian b nh m tin trnh ny tr li cho h iu hnh s c h iu hnh cp cho tin trnh khc, c khi tin trnh ny c kch thc nh hn kch thc ca khng gian nh trng .
Process3 360k Process2 280k Process1 320k H iu hnh H iu hnh Process1 320k H iu hnh Process2 280k Process1 320k H iu hnh

(a)

(b)

(c)

(d)

Process3 360k Process4

Process3 360k Process4

Process3 360k Process4 Process1 320k

Process3 360k

Process2 H iu hnh H iu hnh

Process1 320k H iu hnh

H iu hnh

(e) (h) (g) (f) Hnh 3.2: Kt qu ca s phn trang ng vi th t np cc tin trnh. Hnh v 3.2 trn y minh ha cho qu trnh np/kt thc cc tin trnh theo th

Chng III: Qun l B nh

98

t: np process1, np process2, np process3, kt thc process2, np process4, kt thc process1, np process2 vo li, trong h thng phn vng ng. Nh vy dn dn trong b nh hnh thnh nhiu khng gian nh c kch thc nh khng cha cc tin trnh nm ri rc trn b nh chnh, hin tng ny c gi l hin thng phn mnh bn ngoi (external fragmentation). chng li s lng ph b nh do phn mnh, thnh thong h iu hnh phi thc hin vic sp xp li b nh, cc khng gian nh nh ri rc nm lin k li vi nhau to thnh mt khi nh c kch thc ln cha c mt tin trnh no . Vic lm ny lm chm tc ca h thng, h iu hnh phi chi ph cao cho vic ny, c bit l vic ti nh v cc tin trnh khi mt tin trnh b a ra khi b nh v c np vo li b nh tip tc hot ng. Trong k thut phn vng ng ny h iu hnh phi a ra cc c ch thch hp qun l cc khi nh cp pht hay cn trng trn b nh. H iu hnh s dng 2 c ch: Bn bt v Danh sch lin kt. Trong c 2 c ch ny h iu hnh u chia khng gian nh thnh cc n v cp pht c kch thc bng nhau, cc n v cp pht lin tip nhau to thnh mt khi nh (block), h iu hnh cp pht cc block ny cho cc tin trnh khi np tin trnh vo b nh. A
00 01 02 03 04 05 06 07 08

B
09 10 11 12 13 14

C
15 16 17 18

D
19 20 21

Hnh 3.3a: Mt on nh bao gm 22 n v cp pht, to thnh 9 block, trong c 4 block cp pht (t m, k hiu l P) cho cc tin trnh: A, B, C, D v 5 block cha c cp pht ( trng, k hiu l H). Trong c ch bn bt: mi n v cp pht c i din bi mt bt trong bn bt. n v cp pht cn trng c i din bng bt 0, ngc li n v cp pht c i din bng bt 1. Hnh 3.3b l bn bt ca khi nh trn.

00111000 11000011 101100

0 2 P 8 2 H 17 1

P 2 3 H 10 4 P 18 2

H 5 3 P 14 3 20 2

Hnh 3.3b: qun l cc n v cp pht Hnh 3.3c: qun l cc n v cp pht bng danh bng bn bt. sch lin kt. Trong c ch danh sch lin kt: Mi block trn b nh c i din bi mt phn t trong danh sch lin kt, mi phn t ny gm c 3 trng chnh: trng th nht cho bit khi nh cp pht (P: process) hay ang cn trng (H: Hole), trng th hai cho bit th t ca n v cp pht u tin trong block, trng th ba cho bit block gm bao nhiu n v cp pht. Hnh 3.3c l danh sch lin kt ca khi nh trn.

Chng III: Qun l B nh

99

Nh vy khi cn np mt tin trnh vo b nh th h iu hnh phi da vo bn bit hoc danh sch lin kt tm ra mt block c kch thc np tin trnh. Sau khi thc hin mt thao tc cp pht hoc sau khi a mt tin trnh ra khi b nh th h iu hnh phi cp nht li bn bt hoc danh sch lin kt, iu ny c th lm gim tc thc hin ca h thng. Chn kch thc ca mt n v cp pht l mt vn quan trng trong thit k, nu kch thc n v cp pht nh th bn bt s ln, h thng phi tn b nh cha n. Nu kch thc ca mt n v cp pht ln th bn bt s nh, nhng s lng ph b nh n v cp pht cui cng ca mt tin trnh s ln khi kch thc ca tin trnh khng phi l bi s ca mt n v cp pht. iu va trnh by cng ng trong trng hp danh sch lin kt. Danh sch lin kt c th c sp xp theo th t tng dn hoc gim dn ca kch thc hoc a ch, iu ny gip cho vic tm khi nh trng c kch thc va np cc tin trnh theo cc thut ton di y s t tc nhanh hn v hiu qu cao hn. Mt s h iu hnh t chc 2 danh sch lin kt ring theo di cc n v cp pht trn b nh, mt danh sch theo di cc block cp pht v mt danh dch theo di cc block cn trng. Cch ny gip vic tm cc khi nh trng nhanh hn, ch tm trn danh sch cc khi nh trng, nhng tn thi gian nhiu hn cho vic cp nht danh sch sau mi thao tc cp pht, v phi thc hin trn c hai danh sch. Khi c mt tin trnh cn c np vo b nh m trong b nh c nhiu hn mt khi nh trng (Free Block) c kch thc ln hn kch thc ca tin trnh , th h iu hnh phi quyt nh chn mt khi nh trng ph hp no np tin trnh sao cho vic la chn ny dn n vic s dng b nh chnh l hiu qu nht. C 3 thut ton m h iu hnh s dng trong trng hp ny, l: Best-fit, First-fit, v Next-fit. C 3 thut ton ny u phi chn mt khi nh trng c kch thc bng hoc ln hn kch thc ca tin trnh cn np vo, nhng n c cc im khc nhau c bn sau y: Best-fit: chn khi nh c kch thc va ng bng kch thc ca tin trnh cn c np vo b nh. First-fit: trong trng hp ny h iu hnh s bt u qut qua cc khi nh trng bt u t khi nh trng u tin trong b nh, v s chn khi nh trng u tin c kch thc ln np tin trnh.

8k

12k

22k

18k

8k

6k

14k

36k

Hnh 3.4: V d v cc thut ton cp pht b nh

khi nh va c cp pht cui cng

Chng III: Qun l B nh

100

Next-fit: tng t nh First-fit nhng y h iu hnh bt u qut t khi nh trng k sau khi nh va c cp pht v chn khi nh trng k tip ln np tin trnh. Hnh v 3.4 cho thy hin ti trn b nh c cc khi nh cha c cp pht theo th t l: 8k, 12k, 22k, 18k, 8k, 6k, 14k, 36k. Trong trng hp ny nu c mt tin trnh c kch thc 16k cn c np vo b nh, th h iu hnh s np n vo: khi nh 22k nu theo thut ton First-fit khi nh 18k nu theo thut ton Best-fit khi nh 36k nu theo thut ton Next-fit Nh vy nu theo Best-fit th s xut hin mt khi phn mnh 2k, nu theo Firstfit th s xut hin mt khi phn mnh 6k, nu theo Next-fit th s xut hin mt khi phn mnh 20k. Cc h iu hnh khng ci t c nh trc mt thut ton no, tu vo trng hp c th m n chn cp pht theo mt thut ton no , sao cho chi ph v vic cp pht l thp nht v hn ch c s phn mnh b nh sau ny. Vic chn thut ton ny thng ph thuc vo th t swap v kch thc ca tin trnh. Thut ton First-fit c nh gi l n gin, d ci t nhng mang li hiu qu cao nht c bit l v tc cp pht. V hiu qu thut ton Next-fit khng bng First-fit, nhng n thng xuyn s dng c cc khi nh trng cui vng nh, cc khi nh vng ny thng c kch thc ln nn c th hn ch c s phn mnh, theo v d trn th vic xut hin mt khi nh trng 20k sau khi cp mt tin trnh 16k th khng th gi l phn mnh c, nhng nu tip tc nh th th d dn n s phn mnh ln cui b nh. Thut ton Best-fit, khng nh tn gi ca n, y l mt thut ton c hiu sut thp nht, trong trng hp ny h iu hnh phi duyt qua tt cc cc khi nh trng tm ra mt khi nh c kch thc va cha tin trnh va yu cu, iu ny lm gim tc cp pht ca h iu hnh. Mt khc vi vic chn kch thc va c th dn n s phn mnh ln trn b nh, tc l c qu nhiu khi nh c kch thc qu nh trn b nh, nhng nu xt v mt lng ph b nh ti thi im cp pht th thut ton ny lm lng ph t nht. Tm li, kh c th nh gi v hiu qu s dng ca cc thut ton ny, v hiu qu ca n c xt trong tng lai v trn nhiu kha cnh khc nhau ch khng phi ch xt ti thi im cp pht. V hn na trong bn thn cc thut ton ny c cc mu thun vi nhau v hiu qu s dng ca n. Do yu cu ca cng tc cp pht b nh ca h iu hnh, mt tin trnh ang trn b nh c th b a ra ngoi (swap-out) dnh ch np mt tin trnh mi c yu cu, v tin trnh ny s c np vo li (swap-in) b nh ti mt thi im thch hp sau ny. Vn ng quan tm y l tin trnh c th c np vo li phn vng khc vi phn vng m n c np vo ln u tin. C mt l do khc khin cc tin trnh phi thay i v tr np so vi ban u l khi c s lin kt gia cc mdun tin trnh ca mt chng trnh th cc tin trnh phi dch chuyn ngay c khi chng nm trn b nh chnh. S thay i v tr/a ch np ny s nh hng n cc thao tc truy xut d liu ca chng trnh v n s khc vi cc a ch tng i m ngi lp trnh s dng trong code ca chng trnh. Ngoi ra khi mt tin trnh c np vo b nh ln u tin th tt c cc a ch tng i c tham chiu trong code chng trnh c
Chng III: Qun l B nh

101

thay th bng a ch tuyt i trong b nh chnh, a ch ny c xc nh bi a ch c s, ni tin trnh c np. V d trong chng trnh c code truy xut n a ch tng i 100k, nu chng trnh ny c np vo phn vng 1 c a ch bt u l 100k th a ch truy xut l 200k, nhng nu chng trnh c np vo phn vng 2 c a ch bt u l 200k, th a ch truy xut s l 300k. gii quyt vn ny h iu hnh phi thc hin cc yu cu cn thit ca cng tc ti nh v mt tin trnh vo li b nh. Ngoi ra y h iu hnh cng phi tnh n vic bo v cc tin trnh trn b nh trnh tnh trng mt tin trnh truy xut n vng nh ca tin trnh khc. Trong trng hp ny h iu hnh s dng 2 thanh ghi c bit: Thanh ghi c s (base register): dng ghi a ch c s ca tin trnh tin trnh c np vo b nh. Thanh ghi gii hn (limit register): dng ghi a ch cui cng ca tin trnh trong b nh. Khi mt tin trnh c np vo b nh th h iu hnh s ghi a ch bt u ca phn vng c cp pht cho tin trnh vo thanh ghi c s v a ch cui cng ca tin trnh vo thanh ghi gi hn. Vic thit lp gi tr ca cc thanh ghi ny c thc hin c khi tin trnh ln u tin c np vo b nh v khi tin trnh c swap in vo li b nh. Theo mi khi tin trnh thc hin mt thao tc truy xut b nh th h thng phi thc hin 2 bc: Th nht, cng a ch nh do tin trnh pht ra vi gi tr a ch trong thanh ghi c s c c a ch tuyt i ca nh cn truy xut. Th hai, a ch kt qu trn s c so snh vi gi tr a ch trong thnh ghi gii hn. Nu a ch nm trong phm v gii hn th h iu hnh cho php tin trnh truy xut b nh, ngc li th c mt ngt v li truy xut b nh c pht sinh v h iu hnh khng cho php tin trnh truy xut vo v tr b nh m n yu cu. Nh vy vic bo b truy xut bt hp l c thc hin d dng y. a ch tng i iu khin tin trnh Base Register

Cng

Program

Limit Register

So snh

<
Data Stack Tin trnh trong b nh

>
Gi ngt n h iu hnh Hnh 3.5 : Ti nh v vi s h tr ca phn cng

Chng III: Qun l B nh

102

Trong h thng a chng s dng s phn vng ng, nu c mt tin trnh mi cn c np vo b nh, trong khi b nh khng cn ch trng v tt c cc tin trnh trn b nh u trng thi kho (blocked), th h thng phi i cho n khi c mt tin trnh c chuyn sang trng thi khng b kho (unblocked) tin trnh ny c iu kin tr li khng gian nh m n chim gi cho h thng: tin trnh hot ng v kt thc, tin trnh b a ra khi b nh chnh,..., h thng np tin trnh va c yu cu. S ch i ny lm lng ph thi gian x l ca processor. tit kim thi gian x l ca processor trong trng hp ny h iu hnh chn ngay mt tin trnh ang trng thi kho a ra ngoi ly khng gian nh trng cp cho tin trnh va c yu cu m khng phi i nh trn. H iu hnh s dng nhiu thut ton khc nhau cho vic chn mt tin trnh thay th trong trng hp ny, tt c cc thut ton ny u hng ti mc dch: tit kim thi gian x l ca processor, tc thay th cao, s dng b nh hiu qu nht v c bit l khng dn n s tr tr h thng. Chng ta s tho lun r hn v vn ny phn sau ca chng ny. Ch : Mt nhc im ln ca cc k thut trn l dn n hin tng phn mnh b nh bn trong v bn ngoi (internal, external) gy lng ph b nh nn hiu qu s dng b nh km. khc phc h iu hnh s dng cc k thut phn trang hoc phn on b nh.

III.2.3. K thut phn trang n (Simple Paging)


Trong k thut ny khng gian a ch b nh vt l c chia thnh cc phn c kch thc c nh bng nhau, c nh s a ch bt u t 0 v c gi l cc khung trang (page frame). Khng gian a ch ca cc tin trnh cng c chia thnh cc phn c kch thc bng nhau v bng kch thc ca mt khung trang, c gi l cc trang (page) ca tin trnh. Khi mt tin trnh c np vo b nh th cc trang ca tin trnh c np vo cc khung trang cn trng bt k, c th khng lin tip nhau, ca b nh. Khi h iu hnh cn np mt tin trnh c n trang vo b nh th n phi tm n khung trang trng np tin trnh ny. Nu kch thc ca tin trnh khng phi l bi s ca kch thc mt khung trang th s xy ra hin tng phn mnh ni vi khung trang cha trang cui cng ca tin trnh. y khng xy ra hin tng phn mnh ngoi vi. Trn b nh c th tn ti cc trang ca nhiu tin trnh khc nhau. Khi mt tin trnh b swap-out th cc khung trang m tin trnh ny chim gi s c gii phng h iu hnh c th np cc trang tin trnh khc. Trong k thut ny h iu hnh phi a ra cc c ch thch hp theo di trng thi ca cc khung trang (cn trng hay cp pht) trn b nh v cc khung trang ang cha cc trang ca mt tin trnh ca cc tin trnh khc nhau trn b nh. H iu hnh s dng mt danh sch ghi s hiu ca cc khung trang cn trng trn b nh, h iu hnh da vo danh sch ny tm cc khung trang trng trc khi quyt nh np mt tin trnh vo b nh, danh sch ny c cp nht ngay sau khi h iu hnh np mt tin trnh vo b nh, c kt thc hoc b swap out ra bn ngoi. H iu hnh s dng cc bng trang (PCT: page control table) theo di v tr cc trang tin trnh trn b nh, mi tin trnh c mt bng trang ring. Bng trang bao

Chng III: Qun l B nh

103

gm nhiu phn t, thng l bng s lng trang ca mt tin trnh m bng trang ny theo di, cc phn t c nh s bt u t 0. Phn t 0 cha s hiu ca khung trang ang cha trang 0 ca tin trnh, phn t 1 cha s hiu ca khung trang ang cha trang 1 ca tin trnh, Cc bng trang c th c cha trong cc thanh ghi nu c kch thc nh, nu kch thc bng trang ln th n c cha trong b nh chnh, khi h iu hnh s dng mt thanh ghi lu tr a ch bt u ni lu tr bng trang, thanh ghi ny c gi l thanh ghi PTBR: page table base register.
Page1 2 Page1 0 Page1 1 Page1 2 Page1 3 Cc page Process 1 Page2 0 Page2 1 Page2 2 Cc page process 2 Khng gian a ch ca b nh vt l Page2 0 Page1 3 Page2 2 Page1 1 Page1 0 Page2 1

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

0 1 2 3

8 3 12 6 Page table Process 1

0 1 2

1 10 4 Page table Process 2

(a) (b) (c) Hnh 3.6: Cc trang ca 2 tin trnh process 1 v process 2 (a), c np vo b nh (b), v 2 bng trang tng ng ca n (c). Trong k thut phn trang ny khi cn truy xut b nh CPU phi pht ra mt a ch logic gm 2 thnh phn: S hiu trang (Page): cho bit s hiu trang tng ng cn truy xut. a ch tng i trong trang (Offset): gi tr ny s c kt hp vi a ch bt u ca trang xc nh a ch vt l ca nh cn truy xut. Vic chuyn i t a ch logic sang a ch vt l do processor thc hin. Kch thc ca mi trang hay khung trang do phn cng quy nh v thng l ly tha ca 2, bin i t 512 byte n 8192 byte. Nu kch thc ca khng gian a m n ch l 2 v kch thc ca trang l 2 th m-n bt cao ca a ch logic l s hiu trang (page) v n bt cn li l a ch tng i trong trang (offset). V d: nu a ch logic 10 gm 16 bit, kch thc ca mi trang l 1K = 1024byte (2 ), th c 6 bt dnh cho s 6 hiu trang, nh vy mt chng trnh c th c ti a 2 = 64 trang mi trang 1KB. Trong trng hp ny nu CPU pht ra mt gi tr a ch 16 bt l: 0000010111011110 = 1502, th thnh phn s hiu trang l 000001 = 1, thnh phn offset l 0111011110 = 478.
Chng III: Qun l B nh

104

Hnh minh ho: Page 0 Page 1 478


Phn mnh ni vi

Page 2

000001 0111011110
a ch logic: Page # = 1; Offset = 478

Hnh 3.7a: Cc khung trang ca b nh v a ch logic Vic chuyn t a ch logic sang a ch vt l c thc hin theo cc bc sau: Trch ra m-n bt tri nht (thp nht) ca a ch logic xc nh s hiu trang cn truy xut. S dng s hiu trang trn ch n phn t tng ng trong bng trang ca tin trnh, xc nh khung trang tng ng, v d l k. a ch vt l bt u ca khung trang l k x 2 , v a ch vt l ca byte cn truy xut l s hiu trang cng vi gi tr offset. a ch vt l khng cn tnh ton, n d dng c c bng cch ni s hiu khung trang vi gi tr offset. 16 bt a ch logic
6 bt Page 10 bt Offset
n

000001 0111011110

0 000101

16 bt a ch vt l

000110
2 011001 Bng trang ca tin trnh

000110 0111011110

Khng gian b nh vt

Hnh 3.7b: S chuyn i a ch logic (page) vt l Trong s v d trn, chng ta c a ch logic l: 0000010111011110, vi s hiu trang l 1, offset l 478, gi nh rng trang ny thng tr trong b nh chnh ti khung tang 6 = 000110. Th a ch vt l l khung trang s 6 v offset l 478 = 0001100111011110. Nhn xt v k thut phn trang: C th thy s phn trang c m t y tng t nh s phn vng c nh. S khc nhau l vi phn trang cc phn vng c kch thc nh hn, mt chng trnh c th chim gia nhiu hn mt phn vng, v cc phn vng ny
Chng III: Qun l B nh

105

c th khng lin k vi nhau. K thut phn trang loi b c hin tng phn mnh ngoi vi, nhng vn c th xy ra hin tng phn mnh ni vi khi kch thc ca tin trnh khng ng bng bi s kch thc ca mt trang, khi khung trang cui cng s khng c s dng ht. Khi cn truy xut n d liu hay ch th trn b nh th h thng phi cn mt ln truy xut n bng trang, iu ny c th lm gim tc truy xut b nh. khc phc h iu hnh s dng thm mt bng trang cache, lu tr cc trang b nh va c truy cp gn y nht. Bng trang cache ny s c s dng mi khi CPU pht ra mt a ch cn truy xut. Mi h iu hnh c mt c ch t chc bng trang ring, a s cc h iu hnh u to cho mi tin trnh mt bng trang ring khi n c np vo b nh chnh. Bng trang ln s tn b nh cha n. bo v cc khung trang h iu hnh a thm mt bt bo v vo bng trang. Theo mi khi tham kho vo bng trang truy xut b nh h hng s kim tra cc thao tc truy xut trn khung trang tng ng c hp l vi thuc tnh bo v ca n hay khng. S phn trang khng phn nh c cch m ngi s dng nhn nhn v b nh. Vi ngi s dng, b nh l mt tp cc i tng chng trnh v d liu nh cc segment, cc th vin, .... v cc bin, cc vng nh chia s, stack, ... . Vn t ra l tm mt cch thc biu din b nh sao cho n gn vi cch nhn nhn ca ngi s dng hn. K thut phn on b nh c th thc hin c mc tiu ny.

III.2.4. K thut phn on n (Simple Segmentation)


Trong k thut ny khng gian a ch b nh vt l c chia thnh cc phn c nh c kch thc khng bng nhau, c nh s bt u t 0, c gi l cc phn on (segment). Mi phn on bao gm s hiu phn on v kch thc ca n. Khng gian a ch ca cc tin trnh k c cc d liu lin quan cng c chia thnh cc on khc nhau v khng nht thit phi c kch thc bng nhau, thng thng mi thnh phn ca mt chng trnh/tin trnh nh: code, data, stack, subprogram, ..., l mt on. Khi mt tin trnh c np vo b nh th tt c cc on ca n s c np vo cc phn on cn trng khc nhau trn b nh. Cc phn on ny c th khng lin tip nhau. Xem hnh 3.8. theo di cc on ca cc tin trnh khc nhau trn b nh, h iu hnh s dng cc bng phn on (SCT: Segment control Table) tin trnh, thng thng mt tin trnh c mt bng phn on ring. Mi phn t trong bng phn on gm ti thiu 2 trng: trng th nht cho bit a ch c s (base) ca phn on m on chng trnh tng ng c np, trng th hai cho bit di/gii hn (length/limit) ca phn on, trng ny cn c tc dng dng kim sot s truy xut bt hp l ca cc tin trnh. Cc bng phn on c th c cha trong cc thanh ghi nu c kch thc nh, nu kch thc bng phn on ln th n c cha trong b nh chnh, khi h iu hnh s dng mt thanh ghi lu tr a ch bt u ni lu tr bng phn on, thanh

Chng III: Qun l B nh

106

ghi ny c gi l thanh ghi STBR: Segment table base register. Ngoi ra v s lng cc on ca mt chng trnh/tin trnh c th thay i nn h iu hnh dng thm thanh ghi STLR:Segment table length register, ghi kch thc hin ti ca bng phn on. H iu hnh cng t chc mt danh sch ring theo di cc segment cn trng trn b nh.
Data1: seg2 Code1 320k Stack1: 150k Data1: 150k Cc segment ca process1 Code2 320k Data2 320k Stack2: 150k Cc segment ca process2 Code1: seg0 870 Stack2:seg2 Data2: seg1 250 100 Khng gian a ch ca b nh vt l 720 570 0 1 2 Base 1470 250 720 limit 320 320 150 Stack1: seg1 Code2: seg0 1470 1320 1170 1020 1820 0 1 2 base 870 1170 1820 limit 320 150 150

Segment table ca process 1

Segment table ca process 2

(a) (b) (c) Hnh 3.8: Cc on ca 2 tin trnh process 1 v process 2 (a), c np vo b nh (b), v 2 bng on tng ng ca n (c). Trong k thut ny a ch logic m CPU s dng phi gm 2 thnh phn: S hiu on (segment): cho bit s hiu on tng ng cn truy xut. a ch tng i trong on (Offset): gi tr ny s c kt hp vi a ch bt u ca on xc nh a ch vt l ca nh cn truy xut. Vic chuyn i t a ch logic sang a ch vt l do processor thc hin. Hnh minh ho: Segment0 750 b Segment1 1950 b 752

0001 001011110000
a ch logic: Segment # = 1; Offset = 752

Hnh 3.9a: Cc phn on trn b nh v a ch logic

Chng III: Qun l B nh

107

Nu c mt a ch logic gm n + m bt, th n bt tri nht l s hiu segment, m bt phi nht cn li l offset. Trong v d minh ho sau y th n = 4 v m = 12, nh vy 12 kch thc ti a ca mt segment l 2 = 4096 byte. Sau y l cc bc cn thit ca vic chuyn i a ch: Trch ra n bt tri nht ca a ch logic xc nh s hiu ca phn on cn truy xut. S dng s hiu phn on trn ch n phn t trong bng phn on ca tin trnh, tm a ch vt l bt u ca phn on. So snh thnh phn offset ca a ch logic, c trch ra t m bt phi nht ca a ch logic, vi thnh phn length ca phn on. Nu offset > length th a ch truy xut l khng hp l. a ch vt l mong mun l a ch vt l bt u ca phn on cng vi gi tr offset. Trong s v d sau y, ta c a ch logic l: 0001001011110000, vi s hiu segment l 1, offset l 752, gi nh segment ny thng tr trong b nh chnh ti a ch vt l l 0010000000100000, th a ch vt l tng ng vi a ch logic trn l: 0010000000100000 + 001011110000 = 0010001100010000. 16 bt a ch logic
6 bt Seg 10 bt Offset

0001 001011110000
di a ch c s 16 bt a ch vt l

0 001011101110 0000010000000000 1 011110011110 0010000000100000 2 1000011000110 00010000100010000


Bng phn on ca tin trnh

0010001100010000

Khng gian b nh vt l

Hnh 3.9b: S chuyn i a ch logic (segment) vt l Nhn xt v k thut phn on: V cc segment c kch thc khng bng nhau nn s phn on tng t nh s phn vng ng. S khc nhau l vi s phn on mt chng trnh c th chim gi hn mt phn vng, v cc phn vnh ny c th khng lin k vi nhau. S phn vng loi tr c s phn mnh ni vi, nhng nh s phn vng ng n vn xut hin hin tng phn mnh ngoi vi. S phn trang l khng tng minh i vi ngi lp trnh, trong khi s phn on l tng minh i vi ngi lp trnh, v n cung cp mt s thun li ngi lp trnh t chc chng trnh v d liu. Ngi lp trnh hoc trnh bin
Chng III: Qun l B nh

108

dch c th gn cc chng trnh v d liu n cc on nh khc nhau. a ch logic

STLR

>

s y

a ch vt l

STBL

+
s l b

>

y +
d

Bng phn on

Segmentation

B nh vt l

Hnh 3.9c: S chuyn a ch c s dng STLR, STBR v so snh offset Tng t nh trong k thut phn vng ng, k thut ny cng phi gii quyt vn cp pht ng, y h iu hnh thng dng thut ton best-fit hay first-fit. K thut phn on th hin c cu trc logic ca chng trnh, nhng n phi cp pht cc khi nh c kch thc khc nhau cho cc phn on ca chng trnh trn b nh vt l, iu ny phc tp hn nhiu so vi vic cp pht cc khung trang. dung ha vn ny cc h iu hnh c th kt hp c phn trang v phn on.

III.3. K thut b nh o (Virtual Memory)


III.3.1. B nh o
Sau khi tm hiu v hai k thut cp pht b nh phn trang n v phn on n, chng ta nhn thy rng chng c hai c tnh ni bt sau y: Tt c b nh c tham chiu trong phm vi mt tin trnh l a ch logic, a ch ny c chuyn thnh a ch vt l mt cch ng ti thi im chy ca tin trnh. iu ny c ngha mt tin trnh c th c np vo mt v tr bt k trn b nh, hoc mt tin trnh c th b swap out ra b nh ngoi sau c swap in vo li ti mt v tr bt k trn b nh chnh, hon ton khng ph thuc vo v tr m n c np trc khi b swap out. Mt tin trnh c th c chia thnh nhiu trang/on khc nhau, cc trang/on ca mt tin trnh c th c np vo cc v tr khng lin tc nhau trong b nh trong qu trnh thc hin ca tin trnh. Mc d k thut phn trang n v k thut phn on n khc phc c nhng nhc im ca s phn vng c nh v phn vng ng, nhng n cn mt hn ch ln l phi np tt cc cc trang/on ca mt tin trnh vo b nh tin trnh ny hot

Chng III: Qun l B nh

109

ng. iu ny lm cn tr mc tiu ca h iu hnh l phi np c nhiu tin trnh ca cc chng trnh khc nhau vo b nh chng c th hot ng ng thi vi nhau, trong thc trng kch thc ca chng trnh ngy cng ln. Ngoi ra vic np tt c cc trang/on ca tin trnh vo b nh c th gy lng ph b nh, v khng phi lc no tt c cc trang/on ny u cn thit tin trnh ny c th hot ng c. khc phc hn ch trn ca k thut phn trang v phn on, k thut b nh o ra i. Nguyn l c bn ca b nh o l vn da trn 2 k thut phn trang v phn on, nhng trong k thut b nh o: B phn qun l b nh khng np tt c cc trang/on ca mt tin trnh vo b nh n hot ng, m ch np cc trang/on cn thit ti thi im khi to. Sau , khi cn b phn qun l b nh s da vo PCT hoc SCT ca mi tin trnh np cc trang/on tip theo. Nu c mt trang/on ca mt tin trnh cn c np vo b nh trong tnh trng trn b nh khng cn khung trang/phn on trng th b phn qun l b nh s a mt trang/on khng cn thit ti thi im hin ti ra b b nh ngoi (swap-out), ly khng gian nh trng np trang/on va c yu cu. Trang/on b swap out s c a vo ti thi im thch hp hoc cn thit sau ny (swap-in). V vy h iu hnh c th ci t b nh o theo 2 k thut: Phn trang theo yu cu: Tc l phn trang kt hp vi swap. Phn on theo yu cu: Tc l phn on kt hp vi swap. C hai k thut trn u phi c s h tr ca phn cng my tnh, c th l processor. a s cc h iu hnh u chn k thut phn trang theo yu cu, v n n gin, d ci t v chi ph thp hn. ci t c b nh o h iu hnh cn phi c: Mt lng khng gian b nh ph (a) cn thit cha cc trang/on b swap out, khng gian a ny c gi l khng gian swap. C c ch theo di cc trang/on ca mt tin trnh, ca tt c cc tin trnh ang hot ng trn b nh chnh, l ang trn b nh chnh hay trn b nh ph. Trong trng hp ny h iu hnh thng a thm mt bt trng thi (bit present) vo cc phn t trong PCT hoc SCT. Da vo cc tiu chun c th chn mt trang no trong s cc trang ang trn b nh chnh swap out trong trng hp cn thit. Cc h iu hnh a ra cc thut ton c th phc v cho mc ch ny. Vic s dng b nh o mang li cc li ch sau y: H iu hnh c th np c nhiu tin trnh hn vo b nh, trn b nh tn ti cc trang/on ca nhiu tin trnh khc nhau. H thng kh c th x ra trng hp khng b nh np cc tin trnh, v b phn qun l b nh khng np tt c tin trnh vo b nh v nu cn c th swap out cc trang/on ca mt tin trnh no trn b nh. Li ch ca vic np nhiu tin trnh vo b nh chng ta bit trong chng Qun l Tin trnh.
Chng III: Qun l B nh

110

C th np vo b nh mt tin trnh c khng gian a ch ln hn tt c khng gian a ch ca b nh vt l. Trong thc t ngi lp trnh c th thc hin vic ny m khng cn s h tr ca h iu hnh v phn cng bng cch thit k chng trnh theo cu trc Overlay, vic lm ny l qu kh i vi ngi lp trnh. Vi k thut b nh o ngi lp trnh khng cn quan tm n kch thc ca chng trnh v kch thc ca b nh ti thi im np chng trnh, tt c mi vic ny u do h iu hnh v phn cng thc hin. B nh o l mt k thut cho php x l mt tin trnh m khng cn np tt c tin trnh vo b nh. Cc trang/on ca mt tin trnh, ang trn b nh ph, m cha c np vo b nh chnh s c nh v ti mt khng gian nh c bit trn b nh ph, c th gi khng gian nh ny l b nh o ca tin trnh. Vi s h tr ca phn cng h iu hnh a ra cc c ch thch hp nhn bit mt trang/on ca tin trnh ang thc hin l ang trn b nh chnh hay trn b nh ph. Nh vy b nh o m rng (o) c khng gian b nh vt l ca h thng, chng trnh ca ngi s dng ch nhn thy v lm vic trn khng gian a ch o, vic chuyn i t a ch o sang a ch vt l thc do b phn qun l b nh ca h iu hnh v processor thc hin. Trc khi tm hiu v c ch ci t b nh o ca h iu hnh chng hy nhn li s khc bit gia cc k thut phn trang, phn on vi cc k thut b nh o, thng qua bng sau y: Phn trang n B nh chnh c chia thnh cc phn nh c kch thc c nh, c gi l cc khung trang. Chng trnh ca ngi s dng c chia thnh cc trang bi trnh bin dch hoc h thng qun l b nh. C th xy ra phn mnh ni vi trong phm vi cc frame. Khng xy ra phn mnh ngoi vi. H iu hnh phi duy tr mt bng trang cho mi tin Phn on n B nh chnh khng c phn vng trc. B nh o (Page + Swap) B nh chnh c chia thnh cc phn nh c kch thc c nh, c gi l cc khung trang. Chng trnh ca ngi s dng c chia thnh cc trang bi trnh bin dch hoc h thng qun l b nh. B nh o (Segment + Swap) B nh chnh khng c phn vng trc.

Cc on ca chng trnh c ch ra bi ngi lp trnh v c gi n cho trnh bin dch. Khng xy ra phn mnh ni vi, nhng phn mnh ngoi vi l c th.

ca Cc on chng trnh c ch ra bi ngi lp trnh v c gi n cho trnh bin dch. Khng xy ra phn mnh ni vi, nhng phn mnh ngoi vi l c th. H iu hnh phi duy tr mt bng on cho mi tin 111

C th xy ra phn mnh ni vi trong phm vi cc frame. Khng xy ra phn mnh ngoi vi. H iu hnh phi H iu hnh phi duy tr mt bng duy tr mt bng on cho mi tin trang cho mi tin

Chng III: Qun l B nh

trnh theo di cc trang ca tin trnh trn b nh (c np vo cc khung trang no) H iu hnh phi duy tr mt danh sch theo di cc khung trang cn trng trn b nh chnh. Processor s dng (page number v offset) tnh a ch tuyt i. Tt c cc trang ca tin trnh phi c np vo b nh chnh chy tr khi khi s dng cc k thut Overlay.

trnh theo di cc on ca tin trnh trn b nh (c np vo a ch no, v di ca on) H iu hnh phi duy tr mt danh sch theo di cc phn cn trng trn b nh chnh. Processor s dng (segment number v offset) tnh a ch tuyt i. Tt c cc on ca tin trnh phi c np vo b nh chnh chy tr khi khi s dng cc k thut Overlay.

trnh theo di cc trang ca tin trnh trn b nh (c np vo cc khung trang no) H iu hnh phi duy tr mt danh sch theo di cc khung trang cn trng trn b nh chnh. Processor s dng (page number v offset) tnh a ch tuyt i. Khng phi np tt c cc trang ca tin trnh vo cc khung trang trn b nh chnh khi tin trnh chay. Cc trang c th c c khi cn. c mt trang vo b nh chnh c th cn phi a mt trang ra a.

trnh theo di cc on ca tin trnh trn b nh (c np vo a ch no, v di ca on) H iu hnh phi duy tr mt danh sch theo di cc phn cn trng trn b nh chnh. Processor s dng (segment number v offset) tnh a ch tuyt i. Khng phi np tt c cc on ca tin trnh vo cc khung trang trn b nh chnh khi tin trnh chay. Cc trang c th c c khi cn. c mt trang vo b nh chnh c th cn phi a mt hoc on ra a.

III.3.2. K thut b nh o
Theo trn th k thut b nh o thc cht l k thut phn trang hoc phn on theo yu cu. Trong mc III.2.3 v III.2.4 chng ta tm hiu cc vn c bn ca 2 k thut phn trang n v phn on n. Trong mc ny chng ta s tm hiu li k hn v 2 k thut ny, trong bi cnh ca k thut b nh o. III.3.2.a. S phn trang: Trong k thut phn trang n, mi tin trnh s hu mt bng trang ring, khi tt c cc trang ca tin trnh c np vo b nh chnh th bng trang ca tin trnh c to ra v cng c np vo b nh (nu ln), mi phn t trong bng trang ch cha s hiu ca khung trang m trang tng ng c np vo. Trong k thut b nh o cng vy, nhng mt phn t trong bng trang s cha nhiu thng tin phc tp hn. Bi v trong k thut b nh o ch c mt vi page ca tin trnh c np vo b nh chnh, do cn phi c mt bt cho bit mt page tng ng ca tin trnh l c hay khng trn

Chng III: Qun l B nh

112

b nh chnh v mt bt cho bit page c b thay i hay khng so vi ln np gn y nht. C th l n phi c thm cc bt iu khin:
Virtual Address Page Number Offset

P M

Cc bt iu khin khc

Frame Number

Hnh 3.10a. Mt phn t trong bng Trang Bt P (Present): Cho bit trang tng ng ang trn b nh chnh (= 1) hay trn b nh ph (= 0). Bt M (Modify): Cho bit ni dung ca trang tng ng c b thay i hay khng so vi ln np gn y nht. Nu n khng b thay i th vic phi ghi li ni dung ca mt trang khi cn phi a mt trang ra li b nh ngoi l khng cn thit, iu ny gip tng tc trong cc thao tc thay th trang trong khung trang. Cc bt iu khin khc: Cc bt ny phc v cho cc mc ch bo v trang v chia s cc khung trang. Chuyn i a ch trong h thng phn trang: Chng trnh ca ngi s dng s dng a ch logic hoc virtual gm: page number v offset truy xut d liu trn b nh chnh. B phn qun l b nh phi chuyn a ch virtual ny thnh a ch vt l tng ng bao gm: page number v offset. thc hin vic ny b phn qun l b nh phi da vo bng trang (PCT). V
Virtual Address
Page # Offset Frame # Offset

Register
Page Table Ptr

Off Page
Frame #

PF

PE: Page Frame


Page Table

Hnh 3.10b. S chuyn a ch trong h thng phn trang

Main Memry

Chng III: Qun l B nh

113

kch thc ca PCT c th ln v thay i theo kch thc ca tin trnh do trong k thut b nh o h iu hnh thng cha PCT trong b nh chnh v dng mt thanh ghi ghi a ch bt u ca b nh ni lu tr PCT ca tin trnh khi tin trnh c np vo b nh chnh chy. a s cc h iu hnh u thit k mt bng trang ring cho mi tin trnh. Nhng mi tin trnh c th chim gi mt khng gian ln b nh o, trong trng hp ny bng trang rt ln v h thng phi tn khng gian b nh cha n. V d, nu 31 9 mt tin trnh c n 2 = 2GB b nh o, mi trang c kch thc 2 = 512 byte, th 22 tin trnh ny phi cn n 2 phn t trong bng trang. khc phc vn ny, trong cc k thut b nh o h thng lu tr bng trang trong b nh o ch khng lu tr trong b nh thc, v bn thn bng trang cng phi c phn trang. Khi tin trnh thc hin, ch c mt phn ca bn trang c np vo b nh chnh, y l phn cha cc phn t ca cc trang ang thc hin ti thi im hin ti. Mt s processor s dng lc hai cp (two-level) t chc cc bng trang ln, trong lc ny c mt th mc bng trang (page directory) m mi phn t trong n tr n mt bng trang. Trong trng hp ny, nu chiu di ca th mc trang l X v chiu di ti a ca mt bng trang l Y th tin trnh c th c X x Y trang. Chiu di ti a ca mt bng trang ch bng kch thc ca mt trang. Chng ta s xem v d minh ha v bng trang hai cp sau y:
Two-level Page table 0 1 2 3 4

Top-level Page table 0 1 2 3 4

n cc Page

1023 0 1 2 3 4

0 1 2 3 4

PT1

1023

n cc Page

n cc Page

1023

Hnh 3.10.c: Cu trc bng trang 2 cp Gi s c mt khng gian a ch o 32 bt, c chia thnh 3 trng: PT1 10 bt, PT2 10 bt v Offset 12 bt. Hnh v 3.10.c cho thy cu trc ca bng trang 2 cp tng ng vi khng gian a ch o 32 bt. Bn tri l top-level ca bng trang (bng trang cp 1), n gm c 1024 mc vo (tng ng vi 10 bt ca PT1), tc l PT1 ca a ch o dng ch mc n mt phn t trong bng trang cp 1. Mi mc vo dng m t 4Mb b nh, v ton b 4 GB (32 bit) khng gian a ch o c chia thnh 1024 phn. Entry c ch mc trong bng trang cp 1 t PT1 s cho ra a ch hoc s hiu khung trang ca bn trang th hai (second-level). C 1024 bng trang cp 2, nh s t 0 n

Chng III: Qun l B nh

114

1023, bng trang cp 2 th nht (0) qun l khng gian nh 4Mb t 0Mb n 4Mb, bng trang cp 2 th hai (1) qun l khng gian nh 4Mb t 8Mb,. Trng PT2 by gi c dng ch mc n bng trang cp 2 tm ra s hiu khung trang ca page tng ng. Gi tr tm c y s c kt hp vi thnh phn Offset c c a ch vt l ca nh tng ng vi a ch o 32 bit c pht sinh ban u. Chng ta xem li v d c th sau y: C mt a ch o 32 bt: 0x00403004, y l a ch tng ng vi PT1 = 1, PT2 = 3 v Offset = 4. B phn MMU s chuyn a ch ny thnh a ch vt l nh sau: u tin MMU dng PT1 ch mc vo bng trang cp 1 v l entry 1, tng ng vi khng gian i ch t 4Mb n 8Mb. Sau MMU dng PT2 ch mc vo bng trang cp 2 v l entry 3, tng ng vi khng gian a ch 12292 n 16383 trong phm vi 4Mb. y l entry cha s hiu khung trang ca page cha a ch o 0x00403004. Nu page ny c trong b nh, th s hiu khung trang c c t bng trang cp hai s c kt hp vi thnh phn Offset sinh ra a ch vt l. a ch ny s c a ln a_bus v gi n b nh. Kch thc ca trang: Kch thc ca mt trang do phn cng quy nh, y l mt trong nhng quyt nh quan trng trong vic thit k processor. Nu kch thc ca trang nh th s phn mnh bn trong s nh hn, v th vic s dng b nh chnh s c hiu qu hn. Nhng nu kch thc trang nh th s lng trang trn mt tin trnh s ln hn, bng trang ca tin trnh s ln, s chim nhiu b nh hn, v nh th vic s dng b nh chnh s km hiu qu hn. Cc vi x l h Intel 486 v h Motorola 68040 chn kch thc ca mt trang l 4096 byte. Ngoi ra kch thc ca trang cn nh hng n t l xy ra li trang. V d: khi kch thc ca trang l rt nh th s c mt lng ln cc trang ca tin trnh trn b nh chnh, sau mt thi gian th tt c cc trang ca b nh s cha cc tin trnh c tham chiu gn y, v th tc xy ra li trang c gim xung. III.3.2.b. S phn on: S phn on cho php ngi lp trnh xem b nh nh bao gm mt tp cc khng gian nh hoc cc on (segment) c a ch c xc nh. Vi b nh o ngi lp trnh khng cn quan tm n gii hn b nh c a ra bi b nh chnh. Cc segment c th c kch thc khng bng nhau v c n nh mt cch ng. a ch tham chiu b nh trong trng hp ny bao gm: Segment Number v Offset. i vi ngi lp trnh th s phn on khng gian a ch c mt s thun li sau y so vi trng hp khng phn on khng gian a ch: 1. N n gin iu khin cc cu trc d liu ln dn (growing) trong qu trnh hot ng ca h thng. Nu ngi lp trnh khng bit trc d liu s ln n chng no ti thi im chy th vic n nh kch thc ca ng cho segment mang li nhiu thun li cho ngi lp trnh. 2. N cho php cc chng trnh khng ph thuc vo s thay i vo s bin dch li. N khng yu cu thit lp li ton b chng trnh khi chng trnh c lin kt hoc c np tr li. Vic ny ch c th thc hin bng cch s dng nhiu phn on (Multiple Segment).

Chng III: Qun l B nh

115

3. N thch hp vi chin lc chia s segment gia cc tin trnh. Ngi lp trnh c th t mt chng trnh tin ch hoc mt bng d liu thng s dng vo mt segment m c th c tham chiu bi nhiu tin trnh khc nhau. 4. N thch hp vi chin lc bo v b nh. Bi v mt segment c th c sinh ra cha mt tp xc nh cc th tc hoc d liu, sau ngi lp trnh hoc ngi qun tr h thng c th gn quyn truy cp vi cc u tin thch hp no . T chc ca h thng phn on: Trong k thut phn on n, mi tin trnh s hu mt bng on ring, khi tt c cc on ca tin trnh c np vo b nh chnh th bng on ca tin trnh c to ra v cng c np vo b nh, mi phn t trong bng on cha a ch bt u ca on tng ng trong b nh chnh v di ca on. Trong k thut b nh o cng vy, nhng mt phn t trong bng on s cha nhiu thng tin phc tp hn. Bi v trong k thut b nh o ch c mt vi segment ca tin trnh c np vo b nh chnh, do cn phi c mt bt cho bit mt on tng ng ca tin trnh l c hay khng trn b nh chnh v mt bt cho bit on c b thay i hay khng so vi ln np gn y nht. C th l n phi c thm cc bt iu khin: Bt M (Modify): Cho bit ni dung ca on tng ng c b thay i hay khng so vi ln np gn y nht. Nu n khng b thay i th vic phi ghi li ni dung ca mt on khi cn phi a mt on ra li b nh ngoi l khng cn thit, iu ny gip tng tc trong cc thao tc thay th on.
Virtual Address Segment Number Offset

P M

Cc bt iu khin

Length

Segment Base

Hnh 3.11a. Mt phn t trong bng on Bt P (Present): Cho bit on tong ng ang trn b nh chnh (= 1) hay trn b nh ph (= 0). Cc bt iu khin khc: Cc bt ny phc v cho cc mc ch bo v trang v chia s cc khung trang. Chuyn i a ch trong h thng phn on: Chng trnh ca ngi s dng s dng a ch logic hoc virtual gm: segment number v offset truy xut d liu trn b nh chnh. B phn qun l b nh phi chuyn a ch virtual ny thnh a ch vt l tng ng bao gm: segment number v offset. thc hin vic ny b phn qun l b nh phi da vo bng on (SCT). V kch thc ca SCT c th ln v thay i theo kch thc ca tin trnh do trong k thut b nh o h iu hnh thng cha SCT trong b nh chnh v dng mt thanh ghi ghi a ch bt u ca b nh ni lu tr SCT ca tin trnh khi tin trnh c np vo b nh chnh chy. Thnh phn segment number ca a ch o c dng

Chng III: Qun l B nh

116

ch mc n bng on v tm a ch bt u ca segment tng ng trong b nh chnh. Gi tr ny s c cng vi thnh phn Offset c trong a ch o c c a ch vt l thc cn tm.
Virtual Address
Seg # Offset

Real Address
Base + Offset

Register
Seg. Table Ptr

Off. Seg

S.L

B: Base L: Length SL: Segment Length


Seg. Table Main Memry

Hnh 3.11b. S chuyn a ch trong h thng phn on

Bo v v chia s trong phn on: S phn on dng chnh n ci t cc chnh sch bo v v chia s b nh. Bi v mi phn t trong bng trang bao gm mt trng length v mt trng base address, nn mt tin trnh trong segment khng th truy cp n mt v tr trong b nh chnh m v tr ny vt qua gii hn (length) ca segment, ngoi tr l mt truy cp d liu n mt segment d liu no . thc hin vic chia s segment, v d segment A, cho nhiu tin trnh, h iu hnh cho php nhiu tin trnh cng tham chiu n segment A, khi cc thng s (length v base address) ca segment A xut hin ng thi cc bng segment ca cc tin trnh cng chia s segment A. Chin lc chia s ny cng c p dng trong h thng phn trang. Cc h iu hnh cng c th s dng mt chin lc bo v phc tp hn ci t s bo v cc segment, l s dng cu trc vng bo v (ring protection). Nh bit trong h thng ring, bao gm: ring 0, ring 1, ring 2, th mi ring c mt mc c quyn truy cp ring, ring 0 c mc c quyn truy cp cao hn so vi ring 1, ring 1 c mc c quyn truy cp cao hn so vi ring 2, , ring thp nht c s dng cho thnh phn kernel ca h iu hnh, cc ring cao hn c s dng cho cc ng dng ca ngi s dng. Nguyn l c bn ca h thng ring l: Chng trnh ch c th truy cp n d liu trong cng mt ring hoc d liu ring c mc c quyn truy cp thp hn.

Chng III: Qun l B nh

117

Chng trnh c th gi cc dch v trong cng mt ring hoc cc ring c mc c quyn truy cp cao hn. III.3.2.c. Kt hp phn trang vi phn on: C hai k thut phn trang v phn on u c nhng th mnh ca n. S phn trang, l trong sut (transparent) i vi ngi lp trnh, loi b c hin tng phn mnh ni vi. S phn on, l thy c i vi ngi lp trnh, c kh nng iu khin cc cu trc d liu ln dn v h tr chia s v bo v b nh. kt hp nhng thun li ca c hai h thng phn trang v phn on, mt s h thng c trang b s h tr ca c phn cng processor v phn mm h iu hnh ci t kt hp c hai k thut phn trang v phn on. Trong cc h thng kt hp phn trang v phn on, khng gian a ch b nh ca ngi s dng c chia thnh cc on theo mun ca ngi lp trnh, sau mi on li c chia thnh cc trang c kch thc c nh bng nhau. Theo cch nhn ca ngi lp trnh th a ch logic bao gm mt segment number v mt segment offset. Theo cch nhn ca h thng th segment offset c xem nh mt page number v page offser cho mt trang trong phm v mt segment c ch ra. Trong h thng phn trang kt hp phn on nay, h iu hnh thit k c bng trang v bng on. H iu hnh kt hp vi mi tin trnh c mt bng on v nhiu bng trang, mi phn t trong bng on ch n mt bng trang, bng trang ny qun l cc trang ca on tng ng. Khi mt tin trnh ring bit chy, mt thanh ghi gi a ch bt u ca bng on ca tin trnh . Trong h thng ny a ch o do processor ua ra phi gm 3 thnh phn: Segment Number, Page Number v Offset Segment number ch vo bng on tin trnh tm bng trang ca segment . Sau page number c s dng ch mc n bng trang v tm s hiu khung trang tng ng, gi tr ny s c kt hp vi thnh phn Offset trong a ch o c c a ch vt l thc mong mun. S chuyn i a ch trong h thng phn trang kt hp phn on:
Virtual Memory Seg # Page# Offset
Frame #

Offset

S#

P#
Off

+
Seg Table

+
Page Table

Seg Table Ptr

Hnh 3.12. S chuyn a ch trong h thng Trang - on

MM

Chng III: Qun l B nh

118

Phn on vi phn trang trong Intel 386:


Trong ch bo v ca 80286 v trong ch o ca 80386 khng gian b nh ca h thng c chia thnh hai loi: khng gian b nh ton cc v khng gian b nh cc b. Khng gian nh ton cc c dnh cho d liu h thng v cc tin trnh ca h iu hnh. Mi chng trnh ca ngi s dng u c th truy cp d liu v cc tin trnh khng gian nh ton cc ny. Khng gian nh cc b c dnh ring cho cc tin trnh, cc tc v ring bit. V vy, cc on m lnh v d liu ca mt tin trnh, mt tc v nm trong khng gian nh cc b s c bo v trnh s truy xut bt hp l ca cc tin trnh, cc tc v khc trong h thng. Trong k thut b nh o Intel 80386 s dng 2 bng m t: Bng m t cc b (LDT: Local Descriptor Table), theo di khng gian nh cc b v bng m t ton cc (GDT: Global Descriptor Table), theo di khng gian nh ton cc. Mi chng trnh s hu mt LDT ring, nhng c mt GDT c chia s cho tt c cc chng trnh trn h thng. LDT m t cc segment cc b cho mi chng trnh, bao gm code, data, stack, , trong khi GDT m t cc segment h thng, ca chnh h iu hnh. Cc LDT, GDT c np vo b nh trong qu trnh hot ng ca h thng, Intel 80386 dng thanh ghi GDTR ghi a ch c s v gii hn kch thc ca GDT v thanh ghi LDTR ghi a ch c s v gii hn kch thc ca LDT ca tc v hin ti. truy cp mt segment, u tin mt chng trnh chy trn Intel 386 phi np mt selector ca segment vo 1 trong 6 thanh ghi on ca Intel 386. Trong qu trnh thc hin chng trnh thanh ghi CS gi selector cho code segment v thanh ghi DS gi selector cho data segment. Mi selector di 16 bt v c m t nh sau: Bt 15 Index 13 0 = GDT 1 = LDT 1 2 0

Privilege level (0-3)

Hnh 3.13.a: Mt Selector (b chn on) Intel 386 Trong : Hai bt u tin cho bit mc c quyn truy cp ca b chn on, cc bt ny phc v cho cng tc bo v b nh (segment). Mt bt tip theo cho bit segment l cc b hay ton cc. Mi ba bt cn li ch n mc vo (entry) trong LDT hoc GDT, v th mi bng m t (Descriptor Table) ch lu gi c 8k (213) cc b m t on (segment descriptor). Tc l LDT/GDT c 213 mc vo/ phn t. Ti thi im mt selector c np vo mt thanh ghi segment, mt descriptor tng ng c nhn t bng LDT hoc GDT v c lu tr trong cc thanh ghi microprogram, do c th c truy cp nhanh. Mt descriptor gm c 8 byte, gm c a ch, kch thc, v cc thng tin khc ca segment. Hnh sau y m t mt descriptor trong Intel 386:
Chng III: Qun l B nh

119

32 bt Base 0 15 Base 24-31 G D 0 Limit 16-19 P DPL Limit 0 15 Type


Base 16-23

0 4

Hnh 3.13.b: Mt descriptor Code segment (b m t on code) Intel 386 Trong : Base (24 bit): cho bit v tr u tin ca segment trong khng gian a ch tuyn tnh 4GB. B x l ghp 3 trng a ch c s thnh mt gi tr a ch 32 bt duy nht. Trong thc t trng Base cho php mi segment bt u ti mt v tr bt k trong khng gian a ch tuyn tnh 32 bit. Limit (20 bit): cho bit kch thc ca segment. B x l ghp hai trng kch thc thnh mt gi tr 20 bt. B x l tnh kch thc theo hai cch da vo gi tr ca c G: G = 0: kch thc on nm gia 1B v 1MB, tnh theo n v byte. G = 1: kch thc on nm gia 4KB v 4GB, tnh theo n v 4Kbyte (= 212 = 1page). Nh vy vi 20 bt limit th mt segment c th c kch thc ln n 232 byte (212x220). Type (5 bit): nh ngha dng ca on v kiu truy cp on. DPL: Descriptor Privilege Level (2 bit): cho bit mc c quyn truy cp ca m t segment (c 4 mc c quyn truy cp: 0-3). P: Present (1 bit): cho bit segment ny c np vo b nh chnh (P = 1) hay cha c np vo b nh chnh (P = 0). G: Granularity (1 bit): nh ngha hng s nhn vi trng kch thc. G = 0: kch thc tnh theo n v 1byte. G = 1: kch thc tnh theo n v 1page (Mt page ca Intel 386 c kch thc c nh l 4Kbyte). D: Default Operation Sizze (1 bit): cho bit chiu di ca dng lnh. D = 1: vi x l mc nh 32 bt a ch, 32/8 bt m lnh. D = 0: vi x l mc nh 16 bt a ch, 32/8 bt m lnh. Sau y l s chuyn a ch gm 2 thnh phn selector v offset thnh a ch tuyn tnh (linear address) da vo bng m t on. Selector/16 Offset/16

+
Base Limit other

32 bit linear add

Bng m t on Hnh 3.13.c: Chuyn a ch logic (selector:offset) thnh a ch tuyn tnh


Chng III: Qun l B nh

120

Nu s phn trang (paging) b cm th a ch tuyn tnh c bin dch thnh a ch vt l v gi n b nh truy xut d liu. Nh vy khi s phn trang b cm th trong trnng hp ny h thng ch s dng s phn on (segmentation) n thun, vi a ch c s (base address) ca segment c cho trong descriptor ca n. Nu s phn trang l c php th a ch tuyn tnh s c bin dch thnh a ch o v c nh x thnh a ch vt l bng cch s dng cc bng trang. Mi chng trnh c mt danh mc bng trang (page directory) ring, bao gm 1024 entry 32 bit, n c np vo b nh c ch bi mt thanh ghi global, mi entry trong danh mc bng trang ch m mt bng trang (page table), bng trang cng cha 1024 entry 32 bit, mt mc vo trong bng trang li ch n mt khung trang (page frame). a ch tuyn tnh gm 3 trng: Dir, Page, Offset. Trng Dir: c s dng ch mc vo Page Directory tm n mt con tr tr ti Page Table. Trng Page: c s dng ch mc vo Page Table tm a ch vt l ca Page Frame. Trng Offset c cng vi a ch vt l ca Page Framre c c a ch vt l ca nh cha d liu cn truy xut. Dir: 10 bt Page: 10 bt Offset: 12 bt Hnh 3.13.d : a ch tuyn tnh 32 bt trong Intel 386 Mi entry trong page table di 32 bt, 20 bt cha s hiu ca page frame, cc bt cn li l cc bt truy cp, c thit lp bi phn cng cho cc li ch ca h iu hnh cc bt bo v v cc bt tin ch khc. Mi page table c 1024 entry cho cc page frame, mi page frame c kch thc l 4Kb, nn mt page table n qun l c 4Mb b nh. T a ch tuyn tnh trn h thng s nh x thnh a ch vt l, da vo page directorry, page table v page frame. Sau y l s , n gin, minh ha s nh x a ch tuyn tnh thnh a ch vt l: Page frame
Dir page Off

Page table

Page directory a ch vt l

Main memory Hnh 3.13.e: nh x a ch tuyn tnh thnh i ch vt l

Chng III: Qun l B nh

121

Trn y chng ta tm hiu v c ch b nh o trong Intel 386, by gi chng ta s tm hiu v s bo v trong c ch b nh o ca n. Cng c m 80386 a ra thc hin nhim v bo v khng gian nh cha cc tin trnh v cha chnh h iu hnh trn b nh chnh l: cc mc/ cp (level) c quyn truy cp hay mc u tin c yu cu (RPL: Request Privilege Level). T vi x l 80286 cc vi x l a ra 4 mc u tin t 0 n 3, c ghi ti trng Privilege Level ca thnh phn a ch selector (hnh 3.13.a). Mc 0 c u tin cao nht, mc 3 c u tin thp nht. Cc segment trn b nh cng c gn mt mc u tin tng t, c ghi ti trng DPL trong b m t on trong bng m t on (hnh 3.13.b). Cc ng dng c mc u tin cao hn s c quyn truy cp m lnh, d liu ti cc on nh c mc u tin thp hn. Cc ng dng c mc u tin thp hn s khng c truy cp m lnh, d liu ti cc on nh c mc u tin cao hn, trong thc t th iu ny cng c th nu cc ng dng bit cch vt qua cc Cng (Cng v nguyn tc hot ng ca Cng cc bn c th tm c mt ti liu no vit v cc vi x l ca h Intel). Bn mc u tin m 80386 a ra l: Mc 0: l mc ca thnh phn kernel ca h iu hnh. Kernel ca h iu hnh c np ti segment c mc c quyn truy cp l 0. Mc 1: l mc ca phn mm h thng qun l thit b v cng phn cng. Segment nh c gn mc ny cha cc chng trnh h thng ca BIOS v DOS/ Windows. Mc 2: cha cc th tc th vin, c th chia s cho nhiu chng trnh ang chy. Chng trnh ca ngi s dng c th gi cc cc th tc v c d liu mc ny nhng khng th modify n. Mc 3: chng trnh ca ngi s dng chy ti mc ny, y l mc c u tin thp nht. Khi chng trnh cn truy xut vo mt on nh no trn b nh th vi x l s da vo gi tr mc u tin ti RPL v DPL quyt nh c cho php chng trnh truy xut vo on nh hay khng. Trong trng hp ny Intel 80386 cng nhn ba mc u tin sau y: Mc u tin hin ti CPL (Current Privilege Level): l mc u tin ca chng trnh hay tc v ang chy. CPL c lu tr ti bit 0 v bit 1 ca cc thanh ghi on CS v SS. Thng thng gi tr ca CPL bng gi tr mc u tin ca on m lnh cha chng trnh ang chy. Gi tr ca CPL c th b thay i nu iu khin chng trnh c chuyn n mt on m lnh c u tin khc. Mc u tin b m t DPL (Descriptor Privilege Level): l mc u tin ca mt on. DPL c lu tr ti trng DPL ca cc b m t on. Nu chng trnh ang chy tm cch truy cp mt on nh, vi x l s so snh DPL vi CPL v RPL ca b chn on. Mc u tin c yu cu RPL (Peqest Privilege Level): l gi tr c ghi ti bt 0 v bt 1 trong b chn on. Vi x l s so snh RPL vi CPL kim tra quyn truy cp vo mt on. Khi CPL c gi tr cho php chng trnh truy cp

Chng III: Qun l B nh

122

mt on, nhng gi tr trong RPL khng c mc u tin tng ng th chng trnh cng khng c php tuy cp on. iu ny c ngha l nu RPL ca b chn on c gi tr ln hn CPL, th RPL s ghi chng ln CPL. Khi mt chng trnh c yu cu truy cp vo mt on nh no , th b phn qun l b nh ca vi x l s so snh mc u tin ghi trong RPL vi mc u tin ca on c ghi trong DPL, nu RPL ln hon hoc bng DPL th vi x l cho php chng trnh truy cp vng nh m n yu cu, nu ngc li th vi x l khng trao quyn truy cp vng nh cho chng trnh, ng thi pht ra mt ngt thng bo c s vi phm quyn truy cp vng nh. y chnh l c ch bo v b nh ca Intel 80386. III.3.2.d. B nh o v li trang (page fault) Trc khi tip tc tm hiu v s ci t b nh o v hin tng li trang trong b nh o, chng ta xem li s sau, hnh 3.14, thy c s khc nhau gia k thut phn trang n v k thut b nh o theo kiu phn trang. S ny cho thy: c mt tin trnh gm c 4 trang P0, P1, P2, P3 cn c np vo b nh chnh, khng gian a ch b nh chnh gm c 6 phn trang (paging), cn c gi l khung trang (frame), cn trng:
Main Memory

P2 P0 P3 P1 P0

(a)
P0 P1 P2 P3

5 4 3 2 1 0 5 4 3 2 1 0

PCT 3 2 2 5 1 0 0 3 Frame# Valid/ Invalid PCT 2 5 Frame# i 3 v 2 i 1 v 0

Cc page ca (b) tin trnh

P2

Main Memory

Hnh 3.14: S khc nhau gia phn trang n v b nh o phn trang. a: np tt c cc page ca tin trnh vo b nh. b: ch np page 0 v page 2 vo b nh.

Trng hp a, l trng hp phn trang n: trong trng hp ny tt c 4 page ca tin trnh u c np vo b nh. R rng s l lng ph b nh nu bit rng tin trnh ny ch cn np vo b nh 2 trang P0, P2 l tin trnh c th khi to v bt u
Chng III: Qun l B nh

123

hot ng c. V trong trng hp ny nu b nh ch cn 3 frame cn trng th tin trnh cng s khng np vo b nh c. PCT trong trng hp ny cho bit cc page ca tin trnh c np vo cc frame trn b nh chnh. Trng hp b, l trng hp b nh o s dng k thut phn trang: trong trng hp ny h iu hnh khng np tt c cc page ca tin trnh vo b nh m ch np 2 page cn thit ban u tin trnh c th khi to v bt u hot ng c, mc du trn b nh chnh cn mt vi frame cn trng. R rng trong trng hp ny h iu hnh tit kim c khng gian b nh chnh v nh m h iu hnh c th np vo b nh nhiu tin trnh hn v cho php cc tin trnh ny hot ng ng thi vi nhau. Cc page ca tin trnh cha c np vo b nh s c lu tr ti mt khng gian c bit trn a (thng l trn HDD), khng gian a ny c gi l khng gian b nh o, mt cch chnh xc th khng gian b nh o ny cha tt c cc page ca mt tin trnh. Nh vy PCT trong trng hp ny phi c thm mt trng mi, trng ny thng c gi l trng Present. Trng Present ch cn mt bt, n cho bit page tng ng l c np vo b nh chnh (= 1), hay cn nm trn a (= 0). Trong m hnh b nh o khi cn truy xut n mt page ca tin trnh th trc ht h thng phi kim tra bt present ti phn t tng ng vi page cn truy xut trong PCT, bit c page cn truy xut c np vo b nh hay cha. Trng hp h thng cn truy xut n mt page ca tin trnh m page c np vo b nh chnh, c gi l truy xut hp l (v: valid). Trng hp h thng cn truy xut n mt page ca tin trnh m page cha c np vo b nh chnh, c gi l truy xut bt hp l (i: invalid). Khi h thng truy xut n mt trang ca tin trnh m trang khng thuc phm vi khng gian a ch ca tin trnh cng c gi l truy xut bt hp l. Khi h thng truy xut n mt page c nh du l bt hp l th s pht sinh mt li trang. Nh vy li trang l hin tng h thng cn truy xut n mt page ca tin trnh m trang ny cha c np vo b nh, hay khng thuc khng gian a ch ca tin trnh. y ta ch xt li trang ca trng hp: Page cn truy xut cha c np vo b nh chnh. Khi nhn c tn hiu li trang, h iu hnh phi tm dng tin trnh hin ti tin hnh vic x l li trang. Khi x l li trang h iu hnh c th gp mt trong hai tnh hung sau: H thng cn frame trng (a): H iu hnh s thc hin cc bc sau: 1. Tm v tr ca page cn truy xut trn a. 2. Np page va tm thy vo b nh chnh. 3. Cp nht li bng trang (PCT) tin trnh. 4. Ti kch hot tin trnh tin trnh tip tc hot ng. H thng khng cn frame trng (b): 1. Tm v tr ca page cn truy xut trn a. 2. Tm mt page khng hot ng hoc khng thc s cn thit ti thi im hin ti swap out n ra a, ly frame trng np page m h thng va cn truy xut. Page b swap out s c h iu hnh swap in tr li b nh ti

Chng III: Qun l B nh

124

mt thi im thch hp sau ny. 3. Cp nht PCT ca tin trnh c page va b swap out. 4. Np trang va tm thy trn (bc 1) vo frame trng trn (bc 2). 5. Cp nht li bng trang (PCT) ca tin trnh. 6. Ti kch hot tin trnh tin trnh tip tc hot ng. X l li trang l mt trong nhng nhim v quan trng v phc tp ca h thng v h iu hnh. x l li trang h thng phi tm dng cc thao tc hin ti, trong trng hp ny h thng phi lu li cc thng tin cn thit nh: con tr lnh, ni dung ca cc thanh ghi, cc khng gian a ch b nh, , cc thng tin ny l c s h thng ti kch hot tin trnh b tm dng trc khi n hon thnh vic x l li trang. Khi x l li trang, trong trng hp h thng khng cn frame trng h iu hnh phi ch n cc vn sau: Nn chn page no trong s cc page trn b nh chnh swap out: V vn ny chng ta bit h iu hnh s p dng mt thut ton thay page c th no , nhng y cn ch thm rng i tng ca cc thut ton thay page l ch cc page ca tin trnh xy ra li page, hay tt c cc page ca cc tin trnh ang c trn b nh chnh. Tc l, nn chn page ca tin trnh xy ra li trang thay th (thay th cc b), hay chn mt page ca tin trnh khc thay th (thay th ton cc). Nu chn page ca tin trnh xy ra li trang th s n gin hn vi h iu hnh v khng nh hng n cc tin trnh khc, nhng cch ny c th lm cho tin trnh hin ti li tip tc xy ra li trang ngay sau khi h iu hnh va x l li trang cho n, v page m h iu hnh va chn a ra (swap out) li l page cn truy xut thi im tip theo. Nu chn page ca tin trnh khc th tin trnh hin ti s t c nguy c xy ra li trang ngay sau hn, nhng cch ny s phc tp hn cho h iu hnh, v h iu hnh phi kim sot li trang ca nhiu tin trnh khc trong h thng, v h iu hnh kh c th d on c nguy c xy ra li trang ca cc tin trnh trong h thng. Trong trng hp ny c th li trang s lan truyn n nhiu tin trnh khc trong h thng, khi vic x l li trang ca h iu hnh s phc tp hn rt nhiu. a s cc h iu hnh u chn cch th nht v n n gin v khng nh hng n cc tin trnh khc trong h thng. Neo mt s page: Trn b nh chnh tn ti cc page ca cc tin trnh c bit quan trng i vi h thng, nu cc tin trnh ny b tm dng th s nh hng rt ln n h thng v c th lm cho h thng ngng hot ng, nn h iu hnh khng c a cc page ny ra a trong bt k trng hp no. trnh cc thut ton thay trang chn cc page ny h iu hnh t chc nh du cc page ny, bng cch a thm mt bt mi vo cc phn t trong cc PCT, bt ny c gi l bt neo. Nh vy cc thut ton thay trang s khng xem xt n cc page c nh du neo khi cn phi a mt trang no ra a. Phi trnh c trng hp h thng xy ra hin tng tr tr h thng: Tr tr h thng l hin tng m h thng lun trong tnh trng x l li trang, tc l a phn thi gian x l ca processor u dnh cho vic x l li trang ca 125

Chng III: Qun l B nh

h iu hnh. Hin tng ny c th c m t nh sau: khi x l li trang trong trng hp trn b nh chnh khng cn frame trng, trong trng hp ny h iu hnh phi chn mt page no , v d P3, swap out n, ly frame trng , np page va c yu cu np, khc phc li trang. Nhng khi va khc phc li trang ny th h thng li xy ra li trang mi do h thng cn truy xut d liu trang P3, h iu hnh li phi khc phc li trang ny, v h iu hnh phi swap out mt page no , v d P5. Nhng ngay sau h thng li xy ra li trang mi do khng tm thy page P5 trn b nh chnh v h iu hnh li phi x l li trang, v c nh th c th h iu hnh phi ko di vic x l li trang m khng th kt thc c. Trong trng hp ny ta ni rng: h thng ri vo tnh trng tr tr h thng. Nh vy h thng c th xy ra hin tng tr tr h thng khi: trn b nh khng cn frame trng, page m thut ton thay trang chn swap out l mt page khng c tt, xt v kha cnh d bo li trang ca h iu hnh. nh du cc trang b thay i: Khi x l li trang, ta thy h iu hnh thng phi thc hin thao tc swap out. H iu hnh phi mang mt page ca mt tin trnh ti mt khung trang no ra lu tm trn a cng, ti khng gian swap. Tc l, h iu hnh phi tn thi gian cho thao tc swap out, iu ny s lm gim tc ca h thng v c th gy lng ph thi gian x l ca processor. H iu hnh c th hn ch c iu ny bng cch: khng phi lc no h iu hnh cng phi thc hin swap out mt page ly khung trang trng m h iu hnh ch thc s swap out mt page khi page b thay i k t ln n c np vo b nh gn y nht. Khi quyt nh swap out mt page ly khung trang trng np mt page mi vo b nh, m page cn swap ny khng b thay i k t ln np gn y nht, h iu hnh s khng swap out n m h iu hnh ch np page mi vo b nh v ghi ln n, iu ny c ngha l h iu hnh tit kin c thi gian swap out mt page tin trnh ra a. lm c iu ny h iu hnh phi gii quyt hai vn sau: Th nht, lm th no xc nh c mt page l b thay i hay cha k t ln np vo b nh gn y nht. Th hai, nu khng swap out mt page th khi cn h iu hnh s swap in n t u. i vi vn th nht: h iu hnh ch cn thm mt bt, bt modify chng hn, vo phn t trong bng trang. Khi mt page va c np vo b nh th bit modify bng 0, nu sau ni dung ca page b thay i th bt modify c i thnh 1. H iu hnh s da vo bt modify ny bit c mt page c b thay i hay khng k t ln np vo b nh gn y nht. i vi vn th hai: h iu hnh c th swap in mt page ti v tr ban u ca n trn a, hoc ti khng gian swap ca n. Trong mt s h iu hnh khi mt tin trnh c to th lp tc h iu hnh s cp cho n mt khng gian swap trn a, bt k khi no tin trnh b swap out n u c swap n khng gian swap ca n, khi tin trnh kt thc th khng gian swap ca n s c gii phng. Nh vy chun b cho vic swap in sau ny, khi np mt page ca tin trnh vo b nh h iu hnh s ghi ni dung ca page ny vo khng gian swap ca n.

III.4. Qun l b nh RAM ca DOS


III.5.a. Program Segment Prefix (PSP):
Chng III: Qun l B nh

126

MS_DOS dng hm EXEC np cc chng trnh EXE v COM vo b nh. EXEC phi chun b mt vng nh m chng trnh s np vo, v t vo u vng nh ny mt cu trc d liu c gi l khi tin t chng trnh PSP. Chng trnh s c np vo ngay sau PSP, sau h iu hnh s khi to cc thnh ghi Segment v Stack chng trnh bt u hot ng. Khi chng trnh kt thc th h iu hnh gii phng c khi nh cp cho chng trnh v khi nh dng lm PSP cho chng trnh. PSP di 256 byte, cha cc thng tin cn cho c DOS v chng trnh chy. PSP cho bit a ch on ca nh cui cng dnh cho chng trnh, a ch on ca khi bin mi trng, di ca dng lnh, cc tham s dng lnh, vv. Cc bn c th tm hiu r hn v cu trc ca mt PSP mt ti liu khc vit v h iu hnh MS_DOS.

III.5.b. Chng trnh COM v EXE:


Trong phn ny chng ta xem xt n s hot ng ca hai loi file chng trnh EXE v COM. Cc chng trnh dng COM c kch thc gii hn trong 64 KB, trong khi kch thc ca chng trnh dng EXE c th ln ngang bng kch thc ca RAM. H iu hnh c th np mt chng trnh dng EXE c kch thc ln hn vo RAM nu chng trnh c thit k vi cu trc thch hp (cu trc ng chng hn). i vi cc chng trnh dng COM, c ba on ca chng trnh l code, data v stack u cha trong cng mt on 64 KB. Chng trnh COM trn RAM l hnh nh chnh xc ca n trn a. Do ngay sau khi chng trnh COM c np vo b nh RAM th tt c cc thanh ghi on u cha cng mt gi tr, chnh l a ch on ca mt on nh (64 KB) cha cc on ca chng trnh, trong qu trnh hot ng ca chng trnh gi tr cc thanh ghi on khng thay i, ngoi tr thnh ghi on ES c th thay i. i vi cc chng trnh dng EXE ba on ca chng trnh l code, data v stack c th c np vo ba on b nh khc nhau, v c th mt on ca chng trnh, tu theo kch thc ca n, m n c th c np vo nhiu hn mt on b nh. Do ngay sau khi chng trnh c np vo b nh cc thanh ghi on u c khi to bng cc gi tr khc nhau (c th DS = ES), chnh l a ch on ca cc on b nh cha cc on chng trnh tng ng. Trong qu trnh hot ng ca chng trnh c th gi tr ca thanh ghi CS b thay i. Chng trnh dng EXE trn b nh RAM khng phi l hnh nh trung thc ca n trn a m n c m ho theo mt cch no . Hnh 3.15 sau y minh ha cho iu ny. Mt chng trnh dng COM khng th vt qu gii hn 64 Kb k c 256 byte PSP v 1 word khi to stack. Mt d vy nhng khi np mt chng trnh COM vo b nh DOS vn dnh ht b nh cn li cho chng trnh, iu ny gy lng ph b nh, do chng trnh COM khng th gi mt chng trnh khc thng qua hm EXEC, nu trc chng trnh khng gii phng khi nh tha m h iu hnh cp cho chng trnh. V chng chng trnh COM c np ngay sau PSP ca n trong b nh nn ngay sau khi iu khin c chuyn cho chng trnh COM th cc thanh ghi on u hng ti u PSP, thanh ghi con tr lnh (IP) nhn gi tr offset 100h v thanh ghi con tr stack (SP) nhn gi tr offset FFFEh (v stack vng cao ca on 64 Kb v lun c khi to bi mt phn t 2 byte). DOS khng np chng trnh COM vo mt a

Chng III: Qun l B nh

127

ch xc nh trc v khng cho php thc hin mt li gi xa (FAR) trong chng trnh. EXE COM SS CS 100h Stack

Code PSP

DS ES

Code PSP

100h

Hnh 3.15: Cc thanh ghi con tr on ngay sau khi khi to chng trnh: chng trnh EXE so vi chng trnh COM. Chng trnh dng EXE khng b gii hn kch thc mt segment (64 Kb) m n c th vt qu gii hn ca 3 segment, nh m ngi lp trnh c th thit k c cc chng trnh vi nhiu chc nng hn. Tuy nhin iu ny lm cho cu trc ca chng trnh s phc tp hn, n phi cha nhiu thng tin lin quan n chng trnh hn, cc thng tin ny l cn thit h iu hnh np chng trnh vo b nh v iu khin vic thc hin ca chng trnh. Cc chng trnh EXE khng c np vo cc on b nh xc nh trc m c th c np vo mt v tr bt k (c a ch l bi nguyn ca 16). Trong chng trnh dng EXE c th gi mt chng trnh khc thng qua hm EXEC v c th thc hin cc li gi xa gi mt chng trnh con on nh khc. Trong giai on bin dch v lin kt chng trnh, chng trnh lin kt LINK t vo u cc file chng trnh EXE mt cu trc d liu c bit c gi l Header ca chng trnh. Header cha nhiu thng tin lin quan n chng trnh nh kch thc header, kch thc chng trnh, gi tr khi to ca IP v SP, a ch bt u ca on code trong file EXE, v c bit l a ch tng i ca cc on. a ch on thc t trong b nh RAM nhn c bng cch cng a ch tng i ny vi a ch ca on m chng trnh c np vo (a ch on bt u). a ch on bt u thng l a ch on ca PSP cng vi 10h. Khi h iu hnh np mt chng trnh EXE vo b nh n bit c a ch cc nh cha cc a ch on cn thay i cho ph hp, h iu hnh vit li cc gi tr ny bng cch cng cc gi tr trong vi a ch on bt u. Thao tc ny c th lm chm tc np cc chng trnh EXE. Sau khi cc a ch on c sa thnh cc a ch c hiu lc th h iu hnh c nh cc thanh ghi on DS v ES theo u ca PSP (DS = ES = PSP). Do chng trnh EXE c th truy cp d dng n cc thng tin trong PSP. Cc bn c th tm hiu r hn v cu trc v li ch ca header mt ti liu khc vit v cc file EXE trong h iu hnh MS_DOS.

Chng III: Qun l B nh

128

III.5.c. Memory Control Block (MCB): H iu hnh MS_DOS l h iu hnh n nhim a chng, nn n cho php np nhiu hn mt chng trnh vo b nh chnh (RAM), mc d ti mt thi im nht nh ch c duy nht mt chng trnh thc hin. Theo MS_DOS th khng gian b nh chnh c chia thnh 2 phn: phn thp nht (640B u tin) c gi l vng b nh quy c (conventional area). Phn cn li c gi l vng nh trn (upper area). Cc chng trnh ca ngi s dng phi np vo vng nh quy c hot ng. Vng nh quy c c chia thnh hai phn: phn thp nht cha cc thnh phn chnh ca h iu hnh nh l bng vector ngt, io.sys, msdos.sys, cc chng trnh iu khin thit b, phn thng trc ca command.com, vv. Phn cn li ca vng quy c c gi l vng TPA (Transient Program Area), tt c cc chng trnh ca ngi s dng phi c chy ti y. Nh vy, khng ph thuc vo kch thc ca b nh chnh, MS_DOS ch dnh cha y 640KB cho cc chng trnh ca ngi s dng v cc khi tham s mi trng tng ng. Vng nh trn c chia thnh nhiu vng nh khc nhau nh l video RAM, ROM BIOS, cc iu khin I/O, vv. qun l cc khi nh c chia trn vng nh cng nh cc chng trnh c np vo vng TPA h iu hnh MS_DOS s dng cc khi iu khin b nh MCB. Mi MCB di 16 byte (1 paragraphe), qun l mt vng nh nm ngay sau n. Khi c mt chng trnh cn c np vo b nh, ty theo yu cu b nh ca chng trnh m DOS cung cp cho chng trnh mt vng nh, vng nh ny s c qun l bi mt MCB ng ngay trc n. Hnh 3.16 sau y minh ha cho iu ny. 0000:0000
Bt u vng TPA

H iu hnh nh H i uh
Memory Control Block1 c qun l bi MCB1 Memory Control Block2 c qun l bi MCB2 MCB3 (MCB cui cng) Lin kt gia cc MCB

Kt thc vng TPA Kt thc M

c qun l bi MCB3

Hnh 3.16: Qun l b nh bng MCB ca DOS Cu trc ca mt MCB oc m t hnh di. Trong : Trng ID: nh danh MCB, ID = Z: y l MCB cui cng, ID = M: cha phi l MCB cui cng. 129

Chng III: Qun l B nh

Trng a ch PSP: y l a ch on ca PSP tng ng ca chng trnh. Nu vng nh c cp l khi mi trng ca mt chng trnh th trng ny ch ra a ch PSP ca chnh chng trnh. Ngc li nu vng nh c cp l mt PSP th trong a s trng hp trng ny ch ra chnh vng nh ca chng trnh.
1byte 2 byte 2 byte 11 byte Cha s dng

ID

a ch PSP

S lng byte

Hnh 3.17: Cu trc ca mt MCB Trng s lng byte: trng ny ch ra s lng byte ca vng nh c cp (tnh theo n v paragraphe), tc l n cho bit khong cch t mt MCB thp n MCB k tip cao hn. Nh vy m cc MCB trn b nh c kt ni nh mt danh sch lin kt. np mt chng trnh vo b nh DOS cp cho chng trnh hai vng nh, vng th nht cha khi tham s mi trng ca chng trnh, vng th hai cha chnh chng trnh v PSP tng ng ca n. Vic xc nh kch thc ca chng trnh dng COM s rt kh v chng trnh dng COM c lu tr trn a l hon ton ging nh n trn b nh, ngoi ra khng c thm bt c thong tin no. i vi cc chng trnh dng EXE th d hn v kch thc ca chng trnh EXE c ghi trong Header, header ng trc mi chng trnh EXE v c to ra trong qa trnh bn dch chng trnh. Thng thng khi np mt chng trnh dng COM vo b nh DOS s cp cho chng trnh ton b khng gian nh cn li ca b nh.

III.5. S phn trang/on trong h iu hnh Windown NT


Windows NT c thit k ci t trn nhiu h processor khc nhau, c bit l trn cc processor Intel 486. Trn cc h thng PC IBM v tng thch s dng Intel 486, Windows chp nhn kch thc ca mt page l 4KB, y l c s thc hin chin lc b nh o ca Windows NT. III.5.a. Segmentation: Khi s phn on c s dng, mi a ch o (trong cc ti liu 80386 c gi l a ch logic) bao gm 16 bt segment v 32 bt offset. Hai bt u tin ca segment c s dng trong chin lc bo v b nh, 14 bt cn li dng ch n mt segment c th. Do vi b nh khng c phn on, b nh o ca chng trnh ngi s dng l 32 2 = 4GB. Vi b nh c phn on, tng khng gian b nh o c nhn bi 46 chng trnh ngi s dng l 2 = 64TB. Khng gian a ch vt l 32 bt cho kch thc ti a l 4GB. Lng b nh o thc t c th ln hn 64TB: i vi 80386 a ch o ph thuc vo processor ang s dng. Mt na khng gian a ch o (8K segment x 4GB) l khng gian chung, c chia s cho tt c cc tin trnh, phn cn li l a ch cc b v dnh ring cho mi tin trnh. Gn lin vi mi on l 2 dng thc ca s bo v: mc c quyn (privilege level) v thuc tnh truy cp (access attribue). C 4 mc c quyn, t c bo v cao nht n c bo v thp nht: level 0, level 1, level 2, level 3. Mc c quyn c th

Chng III: Qun l B nh

130

c gn vi segment d liu hoc vi program segment. Mt chng trnh thc hin ch c th truy cp d liu trong segment khi mc c quyn ca n thp hn hoc bng mc c quyn gn vi segment d liu. Phn cng khng bt buc s dng cp c quyn no, vic ny do cc nh thit k h iu hnh quyt nh. Thuc tnh truy cp ca mt segment d liu ch ra c hay khng s cho php truy cp read/write hoc read-only. i vi cc segment program, thuc tnh truy cp ch ra c hay khng truy cp read/excute hoc read-only. Chin lc chuyn i a ch cho s phn on gm nh x mt a ch o thnh a ch tuyn tnh v a ch tuyn tnh thnh a ch thc. Dng thc ca a ch o trong NT c m t trong hnh sau:
47 35 34 33 31 0

Segment number a. a ch o
31 21

TI

RPL
12

Offset
0

Directory b. a ch tuyn tnh

Page

Offset

Hnh 3.18.a: ach o v a ch tuyn tnh ca Intel 80486 Table indecator (TI): 1 bt, cho bit c hay khng mt global segment table hay local segment table l c s dng cho vic chuyn i a ch. Segment number: 13 bt, l s hiu ca segment, n c xem nh l mt ch mc vo segment table. Offset: 32 bt, khong cch t mt byte c nh a ch so vi u segment. Requested privilege level (RPL): 2 bt, mc c quyn truy cp c yu cu cho truy cp ny. Mi phn t trong segment table bao gm 64bit, c m t nh hnh sau:
31 21 15

0 Dpl 1 Type A Base 23..16 Segment Limit 15...0

Base 31..24

000

Limit 19..16

Segment Base 0...15

Hnh 3.18.b: Mt phn t trong segment table Limit: y l kch thc ca segment. Kch thc ti a ca mt segment c th l 1Mb (1 n v = 1byte) hoc 4Gb (1 n v = 4Kb, iu ny ph thuc vo bt Granularity). Base: cho bit a ch bt u ca segment trong khng gian tuyn tnh 4Gb. Accessed bit (A): khi segment tng ng c truy cp th bt ny bng 1. Cc h iu hnh s dng h thng b nh segmented nonpaged dng bt ny theo di vic s dung cc segment. i vi cc h thng paged th bt ny b qua. Type: cho bit c tnh ca cc loi segment khc nhau v ch ra cc thuc

Chng III: Qun l B nh

131

tnh truy cp. Descriptor privilege level (DPL): ch ra mc c quyn ca segment (0-3). Segment present bit (P): trong cc h thng khng c phn trang, bt ny cho bit segment c trong b nh chnh hay khng. Trong cc h thng phn trang bt ny lun lung bng a. Granularity bit (G): cho bit mt n v cp pht l l 1 byte hay 4Kb (page). Bt ny kt hp vi trng limit tnh kch thc ca mt segment. III.5.b. Paging: S phn on l s la chn cho tng lai v c th kh ci t c. Khi s phn on c s dng, a ch c s dng trong chung trnh l a ch o v c chuyn thnh a ch tuyn tnh. Khi s phn on khng c s dng, a ch c s dng trong chung trnh l a ch tuyn tnh. Trong c hai trng hp a ch tuyn tnh u c chuyn thnh a ch thc 32bit. Trong chin lc phn trang ca 80386, 80386 s dng bn trang 2 cp. Cp u tin l th mc bn trang (page directory), cp th hai l bn trang (page table). Page directory c th gm 1024 phn t. Tc l n chia 4Gb khng gian a ch b nh thnh 1024 nhm trang, mi nhm trang gm 4Mb v s hu mt bn trang ring. Mi bn trang gm 1024 phn t, mi phn t tng ng vi mt trang n 4KB. Cc h iu hnh c th la chn s dng mt page directory cho tt c cc tin trnh hoc mi tin trnh c mt page directory ring hoc kt hp c hai. Page directory ca tc v hin ti nm trong b nh chnh, page table c th c cha trong b nh o. Sau y l dng thc ca cc phn t trong page directory v page table:
31 Page Table Address 31..12 31 Page Frame Address 31..12 11 Avail 11 Avail 00 D A 00 US RW 00 D A 00 US RW 0 P 0 P

a. Mt phn t trong Page table directory

b. Mt phn t trong Page table Hnh 3.19.a: phn t trong page directory v page table Page frame address: Nu P = 1 th cc bt ny ch ra a ch vt l ca mt trang trong b nh. Page table address: Nu P = 1 th cc bt ny ch ra a ch vt l ca mt bn trang trong b nh. Present bit (P): bt ny cho bit trang tng ng ang trong b nh chnh hay cn trn a. Accessed bit (A): bt ny c processor bt ln 1 trong c hai cp ca bn trang khi c mt thao tc write/read c thc hin trang tng ng. Dirty bit (D): bt ny c processor bt ln 1 khi c mt thao tc write c thc hin trang tng ng. User/Supervisor bit (US): Bt ny cho bit trang tng ng anh ring cho

Chng III: Qun l B nh

132

h iu hnh hay cho c h iu hnh (cp supervisor) v cc chng trnh ng dng (cp user) Read/write bit (RW): i vi cc page cp user, bt ny cho bit trang tng ng l c hay khng s truy cp read only. i vi cc page cp program, bt ny cho bit trang tng ng l c hay khng s truy cp read Read/write. Available bits (AVAIL): sn sng cho ngi lp trnh h thng s dng. Chuyn a ch trong k thut segmentation kt hp paing ca Windows NT trong h thng vi x l Intel 486.
virtual address Seg # Offs

linear address Dir Page Offs

Physical address

+ +
Segment Table Page Directory Page Table Main Memory

Hnh 3.19.b: Chuyn i a ch segment + page trong Intel

Nh vy Intel 80486 h tr Windows NT ci t b nh o theo k thut phn on kt hp phn trang. Cn nhc li rng trong k thut b nh o cn phi c s h tr ca c phn cng (processor) v phn mm. Processor thc hin 2 nhim v chnh l thc hin vic chuyn i ng t a ch o thnh a ch vt l v pht sinh ngt khi c mt s tham chiu n mt trang hoc on m trang on ny khng c trn b nh chnh (li trang).

III.6. Cc thut ton thay trang


Nh bit, x l li trang, trong trng hp trn b nh khng cn frame trng, h iu hnh phi tm mt page no trn b nh chnh a ra a, ly frame trng phc v cho vic x l li trang. Khi quyt nh chn mt page no a ra a th h iu hnh phi m bo rng vic chn ny l: khng nh hng n cc tin trnh khc, t c nguy c xy ra li trang ngay sau nht v c bit h thng kh c th ri vo tnh trng tr tr h thng nht. Trong trng hp ny h iu hnh a vo s dng cc thut ton thay trang c th nh: Optinal, LRU, FIFO, Clock. Cc thut ton thay trang khc nhau c cc tiu ch chn trang swap out khc nhau, nhng tt c u hng ti mc tiu l: n gin v t xy ra li trang nht. N khng quan tm n vic page c chn swap out l trang ca tin trnh gy ra li trang hay trang ca mt tin trnh no trong h thng. Cc thut ton thay trang khng xem xt n cc trang b nh du neo.

Chng III: Qun l B nh

133

so snh hiu sut x l li trang ca cc thut ton thay trang, chng ta phi p dng cc thut ton ny trong cng mt iu kin: c cng s lng frame cn trng ban u v cn phi np mt danh sch cc trang nh nhau vo b nh. Thut ton c gi l c hiu sut cao hn khi n xy ra t li trang hn. Trong cc thut ton sau y chng xem xt trong trng hp: ban u h thng c 3 frame cn trng v h iu hnh cn phi np mt danh sch cc trang sau y vo b nh: 2, 3, 2, 1, 5, 2, 4, 5, 3, 2, 5, 2. Trong cc thut ton sau y chng ta ch xt n trng hp b ca li trang, l h iu hnh phi x l li trang khi trn b nh chnh khng cn khung trang trng. Thut ton FIFO (First In First Out) Thut ton FIFO l thut ton n gin v d ci t nht. Vi thut ton ny th trang m h iu hnh chn swap out l trang c a vo b nh sm nht, hay trong b nh lu nht. Bng sau y minh ha cho vic chn trang swap out v thay th ca thut ton FIFO:
2 Frame 1 Frame 2 Frame 3 2 3 2 3 2 2 3 1 2 3 1 5 5 3 1 F 2 5 2 1 F 4 5 2 4 F 5 5 2 4 3 3 2 4 F 2 3 2 4 5 3 5 4 F 2 3 5 2 F

Theo bng trn th trong trng hp ny xy ra 6 li trang, khi h iu hnh cn np trang 5 vo b nh th n phi a trang 2 ra ngoi ly frame1 np trang 5, khi h iu hnh cn np li trang 2 vo b nh th n phi a trang 3 ra ngoi ly frame2 np trang 2, khi h iu hnh cn np trang 4 vo b nh th n phi a trang 1 ra ngoi ly frame3 np trang 4, Thut ton ny khng phi lc no cng mang li hiu qu tt. Th nht, c th trang c a vo b nh lu nht li l trang cn c s dng ngay sau , tc l h iu hnh va swap out n th phi swap in n tr li b nh ngay v r rng trong trng hp ny h iu hnh li phi tip tc vic x l li trang, trng hp ca trang 2 trn l mt v d. Th hai, c th li trang s tng ln khi s lng khung trang c s dng tng ln, trng hp ny c gi l nghch l Belady. Khi h iu hnh cn np cc trang sau y theo th t vo b nh: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5 th s xy ra 9 li trang nu s dng 3 khung trang, v s xy ra 10 li trang nu s dng 4 khung trang. Vi thut ton ny h iu hnh cn phi c c ch thch hp ghi nhn thi im mt trang c np vo b nh lm c s thay th sau ny. Trong trng hp ny h iu hnh thng s dng mt danh sch lin kt ghi nhn cc trang c np vo b nh, trang c np vo sm nht c ghi nhn u danh sch, trang c np vo mun nht c ghi nhn cui danh sch v trang c chn thay th l trang u danh sch. H iu hnh s xa phn t u danh sch ny ngay sau khi mt trang c thay th. Thut ton LRU (Least Recenty Used) Theo thut ton ny th trang c h iu hnh chn thay th l trang c khong thi 134

Chng III: Qun l B nh

gian t lc n c truy xut gn y nht n thi im hin ti l di nht, so vi cc trang ang trn b nh chnh. Nh vy trong trng hp ny h iu hnh phi ghi nhn thi im cui cng trang c truy xut. Bng sau y minh ho cho vic chn trang swap out v thay th ca thut ton LRU:
2 Frame 1 Frame 2 Frame 3 2 3 2 3 2 2 3 1 2 3 1 5 2 5 1 F 2 2 5 1 4 2 5 4 F 5 2 5 4 3 3 5 4 F 2 3 5 2 F 5 3 5 2 2 3 5 2

Theo bng trn th trong trng hp ny xy ra 4 li trang, khi h iu hnh cn np trang 5 vo b nh th n phi a trang 3 ra ngoi ly frame2 np trang 5, v h iu hnh thy rng trang 3, ch khng phi l trang 2, l trang va c truy xut cch y lu nht. Thut ton ny cn phi c s h tr ca phn cng xc nh thi im gn y nht trang c truy xut ca tt c cc trang trn b nh. C hai cch c p dng: S dng b m: trong cch ny, cc processor thm vo cu trc ca cc phn t bng trang mt trng mi, tm gi l trng LRU, trng ny ghi nhn thi im trang tng ng c truy xut gn y nht. V thm vo cu trc ca CPU mt b m (Counter). Mi khi c s truy xut b nh th Counter tng ln mt n v. Mi khi mt trang trn b nh c truy xut th gi tr ca Counter s c ghi vo trng LRU ti phn t trong bng trang tng ng vi trang ny. Nh vy trang c chn thay th l trang c LRU l nh nht. S dng Stack: trong cch ny h iu hnh s dng mt Stack lu tr s hiu ca cc trang c np vo b nh chnh. Khi mt trang c truy xut th s hiu ca trang ny s c xa khi Stack ti v tr hin ti v c a ln li nh Stack. Nh vy trang c s hiu nm nh stack l trang c s dng gn y nht, trang c s hiu nm y stack l trang lu nay t c s dng nht. V trang c chn thay th l cc trang c s hiu nm y stack. Thut ton Optinal (ti u) Theo thut ton ny th trang c h iu hnh chn thay th l trang s lu c s dng nht trong tng lai. Bng sau y minh ho cho vic chn trang swap out v thay th ca thut ton Optinal:
2 Frame 1 Frame 2 Frame 3 2 3 2 3 2 2 3 1 1 2 3 1 F 5 2 3 5 2 2 3 5 4 4 3 5 F 5 4 3 5 3 4 3 5 2 2 3 5 F 5 2 3 5 2 2 3 5

Theo bng trn th trong trng hp ny ch xy ra 3 li trang, khi h iu hnh cn np trang 5 vo b nh th n phi a trang 1 ra ngoi ly frame3 np trang 5, v h iu hnh cho rng trang 1 l trang s lu c s dng trong t ng lai.

Chng III: Qun l B nh

135

Mc du thut ton ny t xy ra li trang hn, nhng trong thc t kh c th ci t c v h iu hnh kh c th on trc c khi no th mt trang c truy xut tr li. Thut ton ny khng chiu tc ng ca nghch l Belady. Ch : Cc ti liu v h iu hnh a ra rt nhiu thut ton thay trang, nhng chng ti khng trnh by y, cc bn c th tm c ti liu tham kho [1] v [2].

III.7. Cp pht khung trang


Vi k thut b nh o phn trang th h iu hnh khng cn v cng khng th mang tt c cc page ca mt tin trnh np vo b nh chnh chun b thc hin. V vy h iu hnh cn phi quyt nh np bao nhiu page, bao nhiu tin trnh vo b nh. Hay chnh xc hn l np bao nhiu tin trnh v mi tin trnh c np bao nhiu page vo b nh (c cp bao nhiu khung trang). H iu hnh c th quyt nh vn ny theo cc chn la sau y: Ch c mt lng nh, c th l ti thiu, cc page ca tin trnh c np vo b nh. Nh vy h iu hnh s np c nhiu tin trnh vo b nh ti bt k thi im no. iu ny lm tng kh nng a chng ca h iu hnh v kh nng tm thy mt tin trnh Ready ca h iu hnh l rt ln nh vy m hiu qu iu phi ca h iu hnh tng ln. Nhng trong trng hp ny h iu hnh phi lun ch n vic np thm cc page ca tin trnh vo b nh v h iu hnh kh c th xc nh c s lng khung trang ti thiu m mi tin trnh cn khi khi to. Nu c mt lng va phi cc page ca mt tin trnh trong b nh chnh th c t hn s tin trnh c np vo b nh. Nh vy s a chng s gim xung nhng tc thc hin ca tin trnh c th c ci thin v khi mt ch th ca cc page trong b nh chnh cn truy xut n mt page khc th nhiu kh nng page ny c trn b nh chnh. Nhng l thuyt h iu hnh chng minh c rng trong trng hp ny t l xy ra li trang l rt ln. Nu c mt lng ln cc page ca mt tin trnh trong b nh chnh, th s a chng s gim xung ng k. Nhng l thuyt h iu hnh chng minh c rng trong trng hp ny t l xy ra li trang l rt thp. Mt khc iu ny c th gy lng ph b nh v c th c cc page ca mt tin trnh rt t c s dng khi n trn b nh chnh. Theo trn th mi chn la u c nhng im thun li v nhng im cha thun li ring, do ty trng hp c th m h iu hnh thc hin cp pht khung trang cho tin trnh theo mt chn la no , m bo c nhiu tin trnh c np vo b nh chnh, nhng kh nng v t l li trang l thp nht v s lng ph b nh l thp nht. p ng iu ny cc h iu hnh thng thc hin vic cp pht khung trang cho cc tin trnh theo hai chnh sch: Cp pht tnh v Cp pht ng Chnh sch cp pht tnh (fixed allocation): Vi chnh sch ny h iu hnh s cp cho mi tin trnh mt s lng khung trang c nh, np cc page ca tin trnh vo b nh n c th hot ng c. S lng khung trang ny c quyt nh ti thi im khi to/to tin trnh. H iu hnh cng c th quyt nh s lng khung trang ti thiu cho tin trnh da vo loi ca tin trnh, l tin trnh tng tc, tin trnh x l theo l hay tin trnh theo hng ng dng. Vi cp pht tnh, khi c li 136

Chng III: Qun l B nh

trang xy ra trong qu trnh thc hin tin trnh th h iu hnh phi swap out mt page ca tin trnh thc hin vic x l li trang. Chnh sch cp pht ng (variable - allocation): Vi chnh sch ny h iu hnh ch cp mt lng va khung trang, np cc trang cn thit nht ca tin trnh, tin trnh c th khi to v hot ng c, sau tu theo yu cu ca tin trnh m h iu hnh c th cp pht thm khung trang cho n, np thm cc trang cn thit khc. H iu hnh thng cp thm khung trang cho tin trnh khi tin trnh b ri vo tnh trng li trang, vi cc tin trnh c tng sut xy ra li trang ln th h iu hnh phi cung cp mt lng khung trang ln, mt cch vt bt, tin trnh thot ra khi li trang v nguy c li trang tip theo l thp nht.

III.8. Mt s vn v qun l b nh ca Windows 2000


III.8.1. Nhim v qun l b nh ca Windows 2000
Thnh phn qun l b nh ca Windows 2000 thc hin hai nhim v chnh sau y: Chuyn i, hay nh x, khng gian a ch o ca mt tin trnh vo b nh vt l khi mt tiu trnh thc thi trong mt ng cnh ca tin trnh , c hay ghi vo khng gian a ch o th a ch vt l chnh xc s c tham chiu. Phn trang mt vi ni dung b nh ra a (swap out) khi n tr nn vt qu s p ng b nh ca h thng. C ngha l, khi vic thc thi cc tiu trnh hay m h thng c gng s dng nhiu b nh vt l hn kh nng hin thi v mang ni dng tr li vo b nh vt l (swap in) khi cn. H iu hnh Windows 2000 Professional v Server h tr ln n 4GB b nh vt l, Windows 2000 Advanced Server th h tr ln n 8 GB, v Windows 2000 Datacenter Server th ln n 64 GB. Thc t b nh ln nht cho Windows 2000 Datacenter Server ph thuc vo kh nng phn cng. Bi v Windows 2000 l mt h iu hnh 32-bit, nn cc tin trnh ngi s dng c mt khng gian a ch o 32-bit, 4GB b nh phng. Ngoi vic cung cp s qun l b nh o, trnh qun l b nh cung cp mt tp li cc dch v m trong cc h thng con mi trng Windows 2000 khc nhau c xy dng. Cc dch v ny bao gm cc tp tin nh x b nh, b nh copy-on-write, v h tr cho cc ng dng s dng cc khng gian a ch ln, khng lin tip. Cng nh tt c cc thnh phn ca windows 2000 executive, trnh qun l b nh h tr s thc thi ng thi trn cc h thng a x l. N cho php hai tiu trnh thu c cc ti nguyn theo cch m sau ny chng khng lm cho hng d liu ca mi tin trnh khc. t c mc tiu ny, trnh qun l b nh s dng mt vi c ch ng b ni ti khc nhau iu khin s truy xut vo cc cu trc d liu ni ti ca ring n.

III.8.2. Cc dch v trnh qun l b nh cung cp


Trnh qun l b nh cung cp mt tp cc dch v h thng nh v v gii phng b nh o, chia s b nh gia cc tin trnh, nh x cc tp tin vo b nh, flush cc trang o vo a, truy lc thng tin v mt vng cc trang o, thay i s bo v ca cc trang o, v kho cc trang o vo b nh.

Chng III: Qun l B nh

137

Trnh qun l b nh cng cung cp mt lng cc dch v, nh nh v v b nh v b nh vt l v kho cc trang trong b nh vt l cho cc trao i truy xut b nh trc tip (DMA), n cc thnh phn ch kernel khc bn trong Executive cng nh cc device driver. Cc hm ny bt u vi tin t Mm. Ngoi ra, mc d khng hon ton l mt phn ca trnh qun l b nh, Executive h tr cc thng trnh bt u vi Ex m n c s dng nh v v b nh v t cc heap h thng (vng phn trang v khng phn trang) cng nh vn dng cc danh sch look-aside. Sau y chng ta s xem xt mt vi trong nhiu dch v m trnh qun l b nh ca Windows 2000 cung cp: Bo v b nh Windows 2000 cung cp s qun l b nh khng mt tin trnh ngi s dng no, c th khng c hay c , lm hng khng gian a ch ca cc tin trnh khc hoc ca chnh h iu hnh. Windows 2000 cung cp s bo v ny theo bn cch chnh sau y: Th nht, tt c cc cu trc d liu v cc vng b nh c s dng bi cc thnh phn h thng kernel-mode ch th c truy xut trong kernel-mode. Cc tiu trnh user-mode khng th truy xut cc page ny. Nu cc tiu trnh ny c gng thc hin s truy xut ny th phn cng pht sinh mt li, v trnh qun l b nh s gi thng bo vi phm truy xut n cho tiu trnh. Th hai, mi tin trnh c mt khng gian a ch ring, tch bit, c bo v khi b truy xut bi bt k tiu trnh no thuc mt tin trnh khc. Ch cc ngoi l l nu mt tin trnh ang chia s cc trang vi cc tin trnh khc hay nu mt tin trnh khc c truy xut c hay ghi b nh o vo i tng tin trnh v do c th s dng cc hm ReadProcessMemory hay WriteProcessMemory. Mi khi mt tiu trnh tham chiu mt a ch, phn cng b nh o, phi hp vi trnh qun l b nh, can thip v chuyn i a ch o thnh mt a ch vt l. Bng cch iu khin cc a ch o c chuyn i, Windows 2000 c th m bo cc tiu trnh ang thc thi trong mt tin trnh khng truy xut bt hp l mt trang thuc mt tin trnh khc. Th ba, ngoi cc cung cp s bo v mc nhin cho vic chuyn i a ch o thnh i ch vt l, tt c cc processor c h tr bi Windows 2000 cung cp mt s hnh thc bo v b nh c iu khin bi phn cng (nh c/ghi; ch c, ); chi tit chnh xc ca s bo v nh vy thay i theo processor. V d, cc page m trong khng gian a ch ca mt tin trnh c nh du ch c v do c bo v khi s sa i bi cc tiu trnh ngi s dng. Cc page m cho cc tin trnh iu khin thit b cng c nh du ch c nh vy. V cui cng, cc section object b nh chia s c cc danh sch iu khin truy xut Windows 2000 chun, m n c kim tra khi cc tin trnh c gng m chng, do vic gii hn truy xut ca b nh chia s n cc tin trnh ny vi cc quyn thch hp. Bo mt cng tha hng cch hot ng khi mt tiu trnh to mt section cha mt tp tin nh x. to mt section, tiu trnh phi c t nht truy xut c n i tng tp tin c s hay thao tc s li. Copy-On-Write S bo v cc trang copy-on-write l mt s ti u trong vic qun l b nh ca

Chng III: Qun l B nh

138

Windows 2000. thy c ngha ca vic s dng cc trang copy-on-write chng ta hy xem v d sau y: C hai tin trnh ang chia s ba trang (page1, page2, page3), mi trang c nh du l copy-on-write, nhng c hai tin trnh u khng sa i bt k d liu no trn cc trang.

Hnh 3.20.a: Trc copy-on-write Nu mt tiu trnh ca mt trong hai tin trnh ny ghi vo mt trang, mt li qun l b nh c pht sinh. Trnh qun l b nh xem vic ghi l vo trang copy-onwrite, nn thay v bo li nh mt vi phm truy xut, th n nh v mt trang read/write mi trong b nh vt l, sau sao chp ni dung ca trang ban u vo trang mi, cp nht thng tin bng trang tng ng ca tin trnh ny tr n mt v tr mi, v thao tc ghi trn s c h thng chuyn hng thc hin trang mi ny. Ln ny, thao tc ghi hon thnh, nhng nh trnh by trong hnh sau, trang c sao chp mi by gi l s ha ca tin trnh thc hin ghi v khng thy c t cc tin trnh khc, vn ang chia s trang copy-on-write. Mi tin trnh mi ghi vo cng trang c chia s ny cng s nhn bn sao ring ca n.

Hnh 3.20.b: Sau copy-on-write Mt ng dng ca copy-on-write l ci t im ngt h tr trong cc trnh g ri. V d, mc nh, cc trang m bt u ch thc thi. Tuy nhin, nu mt lp trnh vin thit t mt im ngt trong khi g ri mt chng trnh, th trnh g ri phi thm mt ch thi im ngt vo m. N thc hin iu bng cch u tin thay i s bo v trang thnh PAGE_EXECUTE_READWRITE v sau thay i lung ch th. Bi v trang m l mt phn ca mt mapped section, nn trnh qun l b nh to mt bo sao ring cho tin trnh vi tp im ngt, trong khi cc tin trnh khc tip tc s dng trang m cha sa i. H thng con POSIX li dng copy-on-write ci t chc nng fork (phn nhnh). in hnh, khi mt ng dng UNIX gi mt hm fork to mt tin trnh khc,
Chng III: Qun l B nh

139

iu u tin m tin trnh mi thc hin l gi hm exec khi to li khng gian a ch vi mt ng dng c th thc thi. Thay v sao chp ton b khng gian a ch trn fork, tin trnh mi chia s cc trang trong tin trnh cha bng cch nh du chng l copy-on-write. Nu mt tin trnh con ghi ln d liu, mt bn sao ring tin trnh c thc hin. Nu khng, hai tin trnh tip tc chia s v khng c vic sao chp no c thc hin. Mt cch hay mt cch khc, trnh qun l b nh ch sao chp cc trang tin trnh c gng ghi thay v sao chp ton b khng gian a ch. AWE: Address Windowing Extension Mc d h iu hnh Windows 2000 c th h tr trn 64 GB b nh vt l, nhng mi tin trnh ngi s dng 32-bit ch c mt khng gian a ch o 2 GB hoc 3 GB. cho php mt tin trnh 32-bit nh v v truy xut nhiu b nh vt l hn, c th c th hin trong khng gian a ch b gii hn ca n, Windows 2000 cung cp mt tp cc hm c gi l Address Windowig Extensions (AWE). V d, trn h thng Windows 2000 Advanced Server vi 8 GB b nh vt l, mt ng dng c s d liu server c th s dng AWE nh v v s dng gn 8 GB b nh nh mt cache c s d liu. Vic nh v v s dng b nh thng qua cc hm AWE c thc hin qua ba bc: 1. nh v b nh vt l c s dng. 2. To mt vng khng gian a ch o hot ng nh mt ca s nh x cc khung nhn ca b nh vt l. 3. nh x cc khung nhn ca b nh vt l vo ca s.

Hnh 3.21: S dng AWE nh x b nh vt l nh v b nh vt l, mt ng dng gi hm Win32 AllocateUserPhysicalPages. ng dng sau s dng hm Win32 VirtualAlloc vi c MEM_PHYSICAL to mt ca s trong phn ring ca khng gian a ch ca tin

Chng III: Qun l B nh

140

trnh m n c nh x n mt s hoc tt c b nh vt l c nh v trc y. B nh c AWE nh v c th sau vi gn tt c cc hm Win32 API. Nu mt ng dng to mt ca s 256Mb trong khng gian a ch ca n v nh v 4Gb b nh vt l (trn mt h thng vi hn 4 GB b nh vt l), ng dng c th s dng cc hm Win32 MapUserPhysicalPages hay MapUserPhysicalPagesScatter truy xut bt k phn no ca ca s khng gian a ch o xc nh lng b nh vt l m ng dng c th truy xut vi mt nh x nht nh. Hnh 3.21 trn y trnh by mt ca s AWE trong mt khng gian a ch ng dng phc v c nh x n mt vng b nh vt l c nh v trc bng AllocateUserPhysicalPages. Cc hm AWE tn ti trn tt c cc n bn ca Windows 2000 v c th c s dng bt chp h thng c bao nhiu b nh vt l. Tuy nhin, AWE hu ch nht trn cc h thng vi nhiu hn 2 GB b nh vt l, bi v n ch l cch cho tin trnh 32-bit trc tip s dng nhiu hn 2 GB b nh. Cui cng, c mt s hn ch trong vic nh v b nh v nh x bng cc hm AWE: Cc trang khng th chia s gia cc tin trnh. Cng mt trang vt l khng th c nh x nhiu hn mt a ch o trong cng tin trnh. S bo v trang ch gii hn n read/write. III.8.3. Address Space Layout Theo mc nh, mi tin trnh ngi s dng trn phin bn 32-bit ca Windows 2000 c th c trn 2Gb khng gian a ch ring; h iu hnh gi 2Gb. Windows 2000 Advanced Server v Windows 2000 Datacenter Server h tr mt tu chn ti thi im khi ng n cho php khng gian a ch tin trnh/chng trnh ngi s dng ln n 3Gb. Ty chn khng gian a ch 3Gb mang li cho cc tin trnh mt khng gian a ch 3Gb (dnh 1Gb cho khng gian h thng). c tnh ny c thm vo nh mt gii php tnh th p ng s cn thit cho cc ng dng server c s d liu gi nhiu d liu hn trong b nh so vi khi thc hin vi khng gian a ch 2Gb. Khng gian a o ca cc h iu hnh windows trc c t chc khc hn so vi Windows 2000. N cng cung cp mt khng gian a ch o 32 bt 4Gb v cp pht khng gian a ch 2Gb ring cho mi tin trnh ngi s dng, nhng n chia 2Gb cn li thnh 2 phn, 1Gb cho khng gian h thng, 1Gb dng lm khng gian chia s cho tt c cc tin trnh ngi s dng. Khng gian a ch h thng: Trong cc kin trc Intel x86, khng gian a ch 2Gb ca h thng c phn thnh cc vng khc nhau, c m t hnh 3.22 sau: Trong : System code: Cha chnh h iu hnh, HAL v cc iu khin thit b c s dng boot h thng. System mapped views: S dng nh x Win32k.Sys, c th np mt phn ca h thng con Win32 trong ch kernel mode v cc iu khin ho. Session space: c s dng nh x thng tin n mt session ngi s

Chng III: Qun l B nh

141

dng c th. Process page tables and page directory: c dng cha cc bng trang tin trnh v cc danh mc bng trang. Hyperspace: y l mt vng c bit, c s dng nh x danh sch working set ca tin trnh v nh x tm cc trang vt l khc. System working set list: Cha cc trc d liu danh sch working set m n m t working set ca h thng. System cache: Khng gian a ch o c s dng nh x cc file m trong h thng cache. Paged pool: Cha cc pool c phn trang. System page table entries (PTEs): Pool ca cc PTEs h thng c s dng nh x cc trang h thng nh: khng gian I/O, cc stack kernel v cc danh sch m t b nh. Nonpaged pool: Cha cc pool khng c phn trang. Crash dump information: c d tr ghi thng tin v trng thi ca mt h thng Crash. HAL usage: H thng b nh d tr cho kin trc HAL c bit.

Hnh 3.22: Phn lp khng gian a ch trong x86 Ch : Khi khi to h thng, trnh qun l b nh to hai kiu vng nh pool nh kch

Chng III: Qun l B nh

142

thc t ng m cc thnh phn ch kernel s dng nh v b nh h thng: Vng Pool khng phn trang: bao gm cc vng a ch o h thng c bo m tn ti trong b nh vt l ti tt c cc thi im v do c th c truy xut bt c khi no m khng mc phi mt li trang. Vng pool phn trang: mt vng b nh o trong khng gian h thng c th c phn trang trong v ngoi h thng. Cc trnh iu khin thit b c th s dng vng phn trang ny. C hai vng b nh u c nh v trong phn h thng ca khng gian a ch v c nh x vo khng gian a ch o ca mi tin trnh. Trnh Excutive cung cp cc thng trnh nh v v gii phng t cc vng ny.

III.8.4. Chuyn i a ch
S chuyn i mt a ch o thnh a ch vt l Theo mc nh h iu hnh Windows 2000 chy trn h thng x86 s dng cu trc bng trang 2 cp (two-level) chuyn i a ch o thnh a ch vt l. 32 bt khng gian a ch o c chia thnh 3 thnh phn: 10 bt cao nht l Page Directory Index, 10 bt tip theo l Page Table Index, 12 bt thp nht l Byte Index ( Byte Index rng 12 bt v trong x86 kch thc 1 page l 4096 byte (212 = 4096)). Hnh v 3.23 sau y cho thy ngha s dng ca ba thnh phn trn v cch chuyn i t a ch o 32 bt thnh a ch vt l trn h thng x86_Windows 2000 c th xem li mc III.2.3.c trn).

Hnh 3.23: S chuyn a ch o thnh vt l trn h thng x86 Sau y l l cc bc thc hin vic chuyn i a ch o theo s trn: 1. B phn phn cng qun l b nh tm n danh mc bng trang (page directory) ca tin trnh hin ti. 2. Thnh phn Page Directory Index c s dng ch mc vo page directory tm mt mc vo danh mc bng trang (PDE: page directory entry), m n m t v tr ca bng trang (page table) cn nh x a ch o. PDE cha s hiu khung trang (PFN: page frame number) ca bng trang (nu n ang

Chng III: Qun l B nh

143

thng tr trong b nh. V cc bng trang c th c phn trang ra ngoi). 3. Thnh phn Page Table Index c s dng ch mc vo page table tm mt mc vo bng trang (PTE: page table entry), m n m t v tr vt l ca trang o trong a ch o. 4. PTE c s dng nh v trang. Nu l trang hp l, n cha PFN ca trang trong b nh vt l cha trang o. Nu PTE ch bo rng trang l khng hp l, trnh qun l b nh s iu khin li trang v c gng lm cho n tr thnh hp l. 5. Khi PTE tr n mt trang hp l, Byte Index c s dng tm n a ch chnh xc ca nh trong phm v trang vt l tng ng vi a ch o 32 bt ban u m tin trnh pht ra. Sau y chng ta s xem xt mt cch chi tit hn v cu trc ca page directory, page table v page table entry thy c c th ca n trong Windows 2000 so vi nhng g m ta kho st mt cch tng qut v n cc mc trc: Danh mc bng trang (page directory) Mi tin trnh c mt c mt page directory n, trnh qun l b nh dng mt trang to bn nh v ca tt c cc bng trang ca tin trnh . a ch vt l ca page directory ca tin trnh c lu tr trong block KPROCESS. a ch vt l (c s) ca page directory c ch ra thanh ghi iu khin CR3 trn cc h thng x86. Mi khi c mt s chuyn i ng cnh xut hin vi mt tiu trnh mm trong tin trnh khc tin trnh hin ti th gi tr ca thanh ghi CR3 ny s c np vo block KPROCESS ca tin trnh khc .Vic chuyn i ng cnh gia cc tiu trnh trong cng mt tin trnh s khng c np li a ch vt l ca page directory bi v tt c cc tiu trnh trong cng mt tin trnh chia s cng mt khng gian a ch tin trnh. Page directory bao gm cc cc mc vo danh mc bng trang (PDE: page Directory Entry). Mi entry di 4 byte (8 byte trn cc h thng chy ch PAE), m t trng thi v v tr ca tt c cc bng trang ca tin trnh. Cc bt trong PDE tng t nh cc bt ca PTE. Trn cc h thng x86, 1024 (2048 trn h thng PAE) c yu cu m t y 4Gb khng gian a ch o. Page directory tin trnh nh x n cc bng trang cha 1024 PDE. Do , page directory index cn phi rng 10 bt (210 = 1024). Bng trang tin trnh v bng trang h thng Trc khi tham chiu n byte trong phm vi trang bng byte offset, u tin CPU cn phi tm n trang m n cha byte yu cu ca d liu. tm n trang ny, h iu hnh xy dng mt trang khc ca b nh, trang ny cha cc thng tin nh x cn thit tm n trang mong mun cha d liu. Trang thng tin nh x ny c gi l page table. V Windows 2000 cung cp mt khng gian a ch ring cho mi tin trnh nn mi tin trnh s hu mt tp cc bng trang tin trnh nh x n khng gian a ch ring , s nh x s khc nhau mi tin trnh. Cc bng trang m t khng gian h thng c chia s cho tt c cc tin trnh. Khi mt tin trnh c to, cc PDE khng gian h thng c khi to ch n cc bng trang h thng ang tn ti. Nhng khng phi tt c cc tin trnh u c cng

Chng III: Qun l B nh

144

im nhn ca khng gian h thng. Khi bng trang h thng thay i n v tr cp pht mi th b phn qun l b nh khng cp nht tt c cc page directory tin trnh, trnh qun l b nh ch cp nht cc page directory tin trnh khi cc tin trnh tham chiu n a ch o mi.

Hnh 3.26: Bng trang h thng v bng trang ring ca tin trnh S lng PTE c Windows 2000 tnh ton da vo kch thc ca b nh. Ta cng c th quy nh s lng ny bng cch thay i trong Registry, nhng gi tr ln nht m h thng x86 chp nhn l 128.000 PTE. Cc mc vo bng trang (PTE) Mt PTE di 32 bt, gm 13 trng c m t hnh di y: Sau y chng ta s m t v cc bt trng thi v cc bt bo v trong PTE:

Accesed: Trang c c. Cache disabled: Cm cache trang ny Dirty: Trang c ghi n 145

Chng III: Qun l B nh

Global: S chuyn i p dng n tt c cc tin trnh. Large page: Ch bo rng PDE nh x n trang 4Mb trn h thng vi 128Mb (hoc hn) b nh. Owner: Ch bo rng c hay khng code user-mode cc th truy cp trang hoc c hay khng trang l c gii hn ch truy cp kernel-mode. Valid: Ch bo c hay khng s chuyn i nh x n trang trong b nh vt l. Write through: Cm cache cho vic ghi n trang vi mc ch s thay i ngay lp tc c ghi n a. Write: Trn cc h thng uniprocessor, y l ch bo c hay khng trang l read/write hoc read-only. Trn cc h thng multiprocessor, y l ch bo c hay khng trang l c th write. (bit Write c lu tr trong bit d tr trong PTE). Trn cc h thng x86, phn cng PTE cha mt bt Dirty v mt bt Accesed. Bt Accessed b xo (= 0) nu trang vt l c trnh by bi mt PTE khng th c hoc ghi, Processor thit lp bt (= 1) ny khi trang c c hoc ghi ln u tin. Processor thit lp bt Dirty ch khi trang ln u tin c ghi. Kin trc x86 cng thm vo bt Write cung cp s bo v trang, khi bt ny b xo th trang tr thnh read-only, khi bt ny c thit lp th trang c th l write/read. Nu mt tiu trnh c gng ghi n mt trang m bt Write = 0 th trnh qun l b nh s pht sinh mt ngoi l truy cp, v b phn iu khin li truy cp phi xc nh c hay khng mt tiu trnh c th ghi n trang (trong trng hp copy-on-write) hoc c hay khng mt s vi phm truy cp phi c sinh ra. Trn nn phn cng x86, cc PTE lun lun rng 4 byte (32 bt), 8 byte trn cc h thng cho php ch PAE, v th mi bng trang cha 1024 PTE , 512 trn cc h thng PAE (4096 byte trn mt page, 4 byte trn mt PTE) v v th c th nh x 1024 trang (512 page PAE) cho tng s 4Mb (2 Mb trn PAE) ca cc trang d liu. Trng page table index ca a ch o ch n mt PTE trong page table, t nh x n trang d liu m tin trnh yu cu. Trn cc h thng x86, page table index rng 10 bt (9 bt trn PAE), cho php tham chiu n 1024 PTE (512 trn PAE). Tuy nhin, v windows 2000 cung cp 4Gb khng gian a ch o ring, nn cn nhiu hn mt page table nh x ton b khng gian a ch. Ta c th tnh c s lng page table c yu cu nh x ton b khng gian a ch 4Gb ca tin trnh nh sau: 4Gb/4Mb = 1024 page table, hoc 2048 page table 4Gb/2Mb =1028 page table trn PAE (mi bng trang trn h thng x86 nh x 4Mb (2 Mb trn PAE) ca cc trang d liu). Byte trong phm vi trang (byte within page) Mi khi trnh qun l b nh tm thy trang vt l tng ng vi a ch o m tin trnh a ra truy xut d liu trn b nh, n phi tm n ng d liu c yu cu trong phm vi trang ny. y l ni thnh phn Byte Index ch vo. Byte Index ch cho CPU bit byte d liu trong trang m tin trnh mun tham chiu n. Trn h thng x86, byte index rng 12 bt, cho php tin trnh tham chiu n 4096 byte d liu (y cng chnh l kch thc trang). M rng a ch vt l

Chng III: Qun l B nh

146

Tt c cc processor thuc h Intel x86 u bao gm mt ch nh x b nh c gi l PAE (Physical Address Extension). Vi mt chipset thch hp ch PAE cho php truy cp n 64GB b nh vt l. Khi thc thi x86 trong ch PAE, thnh phn qun l b nh (MMU) ca processor chia a ch o thnh 4 thnh phn. Trong trng hp ny h thng s dng bng trang ba cp (three-level) thc hin vic chuyn i a ch.

Hnh 3.24: nh x trang vi PAE MMU vn ci t page directory v page table nhng cp th 3 l page directory pointer table. PAE c th nh a ch b nh nhiu hn ch chun khng nhng l do m rng cp bng trang m cn do cc PDE v PTE rng 64 bt ch khng phi 32 bt. Vi a ch vt l bn trong l 24 bt, nn x86 c kh nng qun l c 64Gb (224+12 byte) b nh. chn Windows 2000 hot ng trong ch PAE ta phi chn boot vi tham s kho chuyn /PAE trong Boot.ini. Ch ny c h tr trong tp tin Ntkrpamp.exe.

Chng III: Qun l B nh

147

Chng IV

QUN L TP TIN V A
Tt c cc ng dng trn my tnh u cn lu tr v c li thng tin m n nhn vo v x l. Trong khi mt tin trnh ang chy n c th lu tr mt lng gii hn thng tin trong phm v khng gian a ch s hu ca n. Tuy nhin kh nng lu tr ny b gii hn bi kch thc khng gian a ch o ca h thng. i vi mt vi ng dng th khng gian ny l va , nhng i vi mt s ng dng khc th n l qu nh. Mt khc nu lu gi thng tin trong khng gian a ch ca tin trnh th thng tin ny s b mt khi tin trnh kt thc. Vn th ba l phi p ng vic truy cp thng tin ng thi gia cc tin trnh trong mi trng h iu hnh a nhim. Nhng vn trn chng ta bit trong cc chng Qun l tin trnh v Qun l b nh ca ti liu ny. gii quyt nhng vn trn h iu hnh phi thit k mt h thng lu tr thng tin sao cho: Th nht l phi lu tr c mt khi lng ln thng tin. Th hai l thng tin phi c bo ton khi tin trnh s dng n kt thc. V cui cng l c th c nhiu tin trnh truy xut thng tin ng thi. Gii php cho tt c vn trn l lu tr thng tin trn a v cc thit b media khc trong cc n v d liu, c gi l cc file (tp tin). Cc tin trnh c th c thng tin ca file v ri ghi mi thng tin vo file nu cn thit. Thng tin c lu tr trong file phi khng b tc ng bi vic to v kt thc tin trnh. Cc file c qun l bi h iu hnh. Thnh phn h iu hnh tham gia trc tip vo qu trnh qun l cc file trn a c gi l h thng file. H iu hnh phi xy dng cu trc v t chc hot ng ca h thng file. Mt trong nhng nhim v quan trng ca h thng file l theo di vic lu tr file trn a, theo di v iu hnh vic truy cp file ca cc tin trnh, bo v file v ni dung ca file, Cu trc, t chc hot ng v nhng nhim v ca h thng file ca h iu hnh, ca cc h iu hnh c th, s c chng ta xem xt trong chng ny.

IV.1. Tng quan v qun l tp tin v a


IV.1.1. Tp tin v h thng qun l tp tin
Tp tin (File): Tp tin l n v logic c lu tr v x l bi thnh phn qun l tp tin ca h iu hnh. H iu hnh cung cp cc cng c ngi s dng v chng trnh ca ngi s dng c th lu tr tp tin trn thit b lu tr (a v cc thit b media khc) v c th c li tp tin ny nhanh nht. Mi tp tin c h iu hnh to
Chng 4: Qun l file v a

148

ra mt s tng ng vi mt tn c th no , tn tp tin l mt khi nim tru tng, n to ra s ng nht gia tp tin vi cc thit b lu tr khc nhau. Nh , m ngi s dng d dng truy xut tp tin thng qua tn ca n. a s cc h iu hnh u cho php tn tp tin l mt dy k t ASCII hoc Unicode. Ni dung ca tp tin c th l mt chng trnh, mt tp cc th tc hoc mt khi d liu. N c th l mt dy tun t cc byte khng cu trc, h iu hnh khng bit ni dung ca tp tin. Mt dy cc record c chiu di c nh. Hay l mt cu trc cy, gm cy ca nhng record c th khng c cng di, mi record c mt trng kho gip cho vic tm kim n c nhanh hn. Cc h iu hnh h tr nhiu kiu tp tin khc nhau nh: tp tin thng, tp tin th mc, tp tin c k t c bit, tp tin khi. Tp tin thng l tp tin text hay tp tin nh phn cha thng tin ca ngi s dng. Tp tin th mc l nhng tp tin h thng dng lu gi cu trc ca h thng tp tin. Tp tin c k t c bit, lin quan n nhp xut thng qua cc thit b nhp xut tun t nh mn hnh, my in, mng. Tp tin khi dng truy xut trn cc thit b lu tr khi (a l thit b lu tr khi). Thit b lu tr tp tin thng c chia thnh cc block c kch thc c nh bng nhau, cc block c nh a ch phn bit. Thnh phn qun l tp tin ca h iu hnh c nhim v cp pht v thu hi cc block cho cc tp tin khi cn thit. V kch thc tp tin c th thay i, nn cc h iu hnh thng t chc cp pht ng cc block cho cc tp tin. H iu hnh c th t chc cp pht tnh block cho cc tp tin c kch thc khng thay i nh cc tp tin thc thi, cc tp tin th vin, Cp pht tnh s nhanh v n gin hn nhiu so vi cp pht ng. Cc h iu hnh cho php truy xut tp tin theo 2 cch tun t v ngu nhin. Trong cc h thng truy xut tun t, cc tin trnh c th c tt c cc byte hoc cc record trong tp tin, theo th t, t mt v tr bt u no m khng th b qua mt byte hay mt record no. Truy cp ngu nhin th ngc li, cc tin trnh c th truy xut ti bt k mt byte hay mt record no trong file. Trong c hai cch trn u phi ch ra v tr bt u c. Trong cch th nht, mi thao tc c cn phi xc nh v tr bt u c trong file. Trong cch th 2, trc khi c h thng phi tm n (SEEK) v tr bt u c, sau tin hnh c tun t nh cch th nht. H thng qun l tp tin (File management System): H thng qun l tp tin, hay gi ngn gn l h thng tp tin, l mt tp cc dch v m h iu hnh cung cp cho ngi s dng v chng trnh ngi s dng cc i tng ny s dng cc tp tin trn h thng. Ngi s dng v chng trnh ca ngi s dng ch c th truy xut cc tp tin thng qua h thng tp tin. H thng qun l tp tin ca h iu hnh phi p ng cc mc tiu c bn sau y: p ng cc yu cu v lu tr d liu ca ngi s dng, bao gm: kh nng lu tr, tin cy v hiu sut. Cc tiu hay loi b cc nguy c c th dn n hng hoc mt d liu. Cung cp s h tr vo/ra cho nhiu loi thit b lu tr khc nhau. Cung cp s h tr vo/ra cho nhiu ngi s dng trong cc h thng a ngi s dng.
Chng 4: Qun l file v a

149

Cung cp mt tp chun cc th tc giao din vo/ra. i vi ngi s dng th h thng qun l tp tin ca mt h iu hnh phi p ng cc yu cu ti thiu sau y: Mi ngi s dng phi c th to (create), xo (delete) v thay i (change) cc tp tin. Mi ngi s dng c th c iu khin truy cp n cc tp tin ca ngi s dng khc. Mi ngi s dng phi c th di chuyn d liu gia cc tp tin. Mi ngi s dng phi c th truy cp n cc tp tin ca h thng qua tn tng trng ca tp tin. Mi ngi s dng phi c th d phng v khi phc li cc tp tin ca h trong trng hp h thng b hng. Kin trc h thng tp tin (File System Architecture): Cc h iu hnh khc nhau c cch t chc hay kin trc ca h thng tp tin khc nhau. Hnh v sau y trnh by mt kin trc h thng tp tin chung nht m cc h iu hnh thng s dng.
Uer Program

Pile

Sequential Index-seq Logical I/O

Index

Hash

Basic I/O Supervisor Basic File System Device Drivers

Hnh 4.1: Kin trc h thng qun l tp tin Cp thp nht trong kin trc ny l cc iu khin thit b (device driver) truyn thng trc tip vi cc thit b ngoi vi. Device driver chu trch nhim khi to mt thao tc vo/ra trn thit b v x l cc yu cu vo/ra. Cc device driver trong h thng tp tin thng l cc iu khin a. Cp k trn device driver, c xem nh l h thng tp tin c s (basic file system), hoc cp vo/ra vt l, l giao din chnh gia mi trng bn ngoi vi h thng my tnh. N giao tip vi cc block d liu trao i gia cc a vi h thng. v th n c kt ni vi cc block trn a v cc buffer trn b nh chnh. N khng hiu cc d liu cng nh cc cu trc file phc tp. Cp basic I/O supervisor chu trch nhim khi to v kt thc tt c cc thao tc vo/ra tp tin. Ti cp ny, cc cu trc iu khin c duy tr, cc cu trc iu khin ny giao tip vi thit b vo/ra, b phn lp lch c a v b phn qun l trng thi tp tin. Basic I/O supervisor kt hp vi cc b phn lp lch c a ti u cc

Chng 4: Qun l file v a

150

thao tc c a, nhm gp phn tng tc truy xut tp tin ca cc chng trnh ngi s dng. Cp vo/ra logic (Logical I/O) l thnh phn quan trng ca h thng tp tin, n cho php ngi s dng v chng trnh ngi s dng truy cp n cc record. Trong khi h thng tp tin c s giao tip vi cc block d liu, th logical I/O giao tip vi cc record file. Logical I/O cung cp cc cng c chung nht thc hin cc thao tc vo/ra file da trn record. Cp trn cng ca kin trc h thng tp tin kt hp cht ch vi ngi s dng. N cung cp mt giao din chun gia chng trnh ngi s dng, h thng tp tin v thit b lu tr d liu. Cc phng php truy cp d liu khc nhau phn nh cc cu trc tp tin khc nhau v cc cch khc nhau truy cp v x l d liu. Cc phng php truy cp l: Pile, Sequential file, Indexed-sequential file, Indexed file, Hashed, vv. Xem c th [6].

IV.1.2. Bng danh mc v tp tin chia s


Bng danh mc (Directory Table): Cc h iu hnh phi t chc bng danh mc, lu tr cc thng tin lin quan n cc tp tin v cc th mc ang tn ti trn a (hoc thit b lu tr khc), c bit l thng tin cho bit v tr lu tr ni dung ca mt tp tin trn a. truy xut n mt tp tin h iu hnh cn phi thng qua bng danh mc ny. Bng danh mc gm nhiu entry (phn t/mc vo), mi phn t dng cha thng tin ca mt tp tin hay th mc trn a. Khi c mt tp tin/ th mc c to ra th h iu hnh s dng mt phn t trong bng danh mc cha cc thng tin ca n. Khi mt tp tin/ th mc b xo khi a th h iu hnh s gii phng phn t ca n trong bng danh mc. C th xem mt phn t trong bng danh mc l mt s tng ng gia tp tin v v tr lu tr ca tp tin tn a. S lng phn t trong bng danh mc c th b gii hn c nh trc hoc khng c gii hn v c th tng/ gim nu cn. Bng danh mc c th c cha ti mt khng gian c bit no trn a, hoc c th cha trong mt file metadata no trn a. Trong qu trnh hot ng ca h thng bng danh mc thng c h iu hnh np t a vo b nh, sn sng cho vic truy xut file ca h iu hnh sau ny. Mt phn t trong danh mc phi cha cc thng tin ti thiu sau y: Tn ca tp tin; Kiu ca tp tin; a ch vt l ca tp tin trn a. Cc thng tin kim tra truy nhp tp tin; Cc thng tin qun tr tp tin; vv. Cc h iu hnh thng thit k v s dng bng danh mc hai mc. Mc 1, c gi l bng danh mc ch, bao gm cc con tr tr ti bng danh mc ngi s dng. Mc 2, c gi l bng danh mc ngi s dng, bao gm tn tp tin v a ch vt l ca tp tin trn a, T chc bng th mc gc v bng th mc con l s ci t c th cu trc bng danh mc hai mc ca h iu hnh MS_DOS. Mun truy xut n tp tin th ngi s dng v chng trnh ca ngi s dng phi thng qua danh mc ch v danh mc ngi s dng hay thng qua th mc gc v th mc con trong h iu hnh MS_DOS. thc hin bt k mt thao tc no trn ni dung ca tp tin th trc ht tp tin
Chng 4: Qun l file v a

151

phi c m. Khi nhn c yu cu m tp tin th h iu hnh s dng ng dn c ch ra bi ngi s dng hay chng trnh ca ngi s dng tm n mt mc vo tng ng vi tp tin cn m trong bng danh mc. Phn t trong bng danh mc s cung cp cc thng tin cn thit h iu hnh tm n cc block a cha ni dung ca tp tin. Ty vo tng h iu hnh m thng tin ny c th l a ch ca tt c block a cha ni dung tp tin (trong chin lc cp pht lin tc), a ch ca block a u tin cha ni dung tp tin (trong chin lc danh sch lin kt v danh sch kin kt ch mc), hoc s hiu ca I-node (trong chin lc I-node). Cc chin lc ny c trnh by trong phn qun l cc block cha file trn a ngay sau y. T chc bng th mc gc ca MS_DOS, windows98 v MFT ca windowsNT/2000 l cc s ci t c th v cu trc ca bng danh mc ca cc h iu hnh. T chc ca bng th mc gc ca MS_DOS, windows98, windowsNT/ 2000 s c xem xt phn sau ca chng ny. Tp tin chia s (Shared File): Tp tin chia s xut hin trong cc mi trng nhiu ngi s dng, y l mt k thut ca h iu hnh, nhm gip nhiu ngi s dng trn h thng c th cng nhau s dng mt tp tin no . i vi ngi s dng, tp tin chia s l tp tin c xut hin ng thi trong cc th mc khc nhau ca cc ngi s dng khc nhau. K thut chia s tp tin thng c cc h iu hnh s dng nht l, cho php cc phn t trong cc bng danh mc ngi s dng khc nhau cha thng tin ca cng mt tp tin chia s no , c bit l thng tin v a ch ca cc block a cha ni dung ca tp tin chia s. Khi c mt lin kt chia s mi c thit lp n mt ngi s dng no , h iu hnh ch cn sao chp danh sch cc block a ca file chia s n phn t tng ng trong bng danh mc ngi s dng ca ngi s dng . K thut ny n gin d ci t nhng cng xut hin vn : nu tp tin c cp nht bi mt ngi s dng no th s cp nht ny s khng c nhn thy bi cc ngi s dng khc (iu ny s vi phm mc ch ca vic chia s tp tin). V khi tp tin c cp nht th h iu hnh phi cung cp thm mt vi block a cho n, a ch ca cc block a mi ny ch c lit k thm trong phn t tng ng trong bng danh mc ca ngi s dng thc hin s cp nht tp tin m khng c lit k trong cc bng danh mc ca ngi s dng khc. Vn trn c th c gii quyt nh sau: danh sch a ch cc block a cha tp tin chia s khng c lit k trong phn t bng danh mc, m c cha trong mt khi d liu c cu trc no , tm gi l khi d liu m t lu tr tp tin hay ni gn hn l khi m t lu tr. Khi m t lu tr ny c th c gn vo chnh tp tin chia s nu kch thc nh, hoc c t mt v tr no trn a, nu kch thc ln (trng hp ny c th dng chung cho nhiu tp tin chia s). Mi s thay i v danh sch a ch cc block a cha tp tin chia s u c phn nh khi m t lu tr ca n. Cc phn t trong bng danh mc by gi ch ng vai tr nh mt con tr tr n khi m t lu tr ca cc tp tin chia s, nh vy m mt s thay i tp tin chia s t bt k mt ngi s dng no trong s nhng ngi s dng c chia s tp tin u c nhn thy t tt c nhng ngi s dng cn li. Trong mi trng nhiu ngi s dng, vic chia s mt tp tin cho nhiu ngi 152

Chng 4: Qun l file v a

s dng l rt cn thit v n mang li nhiu thun li. Nhng n cng pht sinh nhiu li trong qu trnh s dng tp tin chia s gia nhiu ngi s dng v chng trnh ngi s dng, m nu h iu hnh khng t chc gim st tt th c th dn n tnh trng hng tp tin chia s hoc ni dung ca tp tin chia s. Chng ta bit h iu hnh gii quyt vn ny nh th no trong chng Qun l tin trnh ca ti liu ny. y l mt vn ln i vi cc h iu hnh a nhim c bit l cc h iu hnh mng. Cc h iu hnh ny cung cp y cc cng c ngi s dng v chng trnh ca ngi s dng kt hp cng vi h iu hnh khai thc, s dng tt cc tp tin chia s nhng hn ch thp nht cc li c th xy ra. Trong phn sau ca chng ny chng ta s xem xt nhng thao tc m h iu hnh phi thc hin p ng yu cu m file t ngi s dng trong mi trng nhiu ngi s dng.

IV.1.3. Qun l khng gian a


Kch thc block: t chc lu tr ni dung cc file trn a, cc h iu hnh u chia khng gian lu tr ca a thnh cc phn c kch thc bng nhau c gi l khi (block) lu tr. Ni dung ca file cng c chia thnh cc block c kch thc bng nhau, tr block cui cng, v bng vi kch thc cc block a. Khi cn lu tr file trn a h iu hnh cp cho mi tp tin mt s lng block va cha ht ni dung ca tp tin. Kch thc ca mt block ph thuc vo qui nh ca vi x l v h iu hnh, thng l 128 byte, 256 byte, hoc 512 byte, vv. Khi chn kch thc ca block h iu hnh phi xem xt cc vn sau: Nu kch thc block ln th d lng ph a, trong trng hp kch thc ca tp tin khng phi l bi s ca kch thc block. Nu kch thc block nh th a c chia thnh nhiu block, dn n kch thc danh sch qun l block ca a, danh sch qun l block ca mt tp tin, bng cc block, vv, s tng ln do dung lng b nh cha n s tng ln. Kch thc ca block phi l bi ca kch thc khi d liu m h thng dng khi thc hin truyn d liu gia b nh chnh v b nh ph. Theo di cc block t do: Khi cn lu tr ni dung ca cc file ln a, h iu hnh cp cho file mt s lng block a nht nh cha ht ni dung ca n, cc block a ny c th nm ti cc v tr bt k trn a. Trong qu trnh s dng file kch thc ca file c th thay i, tng ln hay gim xung, do h iu hnh phi t chc cp pht ng cc block a cho cc file. Khi kch thc ca file tng ln th h iu hnh phi cp pht thm block cho n, khi kch thc file gim xung hoc khi file b xo khi a th h iu hnh phi thu hi li cc block a cp cho n c th cp cho cc file khc sau ny. t chc cp pht ng cc block a cho file h iu hnh phi qun l c trng thi ca cc block, cn t do hay cp pht, trn a. Trong trng hp ny cc h iu hnh c th s dng 2 k thut: Dng bng bt v/hoc dng danh sch lin kt. Trong bng bt, mi bt cho bit trng thi ca mt block tng ng trn b nh ph, = 0 th block tng ng cn t do, = 1 th block tng ng cp pht cho mt file no . Nh vy, tm N block t do h iu hnh ch cn tm N bt 0 trong bng bt, do tc tm v cp pht block cho cc file s tng ln rt nhiu. Trong danh sch lin kt,
Chng 4: Qun l file v a

153

qun l cc block cn t do h iu hnh dng mt danh sch lin kt. Mi phn t trong danh sch cho bit a ch ca mt block t do trn a. Nh vy khi cn cp pht block cho cho mt file no th h iu hnh s da vo danh sch cc block t do ny. Sau khi cp pht hoc thu hi block h iu hnh phi tin hnh cp nht li danh sch lin kt hay bng bt. Trong trng hp bng bt hoc danh sch lin kt ln, h iu hnh s cha n a v ch np phn cn thit vo b nh chnh. Khi la chn cc block trong tp cc block t do cp pht cho mt file h iu hnh phi chn sao cho vic cp pht c thc hin nhanh v vic c sau ny l ti u vi mt thut ton c a c th no . Cp hn ngch a (Disk Quotas): ngn chn ngi s dng s dng qu nhiu khng gian a, cc h iu hnh a ngi s dng thng cung cp mt chin lc ngi qun tr h thng gii hn s lng khng gian a ti a (block) m mi ngi s dng c php s dng v h iu hnh phi m bo rng ngi s dng khng th s dng qu khng gian a m h iu hnh cp cho h, chin lc ny c gi l cp hn ngch a. Khi ngi s dng m file, th cc thuc tnh v cc a ch block a m h iu hnh cp cho file c ghi vo bng m file trong b nh chnh, trong c c thuc tnh cho bit ngi s dng no s hu file c m. Bt k mt s thay i no v kch thc file cng thay i n hn ngch ca ngi s dng s hu file.
Bng m file Attribute Disk address User = 8 Quota pointer Bng Quota Soft block limit Hard block limit Current # of blocks # Block warnings left Soft file limit Hard file limit Current # of files # File warnings left

Record Quota cho user 8

Hnh 4.2: Theo di quota ca ngi s dng

Cc record quota cho cc user khc

Mt bng th hai cha record quota, cho mi ngi s dng m file hin ti, thm ch nu file c m bi mt ngi no , bng ny c trnh by hnh sau. Hnh 4.2 cho thy mt phn ca file quota trn a, cho bit file ca ngi s dng no l ang c m. Khi tt c cc file u c ng, record s ghi tr li file quota. Khi c mt entry mi c to ra trong bng m file th mt con tr (quota pointer) tr ti record quota ca ngi s hu file, l c nhp vo n. Mi khi c mt block c thm vo mt file th tng s block ca ngi s dng c tng ln v mt check c gn n c Hard block limit v Soft block limit. Soft limit c th c vt qu, nhng hard limit th khng th. Mt s c gng thm vo cui file khi hard block

Chng 4: Qun l file v a

154

limit b vt qu gii hn s tr v thng bo li. Khi mt ngi s dng c gng login, h thng s kim tra file quota xem ngi s dng vt qu soft limit ca block hoc file hay cha (soft block limit hoc soft file limit). Nu c hai limit u b vi phm, th mt cnh bo s xut hin, v b m (count) tng ng vi cnh bo s gim xung mt n v. Nu b m nhn c gi tr zero th ngi s dng s khng c php login.

IV.1.4. Qun l cc block cha file trn a


Trong phn ny chng ta xem xt cc phng php khc nhau m cc h iu hnh s dng theo di danh sch cc block a m h iu hnh cp pht cho mt file, cha ht cc block ca mt file, ca tt c cc file ang c lu tr tn a. Cp pht lin tc (contiguous allocation): l mt chin lc n gin nht, trong chin lc ny cc block file c lu tr ti cc block a lin tc nhau. Tc l, nu 1 block a l 1K th mt file 50K s c lu tr ti 50 block lin tip nhau trn a. Chin lc ny n gin, d ci t v thi gian c file gim xung ng k, v h iu hnh ch cn bit block a u tin cha cc block file v tng s block a cha file l c th tin hnh c ni dung ca file m khng cn d tm danh sch cc block a cha ni dung ca file. Chin lc ny ch c th c s dng vi cc file c kch thc c nh, khng thay i so vi thi im to ra file, hoc vi cc file m h iu hnh bit trc c kch thc ti a ca file, trong trng hp ny h iu hnh phi d tr block a cho file, iu ny d dn n tnh trng lng ph trong vic s dng block a. Chin lc ny c th dn n hin tng phn mnh trn a, tc l trn a c th xut hin cc on block trng nh, khng cha mt file c kch thc ti thiu, nm gia cc on block cha file, cc on block trng ny c th l ni lu tr ca mt file no m file ny b xo khi a. Hin tng phn mnh a s lm chm tc c file ca h iu hnh. Cc h iu hnh hin nay, h iu hnh windowsNT/2000 chng hn, ci tin chin lc ny khc phc cc hn ch v tn dng nhng thun li ca n. Bng cch, vn cp pht cc block a lin tc cha va kch thc ban u ca file, v sau nu kch thc ca file tng ln th h iu hnh s tm v cp pht mt on block khc ti mt v tr bt k trn a cha va phn kch thc tng ln ny. Tc l, ni dung ca file c lu tr ti cc on block a ri rc nhau trn a. Nu kch thc file gim xung th h iu hnh phi t chc li vic lu tr file sao cho c th gii phng c mt on block a cha file trc . Vi vic ci tin ny, h iu hnh c th c file nhanh hn, t xy ra phn mnh hn nhng vic t chc lu tr s phc tp hn. Chng ta s thy cch t chc ny trong h thng file ca h iu hnh windowsNT/2000 trong phn sau ca chng ny. Cp pht theo danh sch lin kt (linked list allocation): chin lc ny s dng mt danh sch lin kt cc block a cha ni dung ca mt file. Word u tin ca mi block a c s dng nh mt con tr tr n block k tip, tr word ca block cui cng c s dng cha tn hiu bo kt thc danh sch ca mt file, phn cn li ca block a dng cha ni dung ca file. Trong trng hp ny kch thc

Chng 4: Qun l file v a

155

ca block a phi ln hn kch thc ca block file 1 word. Hnh sau y minh ho cho vic lu tr file theo chin lc ny, vi file A c chia thnh 4 block: block 0, block 1, block 2, block 3 c lu tr ti cc block a, ln lt l 3, 7, 5, 10. Vi file B c chia thnh 3 block: block 0, block 1, block 2, c lu tr ti cc block a, ln lt l 4, 8, 6.
0 7 8 4 6 10 0
fileA block 0 fileA block 1 fileA block 2 fileA block 3

A0 B0 A2 B2
3
5

6
0

3 7 5 Danh sch lin kt ca file A


0
fileB block 0 fileB block 1 fileB block 2

10 phn t cui cng block file cui cng nh hn 1 block a

A1 B1
7 8 9

A3
10

Cc block a cha cc block ca FileA v fileB

4 6 8 Danh sch lin kt ca file B

Hnh 4.3: Cp pht block theo danh sch lin kt Khng nh cp pht lin tc, mi block u c th c s dng trong chin lc ny, nn s khng dn n hin tng phn mnh a v khai thc ti a khng gian a. V h iu hnh ch cn bit block a u tin cha file l c th c c ton b ni dung ca file, block u tin ny c ghi phn t trong bng danh mc tng ng vi mi file. Tc c file theo cch truy cp ngu nhin trong chin lc ny s rt chm so vi cch truy cp tun t nh chin lc cp pht lin tc trn. Cp pht theo danh sch lin kt s dng ch mc (linked list allocation using an index): Cp pht theo danh sch lin kt tn ti hai hn ch l: chm v tn mt word cha con tr n block k tip. khc phc hai hn ch ny, cc h iu hnh lu cc word con tr ni trn vo trong mt bng ch mc v np bng ch mc ny vo b nh khi h iu hnh cn c ni dung ca file trn a.
0 1 2 3 4 5 6 7 8 12 7 15 10 9 14 9 10 11 12 13 14 15 16 17

5 9 13

6 10 14

7 11 15

A1
8 12

B1 A3 B2 A2 x

B3 x A4 B4
Cc cluster a cha cc Block ca cc file A v B

0 0

Mt on trong bng ch mc

Hnh 4.4: Cp pht block theo danh sch lin kt c ch mc

Chng 4: Qun l file v a

156

Hnh 4.4 minh ho cho vic lu tr file theo chin lc ny, vi file A c chia thnh 4 block: A1, A2, A3, A4 c lu tr ti cc block a, ln lt l 4, 10, 7, 14 (cui cng). Vi file B c chia thnh 4 block: B1, B2, B3, B4 c lu tr ti cc block a, ln lt l 6, 9, 12, 15 (cui cng). Vi cch t chc ny th ton b block a c s dng lu tr file v vic truy cp ngu nhin trong trng hp ny s d dng hn. Tuy nhin cng phi tn ti mt mc xch tm ra tt c cc blick a cha ni dung ca mt file v mc xch ny phi c np vo b nh h iu hnh c th tm c file khi cn. Cng nh chin lc trn block u tin ca mt file phi c cha trong phn t bng danh mc tng ng vi mi file, trong trng hp ny n c xem nh mt con tr tr n bng ch mc bt u d tm dy cc block a cha ni dung ca file, mi khi h iu hnh cn c file. H iu hnh MS_DOS t chc qun l file trn a da theo chin lc ny. Mt hn ch ln ca chin lc ny l ton b bng ch mc phi np vo b nh trong sut thi gian lm vic ca h thng, iu ny s lm tn thi gian np bng ch mc ca h iu hnh v lm lng ph khng gian b nh ca h thng, c bit trong trng hp bng ch mc ln. Bng ch mc ln l do a ln, a c bao nhiu block th bng ch mc c by nhiu phn t, mi phn t trong bng ch mc c th l 1 word, 1.5 word, 2 word, 4 word, vv ph thuc vo kch thc a, kch thc block v cch t chc qu l block a ca mi h iu hnh. Cc h iu hnh hin nay khc phc hn ch trn y bng cch, khng np tt c bng ch mc vo b nh m ch np phn bng ch mc lin quan n cc file ang m trn b nh ti mt thi im c th no , tc l, phn bng ch mc ny lun thay i trong qu trnh lm vic ca h thng. Khi nim ca s bng FAT trong h thng file ca h iu hnh windows98 l mt v d ca trng hp ny. Chng ta s c nhc n iu ny trong phn sau ca chng ny. I-nodes (index-node): trong chin lc ny, h iu hnh thit k mt bng nh theo di cc blocks ca mt file, c gi l I-node. I-node lit k cc thuc tnh v cc a ch a ca cc block ca file. Hnh sau y minh ho cho chin lc ny.
I-node
Attributes block gin tip n block gin tip ba

a ch a

a ch ca cc block d liu
block gin tip i

Hnh 4.5: Mt I-node

Chng 4: Qun l file v a

157

u tin mt phn a ch a (cc block a) c lu tr trong chnh I-node. Sau , i vi cc file nh th tt c cc thng tin cn thit l phi cha trong chnh I-node, l cc thng tin c nhn t a vo b nh chnh khi file c m. i vi cc file ln, gm nhiu block, th mt trong cc a ch trong I-node l a ch ca mt block a, c gi l block gin tip n. Block ny cha cc a ch a c thm vo. Nu vn cn khng th mt a ch khc trong I-node, c gi l block gin tip i, s cha a ch ca mt block m n cha mt danh sch cc block gin tip n. Mi block gin tip n tr n khong 100 block d liu. Nu vn cn khng th c th mt block gin tip ba c s dng. Nhn hnh v trn ta d dng phn bit c s khc nhau gia: block gin tip n, block gin tip i v block gin tip ba. Chin lc ny c windows 2000 ci tin v s dng trong cu trc MFT trong h thng file ca n. Chng ta s thy iu ny khi tm hiu h thng file ca windows 2000 trong phn sau ca chng ny. Cp pht khng lin tc vi block ch mc: C hai chin lc cp pht, theo danh sch lin kt v theo lin kt ch mc u tn ti hn ch l phi phn tch danh sch lin kt hay bng ch mc d tm ra danh sch cc block a cha ni dung ca tp tin cn c, khi c tp tin, dn n lm chm tc c tp tin trn a.

5 9 13

6 10 14

7 11 15

6 Block ch mc 9 ca file B 12 15

A1
8 12

B1 A3 B2 A2

4 10 Block ch mc 7 ca file A 14
Cc block a cha cc file A v B

B3 x A4 B4

Hnh 4.6: Cp pht khng lin tc vi block ch mc khc phc iu ny cc h iu hnh c th ci t chin lc cp pht khng lin tc vi block ch s. H iu hnh s dng mt block a cha danh sch cc block a cha ni dung ca mt tp tin no , block a ny c gi l block ch mc. Trong hnh trn block 11 l ch mc ca file A, block 8 l ch mc ca file A. Nh vy ch cn thit k mt con tr, ti phn t trong bng ch mc, tr ti block ch mc ca tp tin trn a l h iu hnh c th qun l c danh sch cc block a cha ni dung ca mt tp tin. Vi chin lc ny th tc c file ca h iu hnh s tng ln, nhng n ch dng c i vi cc file nh, v nu file ln th mt block c th khng cha danh sch cc block a cha ni dung ca mt file. Mt khc nu block ch mc ca file b hng th h iu hnh khng th c c file, mc du ni dung ca file vn cn tn ti trn cc block a.

IV.1.5. An ton trong qun l tp tin


Bo ton d liu tp tin: Mt h qun tr file phi cung cp nhng c ch thch
Chng 4: Qun l file v a

158

hp phc hi ni dung ca file trong trng hp h thng gp s c v phn mm hoc phn cng. thc hin c iu ny h iu hnh phi lun to bn sao ca cc tp tin ang m trn h thng, c th phc hi li khi cn thit. C hai k thut c s dng trong c ch ny: DUMP c chu k: Sau mt khong thi gian nht nh ni dung ca cc tp tin ang m trn b nh chnh s c (Dum/backup) ra li a. Nu h thng gp s c th tt c cc tp tin ang m s c ti to li k t trng thi m chng c DUMP ra ln cui cng. R rng vic DUM ny s lm tn thi gian thc hin ca h thng. DUMP Incremental: Trong cch ny, h thng ch lu tr cc thng tin c sa i k t ln Dump sau cng, tc l ch c cc tp tin c to lp hoc sa i so vi ln ra cui cng mi c Dump ra. Vi k thut ny thng tin cn lu tr t hn do h thng c th thc hin Dump thng xuyn hn. bit c trong s nhng tp tin ang m tp tin no c s cp nht d liu hoc c s thay i so vi ln Dump ra trc h thng a thm vo danh mc ngi s dng mt trng mi, di 2 bit, tm gi l trng kim tra cp nht (KTCN). Nu KTCN = 00: m khng cp nht; KTCN = 01: m c cp nht; KTCN = 10: khng c thay i so vi ln Dump trc. KTCN = 11: c thay i so vi ln Dump trc. Vi cch ny h thng phi lun kim tra bng danh mc v phi cp nht li trng KTCN sau mi ln Dump, dn n lm chm tc thc hin ca h thng. h thng khng phi kho st tt c cc im vo ca danh mc, h iu hnh ci t thm mt bng danh mc mi ghi nhn thng tin ca cc tp tin ang c truy xut (ghi/c) trn h thng v ch c Dump s dng bng danh mc ny, do h thng Dump c th hot ng song song vi cc thao tc khc ca h thng. Dump Incremental l mt tin trnh c u tin thp, thng tr trong b nh phn tch cc bng danh mc tm ra cc tp tin cn phi thc hin Dump. Danh sch cc quyn truy cp (Access Right): Trong phn trnh by v tp tin chia s trn, chng ti trnh by v k thut to ra tp tin chia s ca h iu hnh, k thut ny hon ton trong sut vi ngi s dng. Trong phn ny chng ti trnh gii thiu mt cng c m h iu hnh dng bo v cc tp tin chia s trong mi trng nhiu ngi s dng. l quyn truy cp, quyn truy cp v qun l truy cp ng thi l cc cng c c bn m h iu hnh dng qun l v bo v cc tp tin chia s trong cc h thng nhiu ngi s dng (multiuser systems). Quyn truy cp c th c gn cho mt ngi s dng (User) c th, mt nhm ngi s dng (User Group) hay tt c ngi s dng (All User) c trong cc h thng multiuser. Mt user group cha nhiu user, khi mt group c gn quyn no th tt c cc uer thnh vin trong group ny u c cng c gn quyn truy cp . Sau y l cc quyn truy cp m h iu hnh thng dng gn cho mt ngi s dng c th n mt file c th no : None: Ngi s dng khng bit c l file c tn ti hay khng. Vi gii hn ca quyn ny, ngi s dng khng c php c th mc cha file ny.

Chng 4: Qun l file v a

159

Knowledge: Ngi s dng c th xc nh c l file ang tn ti v ai l ngi s hu file. Excution: Ngi s dng c th np v thc hin mt chng trnh nhng khng th copy n. Cc chng trnh thuc dng c quyn ca mt nh sn xut no thng c to vi s gii hn vi quyn ny. Reading: Ngi s dng c th c file cho bt k mc ch no, bao gm c copy v execution. Mt vi h thng cho php c s khc nhau gia xem v copy file. Trong trng hp ny ni dung ca file c th c hin th ngi s dng xem, nhng h khng c cung cp cng c copy ni dung ny. Appending: Ngi s dng c th thm d liu vo file, thng l cui file, nhng khng th thay i hoc xo bt k mt ni dung no trong file. Updating: Ngi s dng c th thay i, xo v thm d liu vo file. Changing protection: Ngi s dng c th thay i cc quyn truy cp c gn n ngi s dng khc. Quyn ny thng ch c gn cho ngi s hu file. Deletion: Ngi s dng c th xo c file t h thng file. Ngi s dng c gn quyn truy cp n file, v h ch c th truy cp file mc tng ng vi quyn truy cp c gn. V d, ngi s dng A c gn quyn c (read) file tailieu.doc, nhng khng c gn quyn xo (delete) file tailieu.doc th ngi s dng A ny ch c th thc hin thao tc m file tailieu.doc ra c ni dung ca file, ch khng th thay xa hay thay i ni dung ca file (v khng c gn quyn thay i (modify) ni dung file). Ngi s dng c th c gn nhiu quyn truy cp n mt file, khi h s c y cc s cho php v s gii hn tng ng vi cc quyn c gn. Tuy nhin quyn truy cp c tnh k tha, nn ch cn gn mt quyn truy cp cao nht th h c cc s cho php v s gii hn ca cc quyn khc. V d , nu ngi s dng c gn quyn Updating vi mt file no , th xem nh h c gn cc quyn Knowledge, execution, reading v appending i vi file ny. M v ng tp tin: H iu hnh cho rng cc tp tin c lu tr trn a u trang thi ng, thc hin bt k mt thao tc c/ghi/thay i ni dung ca tp tin th trc ht chng trnh, tin trnh ca ngi s dng (k c ngi s dng) phi thc hin thao tc m tp tin. Khi nhn c yu cu m tp tin b phn qun l tp tin ca h iu hnh s c ni dung ca tp tin t a v np n vo b nh chnh, sau tr v cho chng trnh, tin trnh ca ngi s dng mt th tp tin/ th file (file handle) hoc mt bin tng ng vi tp tin ny chng trnh, tin trnh theo di v thao tc trn tp tin ny. Sau khi thc hin xong mt thao tc no trn ni dung ca tp tin th chng trnh, tin trnh v c ngi s dng phi thc hin thao tc ng tp tin li. i tng yu cu ng tp tin phi cung cp ng th tp tin ca tp tin cn ng cho h iu hnh. Mt s h iu hnh cho php thc cc thao tc trn tp tin (m/cp nht/ ng) bng chnh tn ca tp tin. Cc h iu hnh u cung cp hai th tc chnh chng

Chng 4: Qun l file v a

160

trnh ca ngi s dng thc hin cc thao tc m/ng file: Open (tn file cn m, ch m): dng m file (ch : c/ Vit/ To lp) v Close (tn file cn ng): dng ng file khi m. Thao tc m/ng file s n gim trong mi trng h iu hnh n nhim v s phc tp hn trong mi trng h iu hnh a nhim. Trong mi trng a nhim, h iu hnh ch thc s ng file theo yu cu ca mt tin trnh t mt ngi s dng no khi tt c cc thao tc ghi/c file ny t cc tin trnh ngi s dng khc u kt thc. Trong trng hp ny h iu hnh phi lun theo di cc tin trnh ngi s dng tham gia vo vic m file ny. p ng yu cu m file t mt chng trnh, tin trnh ca ngi s dng trong mi trng a nhim h iu hnh phi thc hin cc bc c bn sau y m bo vic truy xut file sau ny l hp l: 1. Kim tra tn ca file cn m, ti cc entry, trong bng danh mc file ca h thng ( l bng th mc trong h iu hnh DOS v Windows9x). 2. Kim tra tin trnh gi ti t mt ngi s dng hay chng trnh ngi s dng c c quyn truy cp file ch c ch ra hay khng. 3. Kim tra nu file c m c bi mt tin trnh trc th tin trnh hin ti khng th m ghi vo file, mc du tin trnh ny c quyn ghi file. Ngc li tin trnh hin ti khng th m file c khi c mt tin trnh no ang ghi vo file. 4. m bo s sn sng ca cc thit b lu tr, a chng hn, v vt mang lin quan n file cn m. m t y cc thng tin v mt file th mt phn t trong bng danh mc cn phi cha cc trng sau: Tn file; M t ca n v ca lu tr file; a ch ca Block u tin trong dy cc block (trn a) cha file; a ch ca cc block k tip trong dy cc block cha file; Ch truy cp tp tin; vv. Trong mi trng h iu hnh a nhim c th c cc tin trnh song song cng c ni dung ca mt file, i vi cc file chia s, nhng khng th xy ra trng hp c hai tin trnh cng ghi vo mt file hoc c mt tin trnh ghi vo file trong khi c mt hoc nhiu tin trnh khc ang c ni dung ca file. H iu hnh phi kim sot cht ch cc trng hp ny. trnh hin tng ny h iu hnh phi to mt c ch thch hp loi tr ln nhau trong thao tc c/ghi file gia cc file ng thi. thc hin loi tr ln nhau ny h iu hnh a thm hai trng vo cc entry trong bng danh mc ngi s dng: Trng th nht, Btghi, = 1 ang c mt tin trnh ghi vo file, = 0 khng c tin trnh no ghi vo file. Trng th hai, B m, = <s cc tin trnh ang m file c>. Theo mt tin trnh ch c th m file c khi Bt ghi = 0, m file ghi khi Bt ghi = 0 v B m = 0. Nh vy, ngay sau khi chp nhn yu cu m file ghi t mt tin trnh th h iu hnh phi gn Bt ghi = 1, ngay sau khi chp nhn yu cu m file c t mt tin trnh th h iu hnh phi tng B m ln 1 n v, B m = b m + 1. Khi mt tin trnh c file ng file th B m = b m + 1, khi mt tin trnh ghi file ng file th Bt ghi c gn = 1. R rng k thut ny c th dn n li khi h thng khng gim st tt vic thay i gi tr trn cc trng Btghi v B m, iu ny chng ta thy trong chng Qun l tin trnh ca

Chng 4: Qun l file v a

161

ti liu ny.

IV.1.6. Hiu sut h thng file


Nh bit, tc truy xut d liu trn a chm hn rt nhiu so vi tc truy xut d liu trn b nh, tc truy xut d liu trn a tnh bng n v milliseconds, trong khi tc truy xut d liu trn b nh ch tnh bng n v nanoseconds. Do , to ra s ng b trong vic trao i d liu trn b nh v trn a, cng nh tng tc truy xut d liu trn b nh, cc h iu hnh phi thit k h thng file ca n sao cho tc c d liu l nhanh nht v gim s ln truy cp a mi khi truy xut file xung mc thp nht. Mt trong nhng k thut c h iu hnh s dng y l to ra cc block cache hoc buffer cache. Trong ng cnh ny, cache l mt tp cc block logic trn a, nhng c to ra v c gi trong b nh ch phc v cho mc ch ci thin hiu sut ca h thng. C nhiu thut ton khc nhau c s dng qun l cache, nhng tt c u hng ti mc ch ca vic s dng cache v nguyn l hot ng ca cache: Khi nhn c mt yu cu c d liu t tin trnh ca ngi s dng th b phn qun l cache s kim tra block d liu cn c c trong cache hay cha, nu c trong cache th c trc tip trong cache m khng cn truy cp a, nu khng c trong cache th d liu cn c s c c v ghi vo trong cache trc ri sau c chp n bt c ni no cn thit. Vic ghi vo cache ny nhm chun b cho cc ln c d liu sau ny. Tc l, nu sau ny c mt yu cu c cng mt block d liu nh trn th n s c c trc tip t cache m khng cn truy cp a. Khi cache b y cc block th mt vi block trong phi b xo hoc b xo v ghi tr li v a nu block ny c s thay i k t khi n c mang vo b nh k t ln c mang vo gn y nht. Trong trng hp ny h iu hnh cng s dng cc thut ton thay trang trong qun l b nh nh FIFO, LRU, chn mt block trong cache a ra a. Tuy nhin cache c truy xut t thng xuyn hn, nn h iu hnh c th t chc mt danh sch lin kt theo di vic truy xut cc block trong cache, danh sch lin kt ny c s dng cho thut ton thay block: LRU.

IV.2. Mt s khi nim dng trong qun l a


Track (t o): L cc vng trn ng tm c to ra trn b mt a, y s l ni cha d liu sau ny. Cc track c nh s bt u t 0. S track trn mi mt a ph thuc vo tng loi a. Sector (cung t): Cc track c chia thnh cc khi c kch thc c nh bng nhau v c nh a ch, cc khi ny c gi l cc sector. Cc sector c nh a ch bt u t 1 trn mi track, nh vy trn a s tn ti nhiu sector c cng s hiu a ch, cch nh a ch ny gy kh khn nhiu ngi lp trnh. Kch thc ca sector, s byte d liu c th cha trn mt sector, ph thuc vo phn cng. Trn cc h processor x86, kch thc sector trn a cng thng l 512 byte, kch thc sector trn a CD_ROM thng l 2048 byte. Cc sector c nh a ch theo kiu trn c gi l sector vt l. Trong

Chng 4: Qun l file v a

162

thc t lp trnh cc h iu hnh ch s dng sector logic, theo th a ch cc sector c nh bt u t 0 k t track 0 ca mt 0 trn a th nht. Nh vy trn a khng c cc sector c cng s hiu a ch. Bng sau y cho thy s tng ng gia cc sector vt l vi sector logic trn mt a mm: Mt a Track Sector Sector logic Thng tin lu tr 0 0 1 0 Boot record 0 0 2-5 1-4 FAT 0 0 6-9 5-8 Th mc gc 1 0 1-3 9 - 11 Th mc gc 1 0 4-9 12 - 17 D liu 0 1 1-9 18 - 26 D liu Bng 4.1: Tng ng gia sector vt l v sector logic trn a mm Trn b mt a tn ti cc sector m h iu hnh khng th ghi d liu vo hoc khng th c d liu t . Cc sector ny c gi l bad sector. Trong qu trnh nh dng a h iu hnh nh du loi b cc bad sector ny. Cluster (lin cung): Mt nhm gm 2, 4 hoc 6 sector lin tip nhau to thnh mt cluster. Kch thc ca cluster thng l bi s kch thc ca mt sector. Cc cluster c nh a ch bt u t 0. S sector trn mt cluster ph thuc vo tng loi a. Mt s h iu hnh cho php ngi s dng quy nh s sector trn mt cluster. Cc h iu hnh thng t chc lu tr d liu, ni dung cc tp tin, trn a theo tng cluster. Trn b mt a cng tn ti cc bad cluster, l cc cluster c cha bad sector. Mt s h iu hnh c th khi phc li c d liu cha trn cc bad-sector hay bad cluster v ghi n vo li mt cluster mi. H iu hnh c th ch khi phc v thay th d liu ti sector b bad hoc phi khi phc v thay th ton b d liu trn cluster c cha bad-sector. H thng file NTFS ca windowsNT/2000 tham chiu n cc v tr vt l trn a bng s hiu cluster logic (LCNs: logical cluster numbers). LCN l kt qu ca vic nh s tt c cc cluster trn volume t v tr bt u volume n kt thc volume. chuyn mt LCN thnh a ch vt l trn a, NTFS nhn LCN vi tha s cluster (s sector trn mt cluster) c c byte offset vt l trn volume. NTFS tham chiu n d liu trong phm vi mt file bng s hiu cluster o (VCNs: Virtual cluster numbers), VCN nh s cc cluster da vo mt file c th v nh s t 0 n m. Cc VCN khng cn phi lin tc v mt vt l, tuy nhin n c th nh x n bt k mt LCN no trn volume. Cylinder (t tr): Cc track c cng s hiu trn cc mt a khc nhau ca mt h thng a to thnh mt cylinder. Nh vy mt a c bao nhiu track th a c by nhiu cylinder. Cylinder ch c trn cc a cng. Partition (phn khu): Partition l mt tp cc sector lin k trn mt a. Mi partition c mt bng partition hoc mt c s d liu qun l a ring, dng lu tr sector u tin, kch thc v cc c tnh khc ca partition. Volume: Mt volume tng t mt partition logic trn mt a, v n c to khi 163

Chng 4: Qun l file v a

ta nh dng mt a hoc mt phn ca a theo h thng file NTFS. Trong h iu hnh windowsNT/2000 ta c th to ra mt volume tri di trn nhiu a vt l khc nhau. Mt a c th c mt hoc nhiu volume. NTFS iu khin mi volume sao cho khng ph thuc vo cc volume khc. Mt volume bao gm mt tp cc file cng vi bt k mt khng gian cha c cp pht no cn li trn partition a. Trong h thng file FAT, mt volume cng cha cc vng c bit c nh dng cho vic s dng ca h thng file. Trong cc volume NTFS th ngc li n lu tr tt c d liu ca h thng file, nh l bitmap, directory v c system bootstrap, trn cc file. Simple volume: l cc i tng i din cho cc sector t mt partition n, m cc trnh iu khin h thng file, qun l n nh mt n v n. Multipartition volume: l cc i tng i din cho cc sector t nhiu partition khc nhau, m cc trnh iu khin h thng file qun l n nh mt n v n. Cc multipartition volume c cc c tnh m cc simple volume khng c c nh: hiu sut cao, tin cy cao v kh nng m rng kch thc. Metadata: l mt dng d liu c bit, c lu tr trn a, n h tr cho cc thnh phn qun l cc dng thc h thng file khc nhau, d liu ca n c th l v tr ca cc tp tin/ th mc trn cc a. Metadata khng c s dng trong cc ng dng. File system (h thng file): Cc dng thc h thng file nh ngha cch m d liu file c lu tr trn thit b lu tr v s tc ng ca h thng file n cc file. Mt dng thc h thng file cng c th a ra cc gii hn v kch thc ca cc file v cc thit b lu tr m h thng file h tr. Mt vi h thng file h tr cho c cc file ln hoc nh, hoc c cc a ln v nh. Mt h thng file thng bao gm cc thnh phn: Sector khi ng (Boot sector), bng nh v file (FAT: File Allocation Table), bng th mc gc (Root Directory), mt tp cc file cc th mc v cc cng c qun l cc thnh phn ny. Cc thnh phn ny c th c cu trc hoc phng thc t chc khc nhau trn cc dng thc h thng file khc nhau. Ngi ta thng dng tn ca FAT trong h thng file gi tn ca h thng file . H iu hnh MS_DOS s dng h thng file FAT12 v FAT16, h iu hnh Windows9x s dng h thng file FAT32 v CDFS, h iu hnh Windows NT v Windows 2000 s dng cc h thng file FAT12, FAT16, FAT32, CDFS (CD_ROM File System, UDF (Universal Disk Format) v NTFS (New Technology File System).

IV.3. Cc iu khin h thng tp tin


Cc iu khin h thng tp tin (FSD: File system driver) qun l cc dng thc h thng file khc nhau. FSD chnh thc xut hin t windowsNT/2000. Trong windows 2000 c 2 loi FSD: Local FSD v Network/ Remote FSD. Local FSD: qun l cc volume c ni trc tip vi my tnh. Network/ Remote FSD: cho php ngi s dng v chng trnh ca ngi s dng truy cp d liu trn cc volume c ni vi mt my tnh xa.

Chng 4: Qun l file v a

164

Local FSD (FSD cc b): Cc Local FSD bao gm cc tp tin: Ntfs.sys, Fastfat.sys, Cdfs.sys v Raw FSD (c tch hp trong Ntoskrnl.exe). Hnh sau y cho thy cch local FSD tng tc vi qun l I/O v cc thit b lu tr. Cc local FSD chu trch nhim ng k vi b phn qun l I/O, khi FSD ng k th b phn qun l I/O c th gi n thc hin vic xc nhn volume khi cc ng dng hoc cc h thng khi to truy cp n volume.
Application Application
User mode Kernel mode

I/O manager

File system driver Logical volume (partition)

Storage device drivers

Hnh 4.7.a: FSD cc b Vic xc nhn volume bao hm vic kim tra boot sector ca volume v cc thng tin h thng khc. Sector u tin ca mi dng thc h thng file c h tr bi windows 2000 u c dnh ring cho boot sector ca volume. Boot sector cha y thng tin cn thit local FSD va nhn bit m sector trn ang cha mt dng thc m FSD qun l v tm kim bt k mt metadata khc c lu tr trn a. ci tin hiu sut, cc local FSD thng s dng h thng qun l cache cache d liu ca h thng file bao gm c metadata. Cc Network/Remote FSD (FSD mng/t xa): Cc Remote FSD bao gm 2 thnh phn: Mt Client v mt Server. Cc client remote FSD cho php cc ng dng truy cp n cc file v cc th mc xa. Client FSD chp nhn cc yu cu I/O t cc ng dng v chuyn n thnh cc lnh trong cc giao thc v h thng file ca mng thng qua mng n c chuyn n server remote FSD. Server FSD lng ch cc lnh c a n t kt ni mng v thc hin chng bng cch a ra yu cu I/O n b phn qun l local FSD (Local FSD manages) ca volume cha cc file v cc th mc m lnh c nh x l n. Hnh di y cho thy mt tng tc gia client v server trong h thng remote FSD. Cng ging nh cc local FSD, cc client remote FSD thng s dng nhng dch v ca b phn qun l cache che du d liu ca cc tp tin cc b v cc th mc xa. Cc server remote FSD tham gia vo vic duy tr cc kt ni n cache thng qua cc client remote FSD.

Chng 4: Qun l file v a

165

Hnh 4.7.b: FSD mng

IV.4. Cc h thng file c s dng trn cc h iu hnh hin nay


FAT12, FAT16, FAT32: H thng file FAT12 v FAT16 c Microsoft a ra s dng t h iu hnh DOS, h thng file FAT32 c Microsoft a ra s dng t h iu hnh windows98. H iu hnh windowsNT/2000 vn s dng cc h thng file FAT ny nhng linh hot hn. Mi loi FAT c mt con s ch ra s lng bt m h thng file s dng nhn dng cc cluster trn a. FAT12 s dng 12 bt nh danh cc cluster trn a, do vi FAT12 h thng file ch qun l c 4096 ( 212 = 4096) cluster trn a. H iu hnh windows 2000 cho php cc cluster c kch thc t 512 byte n 8Kb, vy vi FAT12 windows 2000 c th qun l c 32Mb a, iu ny c ngha windows 2000 ch dng FAT12 qun l cc a mm. Kch thc volume Kch thc cluster 0-32 MB 512 byte 32 Mb 64 Mb 1 Kb 65 Mb 128 Mb 2 Kb 129 Mb 256 Mb 4 Kb 257 Mb 512 Mb 8 Kb 513 Mb 1023 Mb 16 Kb 1024 Mb 2047 Mb 32 Kb 2048 Mb 4095 Mb 64 Kb Bng 4.2: Kch thc cluster ph thuc vo kch thc volume Trn cc h thng file FAT16, windows 2000 cho php kch thc cluster i t 512 byte n 64Kb, nn vi FAT16 windows 2000 c th qun l mt khng gian a ln

Chng 4: Qun l file v a

166

n 4Gb. Khi ngi s dng format a, ty theo dung lng a m windows 2000 quyt nh s dng h thng file no: FAT12, FAT16 hay FAT32. Trong windows 2000 kch thc cluster c chn ph thuc vo dung lng ca a. Bng 4.2 cho thy kch thc cluster c chn, ph thuc vo dung lng volume, trn h thng file FAT16. H thng file FAT32 c nh ngha da trn cc h thng file FAT. Trong thc t FAT32 s dng ch s dng 28 bt, thay v 32 bt, nh danh cc cluster trn a, v dnh ring 4 bt cao cho mc ch khc. Kch thc ca 1 cluster trn h thng FAT32 c th ln n 32Kb, nn theo l thuyt th FAT32 c th qun l n 8Tb dung lng partition/a. Nhng trong thc t windows 2000 ch dng FAT32 trn cc partition/a c kch thc nh hn 32Gb. Sau y l mt s thun li ca FAT32 so vi FAT12 v FAT16:

S phn t/ mc vo (entry) trn th mc gc khng c gii hn. Th mc gc khng cn lu tr ti mt v tr xc nh trc. Kch thc ca mt cluster c th ln n 32Kb nn n c th qun l c 8Tb, nhng trong thc t windows 2000 ch dng FAT32 qun l c partition/a c kch thc nh hn 32Mb. Ch dng 28 bt nh danh cc cluster, dng 4 bt cao cho mc ch khc. Lu tr mt bn copy ca boot sector. C hai bng FAT trn mt volume nhng c hai u c vai tr nh nhau.

Kch thc ca file c th ln n 4Gb. H thng file FAT32 khng c cc h iu hnh s dng nh dng a mm. NTFS: L h thng file dnh ring cho windowsNT/2000. NTFS dng 64 bt nh danh cc cluster, nn n c th qun l c cc a c dung lng ln n 16 Exabyte (16 t Gb). Trong thc t windowsNT/2000 ch s dng 32 bt nh danh cluster, kch thc cluster l 64Kb, nn NTFS ch c th qun l c cc a c dung lng ln n 128TB. NTFS c mt s tnh nng cao cp nh bo mt cc file/directory, cp hn ngch cho a, nn file, m ho file, Mt trong nhng tnh nng quan trng ca NTFS l kh nng phc hi li. Nu h thng b dng mt cch t ngt, th metadata ca a FAT s ri vo tnh trng xung khc dn n lm sai lch mt lng ln d liu tp tin v th mc. Nhng trn NTFS th iu ny khng th xy ra, tc l cu trc ca file/ Directory khng b thay i. Tn file trong NTFS c di khng qu 255 k t, ng dn y n file di khng qu 32.567 k t. Tn file s dng m UniCode. Tn file trong NTFS c s phn bit gia ch hoa v ch thng CDFS: L h thng file c a ra qun l cc file, th mc trn cc a CD_ROM. CDFS c ISO a ra vo nm 1998 theo chun ISO9660, sau Microsoft pht trin theo c th ca n s dng trn windows98 v sau l windowsNT/2000.

Chng 4: Qun l file v a

167

Dng thc h thng file CDFS cn mt s hn ch nh: Tn file v th mc di khng qu 32 k t, cy th mc khng su qu 8 mc. UDF: c windows 2000 pht trin da theo chun ISO 13346 thay th cho CDFS, v dng qun l cc a t-quang, ch yu l cc a DVD_ROM. UDF bao gm c cc c t DVD v c cc im tiu biu sau: Tn tp tin c th di n 255 k t, ng dn c th di n 1023 k t, tn tp tin c th c vit hoa hay vit thng.

IV.5. T chc a ca MS_DOS


Chng trnh FDISK ca h iu hnh cho php chia khng gian lu tr ca a cng (a c bn) thnh cc phn khc nhau, c th c kch thc khng bng nhau, c gi l cc phn khu (partition) a. H iu hnh DOS cho php to ra 3 loi phn khu: Phn khu DOS chnh (primary DOS), phn khu DOS m rng (Extended DOS), v phn khu phi DOS (non DOS). Mun ci t nhiu h iu hnh trn mt my tnh, hay chnh xc hn l trn mt a c bn, th trc ht phi chia a thnh cc phn khu, sau trn cc phn khu khc nhau s ci t cc h iu hnh khc nhau, thng l MS_DOS hoc windows98. Thng thng a cng c chia thnh 2 phn khu: DOS chnh v DOS m rng, cng c th ch to thnh mt phn khu DOS chnh. Theo quy nh ca h iu hnh, a C: c hnh thnh trn phn khu DOS chnh mt cch t ng v chim ton b kch thc ca phn khu. Ngi s dng phi thc hin vic to ra cc a logic (D:, E:, ) trn phn khu DOS m rng trong qu trnh FDISK a. Nu khng, phn khu DOS m rng s khng c s dng sau ny. Ta c th to ra 1, 2, 3, a logic trn phn khu DOS m rng v c th tng kch thc ca cc a logic trn phn khu m rng nh hn kch thc ca phn khu ny ( li mt phn cho mc ch khc sau ny). H iu hnh chu trch nhim boot h thng (MS_DOS hoc windows98) thng c ci t trn a C: (trn phn khu DOS chnh). Qu trnh FDISK a ch to ra cc phn khu v cc a logic C:, D:, E:, vv, sau ngi s dng phi thc hin vic nh dng (format) cc a ny th mi c th s dng c. Nn nh phi nh dng h thng (format /s) cho a C: v phi ci t h iu hnh boot chng vo a C:. Hnh sau y cho thy mt a cng vt l c chia thnh 2 phn khu v cc a logic c to ra trn cc phn khu:
Partition DOS Partition DOS m rng

HDD 20Gb

C: (10Gb) D: 4Gb FDISK E: 6Gb

a Vt L

2 a logic trn partition m rng

Hnh 4.8: HDD trc v sau FDISK Chng 4: Qun l file v a

168

Trong s cc partition to phi c 1 (ch1) partition c chn l partition active (ch ng). Partition Active l partition m sau ny c chn l partition boot h thng. Partition DOS chnh thng c chn l partition active. Cc partition khc nhau trn a, c cc thng tin sau y khc nhau: Loi ca partition; Partition c phi l Active hay khng; Kch thc ca partition; V tr bt u v kt thc ca partition; H iu hnh c ci t trn partition; lu tr thng tin khc nhau ca cc partition, h iu hnh DOS dng mt khi d liu c bit, c gi l sector phn khu (partition sector), sector ny nm ti sector vt l u tin ca a cng (head 0, track 0, sector 1) v n khng thuc v bt k mt partition no trn a. Sector ny thng c gi l bng partition. Hnh v sau y minh ho cho iu ny:
Boot sector ca FDD 0

(a)
Boot sector ca a C: 0 Master Boot Record Partition 1 (C:) Partition 2 (D:) Boot sector ca a D:

(b)

Hnh 4.7: T chc logic ca FDD (a) v HDD (b) Hnh trn cng cho thy s tng ng v mt v mt logic gia mt a mm (a) vi mt partition/a logic trn a cng (b). iu u tin chng ta cn ghi nhn l master boot record (sector phn khu) ch c trn a cng, n c to ra trong qu trnh FDISK a. Th hai l: Boot sector ca a mm c nh v ti sector 0 ca a, trong khi boot sector ca cc a logic trn cc partition c nh v ti sector u tin ca partition v s hiu ca sector ny c tm thy trong cc phn t trong bng partition ca master boot record bi boot code u master boot record. Th ba: Master boot record khng thuc bt k mt partition no v gia n v partition u tin l mt vng trng, c th DOS d tr cho cc mc ch khc sau ny. Vng trng ny l mt k h ca DOS, cc on code ca Virus c th c lu tr vng ny m h iu hnh khng th pht hin c. Khi master boot record trn a cng b xo hoc b nhim virus th my tnh khng th khi ng c. khi phc li ny ta ch c th thc hin nh sau: Khi ng my t a mm, trn a mm c cha tp tin FDISK.EXE, ri sau thc hin li thao tc FDISK a cng vi tham s MBR (A:\FDISK /MBR). FDISK /MBR lm mi li master boot record m khng lm hng d liu trn cc a logic. Sector phn khu bao gm 3 thnh phn: Boot code, bng partition v ch k h

Chng 4: Qun l file v a

169

iu hnh. Hnh 4.8 sau y cho thy cc thnh phn trong Sector phn khu: Boot code: l mt on chng trnh c bit, c h iu hnh ghi vo trong qu trnh FDISK a. on chng trnh ny c nhim v kim tra bng partition xc nh xem trn a c partition active hay khng, nu c th l partition no v bt u ti sector no, ri sau np boot sector ca a trn partition active vo RAM v chuyn quyn iu khin v cho boot sector. Bng partition (64 byte: bt u t byte 1BE h): gm 4 phn t, nh s t 1 n 4, mi phn t di 16 byte dng lu thng tin ca mt partition. Cc thng tin trong mt phn t trong bng partition cho bit: Phn khu c phi l active hay khng; V tr bt u phn khu (head, sector, cylinder); V tr kt thc phn khu (head, sector, cylinder); C bao nhiu sector nm trong phn khu; Kch thc ca mt phn khu tnh theo sector; Phn khu c nh dng nh th no v c ci t h iu hnh no?.
Boot sector ca partition 1

0
Master Boot Record Unused Partition 1 (C:) 0 Boot code
1BE 1CE 1DE 1EE 1FE

Par Par Par Par 1 2 3 4

ch k h iu hnh

Master Boot Record

Bng partition c 4 phn t

Hnh 4.8: Cc thnh phn trong master boot record V bng partition ch c 4 phn t nn DOS ch cho php to ra ti a l 4 partition. y l mt hn ch. khc phc iu ny h iu hnh DOS cho php to ra nhiu a logic trn mt partition m rng, tc l c th to ra c nhiu a logic trn mt a c s. H iu hnh windowsNT/ 2000 cho php to ra nhiu hn 4 partition trn mt a v s lng cc phn t trong bng partition c th thay i. Ch k h iu hnh (2 byte: bt u t byte 1FEh): thng cha gi tr 55AAh. H iu hnh DOS kim tra gi tr ti vng ny bit a ny c phi c nh dng bi n hay khng. Mt phn t trong bng phn khu cha cc thng tin sau: Offset Ni dung Kch thc 00 h 0: partition khng phi l active 1 byte 80 h: partition l active 01 h s hiu head bt u phn khu 1 byte

Chng 4: Qun l file v a

170

sector v cylinde bt u (ca boot sector) m h thng: 0: Non Dos; 1: FAT_12; 4: FAT_16; 5: phn khu Dos m rng; 6: phn khu Dos ln hn 32 Mb 05 h s hiu head kt thc phn khu 06 h sector v cylinde kt thc 08 h s hiu sector tng i bt u 0C h tng s sector trong phn khu Bng 4.3: Cc trng mt phn t bng partition V d 1: kim tra partition no l active ta thc hin nh sau: c sector u tin ca a cng lu vo bin masterboot Kim tra offset 00 ca 4 phn t partition trong bng partition
Mov Mov Locate_active: Mov Cmp Je Add Loop No_active: ......... Active: ......... cx, 4 SI, 1BE h AL, masterboot[SI] AL, 80h Active SI, 16 Locate_active

02 h 04 h

2 byte

1 byte 1 byte 2 byte 4 byte 4 byte

V d 2: c ni dng boot sector ca a cng C ghi vo bin BootDat ta phi thc hin ln lt cc bc sau y: c sector u tin ca a cng lu vo bin masterboot Tm partition active (phn t trong bng partition c offset 00 bng 80h) c buye ti offset 01h v word ti offset 02 ca phn t partition tng ng trn (head, sector v cylinde), xc nh s hiu sector bt u ca partition active, y chnh l boot sector ca a cng. c ni dung ca sector xc nh c trn lu vo BootDat.
Active: Mov Mov Mov Mov ax, 0201h cx, word PTR mastorboot [SI+2] dh, byte PTR mastorboot[SI+1] dl, 80h
; c 1 sector ; sector & cylinder ; head ; a cng

Chng 4: Qun l file v a

171

Mov Lea Int

es,cs bx, BootDat 13h

; tr ES:BX v ; u vng BootDAt lu

Nu PC c khi ng bng a mm (FDD) khi ng th sau qu trnh POST h thng s np boot sector trn a mm vo b nh ti a ch 0:7C00h sau quyn iu khin c trao cho cho boot sector, n tip tc iu khin qu trnh khi ng. Nu PC c khi ng bng a cng khi ng (HDD/C:) th sau qu trnh POST h thng s np sector phn khu ca a cng vo b nh ti a ch 0:7C00h, sau boot code trong sector phn khu thc hin vic xc nh partition active v np boot sector trn partition active vo b nh cng ti a ch 0:7C00h, sau quyn iu khin c trao cho cho boot sector, n tip tc iu khin qu trnh khi ng tng t nh trong trng hp a mm. Chnh v vy sector phn khu thng c gi l Master Boot Record, n cng c gi l bng partition.

IV.6. Qun l file trn a ca MS_DOS


Trong qu trnh nh dng mt a mm, hoc mt a logic trn cc phn khu trn a cng, h iu hnh chia khng gian lu tr ca a thnh 2 vng: vng d liu (Data Area) v vng h thng (System Area), ng thi ghi nhng thng tin cn thit vo vng h thng chun b cho vic qun l lu tr sau ny. Vng d liu: bao gm cc bolck c kch thc bng nhau v c nh a ch (12 bt hoc 16 bt) phn bit, y chnh l cc cluster trn a m chng ta ni n trn. Ni dung ca cc tp tin cng c chia thnh cc bolck c kch thc bng kch thc ca mt cluster. Cc cluster trn a dng cha ni dung ca cc tp tin trn a. Cc thng tin lin quan n mt tp tin trn a c cha vng h thng. Vng h thng: bao gm cc on chng trnh, cc thng tin h thng, cc thng tin lin quan n cc tp tin/th mc trn a m h iu hnh dng qun l vic lu tr tp tin/th mc trn a sau ny. C th n bao gm cc thnh phn sau y: Boot sector, FAT1, FAT2 v Root Directory. Sau y chng ta s kho st cc thnh phn trong vng h thng, thy c cch m DOS qun l cc file v cc th mc c lu tr trn a.
0 Master Boot Record sector 0 (FDD) hay sector u tin ca partition

Block (cluster)

Boot
Sector

FAT1 FAT2

Root Directory Data Area

System Area

Hnh 4.9: Phn vng trn mt a logic

Chng 4: Qun l file v a

172

Boot sector: cn c gi l boot record (bn ghi khi ng), di 512 byte (1 sector) c t ti sector logic 0 trn a mm hay sector logic u tin ca partition (a logic) trn a cng. Tt c cc a (FDD v a logic trn a cng) sau khi c nh dng u c boot record v u cha cc thng tin lin quan v a trong , nhng ch c a c nh dng l a khi ng mi c cha mt an code Bootstrap Loader. Bootstrap Loader thc hin vic np thnh phn ct li ca DOS nh io.sys, msdos.sys, command.com vo b nh RAM (chnh xc hn l ch np IO.SYS vo RAM sau IO.SYS s tm np cc tp tin tip theo) trong qu trnh khi ng my tnh. Chnh v vy bootstrap loader cn c gi l chng trnh mi khi ng. Bng sau y cho thy v tr, ln v ni dung ca cc trng trong boot sector. Offset Ni dung 00 h Lnh JUMP, nhy v Bootstrap Loader 03 h Tn nh sn xut v s phin bn 0B h S byte trn mt sector 0D h S sector trn mt cluster 0E h S sector dnh cho boot sector 10 h S bng FAT 11 h S phn t (entry) trong Root directory 13 h Tng s sector trn mt tp a (volume) 15 h M nhn din a 16 h S sector dnh cho bn FAT 18 h S sector trn mt track 1A h S mt (u t) 1C h S sector d tr 1E h S sector nu kch thc ln hn 32Mb 22 h S hiu a: 0: mm; 80h: cng 23 h D tr 24 h Ch k boot sector m rng 25 h S Serial ca a, c to ra lc format 29 h Tn tp a (nhn a) 34 h Loi FAT: FAT12 hoc FAT16 3Ch - 200h Code ca chng trnh bootstrap loader Bng 4.4: Cc trng trong boot sector Size 3 byte 8 byte 2 byte 1 byte 2 byte 1 byte 2 byte 2 byte 1 byte 2 byte 2 byte 2 byte 4 byte 4 byte 1 byte 1 byte 1 byte 4 byte 11 byte 8 byte 452 byte

Nh vy, ngay sau khi quyn iu khin c tr v cho boot sector th h thng s thc hin lnh nhy (Jmp) u boot sector (offset 00), nhy n thc hin on code bootstrap loader cui boot sector (t offset 3Ch n offset 200h). V bootstrap loader s thc hin nhim v ca n. Da vo boot sector ta bit c nhiu thng tin v a nh: loi FAT, nhn a, s sector trn mt cluster, s byte trn mt sector, V t ta cng c th tnh c dung lng ca a tnh theo byte: Tng s sector trn mt tp a * s byte trn mt sector.

Chng 4: Qun l file v a

173

V d: in ra loi FAT ang s dng trn a mm hoc trn mt volume trn a cng ta thc hin nh sau:

c ni dung ca boot sector lu vo bin bootdat In ra 8 k t bt u ti offset 34h ca bootdat


Mov Mov Mov Loai_FAT: Mov Int Loop cx, 8 SI, 34h ah, 02 DL, byte PTR bootdat[SI] 21h Loai_FAT

; hm 02h/21h in k t trong DL

File Allocation Table (FAT): Ni dung ca mt file cn lu tr trn a c chia thnh cc phn c kch thc bng nhau v bng kch thc ca mt cluster, c gi l cc block file. Cc block file ca cc file c lu tr ti cc cluster xc nh trn a, cc cluster cha ni dung ca mt file c th khng nm k nhau. theo di danh sch cc cluster ang cha ni dung ca mt file ca tt c cc file ang lu tr trn a h iu hnh DOS dng bng FAT, hay cn gi l bng nh v file. Bng FAT cn dng ghi nhn trng thi ca cc cluster trn a: cn trng, cp pht cho cc file, b bad khng th s dng hay dnh ring cho h iu hnh. Trong qu trnh khi ng my tnh h iu hnh np bng FAT vo b nh chun b cho vic c/ghi cc file sau ny. Khi cn ghi ni dung ca mt file vo a hoc khi cn c ni dung ca mt file trn a h iu hnh phi da vo bng FAT, nu bng FAT b hng th h iu hnh khng th ghi/c cc file trn a. Do , h iu hnh DOS to ra hai bng FAT hon ton ging nhau l FAT1 v FAT2, DOS s dng FAT1 v d phng FAT2, nu FAT1 b hng th DOS s s dng FAT2 khi phc li FAT1. iu khng ng vi h thng file FAT32, FAT32 vn to ra 2 FAT nh ca DOS, nhng nu FAT1 b hng th h iu hnh s chuyn sang s dng FAT2, sau mi khi phc FAT1, v ngc li. H iu hnh DOS t chc cp pht ng cc cluster cho cc file trn a, sau mi thao tc cp pht/ thu hi cluster th h iu hnh phi cp nht li ni dung cho c FAT1 v FAT2. C th h iu hnh ch thc hin cp pht ng cluster cho cc file d liu (c kch thc thay i), cn i vi cc file chng trnh, file th vin, file lin kt ng, (c kch thc khng thay i) th h iu hnh s thc hin cp tnh cluster cho n. Bng FAT bao gm nhiu phn t (im nhp/ mc vo), cc phn t c nh a ch bt u t 0 phn bit, a ch cluster cng c th gi l s hiu ca cluster. Gi tr d liu ti mt phn t trong bng FAT cho bit trng thi ca mt cluster tng ng trn vng d liu. V d, phn t th 7 trong bng FAT cha gi tr 000h, gi tr ny cho bit cluster th 7 trn vng d liu cn trng, c th dng cp pht cho mt file. Phn t th 5 trong bng FAT cha gi tr FF7h, gi tr ny cho bit cluster th 5 trn vng d liu b bad, khng th cp pht c, H iu hnh DOS c th nh dng h thng file theo mt trong 2 loi FAT l FAT12 v FAT16. Mi phn t trong FAT12 rng 12 bt(1.5 byte), mi phn t trong

Chng 4: Qun l file v a

174

FAT16 rng 16 bt(2 byte). Cc a hin nay thng c DOS nh dng theo h thng file vi FAT16. Sau y l danh sch cc gi tr d liu c cha ti cc phn t trong bng FAT (s trong ngoc dng trong FAT16) v ngha ca n. 000h (0000h): cluster tng ng cn trng. FF7h (FFF7h): cluster tng ng b bad. Trong qu trnh nh dng a h iu hnh nh du loi b cc cluster b bad bng cch ghi gi tr ny vo phn t tng ng trong bng FAT. FF0h (FFF0h) - FF6h (FFF6h): cluster tng ng dnh ring cho h iu hnh. FF8h (FFF8h) - FFFh (FFFFh): cluster tng ng l cluster cui cng trong dy cc cluster cha ni dung ca mt file. 002h (0002h) FFEh (FFFEh): y l s hiu ca cluster trong bng FAT, n cho bit cluster tip theo trong dy cc cluster cha ni dung ca mt file. Trong bng FAT, hai phn t u tin (00 v 01) khng dng cho vic theo di trng thi cluster v ghi nhn bng cp pht file, m n c s dng cha mt gi tr nhn bit khun dng a, c gi l byte nh danh (byte ID) ca a, y l byte u tin ca bng FAT. i vi a cng th byte ID = F8h. Nh vy c c ni dung ca mt file trn a th trc ht h iu hnh phi tm c dy cc cluster cha ni dung ca mt file. Nhng bng FAT ch cho bit s hiu cc cluster t cluster th hai n cluster cui cng trong dy ni trn. Cluster u tin trong dy cc cluster cha ni dung ca mt file trn a c tm thy trong bng th mc gc. thy c cch m h iu hnh DOS dng bng FAT qun l vic lu tr cc file trn a cng nh theo di trng thi cc cluster trn vng d liu, ta xem hnh minh ho sau y.
T bng th mc gc tr n

(b)
4 5 9 13 6 10 14 7 11 15

00 00 10 00 9 14 00 12 7
8
FF7 15 FF7 FFF FFF

A1
8 12

B1 A3 B2 A2 x

(c)

9 10 11 12 13 15 15

Cc entry u bng FAT

B3 x A4 B4
a logic v cc cluster

A1 A2 A3 A4 B1 B2 B3 B4 (a)

Cc block ca FileA & FileB

Hnh 4.10: Cc file FileA v FileB (a) c lu trn cc cluster ca a logic (b) v s nh v ca n trn bng FAT (c).

Chng 4: Qun l file v a

175

Hnh (a) trn cho thy: c hai file, FileA v FileB, FileA c kch thc va 4 cluster v c chia thnh 4 block, FileB c kch thc nh hn 4 cluster cng c chia thnh 4 block, trong block B4 mc d cha mt cluster nhng vn c cha vo mt cluster. Tc l, h iu hnh cng phi dng 8 cluster lu tr ni dung ca hai file FileA va FileB vo a (hnh b). on FAT trong hnh (c) trn cho bit cc thng tin sau y: Cc cluster b bad, khng th s dng: cluster 11 v cluster 13. Cc cluster cn trng, cha cp pht: cluster 2, cluster 3, cluster 5, cluster 8. FileA c lu ti cc cluster: 4, 10, 7, 14 (cha block cui cng) FileB c lu ti cc cluster: 6, 9, 12, 15 (cha block cui cng) Nh vy bng th mc gc cho bit cluster u tin cha FileA l cluster 4, phn t th 4 trong bng FAT cha gi tr 10, iu ny chng t cluster 10 l cluster tip theo cha ni dng FileA, phn t th 10 trong bng FAT cha gi tr 7, iu ny chng t cluster 7 l cluster tip theo cha ni dng FileA, phn t th 7 trong bng FAT cha gi tr FFFh, iu ny chng t cluster 7 l cluster cha block cui cng ca FileA. Cc cluster cha ni dung ca mt file c th khng lin tip nhau, nhng n thng nm ri rc trong mt phm vi hp no trn a. iu ny gip h iu hnh c file c nhanh hn nh tit kim c thi gian duyt v c qua cc byte t u n cui bng FAT d tm dy cc cluster cha ni dung ca file. Mt khc, vic phn b tp trung cc cluster ca mt file rt ph hp vi cc thut ton c a ca h iu hnh. i vi cc file d liu, sau mt thi gian kch thc ca n c th tng ln, h iu hnh phi cp pht thm cc cluster cho n, cc cluster mi ny c th nm ti cc v tr tch xa cc cluster trc , dn n cc cluster cha ni dung ca mt file phn b ri rc khp b mt a, iu ny s lm chm tc c file ca h iu hnh. Cc file d liu b m, thay i, ghi v ng li nhiu ln cng c th dn n hin tng trn. Trn a c th xut hin hin tng c nhiu file b phn b ri rc khc b mt a, hin tng ny c gi l hin tng a b phn mnh (fragmentary). Cc a b phn mnh s lm cho tc c file trn n chm i rt nhiu. Trong trng hp ny ngi s dng phi thc hin vic sp xp li cc cluster trn a, cc cluster cha ni dung ca mt file ca tt c cc file trn a c phn b tp trung hn, thao tc ny c gi l chng phn mnh cho a. H iu hnh DOS cung cp nhiu cng c ngi s dng thc hin vic chng phn mnh cho a c mc ng dng v mc lp trnh. c ni dung ca mt file trn a da vo bng th mc gc v bng FAT, h iu hnh thc hin theo cc bc sau y: 1. Tm phn t trong bng th mc gc cha thng tin ca file cn c. 2. Ti phn t ny, xc nh s hiu ca cluster u tin trong dy cc cluster cha ni dung ca file (gi s cluster 4), gi tr ny c xem nh con tr tr ti bng FAT bt u d tm cc cluster t th 2 n cui cng trong dy cc cluster cha ni dung ca file cn c. Sau c block d liu u tin ca file ti cluster 4 trn vng data ca a. 3. Xc nh byte tng ng vi phn t 4 trong bng FAT. c gi tr d liu ti

Chng 4: Qun l file v a

176

phn t 4 ny, gi s gi tr c c l 10. Sau c block d liu tip theo ca file ti cluster 10 trn vng data ca a. 4. Xc nh byte tng ng vi phn t 4 trong bng FAT. c gi tr d liu ti phn t 4 ny, gi s gi tr c c l 17. Sau c block d liu tip theo ca file ti cluster 17 trn vng data ca a. 5. Xc nh byte tng ng vi phn t 17 trong bng FAT, sau thc hin hon ton tng t nh bc 4 cho n khi c c gi tr FFFh (vi FAT12) hoc FFFFh (vi FAT16) ti mt phn t no (gi s phn t 43) trong bng FAT th c block d liu cui cng ca file ti cluster 43 trn vng data ca a, sau dng li. Ti y kt thc qu trnh c file. Chng ta s hiu r hn cc bc 1 v 2 phn m t v bng th mc gc trong mc ny. Cc bc trn ch ng cho vic c cc file m thng tin ca n c lu tr trn cc phn t trong bng th mc gc (c lu tr th mc gc) ca a. Thao tc c file ca DOS nh trn l km hiu qu, v ngoi vic c ni dung ca file ti cc cluster trn vng data ca a h iu hnh cn phi c v phn tch bng FAT d tm ra dy cc cluster cha ni dung ca mt file. H thng file NTFS trong windowsNT/2000 khc phc iu ny bng cch lu danh sch cc cluster cha ni dung ca mt file vo mt v tr c nh no , nn khi c file h iu hnh ch cn c ni dung ca cc cluster trn a theo danh sch trn, m khng phi tn thi gian cho vic d tm dy cc cluster cha ni dung ca file ca h thng file FAT trong DOS. Ngoi ra, nu DOS c mt c ch no ghi li c danh sch cc cluster cn trng trn a, th tc ghi file ca h iu hnh s tng ln v h iu hnh khng tn thi gian cho vic c bng FAT xc nh cluster cn trng. Cc h thng file ca cc h iu hnh sau ny nh windows98, windowsNT/2000 thc hin c iu ny. rng ca mt phn t trong bng FAT (12 bt hay 16 bit), quyt nh dung lng a ti a m h iu hnh c th qun l c. Nu h iu hnh s dng FAT12 th mi phn t trong FAT12 c th cha mt gi tr ln n 212, a s trong s ny l s hiu cc cluster trn vng data ca a, iu ny c ngha l trn vng data ca a c ti a l 212 cluster. T y ta c th tnh c dung lng a ti a (byte) m h thng file FAT12 c th qun l c l: 212 cluster * 4 sector/1 cluster * 512 byte/1 sector (a). Tng t, dung lng a ti a (byte) m h thng file FAT16 c th qun l c l: 216 cluster * 4 sector/1 cluster * 512 byte/1 sector (b). R rng vi h thng file FAT12 th DOS s qun l c mt khng gian a ln hn so vi FAT12 (theo a v b). Windows98 s dng h thng file FAT32 v n cho php c ti 6 sector trn mt cluster, nn n c th qun l c mt khng gian a ln hn nhiu ln (232 cluster * 6 sector/1 cluster * 512 byte/1 sector) so vi DOS. Nu mt file c kch thc l 50 sector, th trong DOS file c chia thnh 13 block (c 4 sector trong 1 block cluster) cn trong windows98 file c chia thnh 9 block (c 6 sector trong 1 block cluster). Tc l, trong DOS file ny c cha 13 cluster trn a (dy cc cluster cha file gm 13 phn t) cn trong windows98 fie ny c cha trong 9 cluster (dy cc cluster cha file gm 9 phn t). iu ny cho thy file ny s c c nhanh hn trong windows98, v ch cn c 9 ln thay v phi c 13 ln nh trong DOS. Cha k, c file cc h

Chng 4: Qun l file v a

177

iu hnh phi phn tch bng FAT d ra dy cc cluster cha ni dung ca file. Nh vy, h thng file ca windows98 qun l c mt khng gian a ln hn v c tc c file nhanh hn, so vi h thng file ca DOS. ghi mt file vo a, th trong nhiu thao tc phi thc hin h iu hnh phi thc hin vic c ni dung ca cc phn t trong bng FAT tm phn t cha gi tr 0, ghi mt block file vo cluster tng ng trn vng data. Trong khi c gi tr ca cc phn t trong bng FAT h iu hnh c th c c gi tr FF7h hoc FFF7h, du hiu ca bad cluster, trong trng hp ny h iu hnh s khng ghi file vo cluster tng ng vi phn t ny, v h iu hnh s tm c mt phn t khc. Nh vy cc bad cluster trn a s lm chm tc ghi file ca h iu hnh. y l mt trong cc hn ch ca cc h thng file FAT. Cc h thng file khc, NTFS chng hn, khc phc iu ny bng cch to ra mt danh sch ring theo di cc cluster b bad v khi tm cluster trng ghi file h iu hnh s khng c cc phn t trong bng FAT tng ng vi cc cluster ny. Vic c ni dung ca mt phn t trong FAT16 ch n gin l c ni dung ca 2 byte (1 word), trong khi vic c ni dung ca mt phn t trong FAT12 s phc tp hn v 1.5 byte khng phi l kiu d liu chun ca ngn ng my v DOS. Do , DOS phi gp 2 phn t lin tip c c 3 byte sau c ht 3 byte v phn tch c c ni dung ca 2 phn t lin tip trong FAT12. Root Directory: qun l thng tin ca cc file v cc th mc (th mc con ca th mc gc) ang c lu tr trn th mc gc ca a mm hoc a logic trn a cng, h iu hnh DOS s dng bng th mc gc (root directory). Bng th mc gc gm nhiu phn t (entry/mc vo), s lng phn t trong bng th mc gc c DOS quy nh trc trong qu trnh Format a v c ghi ti word ti offset 11h trong boot sector, gi tr ny khng th thay i. Do , tng s file v th mc con m ngi s dng c th cha trn th mc gc ca a l c gii hn. y l mt hn ch ca DOS. Trong h thng file FAT32 v NTFS s phn t trong bng th mc gc khng b gii hn, c th thay i c v c th c nh vi ti mt v tr bt k trn a hoc cha trong mt tp tin no . Mi phn t trong bng th mc gc dng cha thng tin v mt file hay th mc no ang c lu trn th mc gc ca a. Khi c mt file hoc mt th mc no c to ra trn th mc gc ca a th h iu hnh dng mt phn t trong bng th mc gc cha cc thng tin lin quan ca n, khi mt file hoc th mc b xo/ di chuyn khi th mc gc th h iu hnh s thu hi li phn t ny chun b cp cho cc file th mc khc sau ny. Mt phn t trong th mc gc di 32 byte, cha cc thng tin sau: Offset 00h 08h 0Bh 0Ch 16h Ni dung Tn chnh ca file (filename) Phn m rng ca tn File (.Ext) Thuc tnh file (attribute) D tr, cha c s dng (Unused) Gi thay i tp tin cui cng (time) ln 8 byte 3 byte 1 byte 10 byte 2 byte 178

Chng 4: Qun l file v a

18h Ngy thay i tp tin cui cng (date) 2 byte 1Ah Cluster u tin ca Flie (start cluster) 2 byte 1Ch Kch thc ca File (filesize) 4 byte Bng 4.5: Cc trng trong mt entry ca bng th mc gc Hnh v 4.11 sau y cho thy r hn v cu trc ca mt phn t trong bng th mc gc ca DOS. V byte thuc tnh ca phn t ny: S d DOS qui nh tn file/tn th mc di khng qu 8 k t v phn m rng tn file di khng qu 3 k t (tn theo chun 8.3) v DOS ch dng 8 byte cho trng tn file (filename) v 3 byte cho trng tn m rng (.ext). Nu ngi s dng tao file/ th mc vi tn khng 8 k t th DOS t ng thm vo cc k t trng cho 8 k t, ngc li DOS t ng b bt cc k t cui ch gi li 8 k t u. iu ny cng ng cho phn m rng ca tn file.
1A (2 byte) 1C 08 0B 0C 16 18 0 filename .ext attribute unused time date start cluster filesize

(a)
x 7 x 6 a d v 5 4 3 h r (b) 2 1 0 s tr ti bng FAT

Hnh 4.11: Mt phn t trong bng th mc gc (a) v byte thuc tnh (b) Byte u tin (offset 00) ca mt phn t trong th mc gc cn c gi l byte trng thi, byte ny c th cha mt trong cc gi tr c bit sau y: 0: cho bit phn t ny cha c s dng. E5h: cho bit phn t ny l ca mt file c to nhng b xa. 05h: cho bit k t u tin ca tn file ny thc t l E5h. Nu ngi s dng c tnh to ra mt file c tn bt u l k t c m asscii l E5h th h iu hnh s t ng thay bng k t c m l 05h, phn bit file ny vi cc file b xo. 2Eh (k t du chm .): cho bit phn t ny cha thng tin ca mt th mc con, nu byte th 2 cng cha gi tr 2Eh (hai du chm lin tip ..) th trng start cluster s cha s hiu cluster u tin ca th mc cha, nu l th mc gc th l 0000h. Nu bng cch no ngi lp trnh a c mt gi tr 1 byte khng thuc mt trong cc gi tr trn v khng phi l cc ch ci tn file thng thng, vo byte u tin ca phn t trong bng th mc gc ang cp pht cho mt file/th mc no , th DOS v cc tin ch trn DOS khng th nhn bit cc file/th mc ny, v khng th thc hin cc thao tc Dir, Del, vv trn n. y l mt cch bo v cc file/th mc ca ngi s dng trn a. DOS dng 1 byte, sau 2 phn tn file, ghi cc thuc tnh ca file, tuy

Chng 4: Qun l file v a

179

nhin DOS ch dng 6 bt t 0 n 5 ca byte ny ghi 5 thuc tnh ln lt l: ch c, n, h thng, nhn a, th mc con v lu tr (trong hnh 4.xx.b trn 2 bt cha s dng c nh du x): Thuc tnh ch c (r: read only): Nu bt 0 ca byte thuc tnh bng 1, th tp tin tng ng c thuc tnh ch c. Mt tp tin c thuc tnh ch c s khng b thay i ni dung v khng b xa. Thuc tnh n (h: hidden): Nu bt 1 ca byte thuc tnh bng 1, th tp tin tng ng c thuc tnh n. Mt tp tin c thuc tnh n th cc lnh DOS thng thng nh Edit, Del, Dir, Tree, s khng tc ng c n n. Thuc tnh h thng (s: system): Nu bt 2 ca byte thuc tnh bng 1, th tp tin tng ng c thuc tnh h thng. Mt tp tin c thuc tnh h thng tng t nh tp tin c thuc tnh n hoc va n va h thng. Thuc tnh h thng ch c ngha k tha, n khng c ngha trong h iu hnh DOS. Thuc tnh nhn a (v: volume): Nu bt 3 ca byte thuc tnh bng 1, th phn t ny cha nhn nhn dng a, c lu ti trng filename v trng Ext. Phn t ny ch c DOS nhn bit nu n nm trn th mc gc. Trong trng hp ny ch c trng Date v Time l c s dng. Trng start cluster v trng filesize cha gi tr 0. Thuc tnh th mc con (d: subdirectory): Nu bt 4 ca byte thuc tnh bng 1, th phn t ny cha cc thng tin v th mc con ca th mc gc trn a. i vi DOS th mc con l mt tp tin cha d liu thng thng, n c mt thuc tnh c bit, l thuc tnh d. Thuc tnh lu tr (a:archive): thuc tnh ny dng tr gip cho vic to backup ca cc tp tin trn a cng. Bt ny = 0 i vi tt c cc tp tin cha b sa i k t ln backup gn y nht. Nh vy trong ln to backup sau DOS ch cn cp nht cho cc tp tin c bt ny bng 1. Tm li, lc u bt a = 0, sau nu c bt k s thay i no trong ni dung ca file th bt ny s c chuyn ln thnh bng 1. 10 byte bt u t offset 0Ch cha c DOS s dng, Microsoft d tr vng ny cho cc mc ch khc sau ny. H iu hnh windows98 s dng tt c 10 byte ny. Vic d tr 10 byte ny to thnh mt k h ca DOS, cc on code virus c th nh v vng ny m h iu hnh khng th pht hin c. Trng Date v trng Time kt hp vi nhau lu chnh xc ngy gi to ra file/ th mc hay ngy gi file/ th mc c thay i gn y nht. Trng quan trng nht trong ca mt phn t trong bng th mc gc l trng start cluster, di 2 byte, bt u ti offset 1Ah. N cha s hiu ca cluster u tin trong dy cc cluster cha ni dung ca file tng ng vi phn t ny. Do trong cc thao tc c file ca h iu hnh, trng ny c xem nh mt con tr tr ti bng FAT d tm dy cc cluster cha ni dng ca mt file. Trng filesize cho bit kch thc ca file tnh theo byte. Nu mt phn t trong bng th mc gc c dng cho mt th mc con no th trng filesize ny

Chng 4: Qun l file v a

180

cha gi tr 0. Kch thc ca th mc con ch c bit nh ln theo chui s hiu cluster tng ng trong bng FAT. Khi ngi s dng xa mt file trn a h iu hnh khng xa ni dung ca file ti cc cluster trn vng data, khng xa dy cc cluster cha file trong bng FAT, thm ch khng xa cluster u tin trong dy cc cluster cha file ti phn t tng ng vi file trong bng th mc gc m h iu hnh ch thay k t u tin ca tn file ti phn t trong bng th mc gc bng gi tr E5h. Do , sau khi xa mt file th h iu hnh c th khi phc li c file ny, bng cc thay k t m E5h byte u tin ca tn file bng mt k t khc. Trng hp khng khi phc c l do sau mt thi gian, h iu hnh s dng phn t trong th mc gc, cc phn t trong bng FAT v cc cluster trn vng data ca file b xa, cp pht cho cc file mi sau ny. Khi duyt bng th mc gc gp cc phn t c byte u bng E5h h iu hnh bit y l phn t ca file b xa nn khng in ra mn hnh. iu va trnh by trn y hon ton ng vi trng hp ca cc th mc con trn a. ghi mt file vo th mc gc ca a (thng tin ca file cha mt phn t trong bng th mc gc) h iu hnh DOS thc hin cc bc sau y: 1. Tm mt phn t trong bng th mc gc cha s dng, l phn t m byte u tin ca n cha gia tr 00. Gi s tm c phn t th 105. 2. Ghi tn file, phn m rng, thuc tnh ca file, ngy gi to file vo cc trng tng ng ti phn t 105 trong bng th mc gc. 3. Tm mt entry trong bng FAT cha gi tr 000h, gi s tm c entry 207, iu ny c ngha cluster 207 trn vng data cn trng. 4. Ghi s hiu ca entry ny, entry 207, vo trng start cluster ti offset 1Ah ca phn t 107 trong bng th mc gc. 5. Ghi block u tin ca file vo cluster 107 trn vng data. Nu ni dung ca tp tin cha va trong 1 cluster, th DOS s thc hin bc cui cng (bc 9), ngc li DOS tip tc thc hin bc 6. 6. Tip tc tm mt entry trong bng FAT cha gi tr 000h, gi s tm c entry 215, iu ny c ngha cluster 215 trn vng data cn trng. 7. Ghi gi tr 215 vo entry 207 trong bng FAT v ghi block th hai ca file vo cluster 215 trn vng data. 8. Lp li cc bc 6 v 7 cho n khi ghi ht cc block ca file vo cc cluster trn vng data. Gi s block cui cng ca file c ghi vo cluster 302 trn vng data, tc l entry cui cng c tm thy (cha gi tr 00h) l entry 302. 9. Bc cui cng: ghi gi tr FFFh vo entry 107 hoc vo entry 302. 10. Tnh kch thc ca tp tin v ghi vo trng filesize ca phn t 105 trong bng th mc gc. Th mc con (subdirectory): Nh bit, bng th mc gc ca DOS nh v ti mt v tr c nh trn a logic, sau 2 bng FAT, s lng phn t trong bng th mc gc l c nh, khng th m rng c, v c DOS quy nh trong qu trnh nh dng a. l nhng hn ch v cu trc v t chc bng th mc gc ca DOS. C th

Chng 4: Qun l file v a

181

l ngi s dng khng th cha qu nhiu file, th mc trn th mc gc v bng th mc gc d b virus tn cng. H iu hnh DOS a ra khi nim th mc con khc phc mt phn nhng hn ch trn. i vi ngi s dng, th mc con l nhng th mc nm trn th mc gc ca a, trn a ch c mt th mc gc nhng c th c nhiu th mc con, trong th mc con c th cha nhiu (khng gii hn) file v th mc con khc, gn lin vi th mc con l th mc cha ca n, th mc cha c th l th mc gc hoc mt th mc con khc. Nhng i vi DOS, th mc con l mt file c bit, file ny c thuc tnh th mc con, byte thuc tnh c gi tr 00010000 (16), v c trng filesize = 0. V mt h thng, th mc con c cc im khc sau y so vi th mc gc: H iu hnh lu tr n ging nh lu tr cc file khc trn a. Tc l, mun c c th mc con h iu hnh phi ln theo du vt ca n trong bng FAT. Bng th mc ca n c s lng phn t khng gii hn, c th tng ln hay gim xung ty thuc vo s lng file v th mc cha trong n. Nh vy m ngi s dng c th cha nhiu file th mc trong mt th mc con trn a. S lng phn t trong bng th mc ca cc th mc con ch b gii hn bi dung lng a v kch thc cc file th mc cha trong n. Bng th mc ca n c th nh v ti mt v tr bt k trn vng data ca a. C th xem y l mt hn ch ca th mc con, v nu to qu nhiu th mc con trn a th bng th mc ca cc th muc con s chim ht nhiu khng gian a trn vng data. Do h iu hnh khng khuyn khch to qu nhiu th mc con trn cc a mm. Virus kh c th tn cng bng th mc ca th mc con v n khng c nh. Mun bit c kch thc ca th mc con h iu hnh phi tnh ton t kch thc ca tt c cc file trong th mc con, h iu hnh da vo bng th mc ca th mc con v bng FAT thc hin vic tnh ton ny. Cu trc ca mt phn t trong bng th mc ca th mc con tng t cu trc ca mt phn t trong bng th mc gc. a s cc phn t trong bng th mc gc ca a hay phn t trong bng th mc ca th mc con, cha thng tin ca mt th mc (con), u c trng Filename l tn ca th mc (con), trng Attribute = 16, trng Start cluster = cluster u tin ca th mc (con), trng Filesize = 0, Ch c hai phn t u tin trong bng th mc ca cc th mc con l c cha cc gi tr c bit. Ngay sau khi c mt th mc con c to ra, h iu hnh to ngay bng th mc cho n v khi to 2 phn t u tin trong bng th mc ny: Phn t th nht, cha m ascii ca k t du chm (.) byte u tin ca trng filename, phn t ny ch n chnh th mc hin hnh. Trng Start cluster cho bit cluster bt u ca th mc ny. Phn t th hai, cha 2 m ascii ca 2 k t du chm (..) 2 byte u tin ca trng filename, phn t ny ch n th mc cha ca n. Trng Start cluster cho bit cluster bt u ca th mc cha ca n. Nhng nu cha ca n l th mc gc th trng ny cha gi tr 0.

Chng 4: Qun l file v a

182


OS ASS sub

.
..
sub

sub sub

25 0
7 0

tailieu doc

25 0 0 0 2B 7F 55 0
(b)

LTOS

sub

Mt phn bng th mc gc

(a)

Mt phn bng th mc ca th mc con OS

.
..
Mt phn bng LT th mc ca th mc con ASS
TH

sub sub sub

7 0 0 0 55 0 65 0
(c)

Trng start cluster

sub

Mt phn bng th mc ca th mc con LT

.
..
Btap1 doc

sub sub

65 0 7 0 72 99 84 92
(d)

.
..
Ch1 Ch2 doc

sub sub

55 0 7 0 62 95 97 19
(e)

Btap2 doc sub

doc sub

Hnh 4.12: Bng th mc gc v bng th mc con thy r hn mi quan h gia bng th mc gc v bn th mc ca cc th mc con, cng nh cc phn t trong 2 bng th mc ny, ta hy xem s n minh ha 4.12 trn y. Trong s ny ta gi s: trn th mc gc c hai th mc con l ASS v OS, trong th mc ASS c hai th mc con LT v TH, trong OS c cha tp tin tailieu.txt v th mc con LTOS, trong LT c cha 2 tp tin ch1.txt v ch2.txt, trong TH c cha 2 tp tin btap1.txt v btap2.txt. Hnh 4.12.a trn cho thy trn th mc gc c 2 th mc con OS v ASS, t chc ca bng th mc con ca th mc OS c lu tr bt u ti block 25, t chc ca bng th mc con ca th mc ASS c lu tr bt u ti block 7. Hnh 4.12.b cho thy th mc cha ca th mc OS l th mc gc, phn t c tn l hai du chn ..

Chng 4: Qun l file v a

183

cha gi tr 0 trng start cluster, tp tin tailieu.doc c lu tr bt u ti cluster 2Bh v c kch thc l 7Fh, t chc bng th mc con ca th mc LTOS c lu tr bt u ti cluster 55. Hnh 4.12.c & 4.12.d cho thy th mc TH l th mc con ca th mc ASS, bng th mc con ca th mc TH lu tr bt u ti cluster 65 (phn t c tn l mt du chn . cha gi tr 65 trng start cluster), v t cha bng th mc ca th mc cha ca n, th mc ASS, c lu tr bt u ti cluster 7 (phn t c tn l hai du chn .. cha gi tr 7 trng start cluster), Nu mt tp tin b gim kch thc th DOS s gii phng ngay cc cluster a m tp tin khng cn s dng na. Nhng cc cluster cha th mc con ch c gii phng khi tt c cc tp tin th mc trong th mc con ny b xa ht ra khi a. Qu trnh khi ng my tnh vi h iu hnh DOS: Qu trnh khi ng my tnh l qu trnh t khi my tnh c cung cp ngun in cho n khi mn hnh xut hin du nhc h iu hnh. Qu trnh ny c chia thnh 2 giai on, giai on th nht tm gi l giai on khi ng my, giai on ny ch yu do chng trnh POST trong BIOS thc hin. Giai on th hai tm gi l giai on tm np phn li ca h iu hnh vo RAM, giai on ny ch yu do BIOS v Boot sector/master boot record thc hin. Giai on khi ng my tnh: (Bt u t khi my tnh c cung cp ngun in) 1. Cc thanh ghi segment c gn gi tr 0FFFFh, cc thanh ghi cn li bng 0. 2. Cp thanh ghi CS:IP cha gi tr 0FFFh:0000h, a ch ny cha mt lnh nhy xa (JMP Far) chuyn quyn iu khin n mt on chng trnh u ROM_BIOS. on chng trnh ny s thc hin qu trnh POST my. 3. POST s ln lt kim tra cc thanh ghi, b nh khi to cc chip iu khin DMA, b iu khin ngt, a, ... . Nu c thit b no b li th thng bo li ln mn hnh v dng qu trnh khi ng, nu khng th on code cui chng trnh POST s c ni dung ca boot sector ca a mm/ hoc master boot record ca a cng vo RAM ti a ch 0000:7C00h v bt u qu trnh khi ng h iu hnh (tm v np h iu hnh vo b nh RAM). Nu khng tm thy boot setor hoc master boot record th s xut hin thng bo li hoc dng qu trnh khi ng. Giai on tm np h iu hnh vo b nh: (Kt thc khi mn hnh xut hin du nhc h iu hnh) 4. Nu a khi ng l a mm: chuyn sang bc 7. 5. Nu a khi ng l a cng: d tm ti offset 00 ca cc phn t trong bng partition gi tr 80h. Nu tm thy th partition tng ng l partition active (partition cha sector khi ng), chuyn sang bc 7. Nu khng tm c gi tr 80h ti offset 00 trn tt c cc phn t trong bng partition th xut hin thng bo li hoc dng qu trnh khi ng. 6. Boot code trong master boot record s np boot sector (sector u tin) ca partition active vo RAM ti a ch 0000:7C00h ng thi vi vic chuyn chnh

Chng 4: Qun l file v a

184

n i ni khc. 7. Quyn iu khin qu trnh khi ng tip theo c chuyn cho boot sector, boot sector thc hin ngay lnh nhy (JMP) ti offset u tin ca n, nhy n thc hin chng trnh bootstrap loader cui bootsector. 8. Bootstrap loader thc hin vic tm v np IO.SYS vo b nh, sau trao quyn iu khin qu trnh khi ng tip theo cho IO.SYS. Nu khng tm thy s xut hin thng bo li v/hoc dng qu trnh khi ng. Thng thng phn t u tin trong bng th mc gc cha thng tin ca tp tin IO.SYS. 9. IO.SYS thc hin ln lt vic tm vo np MSDOS.SYS, cc trnh iu khin thit b khai bo trong Config.sys (nu tm thy config.sys trn th mc gc ca a khi ng), phn thng trc ca Command.com, cc lnh khai bo trong Autoexec.bat (nu tm thy autoexec.bat trn th mc gc ca a khi ng). Bc ny cng c th xut hin li v dng qu trnh khi ng nu MSDOS.SYS v/hoc Command.com b xo hoc b li. Nu h iu hnh khng thnh cng trong vic np cc trnh iu khin thit b c khai bo trong config.sys th qu trnh khi ng cng b dng li, li ny l do mt hoc tt c cc trnh iu khin thit b ni trn b hng (thng do b nhim virus). iu ny cng ng vi cc lnh trong autoexec.bat. 10. Kt thc qu trnh khi ng bng vic xut hin du nhc h iu hnh ln mn hnh. i vi ngi s dng thng thng th vic chuyn t giai on khi ng my sang giai on np h iu hnh, c nh du bng thng bo: Starting MSDOS . trn mn hnh. Xt v mt bn cht th iu ny khng chnh xc. Ngi s dng c th b qua vic thc hin cc khai bo trong Config.sys v Autoexec.bat trong qu trnh khi ng bc 9, bng cch g phm F5 khi mn hnh va xut hin thng bo: Starting MSDOS . Ngi s dng cng c th ch nh thc hin hay khng thc hin mt khai bo no trong Config.sys v Autoexec.bat trong qu trnh khi ng bc 9, bng cch g phm F8 khi mn hnh va xut hin thng bo: Starting MSDOS . iu ny cng c th p dng trong qu trnh khi ng my tnh vi h iu hnh windows9x. Qua vic phn tch qu trnh khi ng my tnh trn ta c th bit c nguyn nhn v cch khc phc mt s li xy ra trong qu trnh khi ng my v np h iu hnh vo b nh RAM.

IV.7. T chc bng th mc gc ca Windows98


Trong phn ny chng ti ch trnh by v t chc ca bng th mc gc ca windows98 cc bn thy c cch t chc lu tr tn file di ca windows98 v s tng thch ca tn file di trong DOS v cc windows trc , m khng trnh by v cu trc ca h thng FAT32. V, FAT32 tng thch vi FAT16, ch c mt im khc nh cn ch y l: mi phn t trong FAT chim 2 byte, do theo l thuyt mi phn t c th cha trong n mt gi tr ln n 65536 (216) hay bng FAT c 65536 phn t, nh vy m windows98 qun l c mt khng gian a cng ln hn nhiu so vi h iu hnh

Chng 4: Qun l file v a

185

DOS. Cn nhiu khc bt na ca FAT32 so vi FAT12&FAT16 chng ti ch ra mc IV.3 trn. Phin bn windows95 th nht v cc phin bn trc u s dng h thng file ca h iu hnh DOS (tn file theo chun 8.3 vi FAT12 hoc FAT16), bt u t phin bn Windows95 th 2 n Windows98, h iu hnh windows s dng h thng tn file di vi FAT32, nh m n c th qun l c nhng partition c kch thc ln hn 2GB v nhng a cng ln hn 8GB. Trong phn ny chng ta s xem xt h thng file Windows98. Vi tn file di v FAT32 h iu hnh Windows mang li cho ngi s dng nhiu thun li hn so vi tn file 8.3 v FAT12/FAT16 ca h iu hnh DOS. Nhng quan trng hn, windows98 vn cho php truy xut n cc file c to ra t cc h iu hnh nh DOS, windows3.1, v phin bn windows95 th 1. V ngc li trong mi trng h iu hnh DOS h thng vn c th truy xut n cc file (k c cc file c tn file di) c to ra t Windows 98. Phi ni rng y l mt thnh cng ln ca h iu hnh windows98. Windows98 pht trin h thng tn file di v FAT32 da trn nn tng ca h iu hnh DOS v tng thch vi h iu hnh DOS nh vy m mt file do n to ra c th c truy xut trn c 2 h thng: Windows 98 v DOS. Sau y chng ta s xem xt k hn v iu ny. Windows 98 t chc cu trc ca bng th mc, hay chnh xc hn l cu trc ca mt phn t trong bng th mc gc, hon ton tng thch vi cu trc ca mt phn t trong bng th mc gc ca h iu hnh DOS. Nh vy bng th mc ca Windows 98 cng l mt danh sch gm nhiu phn t, mi phn t di 32 byte, nhng khng ging vi DOS (mi phn t cha thng tin v 1 file hay th mc ang lu tr trn th trong mc) y Windows 98 c th s dng nhiu phn t trong bng th mc cha thng tin v mt file ang lu tr trong th mc hay trn a. y l s khc bit ln gia cu trc bng th mc ca Windows98 v MS_DOS v cng chnh nh iu ny trong MS_DOS ta vn c th truy xut n cc file c to ra t Windows 98. Hnh v sau y l cu trc ca mt phn t trong bng th mc ca windows98. 8
Base name

3
Ext

1 1 1
N T

4
Creation Date/Time

2
Last acces

4
Last write Date/time

4
File size

Attributes

Sec

Upper 16bits of Starting block

Lower 16bits of Starting block

Hnh 4.13 Phn t th mc m rng ca MS-DOS s dng trong windows 98 iu ghi nhn u tin cu trc ny l 10 byte bt u ti offset 0Ch m h iu hnh DOS cha s dng nay c Windows98 s dng, Windows98 dng 10 byte ny to ra 5 trng mi: NT, Sec, Creation Date/Time (ngy gi to file/directory), Last Access (thi im file/directory c truy xut gn y nht) v Upper 16 btof Staring block (16 bt cao ca block u tin). Trng NT: tng thch vi WindowsNT, trong trng hp hin th tn file

Chng 4: Qun l file v a

186

ng nh khi to file ban u (ch dng vi windowsNT). Trng Sec: kt hp cng vi trng Creation Date/Time lu chnh xc thi in to ra file bao gm ngy gi v giy (chnh xc n 10msec). Trng Last access: lu tr thi gian truy cp n file cui cng trc . Trng Upper 16 btof Staring block kt hp cng vi trng Lower 16 btof Staring block (16 bt thp ca block u tin): lu s hiu ca block u tin trong dy cc block cha ni dung ca File tng ng. Ch : V windows98 s dng 32 bt(4 byte) nh danh cc cluster trn a nn trong entry phi c 4 byte cha gi tr (4 byte) ca cc cluster trn a. Trong trng hp ny windows98 s dng kt hp 2 trng 2 byte l Upper 16 btof Staring block ( cha 2 byte cao ca s hiu cluster bt u cha cc block file) v Lower 16 btof Staring block ( cha 2 byte thp ca s hiu cluster bt u cha cc block file). m bo s tng thch v tn file, c bit l nhng tn file di, trong c 2 h thng DOS v Windows98, Windows98 s dng hai tn file cho mt file: Mt tn file di tng thch vi Windows98 v WindowsNT v mt tn file theo chun 8.3 tng thch vi h iu hnh DOS, cc file c th c truy cp theo mt trong hai tn file ny. Nh vy khi mt file c to ra m tn file ca n khng tun theo chun t tn ca DOS th Windows98 s to thm mt tn file na theo chun v tn file ca h iu hnh DOS. Windows98 thc hin iu ny nh sau: Ly 6 k t u tin (khng k k t trng v nhng du chm ph) ca tn di, chuyn chng sang dng vit hoa (nu cn). Ni thm 2 k t ~1 vo sau 6 k t trn c c tn file theo chun ca h iu hnh DOS, nu tn file ny tn ti th windows98 s dng 2 k t ~2, v c nh th windows98 c th thm vo cc k t ~3, ~4, vv sao cho m bo tn file khng trng nhau trong cng mt th mc. V d: C 2 tn file di: Lap trinh huong doi tuong (file 1) Lap trinh huong thanh phan (file 2) Th windows98 to ra 2 tn file theo chun MS_DOS nh sau: LAPTRI~1 (file 1) LAPTRI~2 (file 2) lu tr thng tin v mt file c tn file di h iu hnh windows98 s dng cc entry lin tip nhau trong bng th mc, cc entry ny c b tr nh sau: Mt entry u tin dng lu tr tn file theo chun ca DOS v cc thng tin khc, cu trc ca entry ny hon ton tng t nh hnh trn. Mt hoc nhiu entry k tip sau lu tn file di, s lng cc entry ny ph thuc vo s k t ca tn file (mi entry cha c 13 k t Unicode= 26byte). V d: mt file c tn file gm 28 k t th windows98 s dng 4 entry: mt entry dng lu tn file theo chun MS_DOS, 3 entry cn li dng lu tn file di, trong 2 entry u cha 26 k t (13x2) u, entry cui cng cha 2 k t cn li ca tn file. Hnh 4.14 cho thy cu trc ca mt entry trong bng th mc gc ca windows98
Chng 4: Qun l file v a

187

dng cho tn file di:


Bytes

10
5 k t

1 1 1 0

12
6 k t

2
0

4
2 k t

Sequence

Attributes

Checksum

Hnh 4.14 Mt entry cho mt tn file di ca windows 98 Trng Sequence: chim 1 byte dng ghi th t ca cc entry cha tn file di, nu l entry cui cng th th t ny s c cng thm 64 n v nh u y l entry cui cng ca mt file, theo v d trn th trng Sequence ca cc entry ln lc l: 1, 2 v 67 (3+64). Trng Attributes: chim 1 byte, cha gi tr 0Fh, y l du hiu phn bit gia entry cha tn file theo chun DOS vi cc entry cha tn file di. H iu hnh DOS v cc tin ch v file ca DOS s b qua (khng nhn ra) cc entry ny. Trng Checksum: chim 1 byte, dng ghi nhn cc tnh hung sau: mt chng trnh Windows98 to ra mt file vi 1 tn di, my tnh c Reboot chy vi h iu hnh DOS hoc Windows 3, mt chng trnh c xa tn file DOS t th mc nhng khng xa tn file di ng trc n (v khng hiu v n), vv. Vi 1 byte cho checksum Windows 98 c th ghi nhn 256 tnh hung khc nhau, mi tnh hung tng ng vi mt m no . Hin nay chng ti cha c ti liu m t v y v checksum nn chng ti khng th trnh by nhiu hn na v checksum y. 10 byte sau trng Sequence, 12 byte sau trng Checksum v 4 byte cui cng dng lu tr 13 k t trong phn tn file di (v windows98 s dng m Unicode nn mi k t chim 2 byte). Ch : Theo h iu hnh DOS v windows3.1 th byte u tin ca mt entry trong bng th mc gc phi l mt trong cc ch ci hoc mt s k t c bit no , ch khng th l cc gi tr s. Nn DOS, windows3.1 v cc chng trnh trn n khng nhn ra cc entry ca tn file di theo kiu windows98 l iu tt nhin. Hnh v sau y minh ha cho vic lu tr tn file di trong bng th mc ca file c tn: Nguyen Le Tram Uyen Va Tram Thanh.
6 7 2 1 m m N g T U u h y y 1 a e e A 0 A 0 A 0 A N T S C K n C K n C K n Creation Time L Last Acc e Upp Last write T V a T h 0 0 0

r r Size

a a

N G U Y E N ~

Low

Hnh 4.15: Cc phn t trong bng th mc gc ca windows98 ca mt file


Chng 4: Qun l file v a

188

Theo hnh trn th, windows98 dng 4 entry lin tip nhau, t thp n cao, trong bng th mc gc lu tr tn file v cc thng tin lin quan ca file Nguyen Le Tram Uyen Va Tram Thanh: 1 entry theo kiu DOS lu tr tn file thu gn NGUYEN~1, v 3 entry nh s th t 1, 2, v 67 theo kiu windows98 lu ton b phn tn file di. Ch : V bng FAT qu ln nn windows98 khng np ht bng FAT vo b nh m ch np nhng phn t cn thit, cc phn t c s dng hin ti, nhng cc phn t ny lun thay i, do Windows 98 s dng mt ca s trn bng FAT phc v cho mc ch ny, theo ch cc phn t nm trong ca s mi c np vo b nh s dng ti thi im hin ti.

IV.8. T chc a ca Windows 2000


IV.8.1. Cc loi Partition
Windows 2000 gii thiu hai khi nim: Basic Disk v Dynamic Disk. Windows 2000 gi cc a c phn khu da vo s phn khu ca MS_DOS l cc basic disk. Basic l khi nim m windows 2000 k tha t MS_DOS, dynamic disk l mt khi nim mi ca n. Windows 2000 ci t thnh cng cc dynamic disk v n c nhiu c tnh ni tri hn so vi basic disk. S khc nhau c bn gia dynamic disk v basic disk l dynamic disk h tr cc multipartition volume. Windows 2000 qun l tt c cc a nh l basic disk tr khi ta to mt dynamic disk bng tay hoc chuyn mt basic disk ang tn ti thnh dynamic disk. khuyn kch ngi qun tr h thng s dng dynamic disk, Microsoft a ra mt vi gii hn s dng trn cc basic disk, nh: ch c th to cc multipartition volume mi trn cc dynamic disk, ch c th chuyn thnh dynmic disk trn cc volume NTFS. Mt bt li ca dynamic disk l nh dng m n s dng l c quyn v khng tng thch vi cc h iu hnh khc, bao gm c cc phin bn khc nhau ca Windows. V th ta khng th truy cp dynamic disk trong mi trng a boot (dual-boot environment). Basic Partitioning: Khi ci t Windows 2000, u tin n s yu cu ta to mt partition trn a vt l chnh (primary) ca h thng. Windows 2000 nh ngha mt system volume trn partition ny lu tr cc file m n c th gi trong qu trnh boot my. Windows 2000 cng yu cu ta to mt partition m n phc v nh l mt home cho boot volume, y l ni m chng trnh setup s ci t cc file h thng ca Windows 2000 v to ra mt th mc h thng \Winnt. System volume v boot volume c th nm trn cng mt volume. System volume l ni Windows 2000 lu tr cc file boot, bao gm cc file Ntldr v Ntdetect, cn boot volume l ni Windows 2000 lu tr cc file chnh ca h iu hnh nh l Ntoskrnl.exe v cc file li khc. Theo chun ca BIOS trn cc h thng x86, tt c cc h iu hnh u chn sector u tin ca a primary cha master boot record (MBR). Chng ta bit khi mt processor c boot th BIOS ca my tnh s c MBR v xem xt on m c kh nng thc hin ca MBR. BIOS s gi on m ca MBR khi to tin trnh boot h iu hnh sau khi POST my tnh. Cng nh cc h iu hnh ca Microsoft khc, MBR ca Windows 2000 cng cha mt bng partition. Bng ny cng c 4 mc vo, n dng cp pht cho 4 partition chnh trn mt a. Bng partition cng ghi li loi ca 189

Chng 4: Qun l file v a

partition l FAT32 hay NTFS.

Hnh 4.16: cc partition trn volume NTFS C mt loi partition c bit l extended partition, n cha mt MBR khc vi mt bng partition ring ca n. Bng cch s dng extended partition cc h iu hnh ca Microsoft ph b gii hn 4 partition trn mt a. Tin trnh boot l mt th hin u tin trong Windows 2000 to nn s khc bit r rt nht gia cc partition primary v extended. H thng phi to mt partition primary trn a primary l active. Trong qa trnh boot on m ca Windows 2000 trong MBR s np on m c lu tr ti sector u tin trong partition active (system volume) vo b nh v trao quyn iu khin cho on m ny. Windows 2000 ch nh sector u tin ca bt k partition no u l boot sector. Nh bit trc, trong Windows 2000 mi partition c nh dng vi mt h thng file th n c mt boot sector, l ni lu tr thng tin v cu trc ca h thng file trn partition . Dynamic Partitioning: Cc a ng c nh dng trong Windows 2000 v l cn thit to mi cc volume multipartition. H thng con Logical Disk Manager (LDM) trong Windows 2000 bao gm cc thnh phn trong user mode v device driver gim st cc a ng. C s d liu LDM thng tr trong khng gian dnh ring 1MB ti cui mi dynamic disk.

LDM

Mastor Boot Record

1MB c s d liu LDM

Hnh 4.17.a: T chc bn trong ca dynamic disk Khng gian a 1MB ny l cn thit trn cc basic disk v Windows 2000 cn c

Chng 4: Qun l file v a

190

khng gian trng ny khi ngi s dng cn chuyn mt basic disk thnh dynamic disk. Mc d d liu partition ca dynamic disk thng tr trong c s d liu LDM, LDM vn ci t mt bng partition lai MS_DOS tha k cc tin ch qun l a, bao gm c cc tin ch chy di Windows 2000 v di cc h iu hnh khc trong mi trng boot i (dual-boot). V cc partition LDM khng c m t trong bng partition loi MS_DOS nn n c gi l cc soft partition, cc partition loi MS_DOS c gi l cc hard partition. Mt nguyn nhn khc m LDM phi to cc bng partition loi MS_DOS l on m boot ca Windows 2000 c th tm trong cc system volume hoc boot volume, ngay c khi cc volume nm trn cc dynamic disk. Nu mt a cha cc volume system hoc boot, hard partition trong bng partition MS_DOS m t v tr ca cc partition ny. Mt khc, mt hard partition bt u ti cylinder u tin ca a v m rng n ni bt u ca c s d liu LDM. LDM nh du partition ny nh l LDM, mt partition loi MS_DOS kiu mi ca Windows 2000. Vng c bao quanh bi place-holding ny ca cc partition loi MS_DOS l ni LDM to cc soft partition m c s d liu LDM c t chc. Hnh 4.17.b sau y cho thy cc vng ca mt dynamic disk. C s d liu LDM gm c 4 vng: Mt sector header m LDM gi l Private Header. Mt bng ni dung ca vng (Table of Contens). Mt c s d liu cc bn ghi ca vng. V mt vng Tramsectional log.

1MB

Table of contens

Database record

Transtion log

Private Header

Database Record Header

Private Header Mirror

Hnh 4.17.b: C s d liu LDM Private Header sector v Private Header mirror: Cc thnh phn khc nhau trong Windows 2000 s dng mt gi tr 128 bt c gi l GUID: globally unique identifier, nh danh duy nht cc i tng. LDM gn cho mi dynamic disk mt GUID, v Private Header sector ghi GUID ca dynamic disk ln vng thng tr ca n, do Private Header c thit k nh l thng tin ring ca tng a. Private Header cng lu tr tn ca nhm a, l tn ca my tnh cng thm Dg0, v im bt u ca bn c s d liu ca ni dng. an ton LDM lu tr mt bn sao ca Private Header sector cui cng ca a l Private Header mirror. Table of contens chim 16 sector v cha thng tin v layout ca c s d liu. Database record header lu tr thng tin v database record area, bao gm 191

Chng 4: Qun l file v a

s cc record m n cha, tn v GUID ca nhm a v s th t nh danh m LDM s dng cho entry k tip m n to trong c s d liu. Cc sector sau database record header cha cc record c kch thc c nh 128 byte m n lu tr cc mc vo (entry) m t cc volume v cc partition ca nhm a. Mt mc vo c s d liu c th l mt trong 4 loi: Partition, Disk, Component v Volume. LDM s dng cc mc vo c s d liu nh danh 3 cp m t volume. LDM ni cc entry vi cc nh danh i tng bn trong. Ti cp thp nht, cc entry partition m t cc soft partition, cc nh danh c lu tr trong partition entry lin kt entry n mt mc vo componemt v disk. Mt entry disk trnh by mt dynamic disk, n l mt phn ca nhm a v bao gm GUID ca a. Mt entry componemt nh l mt kt ni gia mt hoc nhiu entry partition v entry volume m mi partition kt ni vi n. Mt entry volume lu tr mt GUID ca volume, tng kch thc v trng thi ca volume, v cc k t a gi . Cc entry ... Entry partition m t mt vng trn a m c h thng gn thnh mt volume, entry component ni entry partition vi entry volume, v entry volume cha GUID m Windows 2000 s dng nh danh volume. Cc volume multipartition yu cu nhiu hn 3 entry. V d mt striped volume bao gm t nht 2 entry partition: 1 entry component v 1 entry volume. Ch c mt loi volume c nhiu hn mt entry component l Mirror, mirror c 2 entry component, mi entry trnh by mt na (one-half) ca mirror. LDM s dng 2 entry component cho mt mirror v th khi bn break mt mirror, LDM c th split n ti cp component, to 2 volume m mi volume mt entry component. Bi v mt simple volume yu cu 3 entry v 1 MB c s d liu cha khong 8000 entry, do s volume m ta c th to trn h iu hnh Windows 2000 khong 2500. Vng cui cng ca c s d liu LDM transactional log area, gm mt vi secctor dng lu tr thng tin backup c s d liu, vi mc ch bo v c s d liu trong trng hp li crash hoc power.

IV.8.2. Cc loi volume Multipartition


Cc volume multipartition phc tp hn so vi cc volume simple, bi v n c to ra t cc phn vng khng lin tip nhau hoc trn cc a khc nhau. Trong windows 2000 c cc loi volume multipartiton sau y: Spanned volume: Mt spanned volume l mt volume logic n bao gm ti a 32 partition t do trn mt hoc nhiu a. Windows 2000 cho php kt hp nhiu partittion thnh mt spanned volume, v n c nh dng theo bt k h thng file no c windows 2000 h tr. Hnh sau y cho thy mt spanned volume 100Mb c nh danh bi k t a D, m n c to ra t 1/3 dung lng ca a th nht v 1/3 dung lng ca a tha 2. Trong h iu hnh windows NT 4 cc spanned volume c gi l volume sets.

Chng 4: Qun l file v a

192

Hnh 4.18.a: Spanned volume Nu spanned volume c nh dng theo h thng file NTFS, n c th c m rng bng cch cc thm vo vng t do hoc cc a t do m khng lm nh hng n d liu ang c lu tr trn volume. Kh nng m rng ny l mt li ch ln nht trong vic m t tt c d liu trn mt volume NTFS nh l mt file. NTFS c th tng kch thc ca mt volume logic mt cch ng, bi v trng thi cp pht ca volume c ghi li trong mt file khc, c gi l file bitmap. File bitmap c th c m rng bao gm bt k mt khng gian a no c thm vo volume. Trnh qun l volume n cu hnh vt l ca cc a t cc h thng file c ci t trn windows 2000. V d, NTFS xem volume D: trong hnh trn nh l mt volume 100Mb thng thng. NTFS tra cu bitmap ca n xc nh khng gian no trong volume l cn trng thc hin vic cp pht. Ri n s gi b phn qun l volume c hoc ghi d liu bt u ti offset byte lin quan trn volume. B phn qun l volume xem cc sector vt l trong cc spanned volume nh l c nh s th t t vng trng u tin trn a u tin n vng trng cui cng trn a cui cng. N xc nh sector vt l no trn a no tng ng vi byte offset c a ra. Striped volume: Mt striped volume l mt dy c th ln n 32 partition, mt partition trn mt a, cc partition khng cn phi tri di trn mt a m ch cn n c cng kch thc vi nhau. Striped volume cng c hiu nh l cc volume RAID cp 0 (RAID-0). Hnh sau y cho thy mt striped volume bao gm 3 partition, mi partition trn mt a.

Hnh 4.18.b: Striped volume i vi h thng file th striped volume ch l mt volume n 450Mb thng thng, nhng i vi b phn qun l volume th striped volume s gip ti u c thi gian lu tr v c li d liu trn n, bng cch phn tn d liu ca volume trn cc a vt l khc nhau ca cng volume. B phn qun l volume truy cp sector vt l trn cc a nh l n c nh s th t trong cc stripe xuyn qua cc a, nh c a ra hnh di y:
Chng 4: Qun l file v a

193

Hnh 4.18.c: nh s logic cc sector vt l trong mt striped volume Trong h thng striped volume, tt c d liu trn cc a ca n c th c truy xut ng thi, do thi gian cho cc thao tc vo/ra a c th c gim xung. iu ny c bit c li trn cc h thng cn nhiu thao tc np d liu t a. Mirrored volume: Trong mt mirrored volume ni dung ca mt partition trn mt a c nhn i (duplicate) trn mt partition c kch thc bng nhau trn mt a khc. Mirrored volume i khi c tham chiu nh l cc volume RAID-1. Hnh sau y cho thy mt mirrored volume.

Hnh 4.18.d: Mirrored volume Khi mt chng trnh ghi n a C:, b phn qun l volume s ghi cng d liu n cng v tr trn partition mirror. Nu d liu trn bt k mt partition C: no tr thnh khng th c c v l do phn cng hay phn mm, th b phn qun l volume s t ng truy cp n d liu t partition mirror. Mt mirrored volume c th c nh dng bi bt k h thng file no c h tr bi windows 2000. Mirrored volume c th gip ci thin thng lng np d liu trong cc h thng yu cu nhiu thi gian cho vic np d liu, cc h thng ny thng c gi l cc h thng ti nng (heavily load). Khi hot ng vo/ra tng cao, b phn qun l volume s cn bng ti bng cch cho thc hin thao tc c trn c partition chnh v partition mirror, nh vy m thi gian c c th gim c mt na. Khi mt file b thay i th s thay i ny s c cp nht trn c partition chnh v partition mirror. Mirrored volume l loi multipartition volume ch c h tr cho cc cc volume boot v system. RAID-5 volume: RAID-5 volume l mt trng hp chu li ca striped volume. RAID-5 volume ci t RAID cp 5. N cng c hiu nh l striped volume vi parity (kim tra li chn l), bi v n da trn cch tip cn stripe c to nn bi striped

Chng 4: Qun l file v a

194

volume. Kh nng chu li trong trng hp ny c c bng cch d tr mt phn tng ng trn a lu tr parity cho mi stripe. Hnh sau y trnh mt cch nhn trc quan v RAID-5 volume.

Hnh 4.19.e: RAID-5 volume Trong hnh trn, parity cho stripe 1 c lu tr trn a 1. N cha tng ca php logic XOR ca cc byte ca stripe u tin trn a 2 v 3. Parity cho stripe 2 c lu tr trn a 2, v parity cho stripe 3 c lu tr trn a 3. S xoay vng parity xuyn qua cc a theo cch ny l mt k thut ti u vo ra. Mi khi d liu c ghi n mt a, cc byte parity tng ng vi cc byte b thay i phi c tnh ton li v ghi vo li. Nu parity lun ghi n cng mt a. a tr thnh bn lin tc v c th tr thnh mt hin tng tht c chai trong I/O. Khi phc mt li a trong RAID-5 volume da vo mt nguyn l c bn nh sau: trong mt biu thc c n bin, nu ta bit c gi tr ca n-1 bin, ta c th xc nh gi tr ca bin cn li bng php tr. V d, trong biu thc x + y = z, y l parity stripe, b phn qun l volume tnh z y xc nh ni dung ca x, v tnh z x xc nh ni dung ca y. B phn qun l volume s dng s logic tng t trn khi phc d liu b mt. Nu mt a trong RAID-5 volume li hoc d liu trn mt a tr thnh khng th c c, th b phn qun l volume s tm li d liu mt bng cch s dng thao tc XOR. Nu a 1 trong hnh trn li th ni dung stripe 2 v 5 ca n c tnh ton li bng cch XOR cc stripe tng ng ca a 3 vi cc stripe parity trn a 2. Ni dung ca cc stripe 3 v 6 trn a 1 c xc nh tng t bng cch XOR cc stripe tng ng ca a 2 vi cc stripe parity trn a 3.

IV.9. Qun l lu tr file trn a ca WindowsNT/2000


IV.9.1. Mt s chc nng c h tr bi NTFS ca windows 2000
H thng NTFS c thit k bao gm nhng tnh nng c yu cu mt h thng file chuyn nghip. gim ti a vic mt d liu do h thng b ngng t ngt hoc b ph hng, h thng file phi m bo metadata ca h thng phi lun trng thi nguyn vn. bo v d liu trnh nhng truy xut bt hp l, h thng file phi c cc m hnh bo mt thch hp. Cui cng, mt h thng file phi tnh n vic d tha d

Chng 4: Qun l file v a

195

liu, v cho php ngn chn d tha d liu da trn phn mm, y l mt gii php mang li hiu qu v mt kinh t hn so vi cc gii php phn cng. Vi nhng mc tiu trn, NTFS cung cp cho ngi s dng v chng trnh ca ngi s dng nhng tnh nng cao cp: Tn da trn m Unicode; Ch mc chung; nh x ng cc Bad cluster; Nn v gii nn File; Cp hn ngch a; Chng phn mnh; M ho cc File; vv. Sau y chng ta s xem xt mt vi tnh nng trong s : Ch mc chung: Kin trc NTFS c cu trc cho php ch mc cc thuc tnh ca file trn volume a. Cu trc ny cho php h thng file tm kim cc file trn a mt cch hiu qu da trn cc iu kin kt hp. H thng file FAT ch ch mc theo tn file v khng c s sp xp trong nn hiu qu ca vic tm kim file trong cc th mc ln s rt thp. nh x t ng cc Bad Cluster: Thng thng nu mt chng trnh c gng c d liu t mt sector hng trn a, th vic c s tht bi v d liu trn cluster c nh v s tr thnh khng th truy cp c. Nhng nu volume c ci t h thng NTFS c kh nng sa li th trnh iu khin li ca windows 2000 s t ng tm mt bn sao d liu tt ca d liu ti sector hng v bo cho NTFS bit l sector b hng. NTFS s cp mt cluster mi thay cho cluster cha sector hng v sao chp d liu vo sector mi . V sector ny s c ch bo khng c s dng na. Nn file: NTFS h tr vic nn d liu cc tp tin. Bi v NTFS thc hin vic nn v gi nn mt cc trong sut, nn cc ng dng khng cn thay i c c nhng thun li t tnh nng ny. Cc th mc cng c th c nn, tc l tt c cc file c to ra trong th mc cng u c nn. Cp hn ngch (Quotas) a cho ngi s dng: Ngi qun tr h thng thng mun theo di hoc gii hn khng gian lu tr trn volume m h chia s cho ngi s dng, v th NTFS cung cp cc cng c qun l hn ngch h thc hin iu ny. Vi cng c qun l hn ngch, NTFS cho php ch nh khng gian a m ni ngi s dng c php s dng v thng bo cho ngi s dng bit khng gian a cn li m h c php s dng lu tr, mt cch tc thi.

IV.9.2. Cu trc ca MFT


Trong h thng file NTFS, tt c d liu lu tr trn volume u c cha trong cc tp tin, bao gm cu trc d liu c dng nh v v c li cc file, d liu ca bootstrap, v bitmap m n dng ghi li trng thi cp pht ca tt c cc block (cluster) trn volume (gi l metadata NTFS). Vic lu tr mi d liu trong cc tp tin cho php h thng file d dng tm kim v bo tr d liu, v mi tp tin ring c th c bo v bi mt m t an ton d liu ring. MFT (Master File Table) l trung tm trong cu trc ca cc volume NTFS. Windows 2000 s dng MFT qun l vic lu tr cc file v th mc trn mt volume. MFT bao gm mt dy cc record (cn gi l record file hay entry), c kch thc c nh l 1Kb. Mi record trong MFT dng m t v mt file hoc th mc trn volume, k c record ca chnh n. N cha nhng thuc tnh ca file, nh tn file, timestamps (cc c trng v thi gian to v thay i tp tin), v danh sch a ch a (cluster) ni lu tr cc block ca file. Nu kch thc file qu ln h iu hnh cn phi

Chng 4: Qun l file v a

196

s dng 2, hoc nhiu hn mt record MFT lu danh sch a ch tt c cc block a cha file trn volume. Trong trng hp ny, record MFT u tin ca file c gi l record c s, n tr n cc record MFT m rng khc. H thng file ca Windows 2000 s dng mt bitmap theo di cc ton b MFT cn trng. S lng record ca MFT c th tng ln khi cn v c th tng n 248 record v bn thn MFT l mt file, n nh c th uc xut hin mi ni trong volume. Hnh sau cho thy mt on u tin ca MFT ca mt volume.

16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Cc file v th mc u tin ca ngi s dng Unused Unused Unused Unused $Extend: Extentions: quotas, ... $Upcase: Case conversion table $Secure: Security descriptor for all files $BadClus: List of bad of block $Boot: Bootstrap Loader $Bitmap: Bitmap of blocks used

Metadata File

\
$AttrDef $Volume $ LogFile $MftMirr $MFT

Root directory Attribute definitions Volume file Log file to recovery Mirror copy of MFT Master File Table

Hnh 4.6: Cc record u tin trong MFT Mi record MFT bao gm mt tp cc cp (attribute header, value). Mi thuc tnh thng biu din bi phn bt u ca gi tr thuc tnh, hoc l tt c, v gi tr ny c chiu di thay i. Nu gi tr thuc tnh ngn th n s c lu record MFT, ngc li nu n qu di th s c lu mt ni khc trn a v ti record c mt con tr tr n a ch ny. Mi su record u tin ca MFT c dnh ring cho cc file metadata NTFS. Mi mt record m t 1 file c thuc tnh v cc block d liu, ging nh cc file khc. Tn cc file metadata ny c bt u bi du $: Record u tin (tn l $MFT) m t chnh bn thn MFT. c bit, n ch ra a ch block, ni lu tr bng file (MFT), v th h thng c th d dng tm thy file MFT. R rng, Window 2000 cn phi c c ch tm thy block u tin ca file MFT tm n thng tin cn li ca h thng file. C ch trn s tm n
Chng 4: Qun l file v a

197

block khi ng, ni m a ch ca n c ci t lc ci t h thng. Record 1 (tn l $MftMirr) ch n mt bn sao ca phn u tin ca file MFT. Thng tin ny l rt quan trng v vy phi c 1 bn sao khc khc phc vic nhng block u tin ca file MFT thng b bad. Record 2 (tn l $LogFile) ch n mt log-file. Khi thm vo volume 1 th mc mi hay khi xo khi volume 1 th mc th h thng s ghi li s thay i ny vo log file trc khi thc hin. S thay i v thuc tnh ca cc file cng c ghi li log file. S thay i v d liu ca ngi s dng khng c ghi y. Record 3 (tn l $volume) ch n file cha nhng thng tin v volume nh kch thc volume, nhn ca volume v version ca n. Nh vp trn, mi record MFT cha dy cc cp: thuc tnh header, gi tr. File Attribute cha mt bng nh ngha thuc tnh, n nh ngha cc loi thuc tnh c h tr bi windows 2000 trn volume. Thng tin ca file ny c ch bi record 4 (tn l $Attr Def) ca MFT. K tip l th mc gc, n l 1 file v c kch thc tng tu . N c m t trong record 5 (tn l \) ca MFT. Entry ny c d tr cho th mc gc. N l mt file cha mt ch mc ca cc file v th mc c lu tr trong phn gc ca cu trc th mc NTFS. Khi NTFS c yu cu m mt file, th n bt u tm kim trong file ca th mc gc. Sau qu trnh m file, NTFS lu tr s tham chiu MFT ca file n c th truy cp trc tip record MFT ca file khi n c hoc ghi file sau . Khng gian trng trn volume c theo di bi 1 bitmap. Bitmap ny l mt file. a ch a ca file bipmap ny c ghi record 6 (tn l $bitmap) ca MFT. Record 7 ch n file Bootstrap (c tn l $Boot): File ny cha m bootstrap ca windows 2000. h thng boot c, m bootstrap phi c np vo mt v tr c bit trn a. Trong qu trnh format a h iu hnh nh ngha vng ny nh l mt byte bng cch to ra mt file record cho n. File boot cng nh cc file metadata NTFS, cng c th c bo v ring bng cc cng c ca m t bo mt m n c p dng cho tt c cc i tng windows 2000. Record 8 (c tn l $BadClus) ch n mt file, file ny c dng lu tr danh sch lin kt cc block (cluster) b bad trn volume. Record 9 (tn file l $Secure): ch n file cha thng tin bo mt, file ny lu tr c s d liu v cc m t bo mt trn ton b volume. Cc file v th mc NTFS c th c mt thit lp m t bo mt ring, nhng NTFS lu tr cc thit lp ny trong mt file chung, n cho php cc file v cc th mc c cng thit lp bo mt tham chiu n cng mt m t bo mt. Trong nhiu mi trng, ton b cy th mc c cng mt thit lp bo mt, nn c ch ny mang li nhiu thun li trong vic tit kim khng gian lu tr cc m t bo mt. Record 10 (tn l $Upcase): ch n file case mapping, file ny cha bng

Chng 4: Qun l file v a

198

chuyn i gia k t thng v k t hoa. Cui cng, record 11 (tn l $Extend) ch n th mc, th mc ny cha cc file hn hp nh: hn ngch a (Quotas), cc nh danh i tng (Object identifier), ... 4 record MFT cui cng d tr cho vic s dng sau ny. Khi ln u tin truy cp volume, NTFS phi Mount n, tc l c metadata t a v xy dng cu trc d liu bn trong n c th x l cc truy cp t cc ng dng. mount volume, NTFS tm trong boot sector a ch vt l ca MFT. Theo trn, record file ring ca MFT l entry u tin trong MFT, record file th hai tr n mt file c nh v vng gia a, l MFT mirror (tn l $MftMir). Khi NTFS tm thy record file ca MFT, n ly c nhng thng tin nh x t VNC-to-LCN trong thuc tnh data v lu vo b nh chun b cho cc qu trnh ghi/c file sau ny. Cc Record File H thng file NTFS lu tr cc file nh l mt tp cc cp thuc tnh/gi tr (attribute/value), mt trong s l d liu n cha (c gi l thuc tnh d liu khng tn). Cc thuc tnh ca mt file bao gm tn file, thng tin time stamp v c th l cc thuc tnh c tn c thm vo. Hnh 4.19.a sau y cho thy mt record MFT cho mt file nh: c 3 thuc tnh: Standard Information (thng tin chun), Filename (tn file) v Data (d liu). Mi thuc tnh file c lu tr nh l mt dng tch bit ca cc byte trong phm vi file. Ni cch khc NTFS khng c ghi cc file m n ch c ghi cc dng thuc tnh. NTFS cung cp cc thao tc thuc tnh nh: create, delete, read (byte range), write (byte range). Cc dch v ghi c thng thao tc trn cc thuc tnh d liu khng t tn. Tuy nhin, mt li gi c th ch ra mt thuc tnh d liu khc bng cch s dng c php dng d liu c t tn. Standard Information Filename Data

Hnh 4.19.a: Mt record MFT cho mt file nh, c 3 thuc tnh C NTFS v FAT u cho php mi tn file trong ng dn c th di n 255 k t, trong c c cc k t unicode v cc du phn cch khc. tng thch vi cc ng dng 16 bt ca DOS, khi c file vi tn file di c to ra th windows 2000 s t ng sinh ra mt tn file theo kiu ca DOS (tn file 8.3). Tn theo kiu DOS c lu tr trong cng mt record trong MFT vi tn file NTFS (tn file di), v th n tham chiu n cng mt file.

Chng 4: Qun l file v a

199

Hnh 4.19.b: Mt record MFT c cha tn MS_DOS Windows 2000 to ra tn file theo kiu DOS t tn file di tng t nh cch m h iu hnh windows98 lm. Tn MS_DOS c dng ghi, c, copy mt file. Thuc tnh thng tr v thuc tnh khng thng tr Vi cc file c kch thc nh th tt c thuc tnh v gi tr ca n c cha trong mt record trong MFT. Khi gi tr ca thuc tnh c lu trc tip trong MFT th thuc tnh c gi l thuc tnh thng tr. Thuc tnh thng tin chun v thuc tnh ch mc gc thng c nh ngha l thuc tnh thng tr.

Hnh 4.20.a: Header v value ca thuc tnh thng tr Mi thuc tnh u bt u vi mt header, header ny cha thng tin v thuc tnh, l thng tin m NTFS dng qun l thuc tnh. Header cho bit cc thng tin lin quan n gi tr ca n nh l c phi l thng tr (RESIDENT) hay khng, offset t header n gi tr ca thuc tnh, di (length) gi tr ca thuc tnh, vv. Hnh 4.20.b sau y cho thy thuc tnh filemane gm c header l RESIDENT + Offset:8h + Length:14h v value l MYFILE.DAT. Khi gi tr ca thuc tnh c lu tr trong record MFT th thi gian c ni dung ca mt file ca NTFS s c gim xung, v n khng phi tm danh sch cc cluster cha ni dung ca file da vo vic phn tch bng FAT nh trong cc h thng file FAT, m ch cn c ngay gi tr ti cc cluster trn a cha ni dung ca file, danh sch cc cluster nay c ghi phn gi tr ca thuc tnh. Thuc tnh cho cc th mc nh cng ging nh thuc tnh ca cc file nh, n c th thng tr trong MFT. Hnh sau y l mt record MFT cho th mc nh:

Chng 4: Qun l file v a

200

Hnh 4.20.b: Mt record MFT cho th mc nh Trong thuc tnh Index root cha mt ch mc ca cc tham chiu n cc file v cc th mc con trong th mc. Trong thc t ni dung ca mt th mc, gm cc file v cc th mc con trong n, khng th nn thnh mt record MFT c kch thc c nh 1MB. Nu mt thuc tnh c bit, thuc tnh d liu ca file chng hn, l qu ln cha ht trong mt record MFT th NTFS s cp pht cc cluster ring cho d liu ca thuc tnh t MFT. Vng ny c gi l Run (hay l phm vi). Nu gi tr ca thuc tnh sau pht trin, ni dung ca file tng ln chng hn, th NTFS s nh v mt Run khc cho d liu c thm vo. Cc thuc tnh m gi tr ca n c lu tr trong cc Run ch khng phi trong cc record MFT c gi l cc thuc tnh khng thng tr. H thng file s quyt nh c hay khng mt thuc tnh c th l thng tr hay khng thng tr. Khi mt thuc tnh l khng thng tr th header ca n s cha cc thng tin m NTFS cn tm n gi tr ca thuc tnh trn a. Hnh sau y cho thy thuc tnh d liu khng thng tr c lu tr trong 2 Run.

Hnh 4.20.c: Record cho mt file ln vi 2 Run Trong s cc thuc tnh chun (standard attribute), ch c cc thuc tnh c th tng ln l c th tr thnh khng thng tr. Cc thuc tnh thng tin chun v tn file lun lun l thng tr.

Hnh 4.20.d: Record MFT cho th mc ln vi ch mc filename khng thng tr

Chng 4: Qun l file v a

201

Mt th mc ln c th c cc thuc tnh khng thng tr. Chng ta hy xem hnh say y, ta thy record MFT khng ch lu tr ht Index ca cc file cha trong mt th mc ln. Mt phn ca Index c lu tr trong thuc tnh Index Root, phn cn li c lu trong cc Run khng thng tr c gi l vng m ch mc (Index Buffer). NTFS theo di cc Run bng cc cp nh x VCN-to-LCN. Cc LCN nh s th t ca cc cluster trn ton volume t 0 n n. Cc VCN nh s cc cluster ring cho tng file t 0 n m. Xem hnh 4.20.e sau y:

Hnh 4.20.e: Cc VCN cho thuc tnh d liu khng thng tr Nu file ny c nhiu hn 2 Run th Run th 3 s bt u vi VCN 8. Xem hnh sau y, header ca thuc tnh d liu cha cc nh x VCN-to-LCN cho 2 Run y, n cho php NTFS d dng tm n cc nh v cp pht trn a.

Hnh 4.20.f: Cc nh x VCN-to-LCN cho thuc tnh d liu khng thng tr. Hnh 4.20.f ch ra cc Run d liu, cc thuc tnh khc c th lu tr trong cc Run nu record trong MFT khng ch cha chng v nu mt file no c qu nhiu thuc tnh dn n khng cha trong mt record th mt record th 2 trong MFT c s dng cha cc thuc tnh thm vo. Trong trng hp ny mt thuc tnh c gi l danh sch thuc tnh (attribute list) s c thm vo. Thuc tnh attribute list cha tn v m loi cho mi thuc tnh ca file v file tham chiu ca record MFT, l ni thuc tnh c np. Thuc tnh attribute list c cung cp cho cc trng hp: kch thc file tng ln hoc file b phn mnh, dn n mt record MFT n khng th cha

Chng 4: Qun l file v a

202

ht cc nh x VCN-to-LCN cn thit tm tt c cc Run ca n. Tm li trong mt record MFT c th c cc trng sau: Trng u tin ca mt record MFT l record header, theo sau l cc cp header v value ca cc thuc tnh. Record header cha 1 m s s dng kim tra tnh hp l, s k tip c cp nht mi khi record c s dng li cho file mi, cc tham chiu n file, s byte hin ti trong record c s dng, nhn dng (ch s, dy s lin tip) ca record c s (ch s dng cho record m rng), v 1 s trng khc. Sau record header l header ca thuc tnh th nht v gi tr ca thuc tnh th nht, header ca thuc tnh th hai v gi tr ca thuc tnh th hai,... NTFS nh ngha 13 thuc tnh c th xut hin cc record MFT. Chng c lit k bng sau y. Mi record MFT bao gm 1 dy cc header thuc tnh, chng c ng nht vi phn u ca thuc tnh v cho bit di v v tr ca trng gi tr cng vi trng thi c v mt s thng tin khc. Thng thng, gi tr thuc tnh nm ngay sau cc header ca chng, nhng nu gi tr ny qu di t trong 1 record MFT, th chng c t vo 1 block a tch ri. Thuc tnh nh vy c gi l thuc tnh khng thng tr. Mt vi thuc tnh nh l tn, c th c lp li, nhng tt c cc thuc tnh phi c t trong 1 hng c nh trong recorrd MFT. Cc header cho thuc tnh thng tr c di 24 byte; i vi nhng thuc tnh khng lu tr l di hn v chng lu thm nhng thng tin tm thuc tnh trn a. Thuc tnh M t Standard information Cc btc, timestamp,... File name Tn file trong Unicode: c th lp li i vi tn DOS Security descriptor li thi. Thng tin bo mt trong $extend$Secure Attribute list V tr ca cc MFT record thm vo nu cn Object ID 64-bit, file c nhn bit l duy nht trn volume Reparse point Dng cho cc lin kt tng dn v tng trng Volume name Tn ca volume ny (ch s dng trong $Volume) Volume information Phin bn ca Volume (ch s dng trong $Volume) Index root c s dng cho cc th mc Index allocation c s dng cho cc th mc rt ln Bitmap c s dng cho cc th mc rt ln Logged utility stream iu khin kt ni n $LogFile Data D liu lung; c th lp li nhiu ln Bng 4.7: Cc thuc tnh s dng trong record MFT Trng thng tin chun (Standard Information) ca file bao gm: thng tin bo mt, timestamp, cc lin kt c nh, bt ch c v btlu tr, vv. N l trng c kch thc c nh v lun hin hu. Trng tn file (File Name) l mt chui m Unicode c di thay i c. to cc file vi cc tn khng phi l tn MS-DOS gn vi cc ng dng 16btc, cc file cng c th c tn 8+3 ca MS-DOS. Nu tn file thc s tun theo quy tc t tn 8+3 ca MS-DOS, th tn file MS_DOS ph s khng c s dng. 203

Chng 4: Qun l file v a

Trong NT 4.0, thng tin bo mt (Security) c th a vo mt thuc tnh nhng trong Windows 2000 tt c c a vo mt file ring, v th nhiu file c th chia s mt phn bo mt. Danh sch thuc tnh (Attribute List) l cn thit nu thuc tnh khng t trong record MFT. Thuc tnh ny l tm ra cc record m rng. Mi mc vo ca dy thuc tnh cha mt ch s 48-bttrong MFT gi l record m rng v mt dy s 16btcho php kim tra s ph hp ca record m rng v record c s. Thuc tnh nh danh i tng ID (Object Identifer) ca i tng lm cho tn file l duy nht. Trng peparse point gi l cc th tc phn tch tn file thc hin mt thao tc c bit no . K thut ny c s dng trong ci t v lin kt biu tng. Hai thuc tnh volume (Volume Name v Volume Information) ch s dng xc nh volume. Ba thuc tnh tip theo (Index Root, Index Allocation v Bitmap) c s dng cho vic ci t cc th mc. Thuc tnh Logged utility stream c s dng bi h thng file m ho. Cui cng, l thuc tnh d liu. Mt dy tn file nm trong thuc tnh heard. Tip theo header l mt danh sch cc a ch a m chng c gi l block cha file, hay ch cho cc file vi trm byte ca ring n. Trong thc t, t d liu file vo record MFT c gi l file trc tip. Phn ln th d liu khng t MFT record, v vy thuc tnh ny thng khng thng tr.

IV.9.3. Qun l danh sch cc block cha File trn a


Trong Windows 2000 vi NTFS th ni dung ca mt File cn lu tr trn volume cng c chia thnh cc block (tng ng vi mt block hay cluster trn a), cc block file cn c gi l cc block logic. Cc block file c th c lu ti mt hoc nhiu on block khng lin tip nhau trn a, mt on block bao gm n block lin tip nhau (n = 2, 3, 4, ...), mt on block trong trng hp ny c gi l mt Run. V d file A c lu tr trn 7 block lin tip: t block 10 n block 16 v file B c lu tr trn 35 block: t block 30 n block 44 v t block 41 n block 60. Nh vy file A c lu tr trn mt on block (Run #1) cn file B c lu tr trn hai on block (Run #1 v Run #2). Thng thng, nu block logic u tin ca mt file ghi block 20 trn a th block logic 2 c ghi vo block 21 trn a v block logic th 3 c ghi vo block 22 trn a, vv. Vi cch lu tr ny h iu hnh c th ghi nhiu blok logic vo cc block a cng mt lc nu c th. y l mt u im ca Windows 2000. Danh sch cc block a cha ni dng ca mt file c m t bi mt record trong MFT (i vi file nh) hoc bi mt dy tun t cc record trong MFT, c th khng lin tip nhau (i vi file ln). Mi record MFT dng m t mt dy tun t cc block logic k nhau. Mi record MFT trong trng hp ny bt u vi mt header lu a ch offset ca block u tin trong file. Tip n l a ch offset ca block u tin m khng nm trong record. V d nu c mt file c lu ti 2 on block l: 0 49 v 60 79 th record u tin c mt header ca (0, 50) v s cung cp a ch a cho

Chng 4: Qun l file v a

204

50 block ny v record 2 s c mt header ca (60, 80) v s cung cp a ch a cho 20 block . Tip sau mi record header l mt hay nhiu cp, mi cp lu mt a ch ca block a bt u on block v s block c trong on ( di ca mt Run). Hnh sau y l mt record MFT cha thng tin ca mt file. Infor about data blocks
Standard
File Name

Infor Header

Header
Standard Infor

Data Header
File Name

(thng tin v cc block d liu) Header Run #1 Run#2 Run#3 0 9 20 4 64 2 80 3


Unused

Record Header

Cc block a 20-23 64-65 80-82

Hnh 4.21: Mt record MFT cho 1 file c 3 run, gm 9 block Hnh 4.21 l mt record MFT cho mt file ngn (ngn y c ngha l tt c cc thng tin v cc block ca file cha va trong mt record MFT). File ny gm 9 block, n cha 3 Run: Run #1 gm 4 block t 20 n 23, Run #2 gm 2 block t 64 n 65 v Run #3 gm 3 block t 80 n 82. Mi Run c ghi vo record MFT theo tng cp (a ch block a, tng s block). Cn ch rng khng c gii hn trn cho kch thc ca cc file c trnh by theo cch ny. Trong trng hp thiu a ch nn, mi cp cn c 2 s 64-bt trong tng s 16 byte. Tuy nhin mt cp c th tng trng cho mt triu hoc hn na cc block a lin tip. Trn thc t, mt file 20 Mb bao gm 20 Run ca 1 triu block 1 Kb, mi Run c t trong mt record MFT. Khi lu tr mt file c kch thc ln (s lng block ln) hoc thng tin ca file c s phn mnh ln th cc lu tr cc block ca n trong MFT c trnh by nh trong hnh sau: Trong hnh sau ta thy record c s ca file nm record MFT 102. N c qu nhiu Run trn mt record MFT, v th h thng cn phi c nhiu record m rng, y l thm 2 record m rng, v t chng vo record c s. Phn cn li ca record c s c s dng cho k Run u tin. Khi tt c cc byte trong record 102 c dng ht, th cc run c tch ly s tip tc vi record MFT 105. Khi nhiu run c sp xp vo ht trong record ny hay khi record ny y th phn run cn li s vo record MFT 108. Theo cch ny, nhiu record MFT c th c dng qun l cc file ln khc .

Chng 4: Qun l file v a

205

109 108 107 106 105 104 103 102 101

Run n+1

...

Run#m

Record m rng 2

Run #k+1

...

Run #n

Record m rng 1

MFT 105

MFT108 Run#1 ...

Run #k

Record c s

Hnh 4.22: Cc record MFT ca mt file ln Mt vn ny sinh l nu cn qu nhiu record MFT th s khng ch trong MFT c s lit k tt c cc ch mc ca chng. C mt gii php cho vn ny l thc hin khng lu danh sch phn ui m rng ca cc record MFT (chng hn, c lu tr trn a thay v trn bn ghi MFT c s). Lc , kch thc ca file c th pht trin ln n mt mc cn thit.

IV.10. Mt s k thut c h tr bi h thng file NTFS


IV.10.1. Lp bng ch mc
Trong h thng file NTFS, mt danh mc file l mt ch mc n ca cc tn file, l mt tp cc tn file (cng vi cc tham chiu file ca chng) c t chc theo mt cch c bit tng tc truy xut file. to mt danh mc, NTFS lp ch mc cho thuc tnh filename ca cc file trong th mc. Mt record cho th mc gc ca volume c a ra hnh 4.23 sau y.

Hnh 4.23: Ch mc tn file cho th mc gc ca volume Mt emtry MFT cho mt th mc cha trong thuc tnh index root ca n mt danh sch c sp xp ca cc file trong th mc. i vi cc th mc ln, tn file thc t c lu tr trong cc vng m ch mc (index buffer) c kch thc c nh l 4Kb, index buffer ny cha v t chc cc tn file. Index buffer ci t cu trc d liu cy b+, nh m cc tiu c s ln truy cp trc tip a cn thit tm n mt file, c

Chng 4: Qun l file v a

206

bit l i vi cc th mc ln. Thuc tnh Index root cha cp u tin ca cy b+ v tr n Index buffer cha cp tip theo. Hnh 4.23 trnh by cc tn file trong thuc tnh index root v index buffer (file5), nhng mi entry trong index cng cha tham chiu file trong MFT, ni cha cc thng tin m t, kch thc, timestamp ca file. NTFS nhn i thng tin v timestamp v kch thc file t record MFT ca file. K thut ny c s dng bi FAT v NFTS, yu cu c cp nht thng tin ghi vo c hai ni. Do , n tng tc ng k cho cc thao tc duyt th mc v n cho php h thng file hin th timestamp v kch thc file ca mi file m khng cn m mi file trong th mc. Thuc tnh index allocation nh x cc VCN ca c Run index buffer m n ch bo ni index buffer thng tr trn a. Thuc tnh bitmap theo di cc VCN trong index buffer l ang c s dng hay ang ri. Hnh trn cho thy mt entry file trn VCN, nhng cc entry filename thc t c ng gi trong mi cluster. Mt index buffer 4Kb c th cha t 20 n 30 entry filename. Cu trc d liu cy b+ l mt kiu cy cn bng, n l tng cho vic t chc sp xp d liu c lu tr trn a bi v n cc tiu s ln truy cp a cn thit tm n mt entry. Trong MFT, mt thuc tnh index root ca th mc cha nhiu filename m n ng vai tr nh l cc ch mc vo cp th hai ca cy b+. Mi filename trong thuc tnh index root c mt con tr ty chn c kt hp vi n ch n index buffer. Index buffer m n ch n cha cc filename vi gi tr (v mt t in) t hn s hu ca n. Trong hnh trn, file4 l entry cp u tin trong cy b+, n ch n mt index buffer cha cc filename m t hn chnh n, l c filename file0, file1, v file3. Lu tr tn file trong cy b+ mang li nhiu thun li. Vic tm kim th mc s nhanh hn v filename c lu tr theo th t c sp xp. V khi mt phn mm cp cao m cc file trong th mc, NTFS s tr li tn file va c sp xp. NTFS cng cung cp s h tr cho ch mc d liu bn cnh filename. Mt file c th c mt i tng ID c gn cho n, ID ca file c lu tr trong thuc tnh $OBJECT_ID ca file. NTFS cung cp mt API cho php cc ng dng m file bng cc i tng ID ca file thay v dng tn file ca n. Do , NTFS phi to ra mt tin trnh chuyn i mt i tng ID thnh s file ca file mt cch hiu qu. thc hin c iu ny NTFS lu tr mt nh x ca tt c cc i tng ID ca volume thnh s tham chiu file ca chng trong mt file metadata \$Extend\$ObjID. NTFS sp xp cc i tng ID trong file ni trn nh ch mc filename m ta d cp trn. Ch mc i tng ID c lu tr nh l cy b+.

IV.10.2. nh x bad-cluster
Cc thnh phn qu l a logic trong windows 2000 nh FDISK (i vi basic disk) v LDM (i vi cc dynamics disk), c th khi phc d liu ti cc bad-sector trn cc a c kh nng chu li (fault tolearant disk), vi iu kin a phi s dng chun SCSI v cn cc sector trng trn a. Cc volume chu li l cc volume thuc loi Mirrored v RAD-5. H thng file FAT v thnh phn qun l a logic ca n khng th c d liu t cc bad-sector cng nh khng th pht sinh thng bo khi ng dng c d liu ti bad-sector.

Chng 4: Qun l file v a

207

NTFS thay th mt cch t ng cc cluster cha bad-sector v theo di badcluster v th n khng c s dng li sau ny. Khi b phn qun l volume tr v cnh bo bad-sector hoc khi b iu khin a cng tr v li bad-sector, NTFS s tm mt cluster mi thay th cluster cha bad-sector. NTFS copy d liu m b phn qun l volume khi phc c vo cluster mi thit lp li s d tha d liu. Hnh 4.24.a cho thy mt record MFT cho mt file ca ngi s dng vi mt bad-cluster trong mt trong cc Run d liu ca n. Khi n nhn c li bad-sector, NTFS gn li cluster cha bad-sector vo tp bad-cluster ca n. iu ny ngn cn h thng cp bad-cluster cho cc file khc. Sau NTFS tm mt cluster mi cho file v thay i nh x VCN-to-LCN ch n cluster mi.

Hnh 4.24.a: Record MFT cho mt File c bad-cluster nh x li bad-cluster trong hnh sau. Cluster 1357 c cha bad-sector, c thay th bng cluster mi 1049. Nu bad-sector trn volume redundant, th b phn qun l volume s khi phc d liu v thay th sector nu c th. Nu khng th thay th sector th n s tr v mt cnh bo cho NTFS v NTFS s thay th cluster cha bad-sector .

Hnh 4.24.b1: nh x li bad-cluster Nu mt volume khng c cu hnh l volume redundant th d liu trong badsector khng th khi phc c. Khi mt volume c nh dng nh l mt volume FAT v b phn qun l volume khng th khi phc d liu th vic c d liu t badChng 4: Qun l file v a

208

sector s khng thnh cng v cng khng nhn c kt qu tr li. Nu cc thnh phn quan trng ca h iu hnh ang c cha ti cc bad cluster th c th ton b cc file th mc trn volume s b mt. Ging nh cc h thng file khc, NTFS khng th khi phc d liu t badsector m khng c s h tr t b phn qun l volume. Tuy nhin, NTFS cha nhiu s h hi m cc bad-sector c th gy ra. Nu NTFS pht hin ra bad-sector trong qu trnh c n s nh x li cluster cha bad-sector trong n, nh trnh by trong hnh 4.24.b2 sau y:

Hnh 4.24.b2: nh x li bad-cluster Nu volume khng c cu hnh l volume redundant, NTFS tr li thng bo li c d liu cho chng trnh ngi s dng yu cu c d liu. Nu NTFS pht hin bad-cluster trong thao tc ghi, th NTFS s nh x li cluster trc khi ghi, nn khng b mt d liu cng nh khng pht sinh li.

IV.11. T chc lu tr file trn a CD_ROM


V nguyn tc h thng file trn CD_ROM n gin hn so vi nhng h thng file khc, v cc a CD_ROM ch c ghi mt ln (write-once media), do cc file ghi trn n khng th xa b hay thay i sau khi a c ch to, chnh v vy thnh phn qun l File/a ca h iu hnh s khng lo n vic qun l cc Block cn t do trn a cng nh vic cp pht v thu hi cc Block cho cc file, trong trng hp cc file c lu tr trn a CD_ROM. Sau y chng ta xem xt h thng file chnh trn CD_ROM v 2 h thng m rng ca chng: H thng file ISO 9660: y l chun ph bin nht i vi cc h thng file CD_ROM v c chp nhn nh mt chun quc t vo nm 1988 vi ci tn ISO 9660. Mt trong nhng mc ch ca chun ny l lm cho tt c cc CD_ROM u c th c c trn cc my tnh khc nhau, n khng ph thuc vo th t byte cng nh h iu hnh ang s dng, k c h iu hnh yu nht nh MS_DOS. Trn CD_ROM khng c track, cylinder nh trn cc a t, n ch c mt ng xon c i t tm a ra bn ngoi, ng xon c ny c chia thnh cc khi (block)

Chng 4: Qun l file v a

209

logic c kch thc bng nhau v bng 2352 byte, i khi cng c gi l cc sector logic. Mt vi byte trong khi dnh cho phn m u, sa cha li, v nhng vic khc. Phn chnh ca mi khi logic cn li khong 2048 byte. ISO 9660 h tr cho mt tp a CD_ROM vi mt tp gm 216-1 a, mt CD_ROM ring l c th c chia thnh nhiu partition. Trong phn ny chng ta ch tm hiu chun ISO 9660 vi mt CD_ROM v khng c chia thnh cc Partition. Mi CD_ROM u c phn u ca a, di 16 block, chc nng ca phn ny khng c nh ngha trong chun ISO 9600. Cc nh sn xut CD_ROM c th s dng phn u ny ghi vo chng trnh BootStrap cho php my tnh c th khi ng c t a CD_ROM, hoc dng cho nhng mc ch khc. Phn tip theo l 1 block cha b m t Volume chnh, b m t ny cha mt s thng tin chung v CD_ROM, bao gm: nh danh h thng (32byte), nh danh volume (32byte), nh danh nh sn xut (128byte) v nh danh d liu (128byte). Khi ch to c th lp y nhng trng trn theo mun. Trong phn ny cn cha phn gii thiu, bn quyn tc gi, thng tin th mc, kch thc ca mt khi logic (2048, 4096, 8192, ...), s cc block trn CD_ROM, v thi gian to v kt thc ca CD_ROM. Cui cng, trong b m t Volume chnh cn cha mt tp cc mc vo (directory entry) cho th mc gc, ti y cha a ch ca block bt u ca th mc gc trn CD_ROM. Trn CD_ROM c 2 b m t volume chnh, c ni dung hon ton ging nhau, s dng mt b v mt b d phng. Sau cc phn trn l phn bt u ca CD_ROM dng cha cc file ang c ghi trn a. Th mc gc v tt c cc th mc khc, ch gm mt s mc vo, phn cui ca chng cha mt bt nh du (mark). Mi mc vo cha t 10 n 12 trng, trong c mt s thuc ASCII v s khc l nhng trng s thuc s nh phn. M rng Rock Ridge: Cc chuyn vin thit k ca UNIX nhn thy ISO 9660 cn mt vi hn ch, do h m rng ISO 9660 vi mc ch l cho n c th thay th cho h thng file ca UNIX trn cc a CD_ROM v cc file c to t UNIX c th c sao chp sang CD_ROM v ngc li, chun m rng ny c gi l Rock Ridge. Rock Ridge gi li tt c cc trng ca ISO 9660, v s dng trng System a thm vo cc trng mi, cc h thng file khc khng nhn bit cc trng ny v xem CD_ROM nh mt a CD_ROM thng thng. Rock Ridge b sung thm cc trng, theo th t l: PX: Posix Attributes, PN: Major and miror device number, SL: Symbolic link, NM: Alternative name, CL: Child location, PL: Parent location, RE: Relocaltion, TF: Times stamps, trong trng quan trng nht l NM, trng ny cho php s dng 2 tn file cho mt file, mt tn file trong mc vo ca th mc v mt tn file kt hp, tn ny khng ph vo tp k t hoc gii hn chiu di ca chun ISO 9660.

Chng 4: Qun l file v a

210

M rng Joliet: Cng nh cc chuyn vin thit k ca UNIX, cc chuyn vin thit k ca Microsoft mun m rng ISO 9660 sao cho cc file c to t Windows c th c sao chp sang CD_ROM v ngc li v h thnh cng vi m rng Joliet. M rng Joliet cho php: Tn file di n 64 k t; S dng tp k t Unicode nn tn file c th di n 128 k t; C nhiu hn 8 cp th mc lng nhau; S dng tn th mc vi phn m rng.

Chng 4: Qun l file v a

211

TI LIU THAM KHO


1. Nguyn Thanh Tng. Bi ging H iu hnh. i hc Bch khoa H Ni, 1996. 2. Trn Hnh Nhi. Gio trnh H iu hnh Nng Cao. i hc Khoa hc T nhin, TP H Ch Minh, 1998. 3. Dng Quang Thin. H iu hnh MSDOS 6.22. Vn phng SAMIS, TP H Ch Minh, 1995. 4. L Mnh Thnh - Nguyn Kim Tun. Hng dn lp trnh vi Assembly. Nh xut bn Khoa hc K thut H Ni, 2001. 5. Michael Tischer. Cm nang Lp trnh H thng (tp I v tp II). Nguyn Mnh Hng v Phm Tin Dng dich. Nh xut bn Thng K, 1995. 6. William Stalting. Operating Systems. Prentice Hall, 1995. 7. Andrew S. Tanenbum. Modern Operating Systems. Prentice Hall, 1995. 8. David A. Solomon Mark E. Russinovich. Inside Microsoft Windows 2000. Microsoft Press, 2000.

215

You might also like