You are on page 1of 142

TRNG I HC K THUT CNG NGHIP KHOA IN T

B MN TIN HC CNG NGHIP

BI GING PHT CHO SINH VIN


(LU HNH NI B)
Theo chng trnh 150 TC hay 180 TC hoc tng ng S dng cho nm hc 2012 Tn bi ging: H IU HNH S tn ch: 03

Thi Nguyn, nm 2012


1

Tn cc tc gi: - PGS. TS. Ng Nh Khoa - ThS. Nguyn Vn Huy

BI GING PHT CHO SINH VIN


(LU HNH NI B)
Theo chng trnh 150 TC hay 180 TC hoc tng ng S dng cho nm hc 2012 Tn bi ging: H IU HNH S tn ch: 03

Thi Nguyn, ngy 02 thng 02 nm 2012

Trng b mn

Trng khoa in t

MC LC CHNG 1: TNG QUAN V H IU HNH ...................................................... 16 I.KHI NIM V H IU HNH ......................................................................... 16 II.PHN LOI H IU HNH.............................................................................. 17 II.1 H thng x l theo l .................................................................................. 17 II.2 H thng x l theo l a chng ................................................................ 17 II.3 H thng chia x thi gian............................................................................ 18 II.4 H thng song song ...................................................................................... 18 II.5 H thng phn tn ......................................................................................... 19 II.6 H thng x l thi gian thc ....................................................................... 19 III. CU TRC CA H IU HNH ................................................................... 20 III.1 Cc thnh phn ca h thng ...................................................................... 20 IV. LCH S PHT TRIN CC H IU HNH ............................................... 22 IV.1 Th h 1 (1945 1955) ............................................................................... 22 IV.2 Th h 2 (1955 1965) ............................................................................... 22 IV.3 Th h 3 (1965 1980) ............................................................................... 22 IV.4 Th h 4 (1980 - )........................................................................................ 23 CHNG 2: CC M HNH X L NG HNH ................................................ 24 I.NHU CU X L NG HNH ......................................................................... 24 II. KHI NIM TIN TRNH (PROCESS) V M HNH A TIN TRNH (MULTIPROCESS).................................................................................................... 24 III. KHI NIM TIU TRNH (THREAD) V M HNH A TIU TRNH. ..... 25 IV. TM TT ............................................................................................................ 27 Cng c bi hc ..................................................................................................... 27 Bi tp .................................................................................................................... 27 CHNG 3: QUN L TIN TRNH ........................................................................ 28 I. T cHC QUN l TIN trnh ............................................................................. 28 I.1. Cc trng thi ca tin trnh .......................................................................... 28 I.2. Ch x l ca tin trnh............................................................................ 29 I.3. Cu trc d liu khi qun l tin trnh ........................................................ 29 I.4. Thao tc trn tin trnh .................................................................................. 30 I.5. Cp pht ti nguyn cho tin trnh ................................................................ 31 II. IU PHI TIN TRNH .................................................................................... 32
3

II.1. Gii thiu ..................................................................................................... 33 II.2. T chc iu phi ........................................................................................ 35 II.3. Cc chin lc iu phi ............................................................................. 37 III. Tm tt ................................................................................................................. 42 Cu hi cng c bi hc ......................................................................................... 42 Bi tp ..................................................................................................................... 42 CHNG 4: LIN LC GIA CC TIN TRNH & VN NG B HO ... 45 I. LIN LC GIA CC TIN TRNH ................................................................... 45 I.1. Nhu cu lin lc gia cc tin trnh ............................................................... 45 I.2. Cc vn ny sinh trong vic lin lc gia cc tin trnh ........................... 45 II. Cc C Ch Thng Tin Lin lc ............................................................................ 46 II.1. Tn hiu (Signal) .......................................................................................... 46 II.2. Pipe .............................................................................................................. 47 II.3. Vng nh chia s.......................................................................................... 48 II.4. Trao i thng ip (Message) .................................................................... 48 II.5. Sockets ......................................................................................................... 49 III. Nhu cu ng b ha (synchronisation) ............................................................... 50 III.1. Yu cu c quyn truy xut (Mutual exclusion) ...................................... 50 III.3. Bi ton ng b ho .................................................................................. 51 IV. Tm tt .................................................................................................................. 52 Cng c bi hc ...................................................................................................... 52 Bi tp ..................................................................................................................... 53 CHNG 5 : CC GII PHP NG B HO ....................................................... 55 I. Gii php busy waiting ...................................................................................... 55 I.1. Cc gii php phn mm ............................................................................... 55 I.2. Cc gii php phn cng ............................................................................... 57 II. Cc gii php SLEEP and WAKEUP ............................................................. 58 II.1. Semaphore.................................................................................................... 59 II.2. Monitors ....................................................................................................... 60 II.3. Trao i thng ip ...................................................................................... 62 III. Vn ng b ho ............................................................................................. 63 III.1. Vn Ngi sn xut Ngi tiu th (Producer-Consumer) ................ 63
4

III.2. M hnh Readers-Writers ........................................................................... 65 IV. TC NGHN (Deadlock) .................................................................................... 68 IV.1. nh ngha:................................................................................................. 68 IV.2. iu kin xut hin tc nghn.................................................................... 69 IV.3. th cp pht ti nguyn ......................................................................... 69 IV.4. Cc phng php x l tc nghn ............................................................. 69 IV.5. Ngn chn tc nghn .................................................................................. 69 IV.6. Trnh tc nghn.......................................................................................... 70 IV.7. Pht hin tc nghn .................................................................................... 73 II.8. Hiu chnh tc nghn ................................................................................... 74 V.Tm tt ................................................................................................................... 74 Cng c bi hc. .................................................................................................... 75 Bi tp .................................................................................................................... 75 CHNG 6 : QUN L B NH .............................................................................. 82 I. Bi cnh................................................................................................................... 82 II. Khng gian a ch v khng gian vt l ............................................................... 83 III. Cp pht lin tc ................................................................................................... 83 III.1. M hnh Linker_Loader ............................................................................. 83 III.2. M hnh Base &Bound .............................................................................. 84 IV. Cp pht khng lin tc ........................................................................................ 86 IV.1. Phn on (Segmentation) ......................................................................... 86 IV.2. Phn trang ( Paging)................................................................................... 89 IV.3. Phn on kt hp phn trang (Paged segmentation) ................................ 95 V. Tm tt ................................................................................................................... 96 Cng c bi hc. Cc cu hi cn tr li c sau bi hc ny : .......................... 96 Bi Tp ................................................................................................................... 96 CHNG 7: B NH O ............................................................................................ 98 I. Dn nhp ................................................................................................................. 98 I.1. nh ngha..................................................................................................... 98 I.2. Ci t b nh o .......................................................................................... 99 II. Thay th trang ...................................................................................................... 101 II.1. S thi hnh phn trang theo yu cu ......................................................... 102
5

II.2. Cc thut ton thay th trang ..................................................................... 102 III. Cp pht khung trang .......................................................................................... 108 III.1. Tr tr ton b h thng (Thrashing) ........................................................ 109 III.2. Tn sut xy ra li trang ........................................................................... 111 IV. Tm tt ................................................................................................................ 111 Cng c bi hc .................................................................................................... 111 Bi Tp ................................................................................................................. 111 CHNG 8: H THNG QUN L TP TIN......................................................... 115 I. CC KHI NIM C BN ................................................................................. 115 I.1 B nh ngoi ................................................................................................ 115 I.2 Tp tin v th mc ....................................................................................... 115 I.3 H thng qun l tp tin ............................................................................... 115 II. M HNH T CHC V QUN L CC TP TIN....................................... 116 II.1 M hnh ....................................................................................................... 116 II.2 Cc chc nng ............................................................................................. 120 Cu hi kim tra kin thc ................................................................................... 121 CHNG 9: CC PHNG PHP CI T H THNG QUN L TP TIN . 122 I.BNG QUN L TH MC, TP TIN ............................................................. 122 I.1 Khi nim ..................................................................................................... 122 II.2 Ci t ......................................................................................................... 122 II. BNG PHN PHI VNG NH ...................................................................... 123 II.1 Khi nim .................................................................................................... 123 II.2 Cc phng php ........................................................................................ 123 III. TP TIN CHIA S ............................................................................................. 125 IV. QUN L A .................................................................................................. 126 IV.1 Kch thc khi ......................................................................................... 126 IV.2 Lu gia cc khi trng ............................................................................ 127 V. AN TON CA H THNG TP TIN ...................................................... 127 V.1 Qun l khi b hng .................................................................................. 127 V.2 Backup ........................................................................................................ 128 V.3 Tnh khng i ca h thng tp tin ........................................................... 128

CHNG 10: GII THIU MT S H THNG TP TIN .................................. 130 I.MS-DOS ................................................................................................................. 130 I.1 c im ...................................................................................................... 130 I.2 Ci t .......................................................................................................... 130 II.Windows95 ........................................................................................................... 132 II.1 B qun l ci t h thng tp tin (IFS) ................................................... 132 II.2 VFAT .......................................................................................................... 133 II.3 VCACHE .................................................................................................... 134 II.4 SCSI ............................................................................................................ 134 II.5 CDFS .......................................................................................................... 136 III.WINDOWNS NT ................................................................................................ 137 III.1 c im ca NTFS .................................................................................. 137 III.2 Cu trc tp tin v volume ca NTFS ....................................................... 137 IV. UNIX .................................................................................................................. 139 IV.1 H thng tp tin ca Unix : ....................................................................... 139 IV.2 Ci t h thng tp tin ca Unix ............................................................. 140 Bi tp .................................................................................................................. 141

I HC THI NGUYN TRNG I HC K THUT CNG NGHIP

CNG HO X HI CH NGHA VIT NAM c lp - T do - Hnh phc

CHNG TRNH GIO DC I HC NGNH O TO: IN IN T CHUYN NGNH: K THUT PHN CNG K THUT PHN MM CNG CHI TIT HC PHN: L THUYT H IU HNH (Hc phn bt buc)

1. Tn hc phn: 2 . S tn ch:

TEE L thuyt H iu hnh. 03; 3(3; 1,5; 6)/12 3 (in t)

3. Trnh cho sinh vin nm th: 4. Phn b thi gian

- Ln lp l thuyt: 3 (tit/tun) x 12 (tun) = 36 tit. - Tho lun: 6 (tit/tun) x 03 (tun) = 18 tit. - Hng dn bi tp ln (di): Bi tp di. - Khc: Khng. - Tng s tit thc dy: 3x12 + 6x3 = 54 tit thc hin. - Tng s tit chun: 3x12+3x6/2 = 45 tit chun. 5. Cc hc phn hc trc Kin trc my tnh Cu trc d liu v gii thut

6. Hc phn thay th, hc phn tng ng L thuyt h iu hnh (trong cc chng trnh 180 TC v 260 VHT). 7. Mc tiu ca hc phn

Mn hc ny nhm cung cp cho sinh vin ci nhn tng qut v nhng nguyn l c bn ca h iu hnh, nhng c ch thc hin cc nhim v ca n. Bt u vi vic xem xt mc tiu v cc chc nng ca h iu hnh, sau kho st chi tit vic thc hin cc nhim v c bn v cc khi chc nng tng ng ca HH. Bao gm: chc nng qun l tin trnh; chc nng qun l b nh; chc nng qun l h thng nhp xut 8. M t vn tt ni dung hc phn Gii thiu v HH v cc tnh cht c bn ca HH; Cu trc h thng tnh ton; Cu trc h iu hnh v cc khi nim c bn; Gii thiu v thit k v thc hin cc h iu hnh hin i; Qun l ti nguyn, b nh chnh v b nh th cp, qun l v bo v CPU. Qun l s thc hin ca cc tin trnh, cc vn v lp lch tin trnh, ng b ho cc tin trnh ng hnh. 9. Nhim v ca sinh vin 9.1. Phn l thuyt 1. D lp 80 % tng s thi lng ca hc phn. 2. Chun b tho lun. 3. Bi tp, Bi tp ln (di): Bi tp di. 4. Khc: Tham quan, thc hnh, : Khng. 9.2. Phn th nghim: Khng 10. Ti liu hc tp - Sch, gio trnh chnh: [1] PGS. TS. Ng Nh Khoa, Bi ging H iu hnh, i hc k thut Cng nghip TN. - Sch tham kho: [1] Andrew S. Tanenbaum, Modern Operating Systems, Prentice Hall, 1996 [2] Gustaf Olsson, Gianguido Piani, Computer Systems for Automation and Contron, Prentice Hall, 1990. [3] S.I.Ahson, Microprocessor with application in Process Control, Tata Mc.Graw Hill, 1984. [4] Michael Hordeski, Personal Computer Interfaces, Mc. Graw Hill, 1995. [5] Mikell P.Groover, Automation, Production System and Computer Integrated Manufacturing, Prentice Hall. 11. Tiu chun nh gi sinh vin v thang im 11.1. Cc hc phn l thuyt
9

Tiu chun nh gi 1. Chuyn cn; 2. Tho lun, bi tp; 3. Bi tp ln (di); 4. Kim tra gia hc phn; 5. Thi kt thc hc phn; 6. Khc. Thang im - im nh gi b phn chm theo thang im 10 vi trng s nh sau: + Chuyn cn: 0 %. + Tho lun, bi tp: 0 %. + Bi tp ln (di): 20 %. + Kim tra gia hc phn: 20 %. - im thi kt thc hc phn: 60 %. - im hc phn: L im trung bnh chung c trng s ca cc im nh gi b phn v im thi kt thc hc phn lm trn n mt ch s thp phn. 11.2. Cc hc phn th nghim: Khng 12. Ni dung chi tit hc phn Ngi bin son: PGS. TS. Ng Nh Khoa ThS. Nguyn Vn Huy

Chng 1: M u (Tng s tit: 2; S tit l thuyt: 2; S tit bi tp: 0; Tho lun: 0) 1.1. 1.2. 1.3. 1.4. Khi nim v H iu hnh Cc tnh cht c bn ca H iu hnh Cc nguyn tc c bn khi xy dng H iu hnh Gii thiu v cc h thng my tnh Chng 2: Cu trc ca h thng tnh ton (Tng s tit: 2; S tit l thuyt: 2; S tit bi tp: 0; Tho lun: 0) 2.1. 2.2. 2.3. 2.4. Kin trc my tnh Vn hnh h thng my tnh Cu trc ca thao tc vo/ra (I/O) Cu trc h thng lu tr
10

2.5. 2.6. 2.7.

Phn cp cc h thng lu tr Bo v phn cng Cu trc mng Chng 3: Cu trc h iu hnh (Tng s tit: 2; S tit l thuyt: 2; S tit bi tp: 0; Tho lun: 0)

3.1. 3.2. 3.3. 3.4. 3.5. 3.6. 3.7.

Cc thnh phn h thng Cc phc v ca HH Li gi h thng Cc chng trnh h thng Cu trc h thng My o Thit k v thc hin h thng Chng 4: Khi nim v tin trnh (Tng s tit: 5; S tit l thuyt: 3 S tit bi tp: 0; Tho lun: 2)

4.1. 4.2. 4.3. 4.4. 4.5.

Process Concept Khi nim v tin trnh Process Scheduling - Lp lch tin trnh Operations on Processes Cc thao tc trn tin trnh Cooperating Processes Cc tin trnh ng hnh Interprocess Communication Trao i thng tin gia cc tin trnh Chng 5: Lp lch vi x l (Tng s tit: 8; S tit l thuyt: 4; S tit bi tp: 2; Tho lun: 2)

5.1. 5.2. 5.3. 5.4. 5.5. 5.6. 5.7.

Nhng khi nim c bn Tiu chun lp lch Cc gii thut lp lch Lp lch a vi x l Lp lch thi gian thc Lp lch tiu trnh Cc v d v H iu hnh Chng 6: ng b ho tin trnh (Tng s tit: 10; S tit l thuyt: 6; S tit bi tp: 2; Tho lun: 2)

6.1. 6.2. 6.3. 6.4. 6.5. 6.6.

Kin thc c bn Vn min gng (Critical-Section) Cc gii php busy and waiting Cc gii php sleep and wakeup Cc vn c in v ng b ho ng b ho trong Solaris 2 & Windows 2000 Chng 7: Vn tc nghn (Tng s tit: 6; S tit l thuyt: 4; S tit bi tp: 1; Tho lun: 1)
11

7.1. 7.2. 7.3. 7.4. 7.5. 7.6. 7.7.

M hnh h thng Cc phng php qun l tc nghn Ngn chn tc nghn Trnh tc nghn Pht hin tc nghn Phc hi tc nghn Phng php t hp qun l tc nghn Chng 8: Qun l b nh chnh (Tng s tit: 6; S tit l thuyt: 4; S tit bi tp: 1; Tho lun: 1)

8.1. 8.2. 8.3. 8.4. 8.5. 8.6.

Kin thc c bn S hon i - Swapping Cp pht lin tc - Contiguous Allocation S phn trang - Paging S phn on Segmentation Phn trang kt hp phn on - Segmentation with Paging Chng 9: B nh o (Tng s tit: 6; S tit l thuyt: 4; S tit bi tp: 1; Tho lun: 1)

9.1. 9.2. 9.3. 9.4. 9.5. 9.6.

Kin thc c bn S phn trang theo yu cu To lp tin trnh Thay th trang Cp pht cc khung trang Cc v d v H iu hnh Chng 10: Qun l b nh th cp (Tng s tit: 7; S tit l thuyt: 5; S tit bi tp: 1; Tho lun: 1)

10.1. Cu trc vt l ca a t 10.2. Cu trc logic ca a t 10.3. H tp FAT 10.4. Gii thiu c ch qun l tp tin bng h tp NTFS 13. Lch trnh ging dy S tun dy l thuyt: 12 tun S tun tho lun, bi tp 03 tun S tun thc dy 15 tun Kim tra: 0 tun + 12 tun: 3 tit l thuyt /tun + 3 tun: 6 tit tho lun/tun

12

Tun th

Ni dung

Ti liu hc tp, tham kho

Hnh thc hc

Chng 1: M u 1.1. Khi nim v H iu hnh 1.2. Cc tnh cht c bn ca H iu hnh 1.3. Cc nguyn tc c bn khi xy dng H iu hnh 1.4. Gii thiu v cc h thng my tnh Chng 2: Cu trc ca h thng tnh ton 2.1. 2.2. 2.3. 2.8. 2.9. 2.10. 2.11. 3.1. 3.2. 3.3. 3.4. 3.5. 3.6. 3.7. Kin trc my tnh Vn hnh h thng my tnh Cu trc ca thao tc vo/ra (I/O) Cu trc h thng lu tr Phn cp cc h thng lu tr Bo v phn cng Cu trc mng Chng 3: Cu trc h iu hnh Cc thnh phn h thng Cc phc v ca HH Li gi h thng Cc chng trnh h thng Cu trc h thng My o Thit k v thc hin h thng Chng 4: Khi nim v tin trnh Ging [1]-[5]

Ging

4.1. Process Concept Khi nim v tin trnh 4.2. Process Scheduling - Lp lch tin trnh 4.3. Operations on Processes Cc thao tc trn tin trnh 4.4. Cooperating Processes Cc tin trnh ng hnh 4.5. Interprocess Communication Trao i thng tin gia cc tin trnh Chng 5: Lp lch vi x l 5.1. 5.2. 5.3. 5.4. 5.5. Nhng khi nim c bn Tiu chun lp lch Cc gii thut lp lch Lp lch a vi x l Lp lch thi gian thc

Ging

Ging

13

5 5.8. 5.9. 6 6.1. 6.2. 6.3. 6.4. 6.5. 6.6.

Tho lun Lp lch tiu trnh Cc v d v H iu hnh Chng 6: ng b ho tin trnh Kin thc c bn Vn min gng (Critical-Section) Cc gii php busy and waiting Cc gii php sleep and wakeup Cc vn c in v ng b ho ng b ho trong Solaris 2 & Windows 2000 Chng 7: Vn tc nghn

Tho lun

Ging

Ging

7.1. M hnh h thng 7.2. Cc phng php qun l tc nghn 7.3. Ngn chn tc nghn 7.4. Trnh tc nghn Tho lun 7.5. 7.6. 7.7. Pht hin tc nghn Phc hi tc nghn Phng php t hp qun l tc nghn Chng 8: Qun l b nh chnh

Ging

Tho lun

10

Ging

11

8.1. Kin thc c bn 8.2. S hon i - Swapping 8.3. Cp pht lin tc - Contiguous Allocation 8.4. S phn trang - Paging 8.5. S phn on Segmentation 8.6. Phn trang kt hp phn on - Segmentation with Paging Chng 9: B nh o 9.1. 9.2. 9.3. 9.4. 9.5. 9.6. 10.1. 10.2. 10.3. 10.4. Kin thc c bn S phn trang theo yu cu To lp tin trnh Thay th trang Cp pht cc khung trang Cc v d v H iu hnh Chng 10: Qun l b nh th cp Cu trc vt l ca a t Cu trc logic ca a t H tp FAT Gii thiu c ch qun l tp tin bng h tp

Ging

12

Ging

13

Ging

14

Ging

14

15

NTFS Tho lun

Tho lun

14. Ngy ph duyt: 15. Cp ph duyt: cng chi tit hc phn c Hi ng khi ngnh in t ph duyt.

Trng b mn Tin Hc Cng Nghip

Ch tch Hi ng KH&GD Khoa in t

Ch tch Hi ng Khi ngnh in - in t v SPKT in Tin hc

15

CHNG 1: TNG QUAN V H IU HNH


Bi hc ny cung cp cho chng ta mt ci nhn tng qut v nhng nguyn l c bn ca h iu hnh. Chng ta bt u vi vic xem xt mc tiu v cc chc nng ca h iu ny, sau kho st cc dng khc nhau ca chng cng nh xem xt qu trnh pht trin qua tng giai on. Cc phn ny c trnh by thng qua cc ni dung nh sau: Khi nim v h iu hnh Phn loi h iu hnh Cu trc ca h iu hnh Lch s pht trin ca h iu hnh Bi hc ny gip chng ta hiu c h iu hnh l g, c cu trc ra sao. H iu hnh c phn loi theo nhng tiu chun no. Qu trnh pht trin ca h iu hnh ph thuc vo nhng yu t no. Bi hc ny i hi nhng kin thc v : kin trc my tnh.

I.KHI NIM V H IU HNH


H iu hnh l mt chng trnh hay mt h chng trnh hot ng gia ngi s dng (user) v phn cng ca my tnh. Mc tiu ca h iu hnh l cung cp mt mi trng ngi s dng c th thi hnh cc chng trnh. N lm cho my tnh d s dng hn, thun li hn v hiu qu hn. H iu hnh l mt phn quan trng ca hu ht cc h thng my tnh. Mt h thng my tnh thng c chia lm bn phn chnh : phn cng, h iu hnh, cc chng trnh ng dng v ngi s dng. Phn cng bao gm CPU, b nh, cc thit b nhp xut, y l nhng ti nguyn ca my tnh. Chng trnh ng dng nh cc chng trnh dch, h thng c s d liu, cc tr chi, v cc chng trnh thng mi. Cc chng trnh ny s dng ti nguyn ca my tnh gii quyt cc yu cu ca ngi s dng. H iu hnh iu khin v phi hp vic s dng phn cng cho nhng ng dng khc nhau ca nhiu ngi s dng khc nhau. H iu hnh cung cp mt mi trng m cc chng trnh c th lm vic hu hiu trn .

Hnh 1.1 M hnh tru tng ca h thng my tnh 16

H iu hnh c th c coi nh l b phn phi ti nguyn ca my tnh. Nhiu ti nguyn ca my tnh nh thi gian s dng CPU, vng b nh, vng lu tr tp tin, thit b nhp xut v.v c cc chng trnh yu cu gii quyt vn . H iu hnh hot ng nh mt b qun l cc ti nguyn v phn phi chng cho cc chng trnh v ngi s dng khi cn thit. Do c rt nhiu yu cu, h iu hnh phi gii quyt vn tranh chp v phi quyt nh cp pht ti nguyn cho nhng yu cu theo th t no hot ng ca my tnh l hiu qu nht. Mt h iu hnh cng c th c coi nh l mt chng trnh kim sot vic s dng my tnh, c bit l cc thit b nhp xut. Tuy nhin, nhn chung cha c nh ngha no l hon ho v h iu hnh. H iu hnh tn ti gii quyt cc vn s dng h thng my tnh. Mc tiu c bn ca n l gip cho vic thi hnh cc chng trnh d dng hn. Mc tiu th hai l h tr cho cc thao tc trn h thng my tnh hiu qu hn. Mc tiu ny c bit quan trng trong nhng h thng nhiu ngi dng v trong nhng h thng ln(phn cng + quy m s dng). Tuy nhin hai mc tiu ny cng c phn tng phn v vy l thuyt v h iu hnh tp trung vo vic ti u ha vic s dng ti nguyn ca my tnh.

II.PHN LOI H IU HNH II.1 H thng x l theo l


B gim st thng trc : Khi mt cng vic chm dt, h thng s thc hin cng vic k tip m khng cn s can thip ca ngi lp trnh, do thi gian thc hin s mau hn. Mt chng trnh, cn gi l b gim st thng trc c thit k gim st vic thc hin dy cc cng vic mt cch t ng, chng trnh ny lun lun thng tr trong b nh chnh. H iu hnh theo l thc hin cc cng vic ln lt theo nhng ch th nh trc. CPU v thao tc nhp xut : CPU thng hay nhn ri do tc lm vic ca cc thit b nhp xut (thng l thit b c) chm hn rt nhiu ln so vi cc thit b in t. Cho d l mt CPU chm nht, n cng nhanh hn rt nhiu ln so vi thit b nhp xut. Do phi c cc phng php ng b ha vic hot ng ca CPU v thao tc nhp xut. X l off_line : X l off_line l thay v CPU phi c trc tip t thit b nhp v xut ra thit b xut, h thng dng mt b lu tr trung gian. CPU ch thao thc vi b phn ny. Vic c hay xut u n v t b lu tr trung gian. Spooling : Spool (simultaneous peripheral operation on-line) l ng b ha cc thao tc bn ngoi on-line. C ch ny cho php x l ca CPU l on-line, s dng a lu cc d liu nhp cng nh xut.

II.2 H thng x l theo l a chng


Khi c nhiu cng vic cng truy xut ln thit b, vn lp lch cho cc cng vic l cn thit. Kha cnh quan trng nht trong vic lp lch l kh nng a chng. a chng (multiprogram) gia tng khai thc CPU bng cch t chc cc cng vic sao cho CPU lun lun phi trong tnh trng lm vic .

17

tng nh sau : h iu hnh lu gi mt phn ca cc cng vic ni lu tr trong b nh . CPU s ln lt thc hin cc phn cng vic ny. Khi ang thc hin, nu c yu cu truy xut thit b th CPU khng ngh m thc hin tip cng vic th hai Vi h a chng trnh, h iu hnh ra quyt nh cho ngi s dng v vy, h iu hnh a nhim rt tinh vi. H phi x l cc vn lp lch cho cng vic, lp lch cho b nh v cho c CPU na.

II.3 H thng chia x thi gian


H thng chia x thi gian l mt m rng logic ca h a chng. H thng ny cn c gi l h thng a nhim (multitasking). Nhiu cng vic cng c thc hin thng qua c ch chuyn i ca CPU nh h a chng nhng thi gian mi ln chuyn i din ra rt nhanh. H thng chia x c pht trin cung cp vic s dng bn trong ca mt my tnh c gi tr hn. H iu hnh chia x thi gian dng lp lch CPU v a chng cung cp cho mi ngi s dng mt phn nh trong my tnh chia x. Mt chng trnh khi thi hnh c gi l mt tin trnh. Trong qu trnh thi hnh ca mt tin trnh, n phi thc hin cc thao tc nhp xut v trong khong thi gian CPU s thi hnh mt tin trnh khc. H iu hnh chia x cho php nhiu ngi s dng chia x my tnh mt cch ng b do thi gian chuyn i nhanh nn h c cm gic l cc tin trnh ang c thi hnh cng lc. H iu hnh chia x phc tp hn h iu hnh a chng. N phi c cc chc nng : qun tr v bo v b nh, s dng b nh o. N cng cung cp h thng tp tin truy xut online H iu hnh chia x l kiu ca cc h iu hnh hin i ngy nay.

II.4 H thng song song


Ngoi cc h thng ch c mt b x l cn c cc h thng c nhiu b x l cng chia x h thng ng truyn d liu, ng h, b nh v cc thit b ngoi vi. Cc b x l ny lin lc bn trong vi nhau . C nhiu nguyn nhn xy dng dng h thng ny. Vi s gia tng s lng b x l, cng vic c thc hin nhanh chng hn, Nhng khng phi theo ng t l thi gian, ngha l c n b x l khng c ngha l s thc hin nhanh hn n ln. H thng vi my nhiu b x l s ti u hn h thng c nhiu my c mt b x l v cc b x l chia x cc thit b ngoi vi, h thng lu tr, ngun v rt thun tin cho nhiu chng trnh cng lm vic trn cng mt tp hp d liu. Mt l do na l tin cy. Cc chc nng c x l trn nhiu b x l v s hng hc ca mt b x l s khng nh hng n ton b h thng. H thng a x l thng thng s dng cch a x l i xng, trong cch ny mi b x l chy vi mt bn sao ca h iu hnh, nhng bn sao ny lin lc vi nhau khi cn thit. Mt s h thng s dng a x l bt i xng, trong mi b x l c giao mt cng vic ring bit.. Mt b x l chnh kim sot ton b h thng, cc b x l khc thc hin theo lnh ca b x l chnh hoc theo nhng ch th c nh ngha trc. M hnh ny theo dng quan h ch t. B x l chnh s lp lch cho cc b x l khc.

18

Mt v d v h thng x l i xng l version Encore ca UNIX cho my tnh Multimax. H thng ny c hng t b x l. u im ca n l nhiu tin trnh c th thc hin cng lc . Mt h thng a x l cho php nhiu cng vic v ti nguyn c chia x t ng trong nhng b x l khc nhau. H thng a x l khng ng b thng xut hin trong nhng h thng ln, trong hu ht thi gian hot ng u dnh cho x l nhp xut.

II.5 H thng phn tn


H thng ny cng tng t nh h thng chia x thi gian nhng cc b x l khng chia x b nh v ng h, thay vo mi b x l c b nh cc b ring. Cc b x l thng tin vi nhau thng qua cc ng truyn thng nh nhng bus tc cao hay ng dy in thoi. Cc b x l trong h phn tn thng khc nhau v kch thc v chc nng. N c th bao gm my vi tnh, trm lm vic, my mini, v nhng h thng my ln. Cc b x l thng c tham kho vi nhiu tn khc nhau nh site, node, computer v.v.... ty thuc vo trng thi lm vic ca chng. Cc nguyn nhn phi xy dng h thng phn tn l: Chia x ti nguyn : Mt ngi s dng A c th s dng my in laser ca ngi s dng B v ngi s dng B c th truy xut nhng tp tin ca A. Tng qut, chia x ti nguyn trong h thng phn tn cung cp mt c ch chia x tp tin v tr xa, x l thng tin trong mt c s d liu phn tn, in n ti mt v tr xa, s dng nhng thit b xa thc hin cc thao tc. Tng tc tnh ton : Mt thao tc tnh ton c chia lm nhiu phn nh cng thc hin mt lc. H thng phn tn cho php phn chia vic tnh ton trn nhiu v tr khc nhau tnh ton song song. An ton : Nu mt v tr trong h thng phn tn b hng, cc v tr khc vn tip tc lm vic. Thng tin lin lc vi nhau :C nhiu lc , chng trnh cn chuyn i d liu t v tr ny sang v tr khc. V d trong h thng Windows, thng c s chia x v chuyn d liu gia cc ca s. Khi cc v tr c ni kt vi nhau trong mt h thng mng, vic trao i d liu din ra rt d. Ngi s dng c th chuyn tp tin hay cc E_mail cho nhau t cng v tr hay nhng v tr khc.

II.6 H thng x l thi gian thc


H thng x l thi gian thc c s dng khi c nhng i hi kht khe v thi gian trn cc thao tc ca b x l hoc dng d liu, n thng c dng iu khin cc thit b trong cc ng dng tn hin (dedicated). My tnh phn tch d liu v c th chnh cc iu khin gii quyt cho d liu nhp. Mt h iu hnh x l thi gian thc phi c nh ngha tt, thi gian x l nhanh. H thng phi cho kt qu chnh xc trong khong thi gian b thc p nhanh nht. C hai h thng x l thi gian thc l h thng thi gian thc cng v h thng thi gian thc mm..

19

H thng thi gian thc cng l cng vic c hon tt ng lc. Lc d liu thng c lu trong b nh ngn hn hay trong ROM. Vic x l theo thi gian thc s xung t vi tt c h thng lit k trn. Dng th hai l h thng thi gian thc mm, mi cng vic c mt u tin ring v s c thi hnh theo u tin . C mt s lnh vc p dng hu hiu phng php ny l multimedia hay thc ti o

III. CU TRC CA H IU HNH III.1 Cc thnh phn ca h thng


Qun l tin trnh Mt chng trnh khng thc hin c g c nu nh n khng c CPU thi hnh. Mt tin trnh l mt chng trnh ang c thi hnh, nhng ngha ca n cn rng hn. Mt cng vic theo l l mt tin trnh. Mt chng trnh ngi dng chia x thi gian l mt tin trnh, mt cng vic ca h thng nh soopling xut ra my in cng l mt tin trnh. Mt tin trnh phi s dng ti nguyn nh thi gian s dng CPU, b nh, tp tin, cc thit b nhp xut hon tt cng vic ca n. Cc ti nguyn ny c cung cp khi tin trnh c to hay trong qu trnh thi hnh. Khi tin trnh c to, n s dng rt nhiu ti nguyn vt l v lun l.cng nh mt s khi to d liu nhp. V d , kho st tin trnh hin th trng thi ca tp tin ln mn hnh. u vo ca tin trnh l tn tp tin, v tin trnh s thc hin nhng ch th thch hp, thc hin li gi h thng nhn c nhng thng tin mong mun v hin th n ln mn hnh. Khi tin trnh kt thc, h iu hnh s ti to li cc ti nguyn c th c dng li.. Mt tin trnh l hot ng (active) hon ton-ngc li vi mt tp tin trn a l th ng (passive)-vi mt b m chng trnh cho bit lnh k tip c thi hnh.Vic thi hnh c thc hin theo c ch tun t , CPU s thi hnh t lnh u n lnh cui. Mt tin trnh c coi l mt n v lm vic ca h thng. Mt h thng c th c nhiu tin trnh cng lc , trong mt s tin trnh l ca h iu hnh, mt s tin trnh l ca ngi s dng. cc tin trnh ny c th din ra ng thi. Vai tr ca h iu hnh trong vic qun l tin trnh l : To v hy cc tin trnh ca ngi s dng v ca h thng. Ngng v thc hin li mt tin trnh. Cung cp c ch ng b tin trnh. Cung cp cch thng tin gia cc tin trnh. Cung cp c ch kim sot deadlock(khi nim ny s c trnh by trong chng II). Qun l b nh chnh : Trong h thng my tnh hin i, b nh chnh l trung tm ca cc thao tc, x l. B nh chnh c th xem nh mt mng kiu byte hay kiu word. Mi phn t u c a ch. l ni lu d liu c CPU truy xut mt cch nhanh chng so vi cc thit b nhp/xut. CPU c nhng ch th t b nh chnh. Cc thit b nhp/xut ci t c ch DMA(xem chng IV) cng c v ghi d liu trong b nh chnh. Thng thng b nh chnh cha cc

20

thit b m CPU c th nh v trc tip. V d CPU truy xut d liu t a, nhng d liu ny c chuyn vo b nh qua li gi h thng nhp/xut. Mt chng trnh mun thi hnh trc ht phi c nh x thnh a ch tuyt i v np vo b nh chnh.Khi chng trnh thi hnh, h thng truy xut cc ch th v d liu ca chng trnh trong b nh chnh. Ngay c khi tin trnh kt thc , d liu vn cn trong b nh cho n khi mt tin trnh khc c ghi chng ln. ti u ha qu trnh hot ng ca CPU v tc ca my tnh, mt s tin trnh c lu gi trong b nh. C rt nhiu k hoch qun tr b nh do c nhiu ng dng b nh khc nhau v hiu qu ca cc thut ton ph thuc vo ty tnh hung c th. La chn mt thut ton cho mt h thng c m t trc ph thuc vo nhiu yu t, c bit l phn cng ca h thng. H iu hnh c nhng vai tr nh sau trong vic qun l b nh chnh : Lu gi thng tin v cc v tr trong b nh c s dng v ai s dng. Quyt nh tin trnh no c np vo b nh chnh, khi b nh c th dng c. Cp pht v thu hi b nh khi cn thit. Qun l b nh ph : Mc tiu chnh ca h thng my tnh l thi hnh chng trnh. Nhng chng trnh vi d liu truy xut ca chng phi c t trong b nh chnh trong sut qu trnh thi hnh. Nhng b nh chnh qu nh c th lu gi mi d liu v chng trnh, ngoi ra d liu s mt khi khng cn c cung cp nng lng. H thng my tnh ngy nay cung cp h thng lu tr ph. a s cc my tnh u dng a lu tr c chng trnh v d liu. Hu nh tt c chng trnh : chng trnh dch, hp ng, th tc, trnh son tho, nh dng... u c lu tr trn a cho ti khi n c thc hin, np vo trong b nh chnh v cng s dng a cha d liu v kt qu x l. V vy mt b qun l h thng a rt quan trng cho h thng my tnh. Vai tr ca h iu hnh trong vic qun l a : Qun l vng trng trn a. nh v lu tr. Lp lch cho a. V h thng a c s dng thng xuyn, nn n phi c dng hiu qu.Tc ca ton b h thng tu thuc rt nhiu vo tc truy xut a. Qun l h thng nhp xut : Mt trong nhng mc tiu ca h iu hnh l che du nhng c th ca cc thit b phn cng i vi ngi s dng thay vo l mt lp thn thin hn, ngi s dng d thao tc hn. Mt h thng nhp/xut bao gm : H thng buffer caching. Giao tip

21

IV. LCH S PHT TRIN CC H IU HNH IV.1 Th h 1 (1945 1955)


Vo khong gia thp nin 1940, Howard Aiken Havard v John von Neumann Princeton, thnh cng trong vic xy dng my tnh dng ng chn khng. Nhng my ny rt ln vi hn 10000 ng chn khng nhng chm hn nhiu so vi my r nht ngy nay. Mi my c mt nhm thc hin tt c t thit k, xy dng lp trnh, thao tc n qun l. Lp trnh bng ngn ng my tuyt i, thng l bng cch dng bng iu khin thc hin cc chc nng c bn. Ngn ng lp trnh cha c bit n v h iu hnh cng cha nghe n. Vo u thp nin 1950, phiu c l ra i v c th vit chng trnh trn phiu thay cho dng bng iu khin.

IV.2 Th h 2 (1955 1965)


S ra i ca thit b bn dn vo gia thp nin 1950 lm thay i bc tranh tng th. My tnh tr nn tin cy hn. N c sn xut v cung cp cho cc khch hng. Ln u tin c s phn chia r rng gia ngi thit k, ngi xy dng, ngi vn hnh, ngi lp trnh, v ngi bo tr. thc hin mt cng vic (mt chng trnh hay mt tp hp cc chng trnh), lp trnh vin trc ht vit chng trnh trn giy (bng hp ng hay FORTRAN) sau c l trn phiu v cui cng a phiu vo my. Sau khi thc hin xong n s xut kt qu ra my in. H thng x l theo l ra i, n lu cc yu cu cn thc hin ln bng t, v h thng s c v thi hnh ln lt. Sau , n s ghi kt qu ln bng t xut v cui cng ngi s dng s em bng t xut i in. H thng x l theo l hot ng di s iu khin ca mt chng trnh c bit l tin thn ca h iu hnh sau ny. Ngn ng lp trnh s dng trong giai on ny ch yu l FORTRAN v hp ng.

IV.3 Th h 3 (1965 1980)


Trong giai on ny, my tnh c s dng rng ri trong khoa hc cng nh trong thng mi. My IBM 360 l my tnh u tin s dng mch tch hp (IC). T kch thc v gi c ca cc h thng my gim ng k v my tnh cng ph bin hn. Cc thit b ngoi vi dnh cho my xut hin ngy cng nhiu v thao tc iu khin bt u phc tp. H iu hnh ra i nhm iu phi, kim sot hot ng v gii quyt cc yu cu tranh chp thi b. Chng trnh h iu hnh di c triu dng hp ng v do hng ngn lp trnh vin thc hin. Sau , h iu hnh ra i khi nim a chng. CPU khng phi ch thc hin cc thao tc nhp xut. B nh c chia lm nhiu phn, mi phn c mt cng vic (job) khc nhau, khi mt cng vic ch thc hin nhp xut CPU s x l cc cng vic cn li. Tuy nhin khi c nhiu cng vic cng xut hin trong b nh, vn l phi c mt c ch bo v trnh cc cng vic nh hng n nhau. H iu hnh cng ci t thuc tnh spool. 22

Giai on ny cng nh du s ra i ca h iu hnh chia x thi gian nh CTSS ca MIT. ng thi cc h iu hnh ln ra i nh MULTICS, UNIX v h thng cc my mini cng xut hin nh DEC PDP-1.

IV.4 Th h 4 (1980 - )
Giai on ny nh du s ra i ca my tnh c nhn, c bit l h thng IBM PC vi h iu hnh MS-DOS v Windows sau ny. Bn cnh l s pht trin mnh ca cc h iu hnh ta Unix trn nhiu h my khc nhau nh Linux. Ngoi ra, t u thp nin 90 cng nh du s pht trin mnh m ca h iu hnh mng v h iu hnh phn tn.

23

CHNG 2: CC M HNH X L NG HNH


Hu ht cc h iu hnh hin i u cho php ngi dng thi hnh nhiu cng vic ng thi trn cng mt my tnh. Nhu cu x l ng hnh (concurrency) ny xut pht t u, v h iu hnh cn phi t chc h tr nh th no cho cc mi trng a nhim (multitask) nh th ? l ni dung chng ta s tm hiu trong bi ny.

I.NHU CU X L NG HNH
C 2 ng lc chnh khin cho cc h iu hnh hin i thng h tr mi trng a nhim (multitask) trong chp nhn nhiu tc v thc hin ng thi trn cng mt my tnh:

Tng hiu sut s dng CPU


Phn ln cc tc v (job) khi thi hnh u tri qua nhiu chu k x l (s dng CPU) v chu k nhp xut (s dng cc thit b nhp xut) xen k nh sau : CPU IO CPU IO CPU Nu ch c 1 tin trnh duy nht trong h thng, th vo cc chu k IO ca tc v, CPU s hon ton nhn ri. tng tng cng s lng tc v trong h thng l tn dng CPU : nu tc v 1 x l IO, th c th s dng CPU thc hin tc v 2... CPU Tc v 1 CPU Tc v IO CPU IO IO CPU IO CPU

Tng tc x l
Mt s bi ton c bn cht x l song song nu c xy dng thnh nhiu module hot ng ng thi th s tit kim c thi gian x l. V d : Xt bi ton tnh gi tr biu thc kq = a*b + c*d . Nu tin hnh tnh ng thi (a*b) v (c*d) th thi gian x l s ngn hn l thc hin tun t. Trong cc trng hp , cn c mt m hnh x l ng hnh thch hp. Trn my tnh c cu hnh nhiu CPU, h tr x l song song (multiprocessing) tht s, iu ny s gip tng hiu qu thi hnh ca ht thng ng k.

II. KHI NIM TIN TRNH (PROCESS) V M HNH A TIN TRNH (MULTIPROCESS)
h tr s a chng, my tnh phi c kh nng thc hin nhiu tc v ng thi. Nhng vic iu khin nhiu hot ng song song cp phn cng l rt kh khn. V th cc nh thit k h iu hnh xut mt m hnh song song gi lp bng cch chuyn i b x l qua li gia cc chng trnh duy tr hot ng ca nhiu chng trnh cng lc, iu ny to cm gic c nhiu hot ng c thc hin ng thi. Trong m hnh ny, tt c cc phn mm trong h thng c t chc thnh mt s nhng tin trnh (process). Tin trnh l mt chng trnh ang x l, s hu mt con tr lnh,

24

tp cc thanh ghi v cc bin. hon thnh tc v ca mnh, mt tin trnh c th cn n mt s ti nguyn nh CPU, b nh chnh, cc tp tin v thit b nhp/xut. Cn phn bit hai khi nim chng trnh v tin trnh. Mt chng trnh l mt thc th th ng, cha ng cc ch th iu khin my tnh tin hnh mt tc v no ; khi cho thc hin cc ch th ny, chng trnh chuyn thnh tin trnh, l mt thc th hot ng, vi con tr lnh xc nh ch th k tip s thi hnh, km theo tp cc ti nguyn phc v cho hot ng ca tin trnh. V mt nim, c th xem nh mi tin trnh s hu mt b x l o cho ring n, nhng trong thc t, ch c mt b x l tht s c chuyn i qua li gia cc tin trnh. S chuyn i nhanh chng ny c gi l s a chng (multiprogramming) . H iu hnh chu trch nhim s dng mt thut ton iu phi quyt nh thi im cn dng hot ng ca tin trnh ang x l phc v mt tin trnh khc, v la chn tin trnh tip theo s c phc v. B phn thc hin chc nng ny ca h iu hnh c gi l b iu phi (scheduler).

III. KHI NIM TIU TRNH (THREAD) V M HNH A TIU TRNH.


Trong hu ht cc h iu hnh, mi tin trnh c mt khng gian a ch v ch c mt dng x l. Tuy nhin, c nhiu tnh hung ngi s dng mong mun c nhiu dng x l cng chia s mt khng gian a ch, v cc dng x l ny hot ng song song tng t nh cc tin trnh phn bit (ngoi tr vic chia s khng gian a ch). V d : Mt server qun l tp tin thnh thong phi t kha ch cc thao tc truy xut a hon tt.Nu server c nhiu dng x l, h thng c th x l cc yu cu mi trong khi mt dng x l b kho. Nh vy vic thc hin chng trnh s c hiu qu hn. iu ny khng th t c bng cch to hai tin trnh server ring bit v cn phi chia s cng mt vng m, do vy bt buc phi chia s khng gian a ch. Chnh v cc tnh hung tng t, ngi ta cn c mt c ch x l mi cho php c nhiu dng x l trong cng mt tin trnh. Ngy nay c nhiu h iu hnh cung cp mt c ch nh th v gi l tiu trnh (threads). Nguyn l chung :

25

Mt tiu trnh l mt n v x l c bn trong h thng . Mi tiu trnh x l tun t on code ca n, s hu mt con tr lnh, tp cc thanh ghi v mt vng nh stack ring. Cc tiu trnh chia s CPU vi nhau ging nh cch chia s gia cc tin trnh: mt tiu trnh x l trong khi cc tiu trnh khc ch n lt. Mt tiu trnh cng c th to lp cc tin trnh con, v nhn cc trng thi khc nhau nh mt tin trnh tht s. Mt tin trnh c th s hu nhiu tiu trnh. Cc tin trnh to thnh nhng thc th c lp. Mi tin trnh c mt tp ti nguyn v mt mi trng ring (mt con tr lnh, mt Stack , cc thanh ghi v khng gian a ch ). Cc tin trnh hon ton c lp vi nhau, ch c th lin lc thng qua cc c ch thng tin gia cc tin trnh m h iu hnh cung cp. Ngc li, cc tiu trnh trong cng mt tin trnh li chia s mt khng gian a ch chung, iu ny c ngha l cc tiu trnh c th chia s cc bin ton cc ca tin trnh. Mt tiu trnh c th truy xut n c cc stack ca nhng tiu trnh khc trong cng tin trnh. Cu trc ny khng ngh mt c ch bo v no, v iu ny cng khng tht cn thit v cc tiu trnh trong cng mt tin trnh thuc v cng mt s hu ch to ra chng trong nh cho php chng hp tc vi nhau.

Cc tiu trnh trong cng mt tiu trnh Phn b thng tin lu tr

Cu trc m t tin trnh v tiu trnh Kernel thread v user thread Khi nim tin trnh c th c ci t trong kernel ca H iu hnh, khi n v c s s dng CPU x l l tiu trnh, H iu hnh s phn phi CPU cho cc tiu trnh trong h thng. Tuy nhin i vi mt s h iu hnh, khi nim tiu trnh ch c h tr nh mt i tng ngi dng, cc thao tc tiu trnh c cung cp km theo do mt b th vin x l trong ch ngi dng khng c quyn (user mode). Lc ny H iu hnh s ch

26

bit n khi nim tin trnh, do vy cn c c ch lin kt cc tiu trnh cng mt tin trnh vi tin trnh cha trong kernel_ i tng ny i lc c gi l LWP (lightweight process).

IV. TM TT
Tin trnh l mt chng trnh ang hot ng. s dng hiu qu CPU, s a chng cn c a vo h thng S a chng c t chc bng cch lu tr nhiu tin trnh trong b nh ti mt thi im, v iu phi CPU qua li gia cc tin trnh trong h thng. M hnh a tiu trnh cho php mi tin trnh c th tin hnh nhiu dng x l ng thi trong cng mt khng gian a ch nhm thc hin tc v hiu qa hn trong mt s trng hp.

Cng c bi hc
Cc cu hi cn tr li c sau bi hc ny : 1. Ti sao cc h iu hnh hin i h tr mi trng a nhim ? 2. Phn bit multitask, multiprogramming v multiprocessing. 3. Khi nim tin trnh c xy dng nhm mc ch g ? 4. S khc bit, mi quan h gia tin trnh v tiu trnh ?

Bi tp
Bi 1. Nhiu h iu hnh khng cho php x l ng hnh. Tho lun v cc phc tp pht sinh khi h iu hnh cho php a nhim ? Bi 2. Tm mt s ng dng thch hp vi m hnh a tin trnh; v mt s ng dng thch hp vi m hnh a tiu trnh.

27

CHNG 3: QUN L TIN TRNH


Trong chng ny chng ta s tm hiu chc nng qun l tin trnh ca H iu hnh: lm th no phn chia CPU cho cc tin trnh ? Theo vt x l ca tin trnh ? V cc thao tc trn tin trnh ?

I. T cHC QUN l TIN trnh I.1. Cc trng thi ca tin trnh


Trng thi ca tin trnh ti mt thi im c xc nh bi hot ng hin thi ca tin trnh ti thi im . Trong qu trnh sng, mt tin trnh thay i trng thi do nhiu nguyn nhn nh : phi ch mt s kin no xy ra, hay i mt thao tc nhp/xut hon tt, buc phi dng hot ng do ht thi gian x l Ti mt thi im, mt tin trnh c th nhn trong mt cc trng thi sau y : Mi to : tin trnh ang c to lp. Running : cc ch th ca tin trnh ang c x l. Blocked : tin trnh ch c cp pht mt ti nguyn, hay ch mt s kin xy ra . Ready : tin trnh ch c cp pht CPU x l. Kt thc : tin trnh hon tt x l.

Hnh 2.2 S chuyn trng thi gia cc tin trnh Ti mt thi im, ch c mt tin trnh c th nhn trng thi running trn mt b x l bt k. Trong khi , nhiu tin trnh c th trng thi blocked hay ready. Cc cung chuyn tip trong s trng thi biu din su s chuyn trng thi c th xy ra trong cc iu kin sau : Tin trnh mi to c a vo h thng B iu phi cp pht cho tin trnh mt khong thi gian s dng CPU Tin trnh kt thc Tin trnh yu cu mt ti nguyn nhng cha c p ng v ti nguyn cha sn sng cp pht ti thi im ; hoc tin trnh phi ch mt s kin hay thao tc nhp/xut. B iu phi chn mt tin trnh khc cho x l .

28

Ti nguyn m tin trnh yu cu tr nn sn sng cp pht ; hay s kin hoc thao tc nhp/xut tin trnh ang i hon tt.

I.2. Ch x l ca tin trnh


m bo h thng hot ng ng n, h iu hnh cn phi c bo v khi s xm phm ca cc tin trnh. Bn thn cc tin trnh v d liu cng cn c bo v trnh cc nh hng sai lc ln nhau. Mt cch tip cn gii quyt vn l phn bit hai ch x l cho cc tin trnh : ch khng c quyn v ch c quyn nh vo s tr gip ca c ch phn cng. Tp lnh ca CPU c phn chia thnh cc lnh c quyn v lnh khng c quyn. C ch phn cng ch cho php cc lnh c quyn c thc hin trong ch c quyn. Thng thng ch c h iu hnh hot ng trong ch c quyn, cc tin trnh ca ngi dng hot ng trong ch khng c quyn, khng thc hin c cc lnh c quyn c nguy c nh hng n h thng. Nh vy h iu hnh c bo v. Khi mt tin trnh ngi dng gi n mt li gi h thng, tin trnh ca h iu hnh x l li gi ny s hot ng trong ch c quyn, sau khi hon tt th tr quyn iu khin v cho tin trnh ngi dng trong ch khng c quyn.

Hnh v 2.3 Hai ch x l

I.3. Cu trc d liu khi qun l tin trnh


H iu hnh qun l cc tin trnh trong h thng thng qua khi qun l tin trnh (process control block -PCB). PCB l mt vng nh lu tr cc thng tin m t cho tin trnh, vi cc thnh phn ch yu bao gm : nh danh ca tin trnh (1) : gip phn bit cc tin trnh Trng thi tin trnh (2): xc nh hot ng hin hnh ca tin trnh. Ng cnh ca tin trnh (3): m t cc ti nguyn tin trnh ang trong qu trnh, hoc phc v cho hot ng hin ti, hoc lm c s phc hi hot ng cho tin trnh, bao gm cc thng tin v: Trng thi CPU: bao gm ni dung cc thanh ghi, quan trng nht l con tr lnh IP lu tr a ch cu lnh k tip tin trnh s x l. Cc thng tin ny cn c lu tr khi xy ra mt ngt, nhm c th cho php phc hi hot ng ca tin trnh ng nh trc khi b ngt. B x l: dng cho my c cu hnh nhiu CPU, xc nh s hiu CPU m tin trnh ang s dng. B nh chnh: danh sch cc khi nh c cp cho tin trnh. Ti nguyn s dng: danh sch cc ti mguyn h thng m tin trnh ang s dng. Ti nguyn to lp: danh sch cc ti nguyn c tin trnh to lp. Thng tin giao tip (4): phn nh cc thng tin v quan h ca tin trnh vi cc tin trnh khc trong h thng : 29

Tin trnh cha: tin trnh to lp tin trnh ny . Tin trnh con: cc tin trnh do tin trnh ny to lp . u tin : gip b iu phi c thng tin la chn tin trnh c cp CPU. Thng tin thng k (5): y l nhng thng tin thng k v hot ng ca tin trnh, nh thi gian s dng CPU,thi gian ch. Cc thng tin ny c th c ch cho cng vic nh gi tnh hnh h thng v d on cc tnh hung tng lai.

Hnh v 2.4 Khi m t tin trnh

I.4. Thao tc trn tin trnh


H iu hnh cung cp cc thao tc ch yu sau y trn mt tin trnh : to lp tin trnh (create) kt thc tin trnh (destroy) tm dng tin trnh (suspend) ti kch hot tin trnh (resume) thay i u tin tin trnh I.4.1. To lp tin trnh Trong qu trnh x l, mt tin trnh c th to lp nhiu tin trnh mi bng cch s dng mt li gi h thng tng ng. Tin trnh gi li gi h thng to tin trnh mi s c gi l tin trnh cha, tin trnh c to gi l tin trnh con. Mi tin trnh con n lt n li c th to cc tin trnh miqu trnh ny tip tc s to ra mt cy tin trnh.

30

Hnh v 2.5 Mt cy tin trnh trong h thng UNIX Cc cng vic h iu hnh cn thc hin khi to lp tin trnh bao gm : nh danh cho tin trnh mi pht sinh a tin trnh vo danh sch qun l ca h thng xc nh u tin cho tin trnh to PCB cho tin trnh cp pht cc ti nguyn ban u cho tin trnh Khi mt tin trnh to lp mt tin trnh con, tin trnh con c th s c h iu hnh trc tip cp pht ti nguyn hoc c tin trnh cha cho tha hng mt s ti nguyn ban u. Khi mt tin trnh to tin trnh mi, tin trnh ban u c th x l theo mt trong hai kh nng sau : Tin trnh cha tip tc x l ng hnh vi tin trnh con. Tin trnh cha ch n khi mt tin trnh con no , hoc tt c cc tin trnh con kt thc x l. Cc h iu hnh khc nhau c th chn la cc ci t khc nhau thc hin thao tc to lp mt tin trnh. I.4.2. Kt thc tin trnh Mt tin trnh kt thc x l khi n hon tt ch th cui cng v s dng mt li gi h thng yu cu h iu hnh hy b n. i khi mt tin trnh c th yu cu h iu hnh kt thc x l ca mt tin trnh khc. Khi mt tin trnh kt thc, h iu hnh thc hin cc cng vic : thu hi cc ti nguyn h thng cp pht cho tin trnh hy tin trnh khi tt c cc danh sch qun l ca h thng hy b PCB ca tin trnh Hu ht cc h iu hnh khng cho php cc tin trnh con tip tc tn ti nu tin trnh cha kt thc. Trong nhng h thng nh th, h iu hnh s t ng pht sinh mt lot cc thao tc kt thc tin trnh con.

I.5. Cp pht ti nguyn cho tin trnh


Khi c nhiu ngi s dng ng thi lm vic trong h thng, h iu hnh cn phi cp pht cc ti nguyn theo yu cu cho mi ngi s dng. Do ti nguyn h thng thng rt gii hn v c khi khng th chia s, nn him khi tt c cc yu cu ti nguyn ng thi 31

u c tha mn. V th cn phi nghin cu mt phng php chia s mt s ti nguyn hu hn gia nhiu tin trnh ngi dng ng thi. H iu hnh qun l nhiu loi ti nguyn khc nhau (CPU, b nh chnh, cc thit b ngoi vi ), vi mi loi cn c mt c ch cp pht v cc chin lc cp pht hiu qa. Mi ti nguyn c biu din thng qua mt cu trc d liu, khc nhau v chi tit cho tng loi ti nguyn, nhng c bn cha ng cc thng tin sau : nh danh ti nguyn Trng thi ti nguyn : y l cc thng tin m t chi tit trng thi ti nguyn : phn no ca ti nguyn cp pht cho tin trnh, phn no cn c th s dng ? Hng i trn mt ti nguyn : danh sch cc tin trnh ang ch c cp pht ti nguyn tng ng. B cp pht : l on code m nhim vic cp pht mt ti nguyn c th. Mt s ti nguyn i hi cc gii thut c bit (nh CPU, b nh chnh, h thng tp tin), trong khi nhng ti nguyn khc (nh cc thit b nhp/xut) c th cn cc gii thut cp pht v gii phng tng qut hn.

Hnh 2.6 Khi qun l ti nguyn Cc mc tiu ca k thut cp pht : Bo m mt s lng hp l cc tin trnh truy xut ng thi n cc ti nguyn khng chia s c. Cp pht ti nguyn cho tin trnh c yu cu trong mt khong thi gian tr hon c th chp nhn c. Ti u ha s s dng ti nguyn. c th tha mn cc mc tiu k trn, cn phi gii quyt cc vn ny sinh khi c nhiu tin trnh ng thi yu cu mt ti nguyn khng th chia s.

II. IU PHI TIN TRNH


Trong mi trng a nhim, c th xy ra tnh hung nhiu tin trnh ng thi sn sng x l. Mc tiu ca cc h phn chia thi gian (time-sharing) l chuyn i CPU qua li gia cc tin trnh mt cch thng xuyn nhiu ngi s dng c th tng tc cng lc vi tng chng trnh trong qu trnh x l. thc hin c mc tiu ny, h iu hnh phi la chn tin trnh c x l tip theo. B iu phi s s dng mt gii thut iu phi thch hp thc hin nhim v ny. 32

Mt thnh phn khc ca h iu hnh cng tim n trong cng tc iu phi l b phn phi (dispatcher). B phn phi s chu trch nhim chuyn i ng cnh v trao CPU cho tin trnh c chn bi b iu phi x l.

II.1. Gii thiu


II.1.1. Mc tiu iu phi B iu phi khng cung cp c ch, m a ra cc quyt nh. Cc h iu hnh xy dng nhiu chin lc khc nhau thc hin vic iu phi, nhng tu chung cn t c cc mc tiu sau : a) S cng bng ( Fairness) : Cc tin trnh chia s CPU mt cch cng bng, khng c tin trnh no phi ch i v hn c cp pht CPU b) Tnh hiu qa (Efficiency) : H thng phi tn dng c CPU 100% thi gian. c) Thi gian p ng hp l (Response time) : Cc tiu ho thi gian hi p cho cc tng tc ca ngi s dng d) Thi gian lu li trong h thng ( Turnaround Time) : Cc tiu ha thi gian hon tt cc tc v x l theo l. e) Thng lng ti a (Throughput ) : Cc i ha s cng vic c x l trong mt n v thi gian. Tuy nhin thng khng th tha mn tt c cc mc tiu k trn v bn thn chng c s mu thun vi nhau m ch c th dung ha chng mc no . II.1.2. Cc c im ca tin trnh iu phi hot ng ca cc tin trnh l mt vn rt phc tp, i hi h iu hnh khi gii quyt phi xem xt nhiu yu t khc nhau c th t c nhng mc tiu ra. Mt s c tnh ca tin trnh cn c quan tm nh tiu chun iu phi : a) Tnh hng xut / nhp ca tin trnh ( I/O-boundedness): Khi mt tin trnh nhn c CPU, ch yu n ch s dng CPU n khi pht sinh mt yu cu nhp xut ? Hot ng ca cc tin trnh nh th thng bao gm nhiu lt s dng CPU, mi lt trong mt thi gian kh ngn. b) Tnh hng x l ca tin trnh ( CPU-boundedness): Khi mt tin trnh nhn c CPU, n c khuynh hng s dng CPU n khi ht thi gian dnh cho n ? Hot ng ca cc tin trnh nh th thng bao gm mt s t lt s dng CPU , nhng mi lt trong mt thi gian di. c) Tin trnh tng tc hay x l theo l : Ngi s dng theo kiu tng tc thng yu cu c hi p tc thi i vi cc yu cu ca h, trong khi cc tin trnh ca tc v c x l theo l ni chung c th tr hon trong mt thi gian chp nhn c. d) u tin ca tin trnh : Cc tin trnh c th c phn cp theo mt s tiu chun nh gi no , mt cch hp l, cc tin trnh quan trng hn ( c u tin cao hn) cn c u tin hn. e) Thi gian s dng CPU ca tin trnh : Mt s quan im u tin chn nhng tin trnh s dng CPU nhiu thi gian nht v hy vng chng s cn t thi gian nht hon tt v ri khi h thng . Tuy nhin cng c

33

quan im cho rng cc tin trnh nhn c CPU trong t thi gian l nhng tin trnh phi ch lu nht, do vy u tin chn chng. f) Thi gian cn li tin trnh cn hon tt : C th gim thiu thi gian ch i trung bnh ca cc tin trnh bng cch cho cc tin trnh cn t thi gian nht hon tt c thc hin trc. Tuy nhin ng tic l rt him khi bit c tin trnh cn bao nhiu thi gian na kt thc x l. II.1.3. iu phi khng c quyn v iu phi c quyn (preemptive/nopreemptive) Thut ton iu phi cn xem xt v quyt nh thi im chuyn i CPU gia cc tin trnh. H iu hnh c th thc hin c ch iu phi theo nguyn l c quyn hoc khng c quyn. iu phi c quyn : Nguyn l iu phi c quyn cho php mt tin trnh khi nhn c CPU s c quyn c chim CPU n khi hon tt x l hoc t nguyn gii phng CPU. Khi quyt nh iu phi CPU s xy ra trong cc tnh hung sau: Khi tin trnh chuyn t trng thi ang x l(running) sang trng thi b kha blocked ( v d ch mt thao tc nhp xut hay ch mt tin trnh con kt thc). Khi tin trnh kt thc. Cc gii thut c quyn thng n gin v d ci t. Tuy nhin chng thng khng thch hp vi cc h thng tng qut nhiu ngi dng, v nu cho php mt tin trnh c quyn x l bao lu ty , c ngha l tin trnh ny c th gi CPU mt thi gian khng xc nh, c th ngn cn nhng tin trnh cn li trong h thng c mt c hi x l. iu phi khng c quyn : Ngc vi nguyn l c quyn, iu phi theo nguyn l khng c quyn cho php tm dng hot ng ca mt tin trnh ang sn sng x l. Khi mt tin trnh nhn c CPU, n vn c s dng CPU n khi hon tt hoc t nguyn gii phng CPU, nhng mt tin trnh khc c u tin c th dnh quyn s dng CPU ca tin trnh ban u. Nh vy l tin trnh c th b tm dng hot ng bt c lc no m khng c bo trc, tin trnh khc x l. Cc quyt nh iu phi xy ra khi : Khi tin trnh chuyn t trng thi ang x l (running) sang trng thi b kha blocked ( v d ch mt thao tc nhp xut hay ch mt tin trnh con kt thc). Khi tin trnh chuyn t trng thi ang x l (running) sang trng thi ready ( v d xy ra mt ngt). Khi tin trnh chuyn t trng thi ch (blocked) sang trng thi ready ( v d mt thao tc nhp/xut hon tt). Khi tin trnh kt thc. Cc thut ton iu phi theo nguyn tc khng c quyn ngn cn c tnh trng mt tin trnh c chim CPU, nhng vic tm dng mt tin trnh c th dn n cc mu thun trong truy xut, i hi phi s dng mt phng php ng b ha thch hp gii quyt. Trong cc h thng s dng nguyn l iu phi c quyn c th xy ra tnh trng cc tc v cn thi gian x l ngn phi ch tc v x l vi thi gian rt di hon tt! Nguyn l iu phi c quyn thng ch thch hp vi cc h x l theo l. i vi cc h thng tng tc (time sharing), cc h thi gian thc (real time),cn phi s dng nguyn l iu phi khng c quyn cc tin trnh quan trng c c hi hi p kp thi. Tuy nhin thc hin iu phi theo nguyn l khng c quyn i hi nhng c ch phc tp trong vic phn nh u tin, v pht sinh thm chi ph khi chuyn i CPU qua li gia cc tin trnh. 34

II.2. T chc iu phi


II.2.1. Cc danh sch s dng trong qu trnh iu phi. H iu hnh s dng hai loi danh sch thc hin iu phi cc tin trnh l danh sch sn sng (ready list) v danh sch ch i(waiting list). Khi mt tin trnh bt u i vo h thng, n c chn vo danh sch cc tc v (job list). Danh sch ny bao gm tt c cc tin trnh ca h thng. Nhng ch cc tin trnh ang thng tr trong b nh chnh v trng thi sn sng tip nhn CPU hot ng mi c a vo danh sch sn sng. B iu phi s chn mt tin trnh trong danh sch sn sng v cp CPU cho tin trnh . Tin trnh c cp CPU s thc hin x l, v c th chuyn sang trng thi ch khi xy ra cc s kin nh i mt thao tc nhp/xut hon tt, yu cu ti nguyn cha c tha mn, c yu cu tm dng ...Khi tin trnh s c chuyn sang mt danh sch ch i. H iu hnh ch s dng mt danh sch sn sng cho ton h thng, nhng mi mt ti nguyn ( thit b ngoi vi ) c mt danh sch ch i ring bao gm cc tin trnh ang ch c cp pht ti nguyn .

Hnh 2.9 Cc danh sch iu phi Qu trnh x l ca mt tin trnh tri qua nhng chu k chuyn i qua li gia danh sch sn sng v danh sch ch i. S di y m t s iu phi cc tin trnh da trn cc danh sch ca h thng. Thot u tin trnh mi c t trong danh sch cc tin trnh sn sng (ready list), n s i trong danh sch ny cho n khi c chn cp pht CPU v bt u x l. Sau c th xy ra mt trong cc tnh hung sau : Tin trnh pht sinh mt yu cu mt ti nguyn m h thng cha th p ng, khi tin trnh s c chuyn sang danh sch cc tin trnh ang ch ti nguyn tng ng. Tin trnh c th b bt buc tm dng x l do mt ngt xy ra, khi tin trnh c a tr li vo danh sch sn sng ch c cp CPU cho lt tip theo.

35

Hnh 2.10 S chuyn i gia cc danh sch iu phi Trong trng hp u tin, tin trnh cui cng s chuyn t trng thi blocked sang trng thi ready v li c a tr vo danh sch sn sng. Tin trnh lp li chu k ny cho n khi hon tt tc v th c h thng hy b khi mi danh sch iu phi. II.2.2. Cc cp iu phi Thc ra cng vic iu phi c h iu hnh thc hin hai mc : iu phi tc v (job scheduling) v iu phi tin trnh ( process scheduling). a) iu phi tc v Quyt nh la chn tc v no c a vo h thng, v np nhng tin trnh ca tc v vo b nh chnh thc hin. Chc nng iu phi tc v quyt nh mc a nhim ca h thng ( s lng tin trnh trong b nh chnh). Khi h thng to lp mt tin trnh, hay c mt tin trnh kt thc x l th chc nng iu phi tc v mi c kch hot. V mc a chng tng i n nh nn chc nng iu phi tc v c tn sut hot ng thp . h thng hot ng tt, b iu phi tc v cn bit tnh cht ca tin trnh l hng nhp xut (I/O bounded) hay hng x l ( CPU bounded). Mt tin trnh c gi l hng nhp xut nu n ch yu n ch s dng CPU thc hin cc thao tc nhp xut. Ngc li mt tin trnh c gi l hng x l nu n ch yu n ch s dng CPU thc hin cc thao tc tnh ton. cn bng hot ng ca CPU v cc thit b ngoi vi, b iu phi tc v nn la chn cc tin trnh np vo b nh sao cho h thng l s pha trn hp l gia cc tin trnh hng nhp xut v cc tin trnh hng x l b) iu phi tin trnh Chn mt tin trnh trng thi sn sng ( c np vo b nh chnh, v c ti nguyn hot ng ) v cp pht CPU cho tin trnh thc hin. B iu phi tin trnh c tn sut hot ng cao, sau mi ln xy ra ngt ( do ng h bo gi, do cc thit b ngoi vi...), thng l 1 ln trong khong 100ms. Do vy nng cao hiu sut ca h thng, cn phi tng tc x l ca b iu phi tin trnh. Chc nng iu phi tin trnh l mt trong chc nng c bn, quan trng nht ca h iu hnh. Trong nhiu h iu hnh, c th khng c b iu phi tc v hoc tch bit rt t i vi b iu phi tin trnh. Mt vi h iu hnh li a ra mt cp iu phi trung gian kt hp c hai cp iu phi tc v v tin trnh

36

Hnh 2.11 Cp iu phi trung gian

II.3. Cc chin lc iu phi


II.3.1. Chin lc FIFO Nguyn tc : CPU c cp pht cho tin trnh u tin trong danh sch sn sng c yu cu, l tin trnh c a vo h thng sm nht. y l thut ton iu phi theo nguyn tc c quyn. Mt khi CPU c cp pht cho tin trnh, CPU ch c tin trnh t nguyn gii phng khi kt thc x l hay khi c mt yu cu nhp/xut.

Hnh 2.12 iu phi FIFO V d : Tin trnh P1 P2 P3 Thi im vo RL 0 1 2 Thi gian x l 24 3 3

Th t cp pht CPU cho cc tin trnh l : P1


0

P2
24

P3
27 30

thi gian ch i c x l l 0 i vi P1, (24 -1) vi P2 v (24+3-2) vi P3. Thi gian ch trung bnh l ( 0+23+25)/3 = 16 milisecondes. Tho lun : Thi gian ch trung bnh khng t cc tiu, v bin i ng k i vi cc gi tr v thi gian yu cu x l v th t khc nhau ca cc tin trnh trong danh sch sn sng. C th xy ra hin tng tch ly thi gian ch, khi cc tt c cc tin trnh (c th c yu cu thi gian ngn) phi ch i mt tin trnh c yu cu thi gian di kt thc x l. Gii thut ny c bit khng ph hp vi cc h phn chia thi gian, trong cc h ny, cn cho php mi tin trnh c cp pht CPU u n trong tng khong thi gian. 37

II.3.2. Chin lc phn phi xoay vng (Round Robin) Nguyn tc : Danh sch sn sng c x l nh mt danh sch vng, b iu phi ln lt cp pht cho tng tin trnh trong danh sch mt khong thi gian s dng CPU gi l quantum. y l mt gii thut iu phi khng c quyn : khi mt tin trnh s dng CPU n ht thi gian quantum dnh cho n, h iu hnh thu hi CPU v cp cho tin trnh k tip trong danh sch. Nu tin trnh b kha hay kt thc trc khi s dng ht thi gian quantum, h iu hnh cng lp tc cp pht CPU cho tin trnh khc. Khi tin trnh tiu th ht thi gian CPU dnh cho n m cha hon tt, tin trnh c a tr li vo cui danh sch sn sng i c cp CPU trong lt k tip. V d :

Hnh 2.13 iu phi Round Robin Tin trnh P1 P2 P3 Thi im vo RL 0 1 2 Thi gian x l 24 3 3

Nu s dng quantum l 4 milisecondes, th t cp pht CPU s l : P1


0

P2
4

P3
7

P1
10

P1
14

P1
18

P1
22

P1
26 30

Thi gian ch i trung bnh s l (0+6+3+5)/3 = 4.66 milisecondes. Nu c n tin trh trong danh sch sn sng v s dng quantum q, th mi tin trnh s c cp pht CPU 1/n trong tng khong thi gian q. Mi tin trnh s khng phi i qu (n1)q n v thi gian trc khi nhn c CPU cho lt k tip. Tho lun : Vn ng quan tm i vi gii thut RR l di ca quantum. Nu thi lng quantum qu b s pht sinh qu nhiu s chuyn i gia cc tin trnh v khin cho vic s dng CPU km hiu qa. Nhng nu s dng quantum qu ln s lm tng thi gian hi p v gim kh nng tng tc ca h thng. II.3.3. iu phi vi u tin Nguyn tc : Mi tin trnh c gn cho mt u tin tng ng, tin trnh c u tin cao nht s c chn cp pht CPU u tin. u tin c th c nh ngha ni ti hay nh vo cc yu t bn ngoi. u tin ni ti s dng cc i lng c th o lng tnh ton u tin ca tin trnh, v d cc gii hn thi gian, nhu cu b nh u tin cng

38

c th c gn t bn ngoi da vo cc tiu chun do h iu hnh nh tm quan trng ca tin trnh, loi ngi s dng s hu tin trnh Gii thut iu phi vi u tin c th theo nguyn tc c quyn hay khng c quyn. Khi mt tin trnh c a vo danh sch cc tin trnh sn sng, u tin ca n c so snh vi u tin ca tin trnh hin hnh ang x l. Gii thut iu phi vi u tin v khng c quyn s thu hi CPU t tin trnh hin hnh cp pht cho tin trnh mi nu u tin ca tin trnh ny cao hn tin trnh hin hnh. Mt gii thut c quyn s ch n gin chn tin trnh mi vo danh sch sn sng, v tin trnh hin hnh vn tip tc x l ht thi gian dnh cho n. V d : ( u tin 1 > u tin 2> u tin 3) Tin trnh Thi im vo RL P1 P2 P3 0 1 2 u tin Thi gian x l 3 1 2 24 3 3

S dng thut gii c quyn, th t cp pht CPU nh sau : P1


0

P2
24

P3
27 30

S dng thut gii khng c quyn, th t cp pht CPU nh sau : P1


0

P2
1

P3
4

P1
7 30

Tho lun : Tnh trng i CPU (starvation) l mt vn chnh yu ca cc gii thut s dng u tin. Cc gii thut ny c th cc tin trnh c u tin thp ch i CPU v hn ! ngn cn cc tin trnh c u tin cao chim dng CPU v thi hn, b iu phi s gim dn u tin ca cc tin trnh ny sau mi ngt ng h. Nu u tin ca tin trnh ny gim xung thp hn tin trnh c u tin cao th nh, s xy ra s chuyn i quyn s dng CPU.Qu trnh ny gi l s lo ha (aging) tin trnh. II.3.4. Chin lc cng vic ngn nht (Shortest-job-first SJF) Nguyn tc : y l mt trng hp c bit ca gii thut iu phi vi u tin. Trong gii thut ny, u tin p c gn cho mi tin trnh l nghch o ca thi gian x l t m tin trnh yu cu : p = 1/t. Khi CPU c t do, n s c cp pht cho tin trnh yu cu t thi gian nht kt thc- tin trnh ngn nht. Gii thut ny cng c th c quyn hay khng c quyn. S chn la xy ra khi c mt tin trnh mi c a vo danh sch sn sng trong khi mt tin trnh khc ang x l. Tin trnh mi c th s hu mt yu cu thi gian s dng CPU cho ln tip theo (CPU-burst) ngn hn thi gian cn li m tin trnh hin hnh cn x l. Gii thut SJF khng c quyn s dng hot ng ca tin trnh hin hnh, trong khi gii thut c quyn s cho php tin trnh hin hnh tip tc x l. V d : 39

Tin trnh

Thi im vo Thi gian x RL l 0 1 2 3 6 8 4 2

P1 P2 P3 P4

S dng thut gii SJF c quyn, th t cp pht CPU nh sau: P1


0

P4
6

P3
8

P2
12 20

S dng thut gii SJF khng c quyn, th t cp pht CPU nh sau: P1


0

P4
3

P1
5

P3
8

P2
12 20

Tho lun : Gii thut ny cho php t c thi gian ch trung bnh cc tiu. Kh khn thc s ca gii thut SJF l khng th bit c thi gian yu cu x l cn li ca tin trnh ? Ch c th d on gi tr ny theo cch tip cn sau : gi tn l di ca thi gian x l ln th n, n+1 l gi tr d on cho ln x l tip theo. Vi hy vng gi tr d on s gn ging vi cc gi tr trc , c th s dng cng thc: n+1 = tn + (1- ) n Trong cng thc ny,tn cha ng thng tin gn nht ; n cha ng cc thng tin qu kh c tch ly. Tham s ( 0 1) kim sot trng s ca hin ti gn hay qu kh nh hng n cng thc d n. II.3.5. Chin lc iu phi vi nhiu mc u tin Nguyn tc : tng chnh ca gii thut l phn lp cc tin trnh ty theo u tin ca chng c cch thc iu phi thch hp cho tng nhm. Danh sch sn sng c phn tch thnh cc danh sch ring bit theo cp u tin, mi danh sch bao gm cc tin trnh c cng u tin v c p dng mt gii thut iu phi thch hp iu phi. Ngoi ra, cn c mt gii thut iu phi gia cc nhm, thng gii thut ny l gii thut khng c quyn v s dng u tin c nh.Mt tin trnh thuc v danh sch cp u tin i s ch c cp pht CPU khi cc danh sch cp u tin ln hn i trng.

40

Hnh 2.14 iu phi nhiu cp u tin Tho lun : Thng thng, mt tin trnh s c gn vnh vin vi mt danh sch cp u tin i khi n c a vo h thng. Cc tin trnh khng di chuyn gia cc danh sch. Cch t chc ny s lm gim chi ph iu phi, nhng li thiu linh ng v c th dn n tnh trng i CPU cho cc tin trnh thuc v nhng danh sch c u tin thp. Do vy c th xy dng gii thut iu phi nhiu cp u tin v xoay vng. Gii thut ny s chuyn dn mt tin trnh t danh sch c u tin cao xung danh sch c u tin thp hn sau mi ln s dng CPU. Cng vy, mt tin trnh ch qu lu trong cc danh sch c u tin thp cng c th c chuyn dn ln cc danh sch c u tin cao hn. Khi xy dng mt gii thut iu phi nhiu cp u tin v xoay vng cn quyt nh cc tham s : S lng cc cp u tin Gii thut iu phi cho tng danh sch ng vi mt cp u tin. Phng php xc nh thi im di chuyn mt tin trnh ln danh sch c u tin cao hn. Phng php xc nh thi im di chuyn mt tin trnh ln danh sch c u tin thp hn. Phng php s dng xc nh mt tin trnh mi c a vo h thng s thuc danh sch ng vi tin no.

41

Hnh 2.15 iu phi Multilevel Feedback II.3.6. Chin lc iu phi X s (Lottery) Nguyn tc : tng chnh ca gii thut l pht hnh mt s v s v phn phi cho cc tin trnh trong h thng. Khi n thi im ra quyt nh iu phi, s tin hnh chn 1 v "trng gii", tin trnh no s hu v ny s c nhn CPU Tho lun : Gii thut Lottery cung cp mt gii php n gin nhng bo m tnh cng bng cho thut ton iu phi vi chi ph thp cp nht u tin cho cc tin trnh :

III. Tm tt
Trong sut chu trnh sng, tin trnh chuyn i qua li gia cc trng thi ready, running v blocked. B iu phi ca h iu hnh chu trch nhim p dng mt gai thut iu phi thch hp chn tin trnh thch hp c s dng CPU, v b phn phi s chuyn giao CPU cho tin trnh ny. Cc gii thut iu phi thng dng : FIFO, RoundRobin, iu phi vi u tin, SJF, Multilevel Feedback

Cu hi cng c bi hc
Cc cu hi cn tr li c sau bi hc ny : 1. Thng tin lu tr trong PCB v TCB ? 2. T chc iu phi tin trnh ? 3. Phn tch u, khuyt ca cc chin lc iu phi

Bi tp
Bi 1. Xt tp cc tin trnh sau (vi thi gian yu cu CPU v u tin km theo) : Tin trnh Thi im vo RL 0 1 2 3 4 Thi gian CPU u tin

P1 P2 P3 P4 P5

10 1 2 1 5

3 1 3 4 2

Gi s cc tin trnh cng c a vo h thng ti thi im 0

42

a)Cho bit kt qu iu phi hot ng ca cc tin trnh trn theo thut ton FIFO; SJF; iu phi theo u tin c quyn ( u tin 1 > 2 > ...); v RR (quantum=2). b)Cho bit thi gian lu li trong h thng (turnaround time) ca tng tin trnh trong tng thut ton iu phi cu a. c)Cho bit thi gian ch trong h thng (waiting time) ca tng tin trnh trong tng thut ton iu phi cu a. d)Thut ton iu phi no trong cc thut ton cu a cho thi gian ch trung bnh l cc tiu ? Bi 2. Gi s c cc tin trnh sau trong h thng : Tin trnh P1 P2 P3 Thi im vo RL 0.0 0.4 1.0 Thi gian CPU 8 4 1

S dng nguyn tc iu phi c quyn v cc thng tin c c ti thi im ra quyt nh tr li cc cu hi sau y : a)Cho bit thi gian lu li trung bnh trong h thng (turnaround time) ca cc tin trnh trong thut ton iu phi FIFO. b)Cho bit thi gian lu li trung bnh trong h thng (turnaround time) ca cc tin trnh trong thut ton iu phi SJF. c)Thut ton SJF d nh ci tin s thc hin ca h thng , nhng lu chng ta phi chn iu phi P1 ti thi im 0 v khng bit rng s c hai tin trnh ngn hn vo h thng sau . Th tnh thi gian lu li trung bnh trong thng nu CPU nhn ri trong 1 n v thi gian u tin v sau s dng SJF iu phi. Lu P1 v P2 s phi ch trong sut thi gian nhn ri ny, do vy thi gian ch ca chng tng ln. Thut ton iu phi ny c bit n nh iu phi da trn thng tin v tng lai. Bi 3. Phn bit s khc nhau trong cch tip cn u tin cho tin trnh ngn trong cc thut ton iu phi sau : a) FIFO. b)RR c)iu phi vi u tin a cp Bi 4. Cho bit hai u im chnh ca m hnh a tiu trnh so vi a tin trnh. M t mt ng dng thch hp v m hnh a tiu trnh v mt ng dng khc khng thch hp. Bi 5. M t cc x l h iu hnh phi thc hin khi chuyn i ng cnh gia : a)cc tin trnh b)cc tiu trnh

43

Bi 6. Xc nh thi lng quantum q l mt nhim v kh khn. Gi s chi ph trung bnh cho mt ln chuyn i ng cnh l s, v thi gian trung bnh mt tin trnh hng nhp xut s dng CPU trc khi pht sinh mt yu cu nhp xut l t ( t>>s). Tho lun cc tc ng n s thc hin ca h thng khi chn q theo cc quy tc sau : a)q bt nh b)q ln hn 0 1 t c)q = s d)s < q < t e)q = t f)q > t Bi 7. Gi s mt h iu hnh p dng gii thut iu phi multilevel feedback vi 5 mc u tin (gim dn). Thi lng quantum dnh cho hng i cp 1 l 0,5s. Mi hng i cp thp hn s c thi lng quantum di gp i hng i ng vi mc u tin cao hn n. Mt tin trnh khi vo h thng s c a vo hng i mc cao nht, v chuyn dn xung cc hng i bn di sau mi lt s dng CPU. Mt tin trnh ch c th b thu hi CPU khi s dng ht thi lng quantum dnh cho n. H thng c th thc hin cc tc v x l theo l hoc tng tc, v mi tc v li c th hng x l hay hng nhp xut. a)Gii thch ti sao h thng ny hot ng khng hiu qu ? b)Cn phi thay i (ti thiu) nh th no h thng iu phi cc tc v vi nhng bn cht khc bit nh th tt hn ?

44

CHNG 4: LIN LC GIA CC TIN TRNH & VN NG B HO


Cc ti n trnh trn nguyn t c l hon ton c l p, nhng th c t c th nh th khng ? Trong bi ny chng ta s tm hi u l do cc ti n trnh c nhu c u lin l c, cc c ch h tr vi c lin l c ny cng nh nh ng v n t ra khi cc ti n trnh trao i thng tin v i nhau.

I. LIN LC GIA CC TIN TRNH I.1. Nhu cu lin lc gia cc tin trnh
Trong mi trng a nhim, mt tin trnh khng n c trong h thng , m c th nh hng n cc tin trnh khc , hoc b cc tin trnh khc tc ng. Ni cch khc, cc tin trnh l nhng thc th c lp , nhng chng vn c nhu cu lin lc vi nhau : Chia s thng tin: nhiu tin trnh c th cng quan tm n nhng d liu no , do vy h iu hnh cn cung cp mt mi trng cho php s truy cp ng thi n cc d liu chung. Hp tc hon thnh tc v: i khi t c mt s x l nhanh chng, ngi ta phn chia mt tc v thnh cc cng vic nh c th tin hnh song song. Thng th cc cng vic nh ny cn hp tc vi nhau cng hon thnh tc v ban u, v d d liu kt xut ca tin trnh ny li l d liu nhp cho tin trnh khc Trong cc trng hp , h iu hnh cn cung cp c ch cc tin trnh c th trao i thng tin vi nhau.

I.2. Cc vn ny sinh trong vic lin lc gia cc tin trnh


Do mi tin trnh s hu mt khng gian a ch ring bit, nn cc tin trnh khng th lin lc trc tip d dng m phi nh vo cc c ch do h iu hnh cung cp. Khi cung cp c ch lin lc cho cc tin trnh, h iu hnh thng phi tm gii php cho cc vn chnh yu sau : Lin kt tng minh hay tim n (explicit naming/implicit naming) : tin trnh c cn phi bit tin trnh no ang trao i hay chia s thng tin vi n ? Mi lin kt c gi l tng minh khi c thit lp r rng , trc tip gia cc tin trnh, v l tim n khi cc tin trnh lin lc vi nhau thng qua mt qui c ngm no . Lin lc theo ch ng b hay khng ng b (blocking / non-blocking): khi mt tin trnh trao i thng tin vi mt tin trnh khc, cc tin trnh c cn phi i cho thao tc lin lc hon tt ri mi tip tc cc x l khc ? Cc tin trnh lin lc theo c ch ng b s ch nhau hon tt vic lin lc, cn cc tin trnh lin lc theo c ch nonblocking th khng. Lin lc gia cc tin trnh trong h thng tp trung v h thng phn tn: c ch lin lc gia cc tin trnh trong cng mt my tnh c s khc bit vi vic lin lc gia cc tin trnh gia nhng my tnh khc nhau? Hu ht cc h iu hnh a ra nhiu c ch lin lc khc nhau, mi c ch c nhng c tnh ring, v thch hp trong mt hon cnh chuyn bit.

45

II. Cc C Ch Thng Tin Lin lc II.1. Tn hiu (Signal)


Gii thiu: Tn hiu l mt c ch phn mm tng t nh cc ngt cng tc ng n cc tin trnh. Mt tn hiu c s dng thng bo cho tin trnh v mt s kin no xy ra. C nhiu tn hiu c nh ngha, mi mt tn hiu c mt ngha tng ng vi mt s kin c trng. V d : Mt s tn hiu ca UNIX Tn hiu
SIGINT

M t
Ngi dng nhn phm DEL ngt x l tin trnh

SIGQUIT

Yu cu thot x l

SIGILL

Tin trnh x l mt ch th bt hp l

SIGKILL

Yu cu kt thc mt tin trnh

SIGFPT

Li floating point xy ra ( chia cho 0)

SIGPIPE

Tin trnh ghi d liu vo pipe m khng c reader

SIGSEGV

Tin trnh truy xut n mt a ch bt hp l

SIGCLD SIGUSR1

Tin trnh con kt thc Tn hiu 1 do ngi dng nh ngha

SIGUSR2

Tn hiu 2 do ngi dng nh ngha

Mi tin trnh s hu mt bng biu din cc tn hiu khc nhau. Vi mi tn hiu s c tng ng mt trnh x l tn hiu (signal handler) qui nh cc x l ca tin trnh khi nhn c tn hiu tng ng. Cc tn hiu c gi i bi : Phn cng (v d li do cc php tnh s hc) Ht nhn h iu hnh gi n mt tin trnh ( v d lu tin trnh khi c mt thit b nhp/xut t do). 46

Mt tin trnh gi n mt tin trnh khc ( v d tin trnh cha yu cu mt tin trnh con kt thc) Ngi dng ( v d nhn phm Ctl-C ngt x l ca tin trnh) Khi mt tin trnh nhn mt tn hiu, n c th x s theo mt trong cc cch sau : B qua tn hiu X l tn hiu theo kiu mc nh Tip nhn tn hiu v x l theo cch c bit ca tin trnh.

Hnh 3.1 Lin lc bng tn hiu Tho lun: Lin lc bng tn hiu mang tnh cht khng ng b, ngha l mt tin trnh nhn tn hiu khng th xc nh trc thi im nhn tnh hiu. Hn na cc tin trnh khng th kim tra c s kin tng ng vi tn hiu c tht s xy ra ? Cui cng, cc tin trnh ch c th thng bo cho nhau v mt bin c no , m khng trao i d liu theo c ch ny c.

II.2. Pipe
Gii thiu: Mt pipe l mt knh lin lc trc tip gia hai tin trnh : d liu xut ca tin trnh ny c chuyn n lm d liu nhp cho tin trnh kia di dng mt dng cc byte. Khi mt pipe c thit lp gia hai tin trnh, mt trong chng s ghi d liu vo pipe v tin trnh kia s c d liu t pipe. Th t d liu truyn qua pipe c bo ton theo nguyn tc FIFO. Mt pipe c kch thc gii hn (thng l 4096 k t)

Hnh 3.2 Lin lc qua pipe Mt tin trnh ch c th s dng mt pipe do n to ra hay k tha t tin trnh cha. H iu hnh cung cp cc li gi h thng read/write cho cc tin trnh thc hin thao tc c/ghi d liu trong pipe. H iu hnh cng chu trch nhim ng b ha vic truy xut pipe trong cc tnh hung: Tin trnh c pipe s b kha nu pipe trng, n s phi i n khi pipe c d liu truy xut. 47

Tin trnh ghi pipe s b kha nu pipe y, n s phi i n khi pipe c ch trng cha d liu. Tho lun: Lin lc bng pipe l mt c ch lin lc mt chiu (unidirectional), ngha l mt tin trnh kt ni vi mt pipe ch c th thc hin mt trong hai thao tc c hoc ghi, nhng khng th thc hin c hai. Mt s h iu hnh cho php thit lp hai pipe gia mt cp tin trnh to lin lc hai chiu. Trong nhng h thng , c nguy c xy ra tnh trng tc nghn (deadlock) : mt pipe b gii hn v kch thc, do vy nu c hai pipe ni kt hai tin trnh u y(hoc u trng) v c hai tin trnh u mun ghi (hay c) d liu vo pipe(mi tin trnh ghi d liu vo mt pipe), chng s cng b kha v ch ln nhau mi mi ! C ch ny cho php truyn d liu vi cch thc khng cu trc. Ngoi ra, mt gii hn ca hnh thc lin lc ny l ch cho php kt ni hai tin trnh c quan h cha-con, v trn cng mt my tnh.

II.3. Vng nh chia s


Gii thiu: Cch tip cn ca c ch ny l cho nhiu tin trnh cng truy xut n mt vng nh chung gi l vng nh chia s (shared memory).Khng c bt k hnh vi truyn d liu no cn phi thc hin y, d liu ch n gin c t vo mt vng nh m nhiu tin trnh c th cng truy cp c. Vi phng thc ny, cc tin trnh chia s mt vng nh vt l thng qua trung gian khng gian a ch ca chng. Mt vng nh chia s tn ti c lp vi cc tin trnh, v khi mt tin trnh mun truy xut n vng nh ny, tin trnh phi kt gn vng nh chung vo khng gian a ch ring ca tng tin trnh, v thao tc trn nh mt vng nh ring ca mnh.

Hnh 3.3 Lin lc qua vng nh chia s Tho lun:. y l phng php nhanh nht trao i d liu gia cc tin trnh. Nhng phng thc ny cng lm pht sinh cc kh khn trong vic bo m s ton vn d liu (coherence) , v d : lm sao bit c d liu m mt tin trnh truy xut l d liu mi nht m tin trnh khc ghi ? Lm th no ngn cn hai tin trnh cng ng thighi d liu vo vng nh chung ?R rng vng nh chia s cn c bo v bng nhng c ch ng b ha thch hp.. Mt khuyt im ca phng php lin lc ny l khng th p dng hiu qu trong cc h phn tn , trao i thng tin gia cc my tnh khc nhau.

II.4. Trao i thng ip (Message)


Gii thiu: H iu hnh cn cung cp mt c ch lin lc gia cc tin trnh khng thng qua vic chia s mt ti nguyn chung , m thng qua vic gi thng ip. h tr c ch

48

lin lc bng thng ip, h iu hnh cung cp cc hm IPC chun (Interprocess communication), c bn l hai hm: Send(message) : gi mt thng ip Receive(message) : nhn mt thng ip Nu hai tin trnh P v Q mun lin lc vi nhau, cn phi thit lp mt mi lin kt gia hai tin trnh, sau P, Q s dng cc hm IPC thch hp trao i thng ip, cui cng khi s lin lc chm dt mi lin kt gia hai tin trnh s b hy. C nhiu cch thc thc hin s lin kt gia hai tin trnh v ci t cc theo tc send /receive tng ng : lin lc trc tip hay gin tip, lin lc ng b hoc khng ng b , kch thc thng ip l c nh hay khng Nu cc tin trnh lin lc theo kiu lin kt tng minh, cc hm Send v Receive s c ci t vi tham s : Send(destination, message) : gi mt thng ip n destination Receive(source,message) : nhn mt thng ip t source Tho lun: n v truyn thng tin trong c ch trao i thng ip l mt thng ip, do cc tin trnh c th trao i d liu dng c cu trc.

II.5. Sockets
Gii thiu: Mt socket l mt thit b truyn thng hai chiu tng t nh tp tin, chng ta c th c hay ghi ln n, tuy nhin mi socket l mt thnh phn trong mt mi ni no gia cc my trn mng my tnh v cc thao tc c/ghi chnh l s trao i d liu gia cc ng dng trn nhiu my khc nhau. S dng socket c th m phng hai phng thc lin lc trong thc t : lin lc th tn (socket ng vai tr bu cc) v lin lc in thoi (socket ng vai tr tng i) . Cc thuc tnh ca socket: Domaine: nh ngha dng thc a ch v cc nghi thc s dng. C nhiu domaines, v d UNIX, INTERNET, XEROX_NS, ... Type: nh ngha cc c im lin lc: a) S tin cy b) S bo ton th t d liu c) Lp li d liu d) Ch ni kt e) Bo ton gii hn thng ip f) Kh nng gi thng ip khn thc hin lin lc bng socket, cn tin hnh cc thao tc :: To lp hay m mt socket Gn kt mt socket vi mt a ch Lin lc : c hai kiu lin lc ty thuc vo ch ni kt: a) Lin lc trong ch khng lin kt : lin lc theo hnh thc hp th: hai tin trnh lin lc vi nhau khng kt ni trc tip mi thng ip phi km theo a ch ngi nhn. Hnh thc lin lc ny c c im c : 49

ngi gi khng chc chn thng ip ca hc c gi n ngi nhn, mt thng ip c th c gi nhiu ln, hai thng ip gi theo mt th t no c th n tay ngi nhn theo mt th t khc. Mt tin trnh sau khi m mt socket c th s dng n lin lc vi nhiu tin trnh khc nhau nh s hai primitive send v receive. b) Lin lc trong ch ni kt: Mt lin kt c thnh lp gia hai tin trnh. Trc khi mi lin kt ny c thit lp, mt trong hai tin trnh phi i c mt tin trnh khc yu cu kt ni.C th s dng socket lin lc theo m hnh client-serveur. Trong m hnh ny, server s dng li gi h thng listen v accept ni kt vi client, sau , client v server c th trao i thng tin bng cch s dng cc primitive send v receive. Hy mt socket V d : Trong nghi thc truyn thng TCP, mi mi ni gia hai my tnh c xc nh bi mt port, khi nim port y khng phi l mt cng giao tip trn thit b vt l m ch l mt khi nim logic trong cch nhn ca ngi lp trnh, mi port c tng ng vi mt s nguyn dng.

Hnh 3.4 Cc socket v port trong mi ni TCP. Hnh 3.4 minh ha mt cch giao tip gia hai my tnh trong nghi thc truyn thng TCP. My A to ra mt socket v kt buc (bind) socket ny vi mt port X (tc l mt s nguyn dng c ngha cc b trong my A), trong khi my B to mt socket khc v mc vo (connect) port X trong my A. Tho lun: C ch socket c th s dng chun ho mi lin lc gia cc tin trnh vn khng lin h vi nhau, v c th hot ng trong nhng h thng khc nhau.

III. Nhu cu ng b ha (synchronisation)


Trong mt h thng cho php cc tin trnh lin lc vi nhau, bao gi h iu hnh cng cn cung cp km theo nhng c ch ng b ha bo m hot ng ca cc tin trnh ng hnh khng tc ng sai lch n nhau v cc l do sau y:

III.1. Yu cu c quyn truy xut (Mutual exclusion)


Cc ti nguyn trong h thng c phn thnh hai loi: ti nguyn c th chia s cho php nhiu tin trnh ng thi truy xut, v ti nguyn khng th chia s ch chp nhn mt ( 50

hay mt s lng hn ch ) tin trnh s dng ti mt thi im. Tnh khng th chia s ca ti nguyn thng c ngun gc t mt trong hai nguyn nhn sau y: c tnh cu to phn cng ca ti nguyn khng cho php chia s. Nu nhiu tin trnh s dng ti nguyn ng thi, c nguy c xy ra cc kt qu khng d on c do hot ng ca cc tin trnh trn ti nguyn nh hng ln nhau. gii quyt vn , cn bo m tin trnh c quyn truy xut ti nguyn, ngha l h thng phi kim sot sao cho ti mt thi im, ch c mt tin trnh c quyn truy xut mt ti nguyn khng th chia s. III.2. Yu cu phi hp (Synchronization) Nhn chung, mi tng quan v tc thc hin ca hai tin trnh trong h thng l khng th bit trc, v iu ny ph thuc vo nhiu yu t ng nh tn sut xy ra cc ngt ca tng tin trnh, thi gian tin trnh c cp pht b x l C th ni rng cc tin trnh hot ng khng ng b vi nhau. Nh ng c nhng tnh hung cc tin trnh cn hp tc trong vic hon thnh tc v, khi cn phi ng b ha hot ng ca cc tin trnh , v d mt tin trnh ch c th x l nu mt tin trnh khc kt thc mt cng vic no

III.3. Bi ton ng b ho
III.3.1. Vn tranh ot iu khin (race condition) Gi s c hai tin trnh P1 v P2 thc hin cng vic ca cc k ton, v cng chia s mt vng nh chung lu tr bin taikhoan phn nh thng tin v ti khon. Mi tin trnh mun rt mt khon tin tienrut t ti khon:
if (taikhoan - tienrut >=0) taikhoan = taikhoan - tienrut; else error( khong the rut tien ! );

Gi s trong ti khon hin cn 800, P1 mun rt 500 v P2 mun rt 400. Nu xy ra tnh hung nh sau : Sau khi kim tra iu kin (taikhoan - tienrut >=0) v nhn kt qu l 300, P1 ht thi gian x l m h thng cho php, h iu hnh cp pht CPU cho P2. P2 kim tra cng iu kin trn, nhn c kt qu l 400 (do P1 vn cha rt tin) v rt 400. Gi tr ca taikhoan c cp nht li l 400. Khi P1 c ti kch hot v tip tc x l, n s khng kim tra li iu kin (taikhoan - tienrut >=0)-v kim tra trong lt x l trc- m thc hin rt tin. Gi tr ca taikhoan s li c cp nht thnh -100. Tnh hung li xy ra ! Cc tnh hung tng t nh th - c th xy ra khi c nhiu hn hai tin trnh c v ghi d liu trn cng mt vng nh chung, v kt qu ph thuc vo s iu phi tin trnh ca h thng - c gi l cc tnh hung tranh ot iu khin (race condition) . III.3.2. Min gng (critical section) 51

ngn chn cc tnh hung li c th ny sinh khi cc tin trnh truy xut ng thi mt ti nguyn khng th chia s, cn phi p t mt s truy xut c quyn trn ti nguyn : khi mt tin trnh ang s dng ti nguyn, th nhng tin trnh khc khng c truy xut n ti nguyn. on chng trnh trong c kh nng xy ra cc mu thun truy xut trn ti nguyn chung c gi l min gng (critical section). Trong v d trn, on m :
if (taikhoan - tienrut >=0) taikhoan = taikhoan - tienrut;

ca mi tin trnh to thnh mt min gng. C th gii quyt vn mu thun truy xut nu c th bo m ti mt thi im ch c duy nht mt tin trnh c x l lnh trong min gng. Mt phng php gii quyt tt bi ton min gng cn tha mn 4 iu kin sau : Khng c hai tin trnh cng trong min gng cng lc. Khng c gi thit no t ra cho s lin h v tc ca cc tin trnh, cng nh v s lng b x l trong h thng. Mt tin trnh tm dng bn ngoi min gng khng c ngn cn cc tin trnh khc vo min gng. Khng c tin trnh no phi ch v hn c vo min gng.

IV. Tm tt
Mt s tin trnh trong h thng c nhu cu trao i thng tin phi hp hot ng, do mi tin trnh c mt khng gian a ch c lp nn vic lin lc ch c th thc hin thng qua cc c ch do h iu hnh cung cp. Mt s c ch trao i thng tin gia cc tin trnh : Tn hiu : thng bo s xy ra ca mt s kin Pipe : truyn d liu khng cu trc Vng nh chia s : cho php nhiu tin trnh truy cp n cng mt vng nh Trao i thng ip : truyn d liu c cu trc, c th vn dng trong cc h phn tn Socket : chun hon vic lin lc gia cc h thng khc bit Khi cc tin trnh trao i thng tin, chia s ti nguyn chung, cn phi ng b ho hot ng ca chng ch yu do yu cu c quyn truy xut hoc phi hp hot ng. Min gng l on lnh trong chng trnh c kh nng pht sinh mu thun truy xut. khng xy ra mu thun truy xut, cn m bo ti mt thi im ch c mt tin trnh c vo min gng.

Cng c bi hc
Cc cu hi cn tr li c sau bi hc ny : 1. Cc c ch trao i thng tin : tnh hung s dng, u, khuyt ? 2. Cc yu cu ng b ho ?

52

Bi tp
Phn tch cc bi ton sau y v xc nh nhng yu cu ng b ho, min gng : Bi 1.Bi ton To phn t H2O ng b hot ng ca mt phng th nghim s dng nhiu tin trnh ng hnh sau to cc phn t H2O: MakeH() // Mi tin trnh MakeH to 1 nguyn t H { Make-Hydro(); } MakeO() // Mi tin trnh MakeO to 1 nguyn t O { Make-Oxy(); } MakeWater() /* Tin trnh MakeWater hot ng ng hnh vi cc tin trnh MakeH, MakeO, ch c 2 H v 1 O to H2O */ { while (T) Make-Water(); //To 1 phn t H2O } Bi 2.Bi ton Cy cu c trnh sp , ngi ta ch c cho php ti a 3 xe lu thng ng thi qua mt cy cu rt c. Hy xy dng th tc ArriveBridge(int direction) v ExitBridge() kim sot giao thng trn cu sao cho : Ti mi thi im, ch cho php ti a 3 xe lu thng trn cu. Ti mi thi im, ch cho php ti a 3 xe lu thng cng hng trn cu. Mi chic xe khi n u cu s gi ArriveBridge(direction) kim tra iu kin ln cu, v khi qua cu c s gi ExitBridge() bo hiu kt thc. Gi s hot ng ca mi chic xe c m t bng mt tin trnh Car() sau y: Car(int direction) /* direction xc nh hng di chuyn ca mi chic xe.*/ { RuntoBridge(); // i v pha cu ArriveBridge(direction); PassBridge(); // Qua cu Exit Bridge(); RunfromBridge(); // qua cu } Bi 3. Bi ton Qua sng vt qua sng, cc nhn vin Microsof v cc Linux hacker cng s dng mt bn sng v phi chia s mt s thuyn c bit. Mi chic thuyn ny ch cho php ch 1 ln 4 ngi, v 53

phi c 4 ngi mi khi hnh c. bo m an ton cho c 2 pha, cn tun th cc lut sau : a. Khng chp nhn 3 nhn vin Microsoft v 1 Linux hacker trn cng mt chic thuyn. b. Ngc li, khng chp nhn 3 Linux hacker v 1 nhn vin Microsoft trn cng mt chic thuyn. c. Tt c cc trng hp kt hp khc u hp php. d. Thuyn ch khihnh khi c 4 hnh khch. Cn xy dng 2 th tc HackerArrives() v EmployeeArrives() c gi tng ng bi 1 hacker hoc 1 nhn vin khi h n b sng kim tra iu kin c cho php h xung thuyn khng ? Cc th tc ny s sp xp nhng ngi thch hp c th ln thuyn. Nhng ngi c ln thuyn khi thuyn cha y s phi ch n khi ngi th 4 xung thuyn mi c th khi hnh qua sng. (Khng quan tm n s lng thuyn hay vic thuyn qua sng ri tr liXem nh lun c thuyn sp xp theo cc yu cu hp l) Gi s hot ng ca mi hacker c m t bng mt tin trnh Hacker() sau y: Hacker() { RuntoRiver(); // i n b sng HackerArrives (); // Kim tra iu kin xung thuyn CrossRiver(); // Khi hnh qua sng } v hot ng ca mi nhn vin c m t bng mt tin trnh Employee() sau y: Employee() { RuntoRiver(); // i n b sng EmployeeArrives (); // Kim tra iu kin xung thuyn CrossRiver(); // Khi hnh qua sng }

54

CHNG 5 : CC GII PHP NG B HO


Chng ny s gii thiu cc gii php c th x l bi ton ng b ho. C nhiu gii php thc hin vic truy xut min gng, cc gii php ny c phn bit thnh hai lp ty theo cch tip cn trong x l ca tin trnh b kha :cc gii php busy waiting v cc gii php sleep and wakeup .

I. Gii php busy waiting I.1. Cc gii php phn mm


I.1.1. S dng cc bin c hiu: Tip cn : cc tin trnh chia s mt bin chung ng vai tr cht ca (lock) , bin ny c khi ng l 0. Mt tin trnh mun vo min gng trc tin phi kim tra gi tr ca bin lock. Nu lock = 0, tin trnh t li gi tr cho lock = 1 v i vo min gng. Nu lock ang nhn gi tr 1, tin trnh phi ch bn ngoi min gng cho n khi lock c gi tr 0. Nh vy gi tr 0 ca lock mang ngha l khng c tin trnh no ang trong min gng, v lock=1 khi c mt tin trnh ang trong min gng.
while (TRUE) { while (lock == 1); // wait lock = 1; critical-section (); lock = 0; Noncritical-section (); }

Hnh 3.5 Cu trc mt chng trnh s dng bin kha ng b Tho lun : Gii php ny c th vi phm iu kin th nht: hai tin trnh c th cng trong min gng ti mt thi im. Gi s mt tin trnh nhn thy lock = 0 v chun b vo min gng, nhng trc khi n c th t li gi tr cho lock l 1, n b tm dng mt tin trnh khc hot ng. Tin trnh th hai ny thy lock vn l 0 th vo min gng v t li lock = 1. Sau tin trnh th nht c ti kch hot, n gn lock = 1 ln na ri va min gng. Nh vy ti thi im c hai tin trnh u trong min gng. I.1.2. S dng vic kim tra lun phin : Tip cn : y l mt gii php ngh cho hai tin trnh. Hai tin trnh ny s dng chung bin turn (phn nh phin tin trnh no c vo min gng), c khi ng vi gi tr 0. Nu turn = 0, tin trnh A c vo min gng. Nu turn = 1, tin trnh A i vo mt vng lp ch n khi turn nhn gi tr 0. Khi tin trnh A ri khi min gng, n t gi tr turn v 1 cho php tin trnh B i vo min gng.
while (TRUE) { while (turn != 0); // wait critical-section (); turn = 1; Noncritical-section (); }

55

(a) Cu trc tin trnh A


while (TRUE) { while (turn != 1); // wait critical-section (); turn = 0; Noncritical-section (); }

(b) Cu trc tin trnh B Hnh 3.6 Cu trc cc tin trnh trong gii php kim tra lun phin Tho lun: Gii php ny da trn vic thc hin s kim tra nghim nht n lt tin trnh no c vo min gng. Do n c th ngn chn c tnh trng hai tin trnh cng vo min gng, nhng li c th vi phm iu kin th ba: mt tin trnh c th b ngn chn vo min gng bi mt tin trnh khc khng trong min gng. Gi s tin trnh B ra khi min gng rt nhanh chng. C hai tin trnh u ngoi min gng, v turn = 0. Tin trnh A vo min gng v ra khi nhanh chng, t li gi tr ca turn l1, ri li x l on lnh ngoi min gng ln na. Sau , tin trnh A li kt thc nhanh chng on lnh ngoi min gng ca n v mun vo min gng mt ln na. Tuy nhin lc ny B vn cn mi x l on lnh ngoi min gng ca mnh, v turn li mang gi tr 1 ! Nh vy, gii php ny khng c gi tr khi c s khc bit ln v tc thc hin ca hai tin trnh, n vi phm c iu kin th hai. I.1.3. Gii php ca Peterson Tip cn : Petson a ra mt gii php kt hp tng ca c hai gii php k trn. Cc tin trnh chia s hai bin chung :
int turn; // n phin int interesse[2]; //
ai kh i ng l

FALSE

Nu interesse[i] = TRUE c ngha l tin trnh Pi mun vo min gng. Khi u, interesse[0]=interesse[1]=FALSE v gi tr ca est c khi ng l 0 hay 1. c th vo c min gng, trc tin tin trnh Pi t gi tr interesse[i]=TRUE ( xc nh rng tin trnh mun vo min gng), sau t turn=j ( ngh th tin trnh khc vo min gng). Nu tin trnh Pj khng quan tm n vic vo min gng (interesse[j]=FALSE), th Pi c th vo min gng, nu khng, Pi phi ch n khi interesse[j]=FALSE. Khi tin trnh Pi ri khi min gng, n t li gi tr cho interesse[i]= FALSE.
while (TRUE) { int j = 1-i; // j l tin trnh cn li interesse[i]= TRUE; turn = j; while (turn == j && interesse[j]==TRUE); critical-section (); interesse[i] = FALSE; Noncritical-section (); }

Hnh 3.7 Cu trc tin trnh Pi trong gii php Peterson Tho lun: gii php ny ngn chn c tnh trng mu thun truy xut : mi tin trnh Pi ch c th vo min gng khi interesse[j]=FALSE hoc turn = i. Nu c hai tin trnh u

56

mun vo min gng th interesse[i] = interesse[j] =TRUE nhng gi tr ca turn ch c th hoc l 0 hoc l 1, do vy ch c mt tin trnh c vo min gng.

I.2. Cc gii php phn cng


I.2.1. Cm ngt: Tip cn: cho php tin trnh cm tt c cc ngt trc khi vo min gng, v phc hi ngt khi ra khi min gng. Khi , ngt ng h cng khng xy ra, do vy h thng khng th tm dng hot ng ca tin trnh ang x l cp pht CPU cho tin trnh khc, nh tin trnh hin hnh yn tm thao tc trn min gng m khng s b tin trnh no khc tranh chp. Tho lun: gii php ny khng c a chung v rt thiu thn trng khi cho php tin trnh ngi dng c php thc hin lnh cm ngt. Hn na, nu h thng c nhiu b x l, lnh cm ngt ch c tc dng trn b x l ang x l tin trnh, cn cc tin trnh hot ng trn cc b x l khc vn c th truy xut n min gng ! I.2.2. Ch th TSL (Test-and-Set): Tip cn: y l mt gii php i hi s tr gip ca c ch phn cng. Nhiu my tnh cung cp mt ch th c bit cho php kim tra v cp nht ni dung mt vng nh trong mt thao tc khng th phn chia, gi l ch th Test-and-Set Lock (TSL) v c nh ngha nh sau:
Test-and-Setlock(boolean target) { Test-and-Setlock = target; target = TRUE; }

Nu c hai ch th TSL x l ng thi (trn hai b x l khc nhau), chng s c x l tun t . C th ci t gii php truy xut c quyn vi TSL bng cch s dng thm mt bin lock, c khi gn l FALSE. Tin trnh phi kim tra gi tr ca bin lock trc khi vo min gng, nu lock = FALSE, tin trnh c th vo min gng.
while (TRUE) { while (Test-and-Setlock(lock)); critical-section (); lock = FALSE; Noncritical-section (); }

Hnh 3.8 Cu trc mt chng trnh trong gii php TSL Tho lun : cng ging nh cc gii php phn cng khc, ch th TSL gim nh cng vic lp trnh gii quyt vn , nhng li khng d dng ci t ch th TSL sao cho c x l mt cch khng th phn chia, nht l trn my vi cu hnh nhiu b x l. Tt c cc gii php trn y u phi thc hin mt vng lp kim tra liu n c c php vo min gng, nu iu kin cha cho php, tin trnh phi ch tip tc trong vng lp kim tra ny. Cc gii php buc tin trnh phi lin tc kim tra iu kin pht hin thi im thch hp c vo min gng nh th c gi cc gii php busy waiting . Lu rng vic kim tra nh th tiu th rt nhiu thi gian s dng CPU, do vy tin trnh ang ch

57

vn chim dng CPU. Xu hng gii quyt vn ng b ho l nn trnh cc gii php busy waiting .

II. Cc gii php SLEEP and WAKEUP


loi b cc bt tin ca gii php busy waiting , chng ta c th tip cn theo hng cho mt tin trnh cha iu kin vo min gng chuyn sang trng thi blocked, t b quyn s dng CPU. thc hin iu ny, cn phi s dng cc th tc do h iu hnh cung cp thay i trng thi tin trnh. Hai th tc c bn SLEEP v WAKEUP thng c s dng phc v mc ch ny. SLEEP l mt li gi h thng c tc dng tm dng hot ng ca tin trnh (blocked) gi n v ch n khi c mt tin trnh khc nh thc . Li gi h thng WAKEUP nhn mt tham s duy nht : tin trnh s c ti kch hot (t v trng thi ready). tng s dng SLEEP v WAKEUP nh sau : khi mt tin trnh cha iu kin vo min gng, n gi SLEEP t kha n khi c mt tin trnh khc gi WAKEUP gii phng cho n. Mt tin trnh gi WAKEUP khi ra khi min gng nh thc mt tin trnh ang ch, to c hi cho tin trnh ny vo min gng :
int busy; // 1 n u mi n gng ang b chi m, n u khng l 0 int blocked; // m s l ng ti n trnh ang b kha while (TRUE) { if (busy){ blocked = blocked + 1; sleep(); } else busy = 1; critical-section (); busy = 0; if(blocked){ wakeup(process); blocked = blocked - 1; } Noncritical-section (); }

Hnh 3.9 Cu trc chng trnh trong gii php SLEEP and WAKEUP Khi s dng SLEEP v WAKEUP cn ht sc cn thn, nu khng mun xy ra tnh trng mu thun truy xut trong mt vi tnh hung c bit nh sau : gi s tin trnh A vo min gng, v trc khi n ri khi min gng th tin trnh B c kch hot. Tin trnh B th vo min gng nhng n nhn thy A ang trong , do vy B tng gi tr bin blocked v chun b gi SLEEP t kho. Tuy nhin trc khi B c th thc hin SLEEP, tin trnh A li c ti kch hot v ra khi min gng. Khi ra khi min gng A nhn thy c mt tin trnh ang ch (blocked=1) nn gi WAKEUP v gim gi tr ca blocked. Khi tn hiu WAKEUP s lc mt do tin trnh B cha tht s ng nhn tn hiu nh thc !Khi tin trnh B c tip tc x l, n mi goi SLEEP v t kh vnh vin ! Vn ghi nhn c l tnh trng li ny xy ra do vic kim tra t cch vo min gng v vic gi SLEEP hay WAKEUP l nhng hnh ng tch bi, c th b ngt na chng

58

trong qu trnh x l, do c khi tn hiu WAKEUP gi n mt tin trnh cha b kha s lc mt. trnh nhng tnh hung tng t, h iu hnh cung cp nhng c ch ng b ha da trn tng ca chin lc SLEEP and WAKEUP nhng c xy dng bao hm c phng tin kim tra iu kin vo min gng gip s dng an ton.

II.1. Semaphore
Tip cn: c Dijkstra xut vo 1965, mt semaphore s l mt bin c cc thuc tnh sau: Mt gi tr nguyn dng e(s) Mt hng i f(s) lu danh sch cc tin trnh ang b kha (ch) trn semaphore s Ch c hai thao tc c nh ngha trn semaphore Down(s): gim gi tr ca semaphore s i 1 n v nu semaphore c tr e(s) > 0, v tip tc x l. Ngc li, nu e(s) 0, tin trnh phi ch n khi e(s) >0. Up(s): tng gi tr ca semaphore s ln 1 n v. Nu c mt hoc nhiu tin trnh ang ch trn semaphore s, b kha bi thao tc Down, th h thng s chn mt trong cc tin trnh ny kt thc thao tc Down v cho tip tc x l.

Hnh 3.10 Semaphore s Ci t: Gi p l tin trnh thc hin thao tc Down(s) hay Up(s).
Down(s): e(s) = e(s) - 1; if e(s) < 0 { status(P)= blocked; enter(P,f(s)); } Up(s): e(s) = e(s) + 1; if s 0 { exit(Q,f(s)); //Q l ti status (Q) = ready; enter(Q,ready-list); }
n trnh ang ch trn s

Lu ci t ny c th a n mt gi tr m cho semaphore, khi tr tuyt i ca semaphore cho bit s tin trnh ang ch trn semaphore. iu quan trng l cc thao tc ny cn thc hin mt cch khng b phn chia, khng b ngt na chng, c ngha l khng mt tin trnh no c php truy xut n semaphore nu tin trnh ang thao tc trn semaphore ny cha kt thc x l hay chuyn sang trng thi blocked.

59

S dng: c th dng semaphore gii quyt vn truy xut c quyn hay t chc phi hp gia cc tin trnh. T chc truy xut c quyn vi Semaphores: khi nim semaphore cho php bo m nhiu tin trnh cng truy xut n min gng m khng c s mu thun truy xut. n tin trnh cng s dng mt semaphore s, e(s) c khi gn l 1. thc hin ng b ha, tt c cc tin trnh cn phi p dng cng cu trc chng trnh sau y:
while (TRUE) { Down(s) critical-section (); Up(s) Noncritical-section (); }

Hnh 3.11 Cu trc mt chng trnh trong gii php semaphore T chc ng b ha vi Semaphores: vi semaphore c th ng b ha hot ng ca hai tin trnh trong tnh hung mt tin trnh phi i mt tin trnh khc hon tt thao tc no mi c th bt u hay tip tc x l. Hai tin trnh chia s mt semaphore s, khi gn e(s) l 0. C hai tin trnh c cu trc nh sau:
P1: while (TRUE) { job1(); Up(s); //nh th c P2 } P2: while (TRUE) { Down(s); // ch P1 job2(); }

Hnh 3.12 Cu trc chng trnh trong gii php semaphore Tho lun : Nh c thc hin mt cc khng th phn chia, semaphore gii quyt c vn tn hiu "nh thc" b tht lc. Tuy nhin, nu lp trnh vin v tnh t cc primitive Down v Up sai v tr, th t trong chng trnh, th tin trnh c th b kha vnh vin. V d : while (TRUE) {
Down(s) critical-section (); Noncritical-section (); }

tin trnh trn y qun gi Up(s), v kt qu l khi ra khi min gng n s khng cho tin trnh khc vo min gng ! V th vic s dng ng cch semaphore ng b ha ph thuc hon ton vo lp trnh vin v i hi lp trnh vin phi ht sc thn trng.

II.2. Monitors
Tip cn: c th d vit ng cc chng trnh ng b ha hn, Hoare(1974) v Brinch & Hansen (1975) ngh mt c ch cao hn c cung cp bi ngn ng lp trnh , l monitor. Monitor l mt cu trc c bit bao gm cc th tc, cc bin v cu trc d liu c cc thuc tnh sau : 60

Cc bin v cu trc d liu bn trong monitor ch c th c thao tc bi cc th tc nh ngha bn trong monitor . (encapsulation). Ti mt thi im, ch c mt tin trnh duy nht c hot ng bn trong mt monitor (mutual exclusive). Trong mt monitor, c th nh ngha cc bin iu kin v hai thao tc km theo l Wait v Signal nh sau : gi c l bin iu kin c nh ngha trong monitor: Wait(c): chuyn trng thi tin trnh gi sang blocked , v t tin trnh ny vo hng i trn bin iu kin c. Signal(c): nu c mt tin trnh ang b kha trong hng i ca c, ti kch hot tin trnh , v tin trnh gi s ri khi monitor.

Hnh 3.13 Monitor v cc bin iu kin Ci t : trnh bin dch chu trch nhim thc hin vic truy xut c quyn n d liu trong monitor. thc hin iu ny, mt semaphore nh phn thng c s dng. 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) v hai thao tc trn c nh ngha nh sau:
Wait(c) : status(P)= blocked; enter(P,f(c)); Signal(c) : if (f(c) != NULL){ exit(Q,f(c)); //Q l statusQ) = ready;
ti n trnh ch trn c

enter(Q,ready-list); } S dng: Vi mi nhm ti nguyn cn chia s, c th nh ngha mt monitor trong c t tt c cc thao tc trn ti nguyn ny vi mt s iu kin no .:
monitor <tn monitor > condition <danh sch cc bi n <dclaration de variables>;
i

u ki n>;

61

procedure Action1(); { } .... procedure Actionn(); { } end monitor;

Hnh 3.14 Cu trc mt monitor Cc tin trnh mun s dng ti nguyn chung ny ch c th thao tc thng qua cc th tc bn trong monitor c gn kt vi ti nguyn:
while (TRUE) { Noncritical-section (); <monitor>.Actioni; //critical-section(); Noncritical-section (); }

Hnh 3.15 Cu trc tin trnh Pi trong gii php monitor Tho lun: Vi monitor, vic truy xut c quyn c bo m bi trnh bin dch m khng do lp trnh vin, do vy nguy c thc hin ng b ha sai gim rt nhiu. Tuy nhin gii php monitor i hi phi c mt ngn ng lp trnh nh ngha khi nim monitor, v cc ngn ng nh th cha c nhiu.

II.3. Trao i thng ip


Tip cn: gii php ny da trn c s trao i thng ip vi hai primitive Send v Receive thc hin s ng b ha: Send(destination, message): gi mt thng ip n mt tin trnh hay gi vo hp th. Receive(source,message): nhn mt thng ip th mt tin trnh hay t bt k mt tin trnh no, tin trnh gi s ch nu khng c thng ip no nhn. S dng: C nhiu cch thc thc hin vic truy xut c quyn bng c ch trao i thng ip. y l mt m hnh n gin: mt tin trnh kim sot vic s dng ti nguyn v nhiu tin trnh khc yu cu ti nguyn ny. Tin trnh c yu cu ti nguyn 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.Khi s dng xong ti nguyn , tin trnh gi mt thng ip khc n tin trnh kim sot bo kt thc truy xut. V phn tin trnh kim sot , khi nhn c thng ip yu cu ti nguyn, n s ch n khi ti nguyn sn sng cp pht th gi mt thng ip n tin trnh ang b kha trn ti nguyn nh thc tin trnh ny.
while (TRUE) { Send(process controler, request message); Receive(process controler, accept message); critical-section (); Send(process controler, end message); Noncritical-section (); }

Hnh 3.16 Cu trc tin trnh yu cu ti nguyn trong gii php message Tho lun: Cc primitive semaphore v monitor c th gii quyt c vn truy xut c quyn trn cc my tnh c mt hoc nhiu b x l chia s mt vng nh chung. Nhng cc primitive khng hu dng trong cc h thng phn tn, khi m mi b x l s hu mt b nh 62

ring bit v lin lc thng qua mng. Trong nhng h thng phn tn nh th, c ch trao i thng ip t ra hu hiu v c dng gii quyt bi ton ng b ha.

III. Vn ng b ho III.1. Vn Ngi sn xut Ngi tiu th (Producer-Consumer)


Vn : hai tin trnh cng chia s mt b m c kch thc gii hn. Mt trong hai tin trnh ng vai tr ngi sn xut to ra d liu v t d liu vo b m- v tin trnh kia ng vai tr ngi tiu th ly d liu t b m ra x l.

Hnh 3.17 Producer v Consumer ng b ha hot ng ca hai tin trnh sn xut tiu th cn tun th cc quy nh sau : Tin trnh sn xut (producer) khng c ghi d liu vo b m y.(synchronisation) Tin trnh tiu th (consumer) khng c c d liu t b m ang trng.(synchronisation) Hai tin trnh sn xut v tiu th khng c thao tc trn b m cng lc . (exclusion mutuelle) Gii php: III.1.1. Semaphore S dng ba semaphore : full, m s ch c d liu trong b m; empty, m s ch cn trng trong b m; v mutex, kim tra vic Producer v Consumer khng truy xut ng thi n b m.
BufferSize = 3; semaphore mutex = 1; // semaphore empty = BufferSize; semaphore full = 0; Producer() { int item; while (TRUE) { produce_item(&item); down(&empty); down(&mutex); enter_item(item); up(&mutex); up(&full); } } // s ch trong b m ki m sot truy xu t c quy n // s ch tr ng // s ch y

// // // // // //

t o d li u m i gi m s ch tr ng bo hi u vo mi n gng t d li u vo b m ra kh i mi n gng tng s ch y

63

Consumer() { int item; while (TRUE) { down(&full); down(&mutex); remove_item(&item); up(&mutex); up(&empty); consume_item(item); } }

// // // // // //

gi m s ch y bo hi u vo mi n gng l y d li u t b m ra kh i mi n gng tng s ch tr ng x l d li u

III.1.2. Monitor nh ngha mt monitor ProducerConsumer vi hai th tc enter v remove thao tc trn b m. X l ca cc th tc ny ph thuc vo cc bin iu kin full v empty.
monitor ProducerConsumer condition full, empty; int count; procedure enter(); { if (count == N) wait(full); enter_item(item); count ++; if (count == 1) signal(empty); } procedure remove(); { if (count == 0) wait(empty) remove_item(&item); count --; if (count == N-1) signal(full); } count = 0; end monitor;

// n u b m y, ph i ch // t d li u vo b m // tng s ch y // n u b m khng tr ng // th kch ho t Consumer

// n u b m tr ng, ch // l y d li u t b // gi m s ch y // n u b m khng y // th kch ho t Producer

Producer(); { while (TRUE) { produce_item(&item); ProducerConsumer.enter; } } Consumer(); { while (TRUE) { ProducerConsumer.remove;

64

consume_item(item); } }

III.1.3. Trao i thng ip Thng ip empty hm c mt ch trng trong b m. Tin trnh Consumer bt u cng vic bng cch gi 4 thng ip empty ng Producer. Tin trnh Producer to ra mt d liu mi v ch n khi nhn c mt thng ip empty th gi ngc li cho Consumer mt thng ip cha d liu . Tin trnh Consumer ch nhn thng ip cha d liu, v sau khi x l xong d liu ny, Consumer s li gi mt thng ip empty n Producer, ...
BufferSize = 4; Producteur() { int item; message m; while (TRUE) { produce_item(&item); receive(consumer,&m); create_message(&m, item); send(consumer,&m); } } Consumer() { int item; message m; for(0 to N) send(producer, &m); // g i N thng while (TRUE) { receive(producer, &m); // ch thng i remove_item(&m,&item);// l y d li u send(producer, &m); // g i thng i consumer_item(item); // x l d li } }

// thng i p

// ch thng i p empty // t o thng i p d li u // g i d li u n Consumer

i p empty p d li u t thng i p p empty u

III.2. M hnh Readers-Writers


Vn : Nhiu tin trnh ng thi s dng mt c s d liu. Cc tin trnh ch cn ly ni dung ca c s d liu c gi l cc tin trnh Reader, nhng mt s tin trnh khc li c nhu cu sa i, cp nht d liu trong c s d liu chung ny, chng c gi l cc tin trnh Writer. Cc quy nh ng b ha vic truy xut c s d liu cn tun th l : Khng cho php mt tin trnh Writer cp nht d liu trong c s d liu khi cc tin trnh Reader khc ang truy xut ni dung c s d liu.. (synchronisation) Ti mt thi im , ch cho php mt tin trnh Writer c sa i ni dung c s d liu. (mutuelle exclusion). 65

Gii php: III.2.1. Semaphore S dng mt bin chung rc ghi nh s lng cc tin trnh Reader mun truy xut c s d liu. Hai semaphore cng c s dng : mutex, kim sot s truy cp n rc; v db, kim tra s truy xut c quyn n c s d liu.
semaphore mutex = 1; semaphore db = 1; int rc; Reader() { while (TRUE) { down(&mutex); rc = rc + 1; if (rc == 1) down(&db); up(&mutex); read_database(); down(&mutex); rc = rc - 1; if (rc == 0) up(&db); up(&mutex); use_data_read(); } } Writer() { while (TRUE) { create_data(); down(&db); write_database(); up(&db); } } // Ki m tra truy xu t rc // Ki m tra truy xu t c s d li u // S l ng ti n trnh Reader

// ginh quy n truy xu t rc // thm m t ti n trnh Reader // n u l Reader u tin th // c m Writer truy xu t d li u // ch m d t truy xu t rc // c d li u // ginh quy n truy xu t rc // b t m t ti n trnh Reader // n u l Reader cu i cng th // cho php Writer truy xu t db // ch m d t truy xu t rc

// ginh quy n truy xu t db // c p nh t d li u // ch m d t truy xu t db

III.2.2. Monitor S dng mt bin chung rc ghi nh s lng cc tin trnh Reader mun truy xut c s d liu. Mt tin trnh Writer phi chuyn sang trng thi ch nu rc > 0. KHi ra khi min gng, tin trnh Reader cui cng s nh thc tin trnh Writer ang b kha.
monitor ReaderWriter condition OKWrite, OKRead; int rc = 0; Boolean busy = false; procedure BeginRead() {

66

if (busy) wait(OKRead); rc++; signal(OKRead); } procedure FinishRead() { rc--; if (rc == 0) signal(OKWrite);

// n u db ang b n, ch // thm m t Reader

// b t m t // n u l // th cho // truy xu

Reader Reader cu i cng php Writer t db

} procedure BeginWrite() { if (busy || rc != 0) // n u db ang b n, hay m t wait(OKWrite); // Reader ang c db,ch busy = true; } procedure FinishWrite() { busy = false; If (OKRead.Queue) signal(OKRead); else signal(OKWrite); } Reader() { while (TRUE) { ReaderWriter.BeginRead(); Read_database(); ReaderWriter.FinishRead(); } } Writer() { while (TRUE) { create_data(&info); ReaderWriter.BeginWrite(); Write_database(); ReaderWriter.FinishWrite(); } }

III.2.3. Trao i thng ip Cn c mt tin trnh server 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 server cc thng ip hi p tng ng .
Reader() { while (TRUE) {

67

send (server, RequestRead); receive (server, value); print(value); } } Writer() { while (TRUE) { create_data(&value); send (server, RequestWrite,value); receive (server,OKWrite); } }

IV. TC NGHN (Deadlock) IV.1. nh ngha:


Mt tp hp cc tin trnh c nh ngha trong tnh trng tc nghn khi mi tin trnh trong tp hp u ch i mt s kin m ch c mt tin trnh khc trong tp hp mi c th pht sinh c. Ni cch khc, mi tin trnh trong tp hp u ch c cp pht mt ti nguyn hin ang b mt tin trnh khc cng trng thi blocked chim gi. Nh vy khng c tin trnh no c th tip tc x l , cng nh gii phng ti nguyn cho tin trnh khc s dng, tt c cc tin trnh trong tp hp u b kha vnh vin ! Vn Ba n ti ca cc trit gia : 5 nh trit hc cng ngi n ti vi mn spaghetti ni ting. Mi nh trit hc cn dng 2 ci na c th n spaghetti . Nhng trn bn ch c tng cng 5 ci na xen k vi 5 ci a. Mi nh trit hc s suy ngm cc trit l ca mnh n khi cm thy i th d nh ln lt cm 1 ci na bn tri v 1 ci na bn phi n. Nu c 5 nh trit hc u cm ci na bn tri cng lc, th s khng c ai c c ci na bn phi c th bt u thng thc spaghetti . y chnh l tnh trng tc nghn.

Hnh 3.18 Ba n ti ca cc trit gia

68

IV.2. iu kin xut hin tc nghn


Coffman, Elphick v Shoshani a ra 4 iu kin cn c th lm xut hin tc nghn: C s dng ti nguyn khng th chia s (Mutual exclusion): Mi thi im, mt ti nguyn khng th chia s c h thng cp pht ch cho mt tin trnh , khi tin trnh s dng xong ti nguyn ny, h thng mi thu hi v cp pht ti nguyn cho tin trnh khc. S chim gi v yu cu thm ti nguyn (Wait for): Cc tin trnh tip tc chim gi cc ti nguyn cp pht cho n trong khi ch c cp pht thm mt s ti nguyn mi. Khng thu hi ti nguyn t tin trnh ang gi chng (No preemption): Ti nguyn khng th c thu hi t tin trnh ang chim gi chng trc khi tin trnh ny s dng chng xong. Tn ti mt chu k trong th cp pht ti nguyn ( Circular wait): c t nht hai tin trnh ch i ln nhau : tin trnh ny ch c cp pht ti nguyn ang b tin trnh kia chim gi v ngc li. Khi c 4 iu kin ny, th tc nghn xy ra. Nu thiu mt trong 4 iu kin trn th khng c tc nghn.

IV.3. th cp pht ti nguyn


C th s dng mt th m hnh ha vic cp pht ti nguyn. th ny c 2 loi nt : cc tin trnh c biu din bng hnh trn, v mi ti nguyn c hin th bng hnh vung

Hnh 3.19 th cp pht ti nguyn

IV.4. Cc phng php x l tc nghn


Ch yu c ba hng tip cn x l tc nghn : S dng mt nghi thc (protocol) bo m rng h thng khng bao gi xy ra tc nghn. Cho php xy ra tc nghn v tm cch sa cha tc nghn. Hon ton b qua vic x l tc nghn, xem nh h thng khng bao gi xy ra tc nghn.

IV.5. Ngn chn tc nghn


tc nghn khng xy ra, cn bo m ti thiu mt trong 4 iu kin cn khng xy ra:

69

Ti nguyn khng th chia s : nhn chung gn nh khng th trnh c iu kin ny v bn cht ti nguyn gn nh c nh. Tuy nhin i vi mt s ti nguyn v kt xut, ngi ta c th dng cc c ch spooling bin i thnh ti nguyn c th chia s. S chim gi v yu cu thm ti nguyn: phi bo m rng mi khi tin trnh yu cu thm mt ti nguyn th n khng chim gi cc ti nguyn khc. C th p t mt trong hai c ch truy xut sau : Tin trnh phi yu cu tt c cc ti nguyn cn thit trc khi bt u x l . => phng php ny c kh khn l tin trnh kh c th c lng chnh xc ti nguyn cn s dng v c th nhu cu ph thuc vo qu trnh x l . Ngoi ra nu tin trnh chim gi sn cc ti nguyn cha cn s dng ngay th vic s dng ti nguyn s km hiu qu. Khi tin trnh yu cu mt ti nguyn mi v b t chi, n phi gii phng cc ti nguyn ang chim gi , sau li c cp pht tr li cng ln vi ti nguyn mi. => phng php ny lm pht sinh cc kh khn trong vic bo v tnh ton vn d liu ca h thng. Khng thu hi ti nguyn: cho php h thng c thu hi ti nguyn t cc tin trnh b kho v cp pht tr li cho tin trnh khi n thot khi tnh trng b kha. Tuy nhin vi mt s loi ti nguyn, vic thu hi s rt kh khn v vi phm s ton vn d liu . Tn ti mt chu k: trnh to chu k trong th bng cch cp pht ti nguyn theo mt s phn cp nh sau : gi R = {R1, R2,...,Rm} l tp cc loi ti nguyn. Cc loi ti nguyn c phn cp t 1-N. V d : F(a) = 2, F(my in) = 12 Cc tin trnh khi yu cu ti nguyn phi tun th quy nh : khi tin trnh ang chim gi ti nguyn Ri th ch c th yu cu cc ti nguyn Rj nu F(Rj) > F(Ri).

IV.6. Trnh tc nghn


Ngn cn tc nghn l mt mi bn tm ln khi s dng ti nguyn. Trnh tc nghn l loi b tt c cc c hi c th dn n tc nghn trong tng lai. Cn phi s dng nhng c ch phc tp thc hin nh ny. Mt s khi nim c s Trng thi an ton : trng thi A l an ton nu h thng c th tha mn cc nhu cu ti nguyn (cho n ti a) ca mi tin trnh theo mt th t no m vn ngn chn c tc nghn. Mt chui cp pht an ton: mt th t ca cc tin trnh <P1, P2,...,Pn> l an ton i vi tnh trng cp pht hin hnh nu vi mi tin trnh Pi nhu cu ti nguyn ca Pi c th c tha mn vi cc ti nguyn cn t do ca h thng, cng vi cc ti nguyn ang b chim gi bi cc tin trnh Pj khc, vi j<i. Mt trng thi an ton khng th l trng thi tc nghn. Ngc li mt trng thi khng an ton c th dn n tnh trng tc nghn. Chin lc cp pht : ch tha mn yu cu ti nguyn ca tin trnh khi trng thi kt qu l an ton! Gii thut xc nh trng thi an ton 70

Cn s dng cc cu trc d liu sau :


int Available[NumResources]; /* Available[r]= s l ng cc th hi n cn t do c a ti nguyn r*/ int Max[NumProcs, NumResources]; /*Max[p,r]= nhu c u t i a c a ti n trnh p v ti nguyn r*/ int Allocation[NumProcs, NumResources]; /* Allocation[p,r] = s l ng ti nguyn r th c s c p pht cho p*/ int Need[NumProcs, NumResources]; /* Need[p,r] = Max[p,r] - Allocation[p,r]*/ 1.Gi s c cc m ng int Work[NumProcs, NumResources] = Available; int Finish[NumProcs] = false; 2.Tm i sao cho Finish[i] == false Need[i] <= Work[i] N u khng c i nh th , n b c 4. 3. Work = Work + Allocation[i]; Finish[i] = true; n b c 2 4.N u Finish[i] == true v i m i i, th h th ng tr ng thi an ton. V d : Gi Max R1 P1 R2 3 R3 2 s tnh tr ng hi n hnh c a h Allocation R1 2 R2 1 R3 0 th ng c m t Available R1 0 R2 R3 nh sau :

P2

P3

P4

Nu tin trnh P2 yu cu 4 cho R1, 1 cho R3. hy cho bit yu cu ny c th p ng m bo m khng xy ra tnh trng deadlock hay khng ? Nhn thy Available[1] =4, Available[3] =2 tha mn yu cu ca P2, ta c
Need R1 P1 R2 2 R3 2 Allocation R1 2 R2 1 R3 0 Available R1 0 R2 R3

P2

P3

71

P4

Need R1 P1 R2 2 R3 2

Allocation R1 2 R2 1 R3 0

Available R1 0 R2 R3

P2

P3

P4

Need R1 P1 R2 0 R3 0

Allocation R1 0 R2 0 R3 0

Available R1 0 R2 R3

P2

P3

P4

Need R1 P1 R2 0 R3 0

Allocation R1 0 R2 0 R3 0

Available R1 0 R2 R3

P2

P3

P4

72

Need R1 P1 R2 0 R3 0

Allocation R1 0 R2 0 R3 0

Available R1 0 R2 R3

P2

P3

P4

Trng thi kt qa l an ton, c th cp pht. Gii thut yu cu ti nguyn Gi s tin trnh Pi yu cu k th hin ca ti nguyn r.

1.Nu k <= Need[i], n bc 2 Ngc li, xy ra tnh hung li


2.Nu k <= Available[i],n bc 3 Ngc li, Pi phi ch 3.Gi s h thng cp pht cho Pi cc ti nguyn m n yu cu v cp nht tnh trng h thng nh sau: Available[i] = Available[i] - k; Allocation[i]= Allocation[i]+ k; Need[i] = Need[i] - k; Nu trng thi kt qu l an ton, lc ny cc ti nguyn trn s c cp pht tht s cho Pi Ngc li, Pi phi ch

IV.7. Pht hin tc nghn


Cn s dng cc cu trc d liu sau :
int Available[NumResources]; // Available[r]= s l ng cc th hi n cn t do c a ti nguyn r int Allocation[NumProcs, NumResources]; // Allocation[p,r] = s l ng ti nguyn r th c s c p pht cho p int Request[NumProcs, NumResources]; // Request[p,r] = s l ng ti nguyn r ti n trnh p yu c u thm

Gii thut pht hin tc nghn


1. int Work[NumResources] = Available; int Finish[NumProcs]; for (i = 0; i < NumProcs; i++) Finish[i] = (Allocation[i] == 0); 2. Tm i sao cho Finish[i] == false Request[i] <= Work

73

N u khng c i nh th , n b c 4. 3. Work = Work + Allocation[i]; Finish[i] = true; n b c 2 4. N u Finish[i] == true v i m i i, th h th ng khng c t c ngh n N u Finish[i] == false v i m t s gi tr i, th cc ti n trnh m Finish[i] == false s tnh tr ng t c ngh n.

trong

II.8. Hiu chnh tc nghn


Khi pht hin c tc nghn, c hai la chn chnh hiu chnh tc nghn : nh ch hot ng ca cc tin trnh lin quan Cch tip cn ny da trn vic thu hi li cc ti nguyn ca nhng tin trnh b kt thc. C th s dng mt trong hai phng php sau : nh ch tt c cc tin trnh trong tnh trng tc nghn nh ch tng tin trnh lin quan cho n khi khng cn chu trnh gy tc nghn : chn c tin trnh thch hp b nh ch, phi da vo cc yu t nh u tin, thi gian x l, s lng ti nguyn ang chim gi , s lng ti nguyn yu cu... Thu hi ti nguyn C th hiu chnh tc nghn bng cch thu hi mt s ti nguyn t cc tin trnh v cp pht cc ti nguyn ny cho nhng tin trnh khc cho n khi loi b c chu trnh tc nghn. Cn gii quyt 3 vn sau: Chn la mt nn nhn: tin trnh no s b thu hi ti nguyn ? v thu hi nhng ti nguyn no ? Tr li trng thi trc tc nghn: khi thu hi ti nguyn ca mt tin trnh, cn phi phc hi trng thi ca tin trnh tr li trng thi gn nht trc m khng xy ra tc nghn. Tnh trng i ti nguyn : lm sao bo m rng khng c mt tin trnh lun lun b thu hi ti nguyn ?

V.Tm tt
Cc gii php ng b ho do lp trnh vin xy dng khng c a chung v phi tiu th CPU trong thi gian ch vo min gng ( busy waiting ), v kh m rng. Thay vo , lp trnh vin c th s dng cc c ch ng b do h iu hnh hay trnh bin dch tr gip nh semaphore, monitor, trao i thng ip . Tc nghn l tnh trng xy ra trong mt tp cc tin trnh nu c hai hay nhiu hn cc tin trnh ch i v hn mt s kin ch c th c pht sinh bi mt tin trnh cng ang ch khc trong tp cc tin trnh ny. C 3 hng tip cn chnh trong x l tc nghn : Phng trnh tc nghn : tun th mt vi nghi thc bo m h thng khng bao gi lm vo trng thi tc nghn. Pht hin tc nghn : khi c tc nghn xy ra, pht hin cc tin trnh lin quan v tm cch phc hi. 74

B qua tc nghn : xem nh h thng khng bao gi lm vo trng thi tc nghn.

Cng c bi hc.
1. Phn bit nhm gii php busy waiting v Sleep&Wakeup 2. Phn bit cch s dng semaphore, monitor v message ng b ho. 3. M hnh gii quyt nhu cu c quyn truy xut v m hnh gia quyt nhu cu phi hp hot ng.

Bi tp
Bi 1. Xt gii php phn mm do Dekker ngh t chc truy xt c quyn cho hai tin trnh . Hai tin trnh P0, P1 chia s cc bin sau :
var flag : array [0..1] of boolean; (khi ng l false) turn : 0..1;

Cu trc mt tin trnh Pi ( i =0 hay 1, v j l tin trnh cn li ) nh sau :


repeat flag[i] := true; while flag[j] do if turn = j then begin flag[i]:= false; while turn = j do ; flag[i]:= true; end; critical_section(); turn:= j; flag[i]:= false; non_critical_section(); until false;

Gii php ny c phi l mt gii php ng tha mn 4 yu cu khng ? Bi 2.Xt gii php phn mm do Eisenberg v McGuire ngh t chc truy xt c quyn cho N tin trnh . Cc tin trnh chia s cc bin sau :
var flag : array [0..N-1] of (idle, want-in, in-cs); turn : 0..N-1;

Tt c cc phn t ca mng flag c khi ng l idle, turn c khi gn mt trong nhng gi tr t 0..N-1 Cu trc mt tin trnh Pi nh sau :
repeat repeat flag[i] := want-in; j := turn; while j<>i do if flag[j]<> idle then j:= turn else j:= j+1 mod n; flag[i]:= in-cs; j:=0; while ( j<N) and ( j = i or flag[j] <> in-cs) do j:=j+1;

75

until ( j>=N) and ( turn =i or flag[turn] = idle); turn := i; critical_section(); j:= turn + 1 mod N; while (flag[j]= idle) do j := j+1 mod N; turn := j; flag[i]:= idle; non_critical_section(); until false;

Gii php ny c phi l mt gii php ng tha mn 4 yu cu khng ? Bi 3.Xt gii php ng b ho sau :
while (TRUE) { int j = 1-i; flag[i]= TRUE; turn = i; while (turn == j && flag[j]==TRUE); critical-section (); flag[i] = FALSE; Noncritical-section (); }

y c phi l mt gii php bo m c c quyn truy xut khng ? Bi 4.Gi s mt my tnh khng c ch th TSL, nhng c ch th Swap c kh nng hon i ni dung ca hai t nh ch bng mt thao tc khng th phn chia :
procedure Swap() var a,b: boolean); var temp : boolean; begin temp := a; a:= b; b:= temp; end;

S dng ch th ny c th t chc truy xut c quyn khng ? Nu c xy dng cu trc chng trnh tng ng. Bi 5.Chng t rng nu cc primitive Down v Up trn semaphore khng thc hin mt cch khng th phn chia, th s truy xut c quyn s b vi phm. Bi 6.S dng semaphore ci t c ch monitor. Bi 7.Xt hai tin trnh sau :
process A { while (TRUE) na = na +1; } process B { while (TRUE) nb = nb +1; }

a) ng b ho x l ca hai tin trnh trn, s dng hai semaphore tng qut, sao cho ti bt k thi im no cng c nb < na <= nb +10 b) Nu gim iu kin ch l na <= nb +10, gii php ca bn s c sa cha nh th no ? c) Gii php ca bn c cn ng nu c nhiu tin trnh loi A v B cng thc hin?

76

Bi 8.Mt bin X c chia s bi hai tin trnh cng thc hin on code sau :
do X = X +1; if ( X == 20) X = 0; while ( TRUE );

Bt u vi gi tr X = 0, chng t rng gi tr X c th vt qu 20. Cn sa cha on chng trnh trn nh th no bo m X khng vt qu 20 ? Bi 9.Xt hai tin trnh x l on chng trnh sau :
process P1 { A1 ; A2 } process P2 { B1 ; B2 }

ng b ho hot ng ca hai tin trnh ny sao cho c A1 v B1 u hon tt trc khi A2 hay B2 bt u . Bi 10.Tng qut ho cu hi 8) cho cc tin trnh x l on chng trnh sau :
process P1 { for ( i = 1; i <= 100; i ++) Ai } process P2 { for ( j = 1; j <= 100; j ++) Bj }

ng b ho hot ng ca hai tin trnh ny sao cho c vi k bt k ( 2 k 100), Ak ch c th bt u khi B(k-1) kt thc, v Bk ch c th bt u khi A(k-1) kt thc. Bi 11.S dng semaphore vit li chng trnh sau theo m hnh x l ng hnh:
w := x1 * x2 v := x3 * x4 y := v * x5 z := v * x6 y := w * y z := w * z ans := y + z

Bi 12.Xy dng mt gii php ( s dng semaphore ) gii quyt vn Readers_Writers trong : a) Readers c u tin ( khi khng c ai truy xut database, Reader c u tin truy cp database ngay, Writer phi i tt c cc Reader truy xut xong mi c vo database) b) Writers c u tin ( khi khng c ai truy xut database, Writer c u tin truy cp database ngay, Reader phi i tt c cc Write truy xut xong mi c vo database) c) Cng bng cho Reader, Writer ( khi khng c ai truy xut database, Writer hoc Reader c c hi ngang nhau truy cp database) Bi 13.Dining Philosophers : Gi s hnh vi ca mt trit gia th i trong ba n ti c m t nh sau :
#define N 5 void philosopher( int i) { while (TRUE) { think(); // Suy ngh take_fork(i); // ly na bn tri take_fork((i+1)%N); // ly na bn phi

77

eat(); // yum-yum, spaghetti put_fork(i); // t na bn tri ln bn li put_fork((i+1)%N); // t na bn phi ln bn li } }

a) Lu l trn bn ch c 5 ci na, v nu c 2 trit gia cng mun ly mt ci na, th ch mt ngi c quyn ly ci na . S dng semaphore t chc c quyn truy xut n cc ci na cho on chng trnh trn ( Gi : dng mi semaphore phn nh tnh trng s dng ca mi ci na) b) Liu gii php ca cu a) c l mt gii php tt cho bi ton Dining philosopher?Nu khng, cho bit cc tnh hung li s xy ra, v ngh phng php ci tin. Bi 14.Xt mt gii php ng cho bi ton Dining philosophers :
#define N 5 #define LEFT (i-1)%N #define RIGHT (i+1)%N #define THINKING 0 #define HUNGRY 1 #define EATING 2 int state[N]; semaphore mutex = 1; semaphore s[N]; void philosopher( int i) // i : xc nh trit gia no (0..N-1) { while (TRUE) { thinhk(); // Suy ngh take_forks(i); // yu cu n khi c 2 na eat(); // yum-yum, spaghetti put_forks(i); // t c 2 na ln bn li } } void take_forks ( int i) // i : xc nh trit gia no (0..N-1) { while (TRUE) { down(mutex); // vo min gng state[i] = HUNGRY; // ghi nhn trit gia i i test(i); // c gng ly 2 na up(mutex); // ra khi min gng down(s[i]); // ch nu khng c 2 na } } } void put_forks ( int i) // i : xc nh trit gia no (0..N-1) { while (TRUE) { down(mutex); // vo min gng state[i] = THINKING; // ghi nhn trit gia i n xong test(LEFT); // kim tra ngi bn tri c th n? test(RIGHT); // kim tra ngi bn phi c th n? up(mutex); // ra khi min gng

78

} } void test ( int i) // i : xc nh trit gia no (0..N-1) { if(state[i]==HUNGRY && state[LEFT]!=EATING && state[RIGHT]!= EATING { state[i] = EATING; up(s[i]); }

} a)Ti sao phi t state[i] = HUNGRY trong take_forks ? b)Gi s trong put_forks, lnh gn state[i] = THINKING c thc hin sau hai lnh test(LEFT), test(RIGHT). iu ny nh hng th no n gii php cho 3 trit gia? Cho 100 trit gia? Bi 15.Xy dng gii php monitor cho bi ton Dining Philosophers. Bi 16.Baber problem : Mt ca hiu ct tc c mt th, mt gh ct tc v N gh cho khch i. Nu khng c khch hng, anh th ct tc s ngi vo gh ct tc v ng thip i. Khi mt khch hng vo tim, anh ta phi nh thc ngi th. Nu mt khch hng vo tim khi ngi th ang bn ct tc cho kh1ch hng khc, ngi mi vo s phi ngi ch nu c gh i trng, hoc ri khi tim nu c N ngi i. Xy dng mt gii php vi semaphore thc hin ng b ho hot ng ca th v khch hng trong ca hiu ct tc ny.
/* Semaphore to protect critical sections */ Semaphore mutex = 1; /* Semaphore for the number of waiting customers. * This lets the barber go to sleep when there are no customers */ Semaphore customers = 0; /* Number of waiting customers in the barber shop */ /* Just used to turn away customers when there are too many already. */ int waiting_customers = 0 /* Semaphore on which to wait for a haircut */ Semaphore haircut = 0; /* Customer calls this function to try to get their hair cut * it returns true if the hair gets cut. */ int customer() { /* protect access to shared variables with semaphore mutex */ wait( mutex ); /* Make sure there is an empty chair */ if( waiting_customers >= 5 ){ signal( mutex ); return 0;

79

} /* there is now a new waiting customer */ waiting_customers += 1; signal( mutex ); /* Wake the barber if the shop was empty */ signal( customers ); /* Wait for a haircut from the barber */ wait( haircut ); return 1; } /* Barber loops within this function */ void barber() { while( 1 ){ /* Go to sleep if there are no customers */ wait( customers ); // protect access to shared variables with semaphore mutex wait( mutex ); /* take customer out of a chair */ waiting_customers -= 1; signal( mutex ); /* cut hair of the current customer */ cut_hair(); /* Let the customer go. */ signal( haircut ); } }

Bi 17.Gii quyt bi ton Baber trong trng hp tim c nhiu th . Bi 18.Xt trng thi h thng :
Max R1 P1 R2 3 R3 2 Allocation R1 2 R2 1 R3 0 Available R1 0 R2 R3

P2

P3

P4

80

N u ti n trnh P2 yu c u 4 cho R1, 1 cho R3. hy cho bi t yu c u ny c th

p ng m b o m khng xy ra tnh tr ng deadlock hay khng ? Bi 19.Xt trng thi h thng :


Max A P1 B 0 C 0 D 1 Allocation A 2 B 0 C 0 D 1 Available A 2 B C D

P2

P3

P4

P5

a) Cho bit ni dung ca bng Need. b) H thng c trng thi an ton khng? c) Nu tin trnh P2 c yu cu ti nguyn ( 0,4,2,0), yu cu ny c c p ng tc thi khng?

81

CHNG 6 : QUN L B NH
Chng ny s gip cc bn hnh dung nhng vn cn quan tm khi thit k module qun l b nh ca H iu hnh . Mt s m hnh t chc b nh cng c gii thiu v phn tch u, khuyt im cc bn c th hiu c cch thc cp pht v thu hi b nh din ra nh th no B nh chnh l thit b lu tr duy nht thng qua CPU c th trao i thng tin vi mi trng ngoi, do vy nhu cu t chc, qun l b nh l mt trong nhng nhim v trng tm hng u ca h iu hnh . B nh chnh c t chc nh mt mng mt chiu cc t nh (word), mi t nh c mt a ch . Vic trao i thng tin vi mi trng ngoi c thc hin thng qua cc thao tc c hoc ghi d liu vo mt a ch c th no trong b nh. Hu ht cc h iu hnh hin i u cho php ch a nhim nhm nng cao hiu sut s dng CPU. Tuy nhin k thut ny li lm ny sinh nhu cu chia s b nh gia cc tin trnh khc nhau . Vn nm ch : b nh th hu hn v cc yu cu b nh th v hn . H iu hnh chu trch nhim cp pht vng nh cho cc tin trnh c yu cu. thc hin tt nhim v ny, h iu hnh cn phi xem xt nhiu kha cnh : S tng ng gia a ch logic v a ch vt l (physic) : lm cch no chuyn i mt a ch tng trng (symbolic) trong chng trnh thnh mt a ch thc trong b nh chnh? Qun l b nh vt l: lm cch no m rng b nh c sn nhm lu tr c nhiu tin trnh ng thi? Chia s thng tin: lm th no cho php hai tin trnh c th chia s thng tin trong b nh? Bo v: lm th no ngn chn cc tin trnh xm phm n vng nh c cp pht cho tin trnh khc? Cc gii php qun l b nh ph thuc rt nhiu vo c tnh phn cng v tri qua nhiu giai on ci tin tr thnh nhng gip php kh tha ng nh hin nay.

I. Bi cnh
Thng thng, mt chng trnh c lu tr trn a nh mt tp tin nh phn c th x l. thc hin chng trnh, cn np chng trnh va b nh chnh, to lp tin trnh tng ng x l . Hng i nhp h thng l tp hp cc chng trnh trn a ang ch c np vo b nh tin hnh x l. Cc a ch trong chng trnh ngun l a ch tng trng , v th, mt chng trnh phi tri qua nhiu giai on x l chuyn i cc a ch ny thnh cc a ch tuyt i trong b nh chnh. C th thc hin kt buc cc ch th v d liu vi cc a ch b nh vo mt trong nhng thi im sau :

82

Thi im bin dch: nu ti thi im bin dch, c th bit v tr m tin trnh s thng tr trong b nh, trnh bin dch c th pht sinh ngay m vi cc a ch tuyt i. Tuy nhin, nu v sau c s thay i v tr thng tr lc u ca chng trnh, cn phi bin dch li chng trnh. Thi im np : nu ti thi im bin dch, cha th bit v tr m tin trnh s thng tr trong b nh, trnh bin dch cn pht sinh m tng i (translatable). S lin kt a ch c tr hon n thi im chng trnh c np vo b nh, lc ny cc a ch tng i s c chuyn thnh a ch tuyt i do bit v tr bt u lu tr tin trnh. Khi c s thay i v tr lu tr, ch cn np li chng trnh tnh ton li cc a ch tuyt i, m khng cn bin dch li. Thi im x l : nu c nhu cu di chuyn tin trnh t vng nh ny sang vng nh khc trong qu trnh tin trnh x l, th thi im kt buc a ch phi tr hon n tn thi im x l. thc hin kt buc a ch vo thi im x l, cn s dng c ch phn cng c bit.

II. Khng gian a ch v khng gian vt l


Mt trong nhng hng tip cn trung tm nhm t chc qun l b nh mt cch hiu qa l a ra khi nim khng gian a ch c xy dng trn khng gian nh vt l, vic tch ri hai khng gian ny gip h iu hnh d dng xy dng cc c ch v chin lc qun l b nh hu hiu : a ch logic cn gi l a ch o , l tt c cc a ch do b x l to ra. a ch vt l - l a ch thc t m trnh qun l b nh nhn thy v thao tc. Khng gian a ch l tp hp tt c cc a ch o pht sinh bi mt chng trnh. Khng gian vt l l tp hp tt c cc a ch vt l tng ng vi cc a ch o. a ch o v a ch vt l l nh nhau trong phng thc kt buc a ch vo thi im bin dch cng nh vo thi im np. Nhng c s khc bit gia a ch o v a ch vt l trong phng thc kt buc vo thi im x l. MMU (memory-management unit) l mt c ch phn cng c s dng thc hin chuyn i a ch o thnh a ch vt l vo thi im x l. Chng trnh ca ngi s dng ch thao tc trn cc a ch o, khng bao gi nhn thy cc a ch vt l . a ch tht s ng vi v tr ca d liu trong b nh ch c xc nh khi thc hin truy xut n d liu.

III. Cp pht lin tc III.1. M hnh Linker_Loader


tng : Tin trnh c np vo mt vng nh lin tc ln cha ton b tin trnh. Ti thi im bin dch cc a ch bn trong tin trnh vn l a ch tng i. Ti thi im np, H iu hnh s tr v a ch bt u np tin trnh, v tnh ton chuyn cc a ch tng i v a ch tuyt i trong b nh vt l theo cng thc a ch vt l = a ch bt u + a ch tng i.

83

Tho lun: Thi im kt buc a ch l thi im np, do vy sau khi np khng th di chuyn tin trnh trong b nh . Khng c kh nng kim sot a ch cc tin trnh truy cp, do vy khng c s bo v.

III.2. M hnh Base &Bound


tng : Tin trnh c np vo mt vng nh lin tc ln cha ton b tin trnh. Ti thi im bin dch cc a ch bn trong tin trnh vn l a ch tng i. Tuy nhin b tc vo cu trc phn cng ca my tnh mt thanh ghi nn (base register) v mt thanh ghi gii hn (bound register). Khi mt tin trnh c cp pht vng nh, np vo thanh ghi nn a ch bt u ca phn vng c cp pht cho tin trnh, v np vo thanh ghi gii hn kch thc ca tin trnh. Sau , mi a ch b nh c pht sinh s t ng c cng vi a ch cha trong thanh ghi nn cho ra a ch tuyt i trong b nh, cc a ch cng c i chiu vi thanh ghi gii hn bo m tin trnh khng truy xut ngoi phm vi phn vng c cp cho n.

Hai thanh ghi h tr chuyn i a ch

84

Tho lun: Mt u im ca vic s dng thanh ghi nn l c th di chuyn cc chng trnh trong b nh sau khi chng bt u x l, mi khi tin trnh c di chuyn n mt v tr mi, ch cn np li gi tr cho thanh ghi nn, cc a ch tuyt i s c pht sinh li m khng cn cp nht cc a ch tng i trong chng trnh Chu ng hin tng phn mnh ngoi vi( external fragmentation ) : khi cc tin trnh ln lt vo v ra khi h thng, dn dn xut hin cc khe h gia cc tin trnh. y l cc khe h c to ra do kch thc ca tin trnh mi c np nh hn kch thc vng nh mi c gii phng bi mt tin trnh kt thc v ra khi h thng. Hin tng ny c th dn n tnh hung tng vng nh trng tho mn yu cu, nhng cc vng nh ny li khng lin tc ! Ngi ta c th p dng k thut dn b nh (memory compaction ) kt hp cc mnh b nh nh ri rc thnh mt vng nh ln lin tc. Tuy nhin, k thut ny i hi nhiu thi gian x l, ngoi ra, s kt buc a ch phi thc hin vo thi im x l, v cc tin trnh c th b di chuyn trong qu trnh dn b nh.

Phn mnh ngoi vi Vn ny sinh khi kch thc ca tin trnh tng trng trong qa trnh x l m khng cn vng nh trng gn k m rng vng nh cho tin trnh. C hai cch gii quyt: Di ch tin trnh : di chuyn tin trnh n mt vng nh khc ln tha mn nhu cu tng trng ca tin trnh. Cp pht d vng nh cho tin trnh : cp pht d phng cho tin trnh mt vng nh ln hn yu cu ban u ca tin trnh. Mt tin trnh cn c np vo b nh x l. Trong cc phng thc t chc trn y, mt tin trnh lun c lu tr trong b nh sut qu trnh x l ca n. Tuy nhin, trong trng hp tin trnh b kha, hoc tin trnh s dng ht thi gian CPU dnh cho n, n c th c chuyn tm thi ra b nh ph v sau ny c np tr li vo b nh chnh tip tc x l. Cc cch t chc b nh trn y u phi chu ng tnh trng b nh b phn mnh v chng u tip cn theo kiu cp pht mt vng nh lin tc cho tin trnh. Nh tho lun, c th s dng k thut dn b nh loi b s phn mnh ngoi vi, nhng chi ph thc hin rt cao. Mt gii php khc hu hiu hn l cho php khng gian a ch vt l ca tin trnh khng lin tc, ngha l c th cp pht cho tin trnh nhng vng nh t do bt k, khng cn lin tc. 85

IV. Cp pht khng lin tc IV.1. Phn on (Segmentation)


tng: quan nim khng gian a ch l mt tp cc phn on (segments) cc phn on l nhng phn b nh kch thc khc nhau v c lin h logic vi nhau. Mi phn on c mt tn gi (s hiu phn on) v mt di. Ngi dng s thit lp mi a ch vi hai gi tr : <s hiu phn on, offset>.

Hnh 4.17 M hnh phn on b nh C ch MMU trong k thut phn on: Cn phi xy dng mt nh x chuyn i cc a ch 2 chiu c ngi dng nh ngha thnh a ch vt l mt chiu. S chuyn i ny c thc hin qua mt bng phn on. Mi thnh phn trong bng phn on bao gm mt thanh ghi nn v mt thanh ghi gii hn. Thanh ghi nn lu tr a ch vt l ni bt u phn on trong b nh, trong khi thanh ghi gii hn c t chiu di ca phn on. Chuyn i a ch: Mi a ch o l mt b <s,d> : s hiu phn on s : c s dng nh ch mc n bng phn on a ch tng i d : c gi tr trong khong t 0 n gii hn chiu di ca phn on. Nu a ch tng i hp l, n s c cng vi gi tr cha trong thanh ghi nn pht sinh a ch vt l tng ng.

86

Hnh 4.18 C ch phn cng h tr k thut phn on

Hnh 4.19 H thng phn on Ci t bng phn on: C th s dng cc thanh ghi lu tr bng phn on nu s lng phn on nh. Trong trng hp chng trnh bao gm qu nhiu phn on, bng phn on phi c lu trong b nh chnh. Mt thanh ghi nn bng phn on (STBR) ch n a ch bt u ca bng phn on. V s lng phn on s dng trong mt chng trnh bin ng, cn s dng thm mt thanh ghi c t kch thc bng phn on (STLR). Vi mt a ch logic <s,d>, trc tin s hiu phn on s c kim tra tnh hp l (s <STLR). K tip, cng gi tr s vi STBR c c a ch a ch ca phn t th s trong bng phn on (STBR+s). i ch vt l cui cng l (STBR+s + d)

87

Hnh 4.20 S dng STBR, STLR v bng phn on Bo v: Mt u im c bit ca c ch phn on l kh nng c t thuc tnh bo v cho mi phn on. V mi phn on biu din cho mt phn ca chng trnh vi ng ngha c ngi dng xc nh, ngi s dng c th bit c mt phn on cha ng nhng g bn trong, do vy h c th c t cc thuc tnh bo v thch hp cho tng phn on. C ch phn cng ph trch chuyn i a ch b nh s kim tra cc bit bo v c gn vi mi phn t trong bng phn on ngn chn cc thao tc truy xut bt hp l n phn on tng ng. Chia s phn on: Mt u im khc ca k thut phn on l kh nng chia s mc phn on. Nh kh nng ny, cc tin trnh c th chia s vi nhau tng phn chng trnh ( v d cc th tc, hm), khng nht thit phi chia s ton b chng trnh nh trng hp phn trang. Mi tin trnh c mt bng phn on ring, mt phn on c chia s khi cc phn t trong bng phn on ca hai tin trnh khc nhau cng ch n mt v tr vt l duy nht.

Hnh 4.21 Chia s code trong h phn on Tho lun: Phi gii quyt vn cp pht ng: lm th no tha mn mt yu cu vng nh kch thc N ? Cn phi chn vng nh no trong danh sch vng nh t do cp pht ? Nh vy 88

cn phi ghi nh hin trng b nh c th cp pht ng. C hai phng php qun l ch yu : Qun l bng mt bng cc bit : b nh c chia thnh cc n v cp pht, mi n v c phn nh bng mt bit trong bng cc bit, mt bit nhn gi tr 0 nu n v b nh tng ng ang t do, v nhn gi tr 1 nu n v tng ng c cp pht cho mt tin trnh. Khi cn np mt tin trnh c kch thc k n v, cn phi tm trong bng cc bit mt dy con k bit nhn gi tr 0. y l mt gii php n gin, nhng thc hin chm nn t c s dng.

Hnh 4.5 Qun l b nh bng bng cc bit Qun l bng danh sch: T chc mt danh sch cc phn on cp pht v phn on t do, mt phn on c th l mt tin trnh (P) hay vng nh trng gia hai tin trnh (H).

Hnh 4.6 Qun l b nh bng danh sch Cc thut ton thng dng chn mt phn on t do trong danh sch cp pht cho tin trnh l : First-fit: cp pht phn on t do u tin ln. Best-fit: cp pht phn on t do nh nht nhng ln tha mn nhu cu. Worst-fit : cp pht phn on t do ln nht. Trong h thng s dng k thut phn on , hin tng phn mnh ngoi vi li xut hin khi cc khi nh t do u qu nh, khng cha mt phn on.

IV.2. Phn trang ( Paging)


tng: Phn b nh vt l thnh cc khi (block) c kch thc c nh v bng nhau, gi l khung trang (page frame). Khng gian a ch cng c chia thnh cc khi c cng kch thc vi khung trang, v c gi l trang (page). Khi cn np mt tin trnh x l, cc trang ca tin trnh s c np vo nhng khung trang cn trng. Mt tin trnh kch thc N trang s yu cu N khung trang t do.

89

Hnh 4.8 M hnh b nh phn trang C ch MMU trong k thut phn trang: C ch phn cng h tr thc hin chuyn i a ch trong c ch phn trang l bng trang (pages table). Mi phn t trong bng trang cho bit cc a ch bt u ca v tr lu tr trang tng ng trong b nh vt l ( s hiu khung trang trong b nh vt l ang cha trang ). Chuyn i a ch: Mi a ch pht sinh bi CPU c chia thnh hai phn: s hiu trang (p): s dng nh ch mc n phn t tng ng trong bng trang. a ch tng i trong trang (d): kt hp vi a ch bt u ca trang to ra a ch vt l m trnh qun l b nh s dng. Kch thc ca trang do phn cng qui nh. d phn tch a ch o thnh s hiu trang v a ch tng i, kch thc ca mt trang thng thng l mt ly tha ca 2 (bin i trong phm vi 512 bytes v 8192 bytes). Nu kch thc ca khng gian a ch l 2m v kch thc trang l 2 n, th m-n bits cao ca a ch o s biu din s hiu trang, v n bits thp cho bit a ch tng i trong trang.

Ci t bng trang: Trong trng hp n gin nht, bng trang mt tp cc thanh ghi c s dng ci t bng trang. Tuy nhin vic s dng thanh ghi ch ph hp vi cc bng trang c kch thc nh, nu bng trang c kch thc ln, n phi c lu tr trong b nh chnh, v s dng mt thanh ghi lu a ch bt u lu tr bng trang (PTBR). 90

Theo cch t chc ny, mi truy xut n d liu hay ch th u i hi hai ln truy xut b nh : mt cho truy xut n bng trang v mt cho bn thn d liu!

Hnh 4.10 M hnh b nh phn trang

Hnh 4.11 S dng thanh ghi nn tr n bng trang C th n trnh bt vic truy xut b nh hai ln bng cch s dng thm mt vng nh c bit , vi tc truy xut nhanh v cho php tm kim song song, vng nh cache nh ny thng c gi l b nh kt hp (TLBs). Mi thanh ghi trong b nh kt hp gm mt t kha v mt gi tr, khi a n b nh kt hp mt i tng cn tm, i tng ny s c so snh cng lc vi cc t kha trong b nh kt hp tm ra phn t tng ng. Nh c tnh ny m vic tm kim trn b nh kt hp c thc hin rt nhanh, nhng chi ph phn cng li cao. Trong k thut phn trang, TLBs c s dng lu tr cc trang b nh c truy cp gn hin ti nht. Khi CPU pht sinh mt a ch, s hiu trang ca a ch s c so snh vi cc phn t trong TLBs, nu c trang tng ng trong TLBs, th s xc nh c ngay s hiu khung trang tng ng, nu khng mi cn thc hin thao tc tm kim trong bng trang.

91

T chc bng trang: Mi h iu hnh c mt phng php ring t chc lu tr bng trang. a s cc h iu hnh cp cho mi tin trnh mt bng trang. Tuy nhin phng php ny khng th chp nhn c nu h iu hnh cho php qun l mt khng gian a ch c dung lng qu (232, 264): trong cc h thng nh th, bn thn bng trang i hi mt vng nh qa ln! C hai gii php cho vn ny: Phn trang a cp: phn chia bng trang thnh cc phn nh, bn thn bng trang cng s c phn trang

Bng trang nghch o: S dng duy nht mt bng trang nghch o cho tt c cc tin trnh. Mi phn t trong bng trang nghch o phn nh mt khung trang trong b nh bao gm a ch logic ca mt trang ang c lu tr trong b nh vt l ti khung trang ny, cng vi thng tin v tin trnh ang c s hu trang. Mi a ch o khi l mt b ba <idp, p, d > Trong : idp l nh danh ca tin trnh, p l s hiu trang v d l a ch tng i trong trang. Mi phn t trong bng trang nghch o l mt cp <idp, p >. Khi mt tham kho n b nh c pht sinh, mt phn a ch o l <idp, p > c a n cho trnh qun l b nh tm phn t tng ng trong bng trang nghch o, nu tm thy, a ch vt l <i,d> s 92

c pht sinh. Trong cc trng hp khc, xem nh tham kho b nh truy xut mt a ch bt hp l.

Bo v: C ch bo v trong h thng phn trang c thc hin vi cc bit bo v c gn vi mi khung trang. Thng thng , cc bit ny c lu trong bng trang , v mi truy xut n b nh u phi tham kho n bng trang pht sinh a ch vt l, khi , h thng c th kim tra cc thao tc truy xut trn khung trang tng ng c hp l vi thuc tnh bo v ca n khng. Ngoi ra, mt bit ph tri c thm vo trong cu trc mt phn t ca bng trang : bit hp l-bt hp l (valid-invalid). Hp l : trang tng ng thuc v khng gian a ch ca tin trnh. Bt hp l : trang tng ng khng nm trong khng gian a ch ca tin trnh, iu ny c ngha tin trnh truy xut n mt a ch khng c php.

Hnh 4.15 Cu trc mt phn t trong bng trang Chia s b nh trong c ch phn trang: Mt u im ca c ch phn trang l cho php chia s cc trang gia cc tin trnh.Trong trng hp ny, s chia s c thc hin bng cch nh x nhiu a ch logic vo mt a ch vt l duy nht. C th p dng k thut ny cho php c tin trnh chia s mt vng code chung: nu c nhiu tin trnh ca cng mt chng trnh, ch cn lu tr mt on code ca chng trnh ny trong b nh, cc tin trnh s c th cng truy xut n cc trang cha code chung ny. Lu c th chia s mt on code, on code ny phi c thuc tnh reenterable (cho php mt bn sao ca chng trnh c s dng ng thi bi nhiu tc v).

93

Tho lun: K thut phn trang loi b c hin tng phn mnh ngoi vi : mi khung trang u c th c cp pht cho mt tin trnh no c yu cu. Tuy nhin hin tng phn mnh ni vi vn c th xy ra khi kch thc ca tin trnh khng ng bng bi s ca kch thc mt trang, khi , trang cui cng s khng c s dng ht. Mt khi cnh tch cc rt quan trng khc ca k thut phn trang l s phn bit rch ri gc nhn ca ngi dng v ca b phn qun l b nh vt l: Gc nhn ca ngi s dng: mt tin trnh ca ngi dng nhn thy b nh nh l mt khng gian lin tc, ng nht v ch cha duy nht bn thn tin trnh ny. Gc nhn ca b nh vt l: mt tin trnh ca ngi s dng c lu tr phn tn khp b nh vt l, trong b nh vt l ng thi cng cha nhng tin trnh khc. Phn cng m nhim vic chuyn i a ch logic thnh a ch vt l . S chuyn i ny l trong sut i vi ngi s dng. lu tr cc thng tin chi tit v qu trnh cp pht b nh, h iu hnh s dng mt bng khung trang, m mi phn t m t tnh trng ca mt khung trang vt l : t do hay c cp pht cho mt tin trnh no . Lu rng s phn trang khng phn nh ng cch thc ngi s dng cm nhn v b nh. Ngi s dng nhn thy b nh nh mt tp cc i tng ca chng trnh (segments, cc th vin...) v mt tp cc i tng d liu (bin ton cc, stack, vng nh chia s...). Vn t ra l cn tm mt cch thc biu din b nh sao cho c th cung cp cho ngi dng mt cch nhn gn vi quan im logic ca h hn v l k thut phn on K thut phn on tha mn c nhu cu th hin cu trc logic ca chng trnh nhng n dn n tnh hung phi cp pht cc khi nh c kch thc khc nhau cho cc phn on trong b nh vt l. iu ny lm rc ri vn hn rt nhiu so vi vic cp pht cc trang c kch thc tnh.Mt gii php dung ho l kt hp c hai k thut phn trang v phn on : chng ta tin hnh phn trang cc phn on.

94

IV.3. Phn on kt hp phn trang (Paged segmentation)


tng: Khng gian a ch l mt tp cc phn on, mi phn on c chia thnh nhiu trang. Khi mt tin trnh c a vo h thng, h iu hnh s cp pht cho tin trnh cc trang cn thit cha cc phn on ca tin trnh. C ch MMU trong k thut phn on kt hp phn trang: h tr k thut phn on, cn c mt bng phn on, nhng gi y mi phn on cn c mt bng trang phn bit. Chuyn i a ch: Mi a ch logic l mt b ba: <s,p,d> s hiu phn on (s): s dng nh ch mc n phn t tng ng trong bng phn on. s hiu trang (p): s dng nh ch mc n phn t tng ng trong bng trang ca phn on. a ch tng i trong trang (d): kt hp vi a ch bt u ca trang to ra a ch vt l m trnh qun l b nh s dng.

Hnh 4.22 M hnh phn on k hp phn trang

95

Tt c cc m hnh t chc b nh trn y u c khuynh hng cp pht cho tin trnh ton b cc trang yu cu trc khi tht s x l. V b nh vt l c kch thc rt gii hn, iu ny dn n hai im bt tin sau : Kch thc tin trnh b gii hn bi kch thc ca b nh vt l. Kh c th bo tr nhiu tin trnh cng lc trong b nh, v nh vy kh nng cao mc a chng ca h thng.

V. Tm tt
C nhiu cch tip cn khc nhau t chc qun l b nh, nhng tu chung mong t n cc mc tiu sau : C th p ng c y cc nhu cu b nh ca chng trnh vi mt b nh vt l gii hn Qu trnh chuyn i a ch, t chc cp pht b nh l trong sut vi ngi dng, v c kh nng ti nh v. Tn dng hiu qu b nh ( t c vng nh khng s dng c) B nh c bo v tt C kh nng chia s b nh gia cc tin trnh Mt s cch tip cn t chc b nh chnh Cp pht lin tc : c th cp pht cc vng nh lin tc cho cc tin trnh trong nhng phn vng c kch thc c nh hay bin ng. im yu ca cch tip cn ny l kch thc cc chng trnh c th dc x l b gii hn bi cc kch thc ca khi nh lin tc c th s dng. Cc hin tng phn mnh ngoi vi, ni vi u c th xut hin Cp pht khng lin tc : c th cp pht cc vng nh khng lin tc cho mt tin trnh. Hai k thut thng c p dng l phn trang v phn on. K thut phn trang cho php loi b hin tng phn mnh ngoi vi, k thut phn on loi b hin tng phn mnh ni vi, nhng phi gii quyt vn cp pht ng.

Cng c bi hc. Cc cu hi cn tr li c sau bi hc ny :


1. Nhim v qun l b nh bao gm cc cng vic no ? Giai on no do h iu hnh thc hin , giai on no cn s tr gip ca phn cng? 2. Cc khi nim : phn mnh ni vi, phn mnh ngoi vi, bi ton cp pht ng, i ch logic, i ch physic 3. Phn tch u khuyt ca cc m hnh t chc b nh.

Bi Tp
Bi 1. Gii thch s khc bit gia a ch logic v a ch physic? Bi 2. Gii thch s khc bit gia hin tng phn mnh ni vi v ngoi vi? Bi 3. Gi s b nh chnh c phn thnh cc phn vng c kch thc l 600K, 500K, 200K, 300K ( theo th t ), cho bit cc tin trnh c kch thc 212K, 417K, 112K v 426K ( theo th t ) s c cp pht b nh nh th no, nu s dng : a) Thut ton First fit b) Thut ton Best fit 96

c) Thut ton Worst fit Thut ton no cho php s dng b nh hiu qa nht trong trng hp trn ? Bi 4. Xt mt h thng trong mt chng trnh khi c np vo b nh s phn bit hon ton phn on code v phn on data. Gi s CPU s xc nh c khi no cn truy xut lnh hay d liu , v phi truy xut u. Khi mi chng trnh s c cung cp 2 b thanh ghi base-limit : mt cho phn on code, v mt cho phn on data. B thanh ghi baselimit ca phn on code t ng c t thuc tnh readonly. Tho lun cc u v khuyt im ca h thng ny. Bi 5. Ti sao kch thc trang lun l ly tha ca 2 ? Bi 6. Xt mt khng gian a ch c 8 trang, mi trang c kch thc 1K. nh x vo b nh vt l c 32 khung trang. a) a ch logic gm bao nhiu bit ? b) a ch physic gm bao nhiu bit ? Bi 7. Ti sao trong h thng s dng k thut phn trang, mt tin trnh khng th truy xut n vng nh khng c cp cho n ? Lm cch no h iu hnh c th cho php s truy xut ny xy ra ? H iu hnh c nn cho php iu khng ? Ti sao ? Bi 8. Xt mt h thng s dng k thut phn trang, vi bng trang c lu tr trong b nh chnh. a) Nu thi gian cho mt ln truy xut b nh bnh thng l 200nanoseconds, th mt bao nhiu thi gian cho mt thao tc truy xut b nh trong h thng ny ? b) Nu s dng TLBs vi hit-ratio ( t l tm thy) l 75%, thi gian tm trong TLBs xem nh bng 0, tnh thi gian truy xut b nh trong h thng ( effective memory reference time) Bi 9. Nu cho php hai phn t trong bng trang cng lu tr mt s hiu khung trang trong b nh th s c hiu qa g ? Gii thch lm cch no hiu qa ny c th c s dng gim thi gian cn khi sao chp mt khi lng ln vng nh t v tr ny sang v tr khc. Khi nu sa ni dung mt trang th s tc ng n trang cn li th no? Bi 10. V sao i lc ngi ta kt hp hai k thut phn trang v phn on ? Bi 11. M t c ch cho php mt phn on c th thuc v khng gian i ch ca hai tin trnh. Bi 12. Gii thch v sao chia s mt module trong k thut phn on li d hn trong k thut phn trang? Bi 13. Xt bng phn on sau y : Segment Base Length 0 219 600 1 2300 14 2 90 100 3 1327 580 4 1952 96 Cho bit a ch vt l tng ng vi cc a ch logique sau y :
a. b. c. d. e. 0,430 1,10 2,500 3,400 4,112

97

CHNG 7: B NH O
B nh o l mt k thut hin i gip cho ngi dng c gii phng hon ton khi mi bn tm v gii hn b nh. tng, u im v nhng vn lin quan n vic t chc b nh o s c trnh by trong bi hc ny.

I. Dn nhp
Nu t ton th khng gian a ch vo b nh vt l, th kch thc ca chng trnh b gii hn bi kch thc b nh vt l. Thc t, trong nhiu trng hp, chng ta khng cn phi np ton b chng trnh vo b nh vt l cng mt lc, v ti mt thi im ch c mt ch th ca tin trnh c x l. V d, cc chng trnh u c mt on code x l li, nhng on code ny hu nh rt t khi c s dng v him khi xy ra li, trong trng hp ny, khng cn thit phi np on code x l li t u. T nhn xt trn, mt gii php c xut l cho php thc hin mt chng trnh ch c np tng phn vo b nh vt l. tng chnh ca gii php ny l ti mi thi im ch lu tr trong b nh vt l cc ch th v d liu ca chng trnh cn thit cho vic thi hnh ti thi im . Khi cn n cc ch th khc, nhng ch th mi s c np vo b nh, ti v tr trc b chim gi bi cc ch th nay khng cn cn n na. Vi gii php ny, mt chng trnh c th ln hn kch thc ca vng nh cp pht cho n. Mt cch thc hin tng ca gii php trn y l s dng k thut overlay. K thut overlay khng i hi bt k s tr gip c bit no ca h iu hnh , nhng tri li, lp trnh vin phi bit cch lp trnh theo cu trc overlay, v iu ny i hi kh nhiu cng sc. gii phng lp trnh vin khi cc suy t v gii hn ca b nh, m cng khng tng thm kh khn cho cng vic lp trnh ca h, ngi ta ngh n cc k thut t ng, cho php x l mt chng trnh c kch thc ln ch vi mt vng nh c kch thc nh . Gii php c tm thy vi khi nim b nh o (virtual memory).

I.1. nh ngha
B nh o l mt k thut cho php x l mt tin trnh khng c np ton b vo b nh vt l. B nh o m hnh ho b nh nh mt bng lu tr rt ln v ng nht, tch bit hn khi nim khng gian a ch v khng gian vt l. Ngi s dng ch nhn thy v lm vic trong khng gian a ch o, vic chuyn i sang khng gian vt l do h iu hnh thc hin vi s tr gip ca cc c ch phn cng c th. Tho lun: Cn kt hp k thut swapping n chuyn cc phn ca chng trnh vo-ra gia b nh chnh v b nh ph khi cn thit. Nh vic tch bit b nh o v b nh vt l, c th t chc mt b nh o c kch thc ln hn b nh vt l. B nh o cho php gim nh cng vic ca lp trnh vin v h khng cn bn tm n gii hn ca vng nh vt l, cng nh khng cn t chc chng trnh theo cu trc overlays. 98

Hnh 2.24 B nh o

I.2. Ci t b nh o
B nh o thng c thc hin vi k thut phn trang theo yu cu (demand paging). Cng c th s dng k thut phn on theo yu cu ( demand segmentation) ci t b nh o, tuy nhin vic cp pht v thay th cc phn on phc tp hn thao tc trn trang, v kch thc khng bng nhau ca cc on. Phn trang theo yu cu ( demand paging) Mt h thng phn trang theo yu cu l h thng s dng k thut phn trang kt hp vi k thut swapping. Mt tin trnh c xem nh mt tp cc trang, thng tr trn b nh ph ( thng l a). Khi cn x l, tin trnh s c np vo b nh chnh. Nhng thay v np ton b chng trnh, ch nhng trang cn thit trong thi im hin ti mi c np vo b nh. Nh vy mt trang ch c np vo b nh chnh khi c yu cu. Vi m hnh ny, cn cung cp mt c ch phn cng gip phn bit cc trang ang trong b nh chnh v cc trang trn a. C th s dng li bit valid-invalid nhng vi ng ngha mi: valid : trang tng ng l hp l v ang trong b nh chnh . invalid : hoc trang bt hp l (khng thuc v khng gian a ch ca tin trnh) hoc trang hp l nhng ang c lu trn b nh ph. Mt phn t trong bng trang m t cho mt trang khng nm trong b nh chnh, s c nh du invalid v cha a ch ca trang trn b nh ph. C ch phn cng : C ch phn cng h tr k thut phn trang theo yu cu l s kt hp ca c ch h tr k thut phn trang v k thut swapping: Bng trang: Cu trc bng trang phi cho php phn nh tnh trng ca mt trang l ang nm trong b nh chnh hay b nh ph. B nh ph: B nh ph lu tr nhng trang khng c np vo b nh chnh. B nh ph thng c s dng l a, v vng khng gian a dng lu tr tm cc trang trong k thut swapping c gi l khng gian swapping.

99

Hnh 2.24 Bng trang vi mt s trang trn b nh ph Li trang Truy xut n mt trang c nh du bt hp l s lm pht sinh mt li trang (page fault). Khi d tm trong bng trang ly cc thng tin cn thit cho vic chuyn i a ch, nu nhn thy trang ang c yu cu truy xut l bt hp l, c ch phn cng s pht sinh mt ngt bo cho h iu hnh. H iu hnh s x l li trang nh sau : Kim tra truy xut n b nh l hp l hay bt hp l Nu truy xut bt hp l : kt thc tin trnh Ngc li : n bc 3 Tm v tr cha trang mun truy xut trn a. Tm mt khung trang trng trong b nh chnh : Nu tm thy : n bc 5 Nu khng cn khung trang trng, chn mt khung trang nn nhn v chuyn trang nn nhn ra b nh ph (lu ni dung ca trang ang chim gi khung trang ny ln a), cp nht bng trang tng ng ri n bc 5 Chuyn trang mun truy xut t b nh ph vo b nh chnh : np trang cn truy xut vo khung trang trng chn (hay va mi lm trng ) ; cp nht ni dung bng trang, bng khung trang tng ng. Ti kch hot tin trnh ngi s dng.

100

Hnh 2.26 Cc giai on x l li trang

II. Thay th trang


Khi xy ra mt li trang, cn phi mang trang vng mt vo b nh . Nu khng c mt khung trang no trng, h iu hnh cn thc hin cng vic thay th trang chn mt trang ang nm trong b nh m khng c s dng ti thi im hin ti v chuyn n ra khng gian swapping trn a gii phng mt khung trang dnh ch np trang cn truy xut vo b nh. Nh vy nu khng c khung trang trng, th mi khi xy ra li trang cn phi thc hin hai thao tc chuyn trang : chuyn mt trang ra b nh ph v np mt trang khc vo b nh chnh. C th gim bt s ln chuyn trang bng cch s dng thm mt bit cp nht (dirty bit). Bit ny c gn vi mi trang phn nh tnh trng trang c b cp nht hay khng : gi tr ca bit c c ch phn cng t l 1 mi ln c mt t c ghi vo trang, ghi nhn ni dung trang c b sa i. Khi cn thay th mt trang, nu bit cp nht c gi tr l 1 th trang cn c lu li trn a, ngc li, nu bit cp nht l 0, ngha l trang khng b thay i, th khng cn lu tr trang tr li a. s hiu trang bit valid-invalid dirty bit

Hnh 4.27 Cu trc mt phn t trong bng trang S thay th trang l cn thit cho k thut phn trang theo yu cu. Nh c ch ny, h thng c th hon ton tch ri b nh o v b nh vt l, cung cp cho lp trnh vin mt b nh o rt ln trn mt b nh vt l c th b hn rt nhiu ln.

101

II.1. S thi hnh phn trang theo yu cu


Vic p dng k thut phn trang theo yu cu c th nh hng mnh n tnh hnh hot ng ca h thng. Ga s p l xc sut xy ra mt li trang (0 p 1): p = 0 : khng c li trang no p = 1 : mi truy xut s pht sinh mt li trang Thi gian tht s cn thc hin mt truy xut b nh (TEA) l: TEA = (1-p)ma + p (tdp) [+ swap out ] + swap in + ti kch hot Trong cng thc ny, ma l thi gian truy xut b nh, tdp thi gian x l li trang. C th thy rng, duy tr mt mc chp nhn c s chm tr trong hot ng ca h thng do phn trang, cn phi duy tr t l pht sinh li trang thp. Hn na, ci t k thut phn trang theo yu cu, cn phi gii quyt hai vn chnh yu : xy dng mt thut ton cp pht khung trang, v thut ton thay th trang.

II.2. Cc thut ton thay th trang


Vn chnh khi thay th trang l chn la mt trang nn nhn chuyn ra b nh ph. C nhiu thut ton thay th trang khc nhau, nhng tt c cng chung mt mc tiu : chn trang nn nhn l trang m sau khi thay th s gy ra t li trang nht. C th nh gi hiu qa ca mt thut ton bng cch x l trn mt chui cc a ch cn truy xut v tnh ton s lng li trang pht sinh. V d: Gi s theo vt x l ca mt tin trnh v nhn thy tin trnh thc hin truy xut cc a ch theo th t sau : 0100, 0432, 0101, 0162, 0102, 0103, 0104, 0101, 0611, 0102, 0103,0104, 0101, 0610, 0102, 0103, 0104, 0101, 0609, 0102, 0105 Nu c kch thc ca mt trang l 100 bytes, c th vit li chui truy xut trn gin lc hn nh sau : 1, 4, 1, 6, 1, 6, 1, 6, 1 xc nh s cc li trang xy ra khi s dng mt thut ton thay th trang no trn mt chui truy xut c th, cn cn phi bit s lng khung trang s dng trong h thng. minh ho cc thut ton thay th trang s trnh by, chui truy xut c s dng l : 7, 0, 1, 2, 0, 3, 0, 4, 2, 3, 0, 3, 2, 1, 2, 0, 1, 7, 0, 1 II.2.1. Thut ton FIFO Tip cn: Ghi nhn thi im mt trang c mang vo b nh chnh. Khi cn thay th trang, trang trong b nh lu nht s c chn V d : s dng 3 khung trang , ban u c 3 u trng : 7 7 0 7 1 7 2 2 0 2 3 2 0 2 4 4 2 4 3 4 0 0 3 0 2 0 1 0 2 0 0 0 1 0 7 7 0 7 1 7

102

0 1

0 1 *

0 1

3 1 *

3 0 *

3 0 *

2 0 *

2 3 *

2 3 *

2 3

2 3

1 3 *

1 2 *

1 2

1 2

1 2 *

0 2 *

0 1 *

Ghi ch : * : c li trang Tho lun: p dng thut ton FIFO, thc t khng nht thit phi ghi nhn thi im mi trang c np vo b nh, m ch cn t chc qun l cc trang trong b nh trong mt danh sch FIFO, khi trang u danh sch s c chn thay th. Thut ton they th trang FIFO d hiu, d ci t. Tuy nhin khi thc hin khng phi lc no cng c kt qa tt : trang c chn thay th c th l trang chc nhiu d liu cn thit, thng xuyn c s dng nn c np sm, do vy khi b chuyn ra b nh ph s nhanh chng gy ra li trang. S lng li trang xy ra s tng ln khi s lng khung trang s dng tng. Hin tng ny gi l nghch l Belady. V d: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5 S dng 3 khung trang , s c 9 li trang pht sinh 1 1 2 1 2 3 1 2 3 * * * 4 4 2 3 * 1 4 1 3 * 2 4 1 2 * 5 5 1 2 * 1 5 1 2 2 5 1 2 3 5 3 2 * 4 5 3 4 * 5 5 3 4

S dng 4 khung trang , s c 10 li trang pht sinh 1 1 2 1 2 3 1 2 3 4 1 2 3 4 1 1 2 3 4 2 1 2 3 4 5 5 2 3 4 1 5 1 3 4 2 5 1 2 4 3 5 1 2 3 4 4 1 2 3 5 4 5 2 3

103

II.2.2. Thut ton ti u Tip cn: Thay th trang s lu c s dng nht trong tng lai. V d : s dng 3 khung trang, khi u u trng: 7 7 0 7 0 1 7 0 1 * * * 2 2 0 1 * 0 2 0 1 3 2 0 3 * 0 2 0 3 4 2 4 3 * 2 2 4 3 3 2 4 3 0 2 0 3 * 3 2 0 3 2 2 0 3 1 2 0 1 * 2 2 0 1 0 2 0 1 1 2 0 1 7 7 0 1 * 0 7 0 1 1 7 0 1

Tho lun: Thut ton ny bo m s lng li trang pht sinh l thp nht , n cng khng gnh chu nghch l Belady, tuy nhin, y l mt thut ton khng kh thi trong thc t, v khng th bit trc chui truy xut ca tin trnh! II.2.3. Thut ton Lu nht cha s dng ( Least-recently-used LRU) Tip cn: Vi mi trang, ghi nhn thi im cui cng trang c truy cp, trang c chn thay th s l trang lu nht cha c truy xut. V d: s dng 3 khung trang, khi u u trng: 7 7 0 7 0 1 7 0 1 * * * 2 2 0 1 * 0 2 0 1 3 2 0 3 * 0 2 0 3 4 4 0 3 * 2 4 0 2 * 3 4 3 2 * 0 0 3 2 * 3 0 3 2 2 0 3 2 1 1 3 2 * 2 1 3 2 0 1 0 2 * 1 1 0 2 7 1 0 7 * 0 1 0 7 1 1 0 7

Tho lun: Thut ton FIFO s dng thi im np chn trang thay th, thut ton ti u li dng thi im trang s c s dng, v thi im ny khng th xc nh trc nn thut ton LRU phi dng thi im cui cng trang c truy xut dng qu kh gn d on tng lai. Thut ton ny i hi phi c c ch phn cng h tr xc nh mt th t cho cc trang theo thi im truy xut cui cng. C th ci t theo mt trong hai cch : S dng b m: 104

thm vo cu trc ca mi phn t trong bng trang mt trng ghi nhn thi im truy xut mi nht, v thm vo cu trc ca CPU mt b m. mi ln c s truy xut b nh, gi tr ca counter tng ln 1. Mi ln thc hin truy xut n mt trang, gi tr ca counter c ghi nhn vo trng thi im truy xut mi nht ca phn t tng ng vi trang trong bng trang. thay th trang c gi tr trng thi im truy xut mi nht l nh nht. S dng stack: t chc mt stack lu tr cc s hiu trang mi khi thc hin mt truy xut n mt trang, s hiu ca trang s c xa khi v tr hin hnh trong stack v a ln u stack. trang nh stack l trang c truy xut gn nht, v trang y stack l trang lu nht cha c s dng. II.2.4. Cc thut ton xp x LRU C t h thng c cung cp cc h tr phn cng ci t c thut ton LRU tht s. Tuy nhin, nhiu h thng c trang b thm mt bit tham kho ( reference): mt bit reference, c khi gn l 0, c gn vi mt phn t trong bng trang. bit reference ca mt trang c phn cng t gi tr 1 mi ln trang tng ng c truy cp, v c phn cng gn tr v 0 sau tng chu k qui nh trc. Sau tng chu k qui nh trc, kim tra gi tr ca cc bit reference, c th xc nh c trang no c truy xut n v trang no khng, sau khi kim tra xong, cc bit reference c phn cng gn tr v 0 . vi bit reference, c th bit c trang no c truy xut, nhng khng bit c th t truy xut. Thng tin khng y ny dn n nhiu thut ton xp x LRU khc nhau. s hiu trang bit valid-invalid dirty bit bit reference

Hnh 4.28 Cu trc mt phn t trong bng trang a) Thut ton vi cc bit reference ph tr Tip cn: C th thu thp thm nhiu thng tin v th t truy xut hn bng cch lu tr cc bit references sau tng khong thi gian u n: vi mi trang, s dng thm 8 bit lch s (history)trong bng trang sau tng khong thi gian nht nh (thng l100 millisecondes), mt ngt ng h c pht sinh, v quyn iu khin c chuyn cho h iu hnh. H iu hnh t bit reference ca mi trang vo bit cao nht trong 8 bit ph tr catrang bng cch y cc bit khc sang phi 1 v tr, b lun bit thp nht. nh vy 8 bit thm vo ny s l u tr tnh hnh truy xut n trang trong 8 chu k cui cng. nu ga tr ca 8 bit l 00000000, th trang tng ng khng c dng n sut 8 chu k cui cng, ngc li nu n c dng n t nht 1 ln trong mi chu k, th 8 bit ph tr s l 11111111. Mt trang m 8 bit ph tr c gi tr11000100 s c truy xut gn thi im hin ti hn trang c 8 bit ph tr l 01110111. nu xt 8 bit ph tr ny nh mt s nguyn khng du, th trang LRU l trang c s ph tr nh nht.

105

V d :

0 HR =11000100 HR =11100010 HR =01110001

Tho lun: S lng cc bit lch s c th thay i ty theo phn cng, v phi c chn sao cho vic cp nht l nhanh nht c th. b) Thut ton c hi th hai Tip cn: S dng mt bit reference duy nht. Thut ton c s vn l FIFO, tuy nhin khi chn c mt trang theo tiu chun FIFO, kim tra bit reference ca trang : Nu gi tr ca bit reference l 0, thay th trang chn. Ngc li, cho trang ny mt c hi th hai, v chn trang FIFO tip theo. Khi mt trang c cho c hi th hai, gi tr ca bit reference c t li l 0, v thi im vo Ready List c cp nht li l thi im hin ti. Mt trang c cho c hi th hai s khng b thay th trc khi h thng thay th ht nhng trang khc. Hn na, nu trang thng xuyn c s dng, bit reference ca n s duy tr c gi tr 1, v trang hu nh khng bao gi b thay th. Tho lun: C th ci t thut ton c hi th hai vi mt xu vng.

106

Hnh 2.29 Thut ton thay th trang <<c hi th hai >> c) Thut ton c hi th hai nng cao (Not Recently Used - NRU) Tip cn : xem cc bit reference v dirty bit nh mt cp c th t . Vi hai bit ny, c th c 4 t hp to thnh 4 lp sau : (0,0) khng truy xut, khng sa i: y l trang tt nht thay th. (0,1) khng truy xut gn y, nhng b sa i: trng hp ny khng tht tt, v trang cn c lu tr li trc khi thay th. (1,0) c truy xut gn y, nhng khng b sa i: trang c th nhanh chng c tip tc c s dng. (1,1) c truy xut gn y, v b sa i: trang c th nhanh chng c tip tc c s dng, v trc khi thay th cn phi c lu tr li. lp 1 c u tin thp nht, v lp 4 c u tin cao nht. mt trang s thuc v mt trong bn lp trn, tu vo bit reference v dirty bit ca trang . trang c chn thay th l trang u tin tm thy trong lp c u tin thp nht v khc rng. d) Cc thut ton thng k Tip cn: s dng mt bin m lu tr s ln truy xut n mt trang, v pht trin hai thut ton sau : Thut ton LFU: thay th trang c gi tr bin m nh nht, ngha l trang t c s dng nht. Thut ton MFU: thay th trang c gi tr bin m ln nht, ngha l trang c s dng nhiu nht (most frequently used).

107

III. Cp pht khung trang


Vn t ra l lm th no cp pht mt vng nh t do c kch thc c nh cho cc tin trnh khc nhau? Trong trng hp n gin nht ca b nh o l h n nhim, c th cp pht cho tin trnh duy nht ca ngi dng tt c cc khung trang trng. Vn ny sinh khi kt hp k thut phn trang theo yu cu vi s a chng : cn phi duy tr nhiu tin trnh trong b nh cng lc, vy mi tin trnh s c cp bao nhiu khung trang. S khung trang ti thiu: Vi mi tin trnh, cn phi cp pht mt s khung trang ti thiu no tin trnh c th hot ng. S khung trang ti thiu ny c quy nh bi kin trc ca ca mt ch th.Khi mt li trang xy ra trc khi ch th hin hnh hon tt, ch th cn c ti khi ng, lc cn c cc khung trang np tt c cc trang m mt ch th duy nht c th truy xut. S khung trang ti thiu c qui nh bi kin trc my tnh, trong khi s khung trang ti a c xc nh bi dung lng b nh vt l c th s dng. Cc thut ton cp pht khung trang C hai hng tip cn: Cp pht c nh: Cp pht cng bng: nu c m khung trang v n tin trnh, mi tin trnh c cp m /n khung trang. Cp pht theo t l: ty vo kch thc ca tin trnh cp pht s khung trang : si = kch thc ca b nh o cho tin trnh pi S = si m = s lng tng cng khung trang c th s dng Cp pht ai khung trang cho tin trnh pi : ai = (si / S) m Cp pht theo u tin : s dng tng cp pht theo t l, nhng nhng s lng khung trang cp cho tin trnh ph thuc vo u tin ca tin trnh, hn l ph thuc kch thc tin trnh: Nu tin trnh pi pht sinh mt li trang, chn mt trong cc khung trang ca n thay th, hoc chn mt khung trang ca tin trnh khc vi u tin thp hn thay th. Thay th trang ton cc hay cc b C th phn cc thut ton thay th trang thnh hai lp chnh: Thay th ton cc: khi li trang xy ra vi mt tin trnh , chn trang nn nhn t tp tt c cc khung trang trong h thng, bt k khung trang ang c cp pht cho mt tin trnh khc. Thay th cc b: yu cu ch c chn trang thay th trong tp cc khung trang c cp cho tin trnh pht sinh li trang. Mt khuyt im ca thut ton thay th ton cc l cc tin trnh khng th kim sot c t l pht sinh li trang ca mnh. V th, tuy thut ton thay th ton cc nhn chung cho php h 108

thng c nhiu kh nng x l hn, nhng n c th dn h thng n tnh trng tr tr ton b (thrashing).

III.1. Tr tr ton b h thng (Thrashing)


Nu mt tin trnh khng c cc khung trang cha nhng trang cn thit cho x l, th n s thng xuyn pht sinh cc li trang , v v th phi dng n rt nhiu thi gian s dng CPU thc hin thay th trang. Mt hot ng phn trang nh th c gi l s tr tr ( thrashing). Mt tin trnh lm vo trng thi tr tr nu n s dng nhiu thi gian thay th trang hn l x l ! Hin tng tr tr ny nh hng nghim trng n hot ng h thng, xt tnh hung sau : H iu hnh gim st vic s dng CPU. Nu hiu sut s dng CPU qu thp, h iu hnh s nng mc a chng bng cch a thm mt tin trnh mi vo h thng. H thng c th s dng thut ton thay th ton cc chn cc trang nn nhn thuc mt tin trnh bt k c ch np tin trnh mi, c th s thay th c cc trang ca tin trnh ang x l hin hnh. Khi c nhiu tin trnh trong h thng hn, th mt tin trnh s c cp t khung trang hn, v do pht sinh nhiu li trang hn. Khi cc tin trnh pht sinh nhiu li trang , chng phi tri qua nhiu thi gian ch cc thao tc thay th trang hon tt, lc hiu sut s dng CPU li gim H iu hnh li quay tr li bc 1... Theo kch bn trn y, h thng s lm vo tnh trng lun qun ca vic gii phng cc trang cp pht thm khung trang cho mt tin trnh, v cc tin trnh khc li thiu khung trang...v cc tin trnh khng th tip tc x l. y chnh l tnh trng tr tr ton b h thng. Khi tnh trng tr tr ny xy ra, h thng gn nh mt kh nng x l, tc pht sinh li trang tng cao khng khip, khng cng vic no c th kt thc v tt c cc tin trnh u bn rn vi vic phn trang ! ngn cn tnh trng tr tr ny xy ra, cn phi cp cho tin trnh cc khung trang cn thit hot ng. Vn cn gii quyt l lm sao bit c tin trnh cn bao nhiu trang? M hnh cc b ( Locality) : theo l thuyt cc b, th khi mt tin trnh x l, n c khuynh hng di chuyn t nhm trang cc b ny n nhm trang cc b khc . Mt nhm trang cc b l mt tp cc trang ang c tin trnh dng n trong mt khong thi gian. Mt chng trnh thng bao gm nhiu nhm trang cc b khc nhau v chng c th giao nhau. III.1.1. M hnh tp lm vic (working set) Tip cn : M hnh working set t c s trn l thuyt cc b. M hnh ny s dng mt tham s , nh ngha mt ca s cho working set. Gi s kho st n v thi gian (ln truy xut trang) cui cng, tp cc trang c tin trnh truy xut n trong ln truy cp cui cng ny c gi l working set ca tin trnh ti thi im hin ti. Nu mt trang ang c tin trnh truy xut n, n s nm trong working set, nu n khng c s dng na , n s b loi ra khi working set ca tin trnh sau n v thi gian k t ln truy xut cui cng n n. Nh vy working set chnh l mt s xp x ca khi nim nhm trang cc b. 109

Hnh 2.30 M hnh working set Mt thuc tnh rt quan trng ca working set l kch thc ca n. Nu tnh ton kch thc working set, WSSi, cho mi tin trnh trong h thng, th c th xem nh : D = WSSi vi D l tng s khung trang yu cu cho ton h thng. Mi tin trnh s dng cc trang trong working set ca n, ngha l tin trnh i yu cu WSSi khung trang. Nu tng s trang yu cu vt qu tng s trang c th s dng trong h thng (D > m), th s xy ra tnh trng tr tr ton b. S dng: H iu hnh gim st working set ca mi tin trnh v cp pht cho tin trnh ti thiu cc khung trang cha working set ca n. Nh vy mt tin trnh mi ch c th c np vo h thng khi c khung trang t do cho working set ca n. Nu tng s khung trang yu cu ca cc tin trnh trong h thng vt qu cc khung trang c th s dng, h iu hnh chn mt tin trnh tm dng, gii phng bt cc khung trang cho cc tin trnh khc hon tt. Tho lun: Chin lc working set loi tr c tnh trng tr tr trong khi vn m bo mc a chng ca h thng l cao nht c th, cho php s dng ti u CPU. im kh khn ca m hnh ny l theo vt ca cc working set ca tin trnh trong tng thi im. C th xp x m hnh working set vi mt ngt ng h sau tng chu k nht nh v mt bit reference: pht sinh mt ngt ng h sau tng T ln truy xut b nh. khi xy ra mt ngt ng h, kim tra cc trang c bit reference l 1, cc trang ny c xem nh thuc v working set. Mt h thng s dng k thut phn trang theo yu cu thun ty (mt trang khng bao gi c np trc khi c yu cu truy xut) l mt c im kh bt li : mt s lng ln li trang xy ra khi khi ng tin trnh. Tnh trng ny l hu qu ca khuynh hng t ti vic a nhm trang cc b vo b nh. Tnh trng ny cng c th xy ra khi mt tin trnh b chuyn tm thi ra b nh ph, khi c ti kch hot, tt c cc trang ca tin trnh c chuyn ln a phi c mang tr li vo b nh, v mt lot li trang li xy ra. ngn cn tnh hnh li trang xy ra qu nhiu ti thi im khi ng tin trnh, c th s dng k thut tin phn trang (prepaging) : np vo b nh mt ln tt c cc trang trong working set ca tin trnh.

110

III.2. Tn sut xy ra li trang


Tip cn: Tn sut li trang rt cao khin tnh trng tr tr h thng c th xy ra. Khi tn sut li trang qu cao, tin trnh cn thm mt s khung trang. Khi tn sut li trang qu thp, tin trnh c th s hu nhiu khung trang hn mc cn thit. C th thit lp mt gi tr chn trn v chn di cho tn sut xy ra li trang, v trc tip c lng v kim sot tn sut li trang ngn chn tnh trang tr tr xy ra : Nu tn sut li trang vt qu chn trn, cp cho tin trnh thm mt khung trang Nu tn sut li trang thp hn chn di, thu hi bt mt khung trang t tin trnh

IV. Tm tt
Cc k thut h tr cc m hnh t chc b nh hin i : Swapping : s dng thm b nh ph lu tr tm cc tin trnh ang b kha, nh vy c th tng mc a chng ca h thng vi cu hnh my c dung lng b nh chnh thp. B nh o : s dng k thut phn trang theo yu cu, kt hp thm k thut swapping m rng b nh chnh. Tch bit khng gian a ch v khng gian vt l, nh c th x l cc chng trnh c kch thc ln hn b nh vt l tht s Khi ci t b nh o, phi s dng mt thut ton thay th trang thch hp chn cc trang b chuyn tm thi ra b nh ph, dnh ch trong b nh chnh cho trang mi. Cc thut ton thay th thng s dng l FIFO, LRU v cc thut ton xp x LRU, cc thut ton thng k NFU, MFU... Khi mc a chng tng cao n mt chng mc no , h thng c th lm vo tnh trng tr tr do tt c cc tin trnh u thiu khung trang. C th p dng m hnh working set dnh cho mi tin trnh cc khung trang cn thit ti mt thi im, t c th ngn chn tnh trng tr tr xy ra.

Cng c bi hc
Cc cu hi cn tr li c sau bi hc ny : 1. B nh o l g ? 2. S tht ng sau o gic: gii hn ca b nh o ? Chi ph thc hin? 3. Cc vn ca b nh o : thay th trang, cp pht khung trang ? 4. M hnh working set : khi nim, cch tnh trong thc t, s dng ?

Bi Tp
Bi 1. Khi no th xy ra li trang ? M t x l ca h iu hnh khi c li trang. Bi 2. Gi s c mt chui truy xut b nh c chiu di p vi n s hiu trang khc nhau xut hin trong chui. Gi s h thng s dng m khung trang ( khi ng trng). Vi mt thut ton thay th trang bt k : Cho bit s lng ti thiu cc li trang xy ra ? Cho bit s lng ti a cc li trang xy ra ?

111

Bi 3. Mt my tnh 32-bit a ch, s dng mt bng trang nh cp. a ch o c phn b nh sau : 9 bit dnh cho bng trang cp 1, 11 bit cho bng trang cp 2, v cho offset. Cho bit kch thc mt trang trong h thng, v a ch o c bao nhiu trang ? Bi 4. Gi s a ch o 32-bit c phn tch thnh 4 trng a,b,c,d. 3 trng u tin c dng cho bng trang tam cp, trng th 4 dnh cho offset. S lng trang c ph thuc vo c kch thc 4 trng ny khng ? Nu khng, nhng trng no nh hng n s lng trang, v nhng trng no khng ? Bi 5. Mt my tnh c 48-bit a ch o, v 32-bit a ch vt l. Kch thc mt trang l 8K. C bao nhiu phn t trong mt bng trang ( thng thng)? Trong bng trang nghch o ? Bi 6. Mt my tnh cung cp cho ngi dng mt khng gian a ch o 232 bytes. My tnh ny c b nh vt l 218 bytes. B nh o c thc hin vi k thut phn trang, kch thc trang l 4096 bytes. Mt tin trnh ca ngi dng pht sinh a ch o 11123456. Gii thch cch h thng chuyn i a ch o ny thnh a ch vt l tng ng. Phn bit cc thao tc phn mm v phn cng. Bi 7. Gi s c mt h thng s dng k thut phn trang theo yu cu. Bng trang c lu tr trong cc thanh ghi. x l mt li trang tn 8 miliseconds nu c sn mt khung trang trng, hoc trang b thay th khng b sa i ni dung, v tn 20 miliseconds nu trang b thay th b sa i ni dung. Mi truy xut b nh tn 100nanoseconds. Gi s trang b thay th c xc sut b s i l 70%. T l pht sinh li trang phi l bao nhiu c th duy tr thi gian truy xut b nh ( effective acess time) khng vt qu 200nanoseconds ? Bi 8. Xt cc thut ton thay th trang sau y. Xp th t chng da theo t l pht sinh li trang ca chng. Phn bit cc thut ton chu ng nghch l Belady v cc thut ton khng b nghch l ny nh hng.
a)LRU b)FIFO c)Chi n l c thay th d)C h i th hai

t i u

Bi 9. Mt my tnh c 4 khung trang. Thi im np, thi im truy cp cui cng, v cc bit reference (R), modify (M) ca mi trang trong b nh c cho trong bng sau : Trang Np Truy cp cui R M 0 126 279 0 0 1 230 260 1 0 2 120 272 1 1 3 160 280 1 1 Trang no s c chn thay th theo : a) thut ton NRU; b) thut ton FIFO; c) thut ton LRU; d) thut ton " c hi th 2".

112

Bi 10. Xt mng hai chiu A:

var A: array [1 ..100, 1..100] of integer;


Vi A[1][1] c lu tr ti v tr 200, trong b nh t chc theo k thut phn trang vi kch thc trang l 200. Mt tin trnh trong trang 0 (chim v tr t 0 n 199) s thao tc ma trn ny ; nh vy mi ch th s c np t trang 0. Vi 3 khung trang, c bao nhiu li trang s pht sinh khi thc hin vng lp sau y khi ng mng, s dng thut ton thay th LRU , v gi s khung trang 1 ch tin trnh, hai khung trang cn li c khi ng trng thi trng : a. for j:= 1 to 100 do for i :=1 to 100 do A[i][j]:= 0; b. for i :=1 to 100 do for j:=1 to 100 do A[i][j]:= 0; Bi 11. Xt chui truy xut b nh sau: 1, 2 , 3 , 4 , 2 , 1 , 5 , 6 , 2 , 1 , 2 , 3 , 7 , 6 , 3 , 2 , 1 , 2 , 3 , 6 C bao nhiu li trang xy ra khi s dng cc thut ton thay th sau y, gi s c 1, 2, 3, 4, 5, 6, 7 khung trang ? a) LRU b) FIFO c) Chin lc ti u Bi 12. Trong mt h thng s dng k thut phn trang theo yu cu, xt hai on chng trnh sau y:
const N = 1024*1024 var A,B : array [1..N] of integer; [Program 1] for i:=1 to N do A[i]:=i; for i:=1 to N do B[A[i]]:=random(N); [Program 2] for i:=1 to N do A[i]:= random(N); for i:=1 to N do B[A[i]]:=i;

Bi 13. Gi s c mt my tnh chi s dng 7-bit a ch. Kch thc mt trang l 8 bytes, v h thng s dng mt bng trang nh cp, dng 2-bit lm ch mc n bng trang cp 1 , 2-bit lm ch mc n bng trang cp 2. Xt mt tin trnh s dng cc a ch trong nhng phm vi sau : 0..15, 21..29, 94..106, v 115..127. a) V chi tit ton b bng trang cho tin trnh ny b) Phi cp pht cho tin trnh bao nhiu khung trang, gi s tt c u nm trong b nh chnh ? c) Bao nhiu bytes ng vi cc vng phn mnh ni vi trong tin trnh ny? d) Cn bao nhiu b nh cho bng trang ca tin trnh ny ?

113

Bi 14. Gi s c mt my tnh s dng 16-bit a ch. B nh o c thc hin vi k thut phn on kt hp phn trang, kch thc ti a ca mt phn on l 4096 bytes. B nh vt l c phn thnh cc khung trang c kch thc 512 bytes. a) Th hin cch a ch o c phn tch phn nh segment, page, offset b) Xt mt tin trnh s dng cc min a ch sau, xc nh s hiu segment v s hiu page tng ng trong segment m chng trnh truy cp n : 350..1039, 3046..3904, 7100..9450, 33056..39200, 61230..63500 c) Bao nhiu bytes ng vi cc vng phn mnh ni vi trong tin trnh ny? d) Cn bao nhiu b nh cho bng phn on v bng trang ca tin trnh ny ?

114

CHNG 8: H THNG QUN L TP TIN


Trong hu ht cc ng dng, tp tin l thnh phn ch yu. Cho d mc tiu ca ng dng l g n cng phi bao gm pht sinh v s dng thng tin. Thng thng u vo ca cc ng dng l tp tin v u ra cng l tp tin cho vic truy xut ca ngi s dng v cc chng trnh khc sau ny. Trong bi hc ny chng ta s tm hiu nhng khi nim v c ch ca h thng qun l tp tin thng qua cc ni dung nh sau: Cc khi nim c bn M hnh t chc v qun l cc tp tin Bi hc ny gip chng ta hiu c tp tin l g, cch thc t chc v qun l tp tin nh th no. T gip chng ta hiu c cc c ch ci t h thng tp tin trn cc h iu hnh. Bi hc ny i hi nhng kin thc v : cc thao tc vi tp tin, mt s tnh cht ca tp tin gc ngi s dng v nhng kin thc v cu trc d liu cng nh v kin trc my tnh phn cu trc v t chc lu tr ca a.

I. CC KHI NIM C BN I.1 B nh ngoi


My tnh phi s dng thit b c kh nng lu tr trong thi gian di (long-term) v : Phi cha nhng lng thng tin rt ln (gi v my bay, ngn hng...) Thng tin phi c lu gi mt thi gian di trc khi x l Nhiu tin trnh c th truy cp thng tin cng lc. Gii php l s dng cc thit b lu tr bn ngoi gi l b nh ngoi.

I.2 Tp tin v th mc
Tp tin Tp tin l n v lu tr thng tin ca b nh ngoi. Cc tin trnh c th c hay to mi tp tin nu cn thit. Thng tin trn tp tin l vng bn khng b nh hng bi cc x l to hay kt thc cc tin trnh, ch mt i khi user tht s mun xa. Tp tin c qun l bi h iu hnh. Th mc lu tr dy cc tp tin, h thng qun l tp tin cung cp th mc, m trong nhiu h thng c th coi nh l tp tin.

I.3 H thng qun l tp tin


Cc tp tin c qun l bi h iu hnh vi c ch gi l h thng qun l tp tin. Bao gm : cch hin th, cc yu t cu thnh tp tin, cch t tn, cch truy xut, cch s dng v bo v tp tin, cc thao tc trn tp tin. Cch t chc th mc, cc c tnh v cc thao tc trn th mc. 115

II. M HNH T CHC V QUN L CC TP TIN II.1 M hnh


Tp tin Tn tp tin : Tp tin l mt c ch tru tng v qun l mi i tng phi c mt tn. Khi tin trnh to mt tp tin, n s t mt tn, khi tin trnh kt thc tp tin vn tn ti v c th c truy xut bi cc tin trnh khc vi tn tp tin . Cch t tn tp tin ca mi h iu hnh l khc nhau, a s cc h iu hnh cho php s dng 8 ch ci t tn tp tin nh ctdl, caycb, tamhghau v.v, thng thng th cc k t s v k t c bit cng c s dng nh baitap2, H thng tp tin c th c hay khng phn bit ch thng v ch hoa. V d : UNIX phn bit ch thng v hoa cn MS-DOS th khng phn bit. Nhiu h thng tp tin h tr tn tp tin gm 2 phn c phn cch bi du . m phn sau c gi l phn m rng. V d : vidu.txt. Trong MS-DOS tn tp tin c t 1 n 8 k t, phn m rng c t 1 n 3 k t. Trong UNIX c th c nhiu phn cch nh prog.c.Z. Mt s kiu m rng thng thng l : .bak, .bas, .bin, .c, .dat, .doc, .ftn, .hlp, .lib, .obj, .pas, .tex, .txt. Trn thc t phn m rng c hu ch trong mt s trng hp, v d nh c nhng trnh dch C ch nhn bit cc tp tin c phn m rng l .C Cu trc ca tp tin : Gm 3 loi : Dy tun t cc byte khng cu trc : h iu hnh khng bit ni dung ca tp tin:MS-DOS v UNIX s dng loi ny. Dy cc record c chiu di c nh. Cu trc cy : gm cy ca nhng record, khng cn thit c cng di, mi record c mt trng kha gip cho vic tm kim nhanh hn. Kiu tp tin : Nu h iu hnh nhn bit c loi tp tin, n c th thao tc mt cch hp l trn tp tin . Cc h iu hnh h tr cho nhiu loi tp tin khc nhau bao gm cc kiu nh : tp tin thng, 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. 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 thit b a. Tp tin thng c chia lm hai loi l tp tin vn bn v tp tin nh phn. Tp tin vn bn cha cc dng vn bn cui dng c k hiu enter. Mi dng c di c th khc nhau. u im ca kiu tp tin ny l n c th hin th, in hay son tho vi mt editor thng thng.a s cc chng trnh dng tp tin vn bn nhp xut, n cng d dng lm u vo v u ra cho c ch pipeline.

116

Tp tin nh phn : c cu trc khc tp tin vn bn. Mc d v mt k thut , tp tin nh phn gm dy cc byte , nhng h iu hnh ch thc thi tp tin nu n c cu trc ng. V d mt mt tp tin nh phn thi hnh c ca UNIX. Thng thng n bao gm nm thnh phn : header, text, data, relocation bits, symbol table. Header bt u bi byte nhn din cho bit l tp tin thi hnh. Sau l 16 bit cho bit kch thc cc thnh phn ca tp tin, a ch bt u thc hin v mt s bit c. Sau header l d liu v text ca tp tin. N c np vo b nh v nh v li bi nhng bit relocation. Bng symbol c dng debug. Mt v d khc l tp tin nh phn kiu archive. N cha cc th vin c dch nhng cha c lin kt. Bao gm mt header cho bit tn, ngy to, ngi s hu, m bo v, v kch thc

Truy xut tp tin : Tp tin lu tr cc thng tin. Khi tp tin c s dng, cc thng tin ny c a vo b nh ca my tnh. C nhiu cch truy xut chng. Mt s h thng cung cp ch mt phng php truy xut, mt s h thng khc, nh IBM chng hn cho php nhiu cch truy xut. Kiu truy xut tp tin n gin nht l truy xut tun t . Tin trnh c tt c cc byte trong tp tin theo th t t u. Cc trnh son tho hay trnh bin dch cng truy xut tp tin theo cch ny. Hai thao tc ch yu trn tp tin l c v ghi. Thao tc c s c mt mu tin tip theo trn tp tin v t ng tng con tr tp tin. Thao tc ghi cng tng t nh vy. Tp tin c th t khi ng li t v tr u tin v trong mt s h thng tp tin cho php di chuyn con tr tp tin i ti hoc i lui n mu tin.

117

Truy xut kiu ny thun li cho cc loi bng t v cng l cch truy xut kh thng dng. Truy xut tun t cn thit cho nhiu ng dng. C hai cch truy xut. Cch truy xut th nht thao tc c bt u v tr u tp tin, cch th hai c mt thao tc c bit gi l SEEK cung cp v tr hin thi lm v tr bt u. Sau tp tin c c tun t t v tr bt u.

Mt kiu truy xut khc l truy xut trc tip. Mt tp tin c cu trc l cc mu tin logic c kch thc bng nhau, n cho php chng trnh c hoc ghi nhanh chng m khng cn theo th t. Kiu truy xut ny da trn m hnh ca a. a cho php truy xut ngu nhin bt k khi d liu no ca tp tin. Truy xut trc tip c s dng trong trng hp phi truy xut mt khi lng thng tin ln nh trong c s d liu chng hn. Ngoi ra cn c mt s cch truy xut khc d trn kiu truy xut ny nh truy xut theo ch mc ... Thuc tnh tp tin : Ngoi tn v d liu, h iu hnh cung cp thm mt s thng tin cho tp tin gi l thuc tnh. Cc thuc tnh thng dng trong mt s h thng tp tin : Tn thuc tnh ngha Bo v Ai c th truy xut c v bng cch no Mt khu Mt khu cn thit truy xut tp tin Ngi to Id ca ngi to tp tin Ngi s hu Ngi s hu hin ti Ch c 0 l c ghi, 1 l ch c An 0 l bnh thng, 1 l khng hin th khi lit k H thng 0 l bnh thng, 1 l tp tin h thng Lu tr 0 uc backup, 1 cn backup ASCII/binary 0 l tp tin vn bn, 1 l tp tin nh phn Truy xut ngu nhin 0 truy xut tun t, 1 l truy xut ngu nhin Temp 0 l bnh thng, 1 l b xa khi tin trnh kt thc Kha 0 l khng kha, khc 0 l kha di ca record S byte trong mt record V tr kha Offset ca kha trong mi record Gi to Ngy v gi to tp tin Thi gian truy cp cui cng Ngy v gi truy xut tp tin gn nht Thi gian thay i cui cng Ngy v gi thay i tp tin gn nht Kch thc hin thi S byte ca tp tin Kch thc ti a. S byte ti a ca tp tin 118

Hnh 8.3 Mt s thuc tnh thng dng ca tp tin Th mc : H THNG TH MC THEO CP BC : Mt th mc thng thng cha mt s entry, mi entry cho mt tp tin. Mi entry cha tn tp tin, thuc tnh v a ch trn a lu d liu hoc mt entry ch cha tn tp tin v mt con tr, tr ti mt cu trc, trn c thuc tnh v v tr lu tr ca tp tin. Khi mt tp tin c m, h iu hnh tm trn th mc ca n cho ti khi tm thy tn ca tp tin c m. Sau n s xc nh thuc tnh cng nh a ch lu tr trn a v a vo mt bng trong b nh. Nhng truy xut sau thc hin trong b nh chnh. S lng th mc trn mi h thng l khc nhau. Thit k n gin nht l h thng ch c th mc n(cn gi l th mc mt cp), cha tt c cc tp tin ca tt c ngi dng, cch ny d t chc v khai thc nhng cng d gy ra kh khn khi c nhiu ngi s dng v s c nhiu tp tin trng tn. Ngay c trong trng hp ch c mt ngi s dng, nu c nhiu tp tin th vic t tn cho mt tp tin mi khng trng lp l mt vn kh. Cch th hai l c mt th mc gc v trong c nhiu th mc con, trong mi th mc con cha tp tin ca ngi s dng (cn gi l th mc hai cp), cch ny trnh c trng hp xung t tn nhng cng cn kh khn vi ngi dng c nhiu tp tin. Ngi s dng lun mun nhm cc ng dng li mt cch logic. T , h thng th mc theo cp bc (cn gi l cy th mc) c hnh thnh vi m hnh mt th mc c th cha tp tin hoc mt th mc con v c tip tc nh vy hnh thnh cy th mc nh trong cc h iu hnh DOS, Windows, v. v... Ngoi ra, trong mt s h iu hnh nhiu ngi dng, h thng cn xy dng cc hnh thc khc ca cu trc th mc nh cu trc th mc theo th c chu trnh v cu trc th mc theo th tng qut. Cc cu trc ny cho php cc ngi dng trong h thng c th lin kt vi nhau thng qua cc th mc chia s.

119

NG DN : Khi mt h thng tp tin c t chc thnh mt cy th mc, c hai cch xc nh mt tn tp tin. Cch th nht l ng dn tuyt i, mi tp tin c gn mt ng dn t th mc gc n tp tin. V d : /usr/ast/mailbox. Dng th hai l ng dn tng i, dng ny c lin quan n mt khi nim l th mc hin hnh hay th mc lm vic. Ngi s dng c th quy nh mt th mc l th mc hin hnh. Khi ng dn khng bt u t th mc gc m lin quan n th mc hin hnh. V d, nu th mc hin hnh l /usr/ast th tp tin vi ng dn tuyt i /usr/ast/mailbox c th c dng n gin l mailbox. Trong phn ln h thng, mi tin trnh c mt th mc hin hnh ring, khi mt tin trnh thay i th mc lm vic v kt thc, khng c s thay i li trn h thng tp tin. Nhng nu mt hm th vin thay i ng dn v sau khng i li th s c nh hng n tin trnh. Hu ht cc h iu hnh u h tr h thng th mc theo cp bc vi hai entry c bit cho mi th mc l "." v "..". "." ch th mc hin hnh, ".." ch th mc cha.

II.2 Cc chc nng


Tp tin Th mc Tp tin : To : mt tp tin c to cha c d liu. Mc tiu ca chc nng ny l thng bo cho bit rng tp tin tn ti v thit lp mt s thuc tnh.

120

Xa :khi mt tp tin khng cn cn thit na, n c xa tng dung lng a. Mt s h iu hnh t ng xo tp tin sau mt khong thi gian n ngy. M : trc khi s dng mt tp tin, tin trnh phi m n. Mc tiu ca m l cho php h thng thit lp mt s thuc tnh v a ch a trong b nh tng tc truy xut. ng : khi chm dt truy xut, thuc tnh v a ch trn a khng cn dng na, tp tin c ng li gii phng vng nh. Mt s h thng hn ch ti a s tp tin m trong mt tin trnh. c : c d liu t tp tin ti v tr hin thi ca u c, ni gi s cho bit cn bao nhiu d liu v v tr ca buffer lu tr n. Ghi : ghi d liu ln tp tin t v tr hin thi ca u c. Nu l cui tp tin,kch thc tp tin s tng ln, nu ang gia tp tin, d liu s b ghi chng ln. Thm : gn ging nh WRITE nhng d liu lun c ghi vo cui tp tin. Tm :dng truy xut tp tin ngu nhin. Khi xut hin li gi h thng, v tr con tr ang v tr hin hnh c di chuyn ti v tr cn thit. Sau d liu s c c ghi ti v tr ny. Ly thuc tnh :ly thuc tnh ca tp tin cho tin trnh Thit lp thuc tnh :thay i thuc tnh ca tp tin sau mt thi gian s dng. i tn :thay i tn ca tp tin tn ti. Th mc : To : mt th mc c to, n rng, ngoi tr "." v ".." c t t ng bi h thng. Xa :xo mt th mc, ch c th mc rng mi b xa, t mc cha "." v ".." coi nh l th mc rng. M th mc :th mc c th c c. V d lit k tt c tp tin trong mt th mc, chng trnh lit k m th mc v c ra tn ca tt c tp tin cha trong . Trc khi th mc c c, n phi c m ra trc. ng th mc :khi mt th mc c c xong, phi ng th mc gii phng vng nh. c th mc :Lnh ny tr v entry tip theo trong th mc m. Thng thng c th c th mc bng li gi h thng READ, lnh c th mc lun lun tr v mt entry di dng chun . i tn :cng nh tp tin, th mc cng c th c i tn. Lin kt :k thut ny cho php mt tp tin c th xut hin trong nhiu th mc khc nhau. Khi c yu cu, mt lin kt s c to gia tp tin v mt ng dn c cung cp. B lin kt :Nu tp tin ch cn lin kt vi mt th mc, n s b loi b hon ton khi h thng, nu nhiu th n b gim ch s lin kt.

Cu hi kim tra kin thc


1. Tp tin l g ? Th mc l g ? Ti sao phi qun l tp tin v th mc ? 2. Tp tin c nhng c tnh g ? Nhng c tnh no l quan trng ? Ti sao ? 3. Nu cc chc nng ca tp tin v th mc.

121

CHNG 9: CC PHNG PHP CI T H THNG QUN L TP TIN


Ngi s dng th quan tm n cch t tn tp tin, cc thao tc trn tp tin, cy th mc...Nhng i ngi ci t th quan tm n tp tin v th mc c lu tr nh th no, vng nh trn a c qun l nh th no v lm sao cho ton b h thng lm vic hu hiu v tin cy. H thng tp tin c ci t trn a. gia tng hiu qu trong vic truy xut, mi n v d liu c truy xut gi l mt khi. Mt khi d liu bao gm mt hoc nhiu sector. B phn t chc tp tin qun l vic lu tr tp tin trn nhng khi vt l bng cch s dng cc bng c cu trc. Trong bi hc ny chng ta s tm hiu cc phng php t chc qun l tp tin trn b nh ph thng qua cc ni dung nh sau: Bng qun l th mc, tp tin Bng phn phi vng nh Tp tin chia s Qun l a an ton ca h thng tp tin Bi hc ny gip chng ta nm c im cng nh u v khuyt im ca cc phng php t chc qun l tp tin trn a v mt s vn lin quan khc nh c th hiu c cch cc h iu hnh c th qun l tp tin nh th no. Bi hc ny i hi nhng kin thc v :m hnh t chc cc tp tin v th mc cng v mt s cu trc d liu.

I.BNG QUN L TH MC, TP TIN I.1 Khi nim


Trc khi tp tin c c, tp tin phi c m, m tp tin h thng phi bit ng dn do ngi s dng cung cp v c nh v trong cu trc u vo th mc (directory entry). Directory entry cung cp cc thng tin cn thit tm kim cc khi. Tu thuc vo mi h thng, thng tin l a ch trn a ca ton b tp tin, s hiu ca khi u tin, hoc l s I-node.

II.2 Ci t
Bng ny thng c ci t phn u ca a. Bng l dy cc phn t c kch thc xc nh, mi phn t c gi l mt entry. Mi entry s lu thng tin v tn , thuc tnh, v tr lu tr .... ca mt tp tin hay th mc. V d qun l th mc trong CP/M :

122

II. BNG PHN PHI VNG NH

II.1 Khi nim


Bng ny thng c s dn phi hp vi bng qun l th mc tp tin, mc tiu l cho bit v tr khi vt l ca mt tp tin hay th mc no ni khc i l lu gi dy cc khi trn a cp pht cho tp tin lu d liu hay th mc. C mt s phng php c ci t.

II.2 Cc phng php


nh v lin tip : Lu tr tp tin trn dy cc khi lin tip. Phng php ny c 2 u im : th nht, d dng ci t. Th hai, d dng thao tc v ton b tp tin c c t a bng thao tc n gin khng cn nh v li. Phng php ny cng c 2 khuyt im : khng linh ng tr khi bit trc kch thc ti a ca tp tin. S phn mnh trn a, gy lng ph ln. nh v bng danh sch lin kt :

123

Mi khi u c cp pht, khng b lng ph trong trng hp phn mnh v directory entry ch cn cha a ch ca khi u tin. Tuy nhin khi d liu b thu hp li v truy xut ngu nhin s chm. Danh sch lin kt s dng index :

Tng t nh hai nhng thay v dng con tr th dng mt bng index. Khi ton b khi ch cha d liu. Truy xut ngu nhin s d dng hn. Kch thc tp tin c m rng hn. Hn ch l bn ny b gii hn bi kch thc b nh . I-nodes : Mt I-node bao gm hai phn. Phn th nht l thuc tnh ca tp tin. Phn ny lu tr cc thng tin lin quan n tp tin nh kiu, ngi s hu, kch thc, v.v...Phn th hai cha a ch ca khi d liu. Phn ny chia lm hai phn nh. Phn nh th nht bao gm 10 phn t, mi phn t cha a ch khi d liu ca tp tin. Phn t th 11 cha a ch gin tip cp 1 (single indirect), cha a ch ca mt khi, trong khi cha mt bng c th t 210 n 232 phn t m mi phn t mi cha a ch ca khi d liu. Phn t th 12 cha a ch gin tip cp 2 (double indirect), cha a ch ca bng cc khi single indirect. Phn t th 13 cha a ch gin tip cp 3 (double indirect), cha a ch ca bng cc khi double indirect. Cch t chc ny tng i linh ng. Phng php ny hiu qu trong trng hp s dng qun l nhng h thng tp tin ln. H iu hnh s dng phng php ny l Unix (V d : BSD Unix)

124

III. TP TIN CHIA S


Khi c nhiu ngi s dng cng lm vic trong mt n, h cn chia s cc tp tin. Cch chia s thng thng l tp tin xut hin trong cc th mc l nh nhau ngha l mt tp tin c th lin kt vi nhiu th mc khc nhau. ci t c, khi a khng c lit k trong th mc m c thay th bng mt cu trc d liu, th mc s tr ti cu trc ny. Mt cch khc l h thng to mt tp tin mi c kiu LINK, tp tin mi ny ch cha ng dn ca tp tin c lin kt, khi cn truy xut s da trn tp tin LINK xc nh tp tin cn truy xut, phng php ny gi l lin kt hnh thc. Mi phng php u c nhng u v khuyt im ring. phng php th nht h thng bit c c bao nhiu th mc lin kt vi tp tin nh vo ch s lin kt. phng php th hai khi loi b lin kt hnh thc, tp tin khng b nh hng.

125

Hnh 9.5

IV. QUN L A
Tp tin c lu tr trn a, do vic qun tr a l ht sc quan trng trong vic ci t h thng tp tin. C hai phng php lu tr : mt l cha tun t trn n byte lin tip, hai l tp tin c chia lm thnh tng khi. Cch th nht khng hiu qu khi truy xut nhng tp tin c kch thc ln, do hu ht cc h thng tp tin u dng khi c kch thc c nh.

IV.1 Kch thc khi


Mt vn t ra l kch thc khi phi bng bao nhiu. iu ny ph thuc vo t chc ca a nh s sector, s track, s cylinder. Nu dng mt cylinder cho mt khi cho mt tp tin th theo tnh ton s lng ph n 97% dung lng a. Nn thng thng mi tp tin thng c lu trn mt s khi. V d mt a c 32768 byte trn mt track, thi gian quay l 16.67 msec, thi gian tm kim trung bnh l 30 msec th thi gian tnh bng msec c mt khi kch thc k byte l : 30 + 8.3 + (k/32768) x 16.67 T thng k c kch thc khi thch hp phi < 2K . Thng thng kch thc khi l 512, 1K hay 2K. 126

IV.2 Lu gia cc khi trng


C hai phng php. Mt l s dng danh sch lin kt ca khi a. Mi khi cha mt s cc a ch cc khi trng. V d mt khi c kch thc 1 K c th lu tr c 511 a ch 16 bit. Mt a 20M cn khong 40 khi. Hai l, s dng bitmap. Mt a n khi s c nh x thnh n bit vi gi tr 1 l cn trng, gi tr 0 l lu d liu. Nh vy mt a 20M cn 20K bit lu tr ngha l ch c khong 3 khi. Phng php th hai ny thng c s dng hn.

V. AN TON CA H THNG TP TIN


Mt h thng tp tin b hng cn nguy him hn my tnh b hng v nhng h hng trn thit b s t chi ph hn l h thng tp tin v n nh hng n cc phn mm trn . Hn na h thng tp tin khng th chng li c nh h hng do phn cng gy ra, v vy chng phi ci t mt s chc nng bo v.

V.1 Qun l khi b hng


a thng c nhng khi b hng trong qu trnh s dng c bit i vi a cng v kh kim tra c ht tt c. C hai gii php : phn mm v phn cng. Phn cng l dng mt sector trn a lu gi danh sch cc khi b hng. Khi b kim sot tc hin ln u tin, n c nhng khi b hng v dng mt khi tha lu gi. T khng cho truy cp nhng khi hng na. Phn mm l h thng tp tin xy dng mt tp tin cha cc khi hng. K thut ny loi tr chng ra khi danh sch cc khi trng, do n s khng c cp pht cho tp tin.

127

V.2 Backup
Mc d c cc chin lc qun l cc khi hng, nhng mt cng vic ht sc quan trng l phi backup tp tin thng xuyn. Tp tin trn a mm c backup bng cch chp li ton b qua mt a khc. D liu trn a cng nh th c backup trn cc bng t. i vi cc a cng ln, vic backup thng c tin hnh ngay trn n. Mt chin lc d ci t nhng lng ph mt na a l chia a cng lm hai phn mt phn d liu v mt phn l backup. Mi ti, d liu t phn d liu s c chp sang phn backup.

V.3 Tnh khng i ca h thng tp tin


Mt vn na v an ton l tnh khng i. Khi truy xut mt tp tin, trong qu trnh thc hin, nu c xy ra nhng s c lm h thng ngng hot ng t ngt, lc hng lot thng tin cha c cp nht ln a. V vy mi ln khi ng ,h thng s thc hin vic kim tra trn hai phn khi v tp tin. Vic kim tra thc hin , khi pht hin ra li s tin hnh sa cha cho cc trng hp c th:

128

Hnh 9.8 Trng thi ca h thng tp tin

129

CHNG 10: GII THIU MT S H THNG TP TIN


Trong chng ny chng ta s tm hiu cc phng php t chc qun l tp tin ca mt s h iu hnh sau: MS-DOS Windows 95 Windows NT Unix Bi hc ny gip chng ta hiu c cch mt s h iu hnh thng dng qun l tp tin nh th no. Bi hc ny i hi nhng kin thc t hai bi hc trc.

I.MS-DOS I.1 c im
H thng tp tin ca MS-DOS bt ngun t h thng tp tin ca h iu hnh CP/M. N c nhng c im nh sau : H thng cy th mc. Khi nim th mc hin hnh. ng dn tng i v ng dn tuyt i. Th mc "." v "..". C tp tin thit b v tp tin khi. Tn tp tin 8+3. ng dn \. Khng phn bit ch thng v ch hoa. Khng c khi nim ngi s hu. Khng c khi nim nhm v bo v. Khng c lin kt. Khng c mount h thng tp tin. C thuc tnh ca tp tin.

I.2 Ci t
Ci t trn a mm cng tng t nh trn a cng, nhng trn a cng phc tp hn. Phn ny kho st trn a cng. Lc , h iu hnh MS-DOS c ci t trn mt partition. Sector u tin ca partition l bootsector. Sau bootsector l FAT (File Allocation Table), lu gi tt c khng gian trn a theo phng php danh sch lin kt c ch mc. Thng thng c t hai FAT tr ln phng h. Mi entry ca FAT qun l mt khi (cn gi l cluster c nh s bt u t 2) trn a. Kch thc khi c lu trong bootsector thng thng t 1 n 8 sector. C hai loi FAT l

130

FAT 12 v FAT 16. FAT 12 c th qun l c 4096 khi cn FAT 16 c th qun l 64 K khi trn mt partition.

Gi tr trong mi phn t (entry) c ngha nh sau : 0 (0)002 - (F)FEF (F)FF0 - (F)FF6 (F)FF7 (F)FF8 - (F)FFF Cluster cn trng Cluster cha d liu ca cc tp tin Dnh ring, khng dng Cluster hng Cluster cui cng ca chui

C mt nh x mt mt gia entry v khi ngoi tr hai entry u tin, dng cho a. Khi h thng m mt tp tin, MS-DOS tm trong bng m t tp tin trong PSP, sau kim tra tn tp tin xem c phi l con, lpt, ... tip theo kim tra cc ng dn xc nh v tr trong bng th mc. Tn tp tin (8bytes) Phn m rng (3bytes) Thuc tnh (1 byte)
A-D-V-S-H-R

Dnh ring (10bytes) Gi (2bytes) Ngy (2bytes) Khi u tin (2bytes) Kch thc tp tin (4bytes) 131

Hnh 10.2 Mt entry th mc trong MS-DOS Bng th mc nm ngay sau FAT, v mi entry l 32 byte. Mi mt byte u tin m t tn v phn m rng(khng lu tr du chm phn cch). Sau l byte thuc tnh, vi gi tr : 1 : tp tin ch c 2 : tp tin n 4 : tp tin h thng 8 : nhn a 16 : th mc con 32 : tp tin cha backup Byte thuc tnh c th c c ghi trong qu trnh s dng. Tip theo l 10 byte trng dng ring s dng sau ny. Sau l 4 byte lu tr gi, ngy vi 6 bit cho giy, 4 bit cho gi, 5 bit cho ngy, 4 bit cho thng v 7 bit cho nm (t 1980). Hai byte k tip cha s hiu ca khi u tin (khi trong MS-DOS cn c gi l cluster) v bn byte sau cng lu tr kch thc ca tp tin. V d : Trn a 1.44Mb, c format di h iu hnh MS-DOS gm c 2880 sector: Sector u tin l bootsector, bao gm bng tham s vt l ca a v chng trnh khi ng ca h iu hnh (nu c). 18 sector tip theo l FAT (FAT12), gm 2 bng, mi bng 9 sector. Ba bytes u tin ca FAT lu s hiu loi a.(240, 255, 255). 14 sector k tip cha bng th mc cn gi l root directory entry table(RDET) Cc sector cn li dng lu d liu (1 cluser = 1 sector).

II.Windows95 II.1 B qun l ci t h thng tp tin (IFS)


H thng tp tin ca Windows 95 l 32-bit v cho php nhng h thng tp tin khc s dng c trn h thng ny. N cng lm cho my tnh nhanh hn v linh hot hn, c ngha l bn c nhiu vng hn c lp x l cc vn . B qun l IFS qun l cc thao tc bn trong ca h thng tp tin c ci t. Cc thnh phn ca IFS bao gm IFSHLP.SYS v IFSMGR.VXD.

132

Trong Windows 95, h thng tp tin l mt thnh phn ca ring 0 ca h iu hnh. Sau y l cc bc ci t ca h thng tp tin trong Windows 95 : VFAT- Bng nh v file o cho truy cp file 32-bit. CDFS- h thng tp tin ca CD-ROM (thay th MSCDEX) B nh hng li-S dng cho truy xut mng. Ngi s dng cng c th ci t h thng tp tin khc. V d h thng tp tin ci t trn h thng Windows 95 c th x l trn nhng h thng tp tin trn nhng h iu hnh khc nh Macintosh hay UNIX. B qun l IFS qun l vn chuyn nhp xut tp tin cho ch bo v ca b nh hng li, mode bo v ca server, VFAT, CDFS, v h thng tp tin ca MS-DOS. Nhng h thng khc c th c thm vo trong tng lai.

II.2 VFAT
VFAT l h thng tp tin FAT MS-DOS o 32 bit cung cp truy xut 32 bit cho Windows 95. VFAT.VXD l driver iu khin qu trnh o ha v s dng m 32 bit cho tt c cc truy xut tp tin.

133

VFAT ch cung cp truy xut o cho nhng volume a cng c cc thnh phn truy xut a 32 bit c ci t. Nhng dng volume khc s c ci t h thng tp tin cho chnh n. V d h thng tp tin ca CD-ROM l CDFS. VFAT o ha a v s dng m 32 bit truy xut tp tin. B qun tr nhp/xut c ci t t Win 311 l *KHIDEV. B qun tr nhp/xut ca Windows 95 cung cp *KHIDEV nhng dch v cho nhng driver FastDisk c. Ngoi ra n c nhng chc nng sau : ng k driver. Gi v lp hng i cho yu cu nhp/xut Gi nhng thng bo n driver khi cn thit. Cung cp nhng dch v cho driver nh v b nh v hon tt yu cu nhp/xut. Theo di volume lun hin hu khi c mt thit b thng tin c th c loi b. N c trch nhim m bo rng thng tin ng vi thit b cng nh l kim tra v bo co nhng thng tin khng thch hp c loi b hay chn vo. N thc hin theo hai cch : i vi a khng bo v, theo di volume s ghi mt ID duy nht vo u FAT ca a. ID ny khc vi s serial ca volume. Trn a c bo v, theo di volume lu tr nhn a, s serial v khi tham s ca BIOS. B iu khin m t kiu (TSD) TSD lm vic vi nhng thit b c m t. V d, a mm v cng l mt kiu iu khin nhng a CD l kiu khc. TSD lam cho cc yu cu nhp/xut c hiu lc, chuyn i nhng yu cu logic thnh yu cu vt l, v thng bo khi yu cu hon tt. C th xem TSD nh mt b dch gia b iu khin vt l v b qun tr nhp/xut.

II.3 VCACHE
Vcache l vng b nh mode bo v c s dng bi cc b iu khin h thng tp tin ch bo v (ngoi tr CDFS) : VFAT, VREDIR, NWREDIR. VCACHE c ci t tng t nh Win 3.11. B iu khin ny thay th cho phn mm SMARTDrive disk cache 16-bit mode thc ca MS-DOS v Win3.1. c im ca VCACHE l thut ton thng minh hn SMARTDrive trong lu tr thng tin nhp v xut t b iu khin a.VCACHE cng qun l vng lu tr cho CDFS v NWREDIR 32-bit. Vic s dng VCACHE l ph thuc vi thit b. V d VCACHE dng truy xut a cng khc vi VCACE truy xut CD-ROM. Tt c b iu khin h thng tp tin ca Windows 95 tr CDFS u s dng mode bo v c buffer. CDFS cung cp c ch ring. VFAT dng VCACHE gim bt vic ghi. B iu khin cng c thit k cung cp nhng truy xut cho adapter.

II.4 SCSI
Trong Windows 95, lp SCSI l trung gian gia lp TSD v b iu khin cng. C ba lp SCSI c m t di y: 134

VFAT B gim st I/O TSD B dch SCSI B qun tr SCSI B iu khin mini - port
Hnh 10.5

B dch SCSI : B dch SCSI lm vic vi tt c nhng thit b SCSI nh a cng, CD-ROM. B dch chu trch nhim xy dng khi m t lnh SCSI cho nhng lp ca thit b SCSI v thc hin tm li cp thit b. B qun tr SCSI : B qun tr SCSI qun l vic giao tip gia b dch SCSI v b iu khin miniport. B iu khin cng SCSI khi ng b iu khin mimiport, chuyn i dng yu cu nhp/xut, thc hin nhng thao tc giao tip vi b iu khin miniport. Khi lin kt vi n, b qun tr SCSI cung cp cng chc nng nh Windows 95 chun hoc b iu khin Fast Disk cng nh quan tm n nhng lp cp cao hn. B iu khin miniport : Lm vic vi tp hp nhng adapter SCSI c m t. B iu khin ph thuc vo nhng th tc lp bn di khi ng adapter, qun l ngt, chuyn nhng yu cu nhp/xut cho thit b, v thc hin nhng khi phc li mc adapter. Khi kt hp vi b qun l SCSI, n cung cp cng nhng chc nng nh b iu khin cng chun ca Windows 95.

135

B nh x chng trnh giao tip SCSI cao cp (ASPI) ca Windows 95 l APIX.VXD, cung cp h tr mode bo v cho nhng thit b v chng trnh cn giao tip ASPI. B qun l ASPI cung cp nhng giao tip gia b iu khin thit b v adapter chun v thit b SCSI c ni trn adapter ch. B iu khin ASPI gi b qun tr ASPI. B qun tr ASPI chuyn li gi cho CDB (Command Descriptor Khi) gi ti nhng thnh phn SCSI. B qun tr ASPI cn thit cho nhng trng hp sau y : Nhiu adapter ch. a cng SCSI vi SCSI ID khc 0 hay 1. SCSI tape, my in, my v, my qut.

II.5 CDFS

136

CDFS thay th cho VFAT trong iu khin thit b CD-ROM. Chc nng ca CDFS tng t nh VFAT cho a cng. Cc thnh phn khc u tng thch vi version ca CDROM. Mt yu cu nhp/xut tp tin trn CD-ROM c thc hin bi mt trong bn cch sau B iu khin IDE h tr mode bo v : ESDI_506.PDR. B iu khin SCSI h tr b iu khin miniport mode bo v. B iu khin u tin h tr nhng b iu khin mode bo v c lit k trong tp tin ADAPTER.INF. B iu khin thit b CD-ROM mode thc s dng FAT MS-DOS v MSCDEX nh h thng tp tin m rng CD-ROM cho FAT. CDFS s dng b lu tr chia x vi VCACHE. H tr tn tp tin di :(LFN) Windows 95 cho php t tn tp tin di khng cn b gii hn bi 8.3 na. Tuy nhin, mi ln to(LFN), mt tn 8.3 c t ng gn cho n. Mt LFN c th c ti 256 k t bao gm lun c khong trng. ng dn c th ln n 260 k t. Vic gn tn 8.3 cho LFN theo quy tc sau : B tt c nhng k t c bit sau : \ ? : * < > | Ly 6 k t u tin ca LFN thm du ~ v mt s bt u t 1 n 9, nu khng th ch ly 5 k t vi s t 10 n 99 v.v... i vi phn m rng, s dng 3 k t hp l u tin sau du chm cui cng. Nu khng c du chm th khng c phn m rng. Khi sao chp tp tin di MS-DOS, LFN s mt i, ch cn li tn 8.3 m thi. Nu tp tin c to di MS-DOS th LFN cng chnh l tn . Cng c th s dng LFN trong ng dng MS-DOS nhng khi , tn tp tin phi c t trong nhy kp. LFN s dng vng dnh ring ca FAT. Chng trnh dng phn dnh ring ca FAT tm kim thng tin LFN.

III.WINDOWNS NT
H iu hnh WindowsNT h tr nhiu loi h thng tp tin bao gm FAT trn MSDOS v Windows95 v OS/2. Tuy nhin n cng c h thng tp tin ring, l NTFS.

III.1 c im ca NTFS
NTFS l mt h thng tp tin mnh v linh ng, nhng c im ni bt l : Kh nng phc hi An ton Qun l c a dung lng ln v kch thc tp tin ln Qun l hiu qu.

III.2 Cu trc tp tin v volume ca NTFS


NTFS s dng nhng khi nim sau : Sector, cluster, volume Cluster l n v nh v c bn trong NTFS. Kch thc tp tin ti a trong NTFS l 232 cluster, tng ng 248 bytes. S tng ng gia kch thc volume v cluster nh hnh sau : 137

Cu trc volume ca NTFS :

Bao gm bn vng. Vng th nht l cc sector khi ng ca partition (c th n 16 sectors) bao gm cc thng tin v cu trc ca volume, cu trc ca h thng tp tin cng nh nhng thng tin v m ngun khi ng. Vng tip theo l bng Master File (MFT) lu cc thng tin v tt c tp tin v th mc trn volume NTFS ny cng nh thng tin v cc vng trng. Sau vng MFT l vng cc tp tin h thng c kch khong 1Mb bao gm : MFT2 : bn sao ca MFT Log file : thng tin v cc giao tc dng cho vic phc hi. Cluster bitmap : biu din thng tin lu tr ca cc cluster Bng nh ngha thuc tnh : nh ngha cc kiu thuc tnh h tr cho volume . MFT c t chc thnh nhiu dng. Mi dng m t cho mt tp tin hoc mt th mc trn volume. Nu kch thc tp tin nh th ton b ni dung ca tp tin c lu trong dng ny. mi dng cng lu nhng thuc tnh cho tp tin hay th mc m n qun l. Kiu thuc tnh Thng tin chun Danh sch thuc tnh Tn tp tin M t an ton D liu Ch mc gc Ch mc nh v thng tin volume Bitmap M t Bao gm cc thuc tnh truy xut (ch c, c/ghi,...), nhn thi gian, ch s lin kt s dng khi tt c thuc tnh vt qu 1 dng ca MFT thng tin v ngi s hu v truy cp dng cho th mc dng cho th mc nh tn version v tn volume hin trng cc dng trong MFT

Hnh 10.10 Cc kiu thuc tnh ca tp tin v th mc ca Windows NTFS

138

IV. UNIX IV.1 H thng tp tin ca Unix :


Mt tp tin c m vi li gi h thng OPEN, vi tham s u tin cho bit ng dn v tn tp tin , tham s th hai cho bit tp tin c m c, ghi hay va c va ghi. H thng kim tra xem tp tin c tn ti khng. Nu c, n kim tra bit quyn xem c c quyn truy cp khng, nu c h thng s tr v mt s dng nh gi l bin m t tp tin cho ni gi. Nu khng n s tr v 1. Khi mt tin trnh bt u, n lun c ba gi tr ca bin m t tp tin : 0 cho nhp chun, 1 cho xut chun v 2 cho li chun. Tp tin c m u tin s c gi tr l 3 v sau l 4 Khi tp tin ng, bin m t tp tin cng c gii phng. C hai cch m t tn tp tin trong UNIX. Cch th nht l dng ng dn tuyt i, tp tin c truy cp t th mc gc. Th hai l dng khi nim th mc lm vic hay th mc hin hnh trong ng dn tng i. UNIX cung cp c tnh LINK, cho php nhiu ngi s dng cng dng chung mt tp tin, hay cn gi l chia x tp tin. V d nh hnh sau, fred v lisa cng lm vic trong cng mt n, h cn truy cp tp tin ln nhau. Gi s fred cn truy cp tp tin x ca lisa, anh ta s to mt entry mi trong th mc ca anh ta v sau c th dng x vi ngha l /usr/lisa/x.

Ngoi ra UNIX cho php mt a c th c mount thnh mt thnh phn ca h thng cy th mc ca mt a khc.

139

Mt c tnh th v khc ca h thng tp tin ca UNIX l kha (locking). Trong mt s ng dng, mt s tin trnh c th s dng cng mt tp tin cng lc. C hai loi kha l chia x hay loi tr. Nu tp tin cha kha chia x th c th t thm mt kha chia x na, nhng khng th t mt kho loi tr nhng nu c t kha loi tr th khng th t thm kha na. Vng kha c th c ghi chng.

IV.2 Ci t h thng tp tin ca Unix


H thng tp tin ca UNIX thng thng c ci t trn a nh hnh sau :

Khi 0 thng cha m khi ng ca h thng. Khi 1 gi l khi c bit (super block), n lu gi cc thng tin quan trng v ton b h thng tp tin, bao gm: Kch thc ca ton b h thng tp tin. a ch ca khi d liu u tin. S lng v danh sch cc khi cn trng. S lng v danh sch cc I-node cn trng. Ngy super block c cp nht cui cng. Tn ca h thng tp tin. Nu khi ny b hng, h thng tp tin s khng truy cp c. C rt nhiu trnh ng dng s dng thng tin lu tr trong super block. V vy mt bn sao super block ca h thng tp tin gc c t trong RAM tng tc truy xut a. Vic cp nht super block s c thc hin ngay trong RAM v sau mi ghi xung a. Sau khi c bit l cc I-node, c nh s t mt cho ti ti a. Mi I-node c di l 64 byte v m t cho mt tp tin duy nht (cha thuc tnh v a ch khi lu tr trn a ca tp tin). 140

Sau phn I-node l cc khi d liu. Tt c tp tin v th mc u c lu tr y. Mt entry ca directory c 16 byte, trong 14 byte l tn ca tp tin v 2 byte l a ch ca I-node. m mt tp tin trong th mc lm vic, h thng ch c th mc, so snh tn c tm thy trong mi entry cho n khi tm c, t xc nh c ch s I-node v a vo b nh truy xut. Tp tin c to hay tng kch thc bng cch s dng thm cc khi t danh sch cc khi cn trng. Ngc li, khi c gii phng s tr v danh sch khi trng khi xa tp tin. Super block s cha a ch ca 50 khi trng. Trong a ch cui cng cha a ch ca mt khi cha a ch ca 50 khi trng k tip v c tip tc nh th. Unix s dng khi trng trong super block trc. Khi khi trng cui cng trong super block c s dng, 50 khi trng k tip s c c vo trong super block. Ngc li, khi mt khi c gii phng, a ch ca n s c thm vo danh sch ca super block. Khi 50 a ch trong super block, khi trng k tip s c dng lu tr 50 a ch khi trng ang t trong super block thay cho super block.

Bi tp
Bi 1 : Cho dy byte ca FAT12 nh sau (bt u t u): 240 255 255 0 64 0 9 112 255 255 143 0 255 255 255

Cho bit nhng phn t no ca FAT c gi tr c bit, ngha ca phn t . Nu sa li phn t 5 l FF0 th dy byte ca FAT12 ny c ni dung nh th no ? Bi 2 : Bit gi tr(di dng thp phn) trong mt buffer (mi phn t 1 byte) lu ni dung ca FAT12 nh sau (bt u t phn t 0): 240 255 255 255 79 0 5 240 255 247 255 255

Cho bit gi tr ca tng phn t trong FAT (di dng s thp phn) Bi 3 : Chp 1 tp tin kch thc l 3220 bytes ln mt a 1.44Mb cn trng nhng b hng sector logic 33. Cho bit gi tr tng byte ca Fat (thp phn) t byte 0 n byte 14 . Bi 4 : Gi s mt a mm c 2 side, mi side c 128 track, mi track c 18 sector. Th mc gc ca a c ti a l 251 tp tin (hoc th mc). Mt cluster = 2 sector. a s dng Fat 12. Hi mun truy xut cluster 10 th phi c nhng sector no ? 141

Bi 5 : Hin trng ca FAT12 v RDET (mi entry ch gm tn tp tin v cluster u tin)ca mt a nh sau : 24 0 25 5 25 5 24 7 7 9 0 6 0 0 25 5 15 9 0 1 0 24 0 25 5 25 5 12 7 25 5

VD TXT 3

LT DOC 7

THO DAT 8

Cho bit hin trng ca FAT12 v RDET sau khi xo tp tin vd.txt v chp vo tp tin bt.cpp c kch thc 1025 bytes ( gi s 1 cluster = 1 sector) Bi 6 : Mt tp tin c lu trn a ti nhng khi theo th t sau : 20, 32, 34, 39, 52, 63, 75, 29, 37, 38, 47, 49, 56, 68, 79, 81, 92, 106, 157, 159, 160, 162, 163, 267, 269, 271, 277, 278, 279, 380, 381, 482, 489, 490, 499. V I_node ca tp tin ny, gi s mi khi ch cha c 3 phn t.

142

You might also like