Professional Documents
Culture Documents
U
.V
GIO TRNH
H IU HNH
PE
.P
TI
T.
(OPERATING SYSTEM)
BIN SON
NINH XUN HI - HUNH TRNG THA
NM 2008
LI M U
ED
U
.V
Gio trnh H iu hnh c bin son theo chng trnh o to chuyn nghnh tin hc h
cao ng v k s ca B gio dc v o to. Gio trnh c chia thnh 6 chng, chng 1, 2,
3, 4 do ging vin Ninh Xun Hi bin son, chng 5, 6 do ging vin Hunh Trng Tha bin
son. Tuy rng chng ti c nhiu c gng trong cng tc bin son nhng chc chn gio trnh
vn cn nhiu thiu st, nn rt mong c bn c cng nh cc ng nghip ng gp kin
gio trnh ngy cng hon thin, nhm mc ch phc v tt hn cho vic dy v hc tin hc ang
ngy cng pht trin nc ta.
T.
hoc
PE
.P
TI
CHNG I
U
.V
ED
H iu hnh (operating systems) l chng trnh ng vai tr trung gian gia ngi s
dng v phn cng ca my tnh. H iu hnh che du s phc tp, a dng ca phn cng,
gip vic s dng my tnh tr nn n gin, hiu qu. Nhim v ca h iu hnh l qun l ti
nguyn ca my tnh, thc thi cc chng trnh ng dng, h tr cc chc nng mng, vv
T.
Mt h thng my tnh c chia thnh 4 thnh phn sau: phn cng, h iu hnh,
chng trnh ng dng/chng trnh h thng, ngi s dng.
TI
.P
+ H iu hnh (operating systems): iu khin v phi hp vic s dng phn cng cho nhiu
ng dng vi nhiu ngi s dng khc nhau.
+ Chng trnh ng dng v chng trnh h thng (system and applications programs): l cc
chng trnh gii quyt nhng vn ca ngi s dng nh l chng trnh dch, h qun tr c
s d liu, chng trnh tr chi, chng trnh thng mi,
PE
U
.V
ED
+ Chng trnh kim sot (Control program): Kim sot vic thc thi chng trnh v kim sot
hot ng ca cc thit b nhp/xut.
+ Phn nhn (Kernel): l chng trnh li ca h iu hnh, c thc thi trc tin v tn ti
trong b nh cho n khi tt my (cc chng trnh khc gi l chng trnh ng dng).
B cp pht ti nguyn
T.
Phn nhn
TI
.P
PE
U
.V
ED
- Lp trnh vin em bng t ti my 7094 thc hin tnh ton v kt qa c ghi vo bng t
TI
T.
.P
PE
Ti mt thi im c nhiu cng vic trong b nh v khi mt cng vic ang thc hin, nu c
yu cu nhp/xut th CPU khng ngh m h iu hnh s chuyn sang thc hin cng vic khc.
V d trong b nh hin c ba chng trnh thc hin ba cng vic. Nu cng vic 1 yu cu
nhp/xut th cng vic 1 tm ngng, cng vic 2 (hoc cng vic 3) s c thc hin. Khi thao
tc nhp/xut ca cng vic 1 xong th cng vic 1 s c thc hin tip, cng vic 2 s tm
ngng,
U
.V
+ Cp pht thit b (Allocation of devices): tnh trng thit b rnh hay khng rnh, thit b cp
cho cng vic no, cng vic no cn a vo hng i ch. Thit b no c th dng chung v
ti a bao nhiu cng vic s dng chung thit b cng lc, thit b no khng th dng chung,
v phi trnh b tc nghn (cc cng vic ch v hn c cp ti nguyn).
+ Cung cp cc hm x l nhp/xut (I/O routines): Cc hm nhp/xut s che du s phc tp
v a dng ca cc thit b nhp/xut, qun l vic s dng chung cc thit b nhp/xut.
ED
TI
T.
.P
task
PE
C
B
time
Hnh 1.7: cc cng vic A,B,C s dng cpu lun phin trong h thng x l a nhim
* u im ca h thng a x l
+ S hng hc ca mt b x l s khng nh hng n ton b h thng.
+ H thng s thc hin rt nhanh do thc hin cc cng vic ng thi trn cc b x l khc
nhau
U
.V
+ Vic lin lc gia cc cng vic d dng bng cch s dng b nh dng chung.
ED
T.
.P
TI
+ Peer-to-peer: h thng mng ngang hng, cc my tnh ngang cp, khng c my no ng vai
tr qun l ti nguyn dng chung.
PE
* u im ca h thng x l phn tn
+ Dng chung ti nguyn: my in, tp tin
+ Tng tc tnh ton: phn chia cng vic tnh ton trn nhiu v tr khc nhau
+ An ton: Nu mt v tr b hng, cc v tr khc vn tip tc lm vic.
+ Truyn thng tin d dng: download/upload file, gi/nhn mail,
+ H thng x l thi gian thc cng (Hard real-time): cc cng vic c hon tt ng thi
im qui nh.
U
.V
+ H thng x l thi gian thc mm (Soft real-time): mi cng vic c mt u tin ring v s
c thi hnh theo u tin.
ED
H iu hnh c nhng trong cc thit b gia dng, cc my tr chi,... Do cc thit b gia dng
c b nh t, b x l tc thp, kch thc mn hnh nh nn h iu hnh ny cn n gin,
nh gn, c tnh c trng cho tng thit b. V d h iu hnh dng cho my PDAs (Personal
Digital Assistants), Mobil phones, H thng nhng cn c gi l h thng cm tay (Handheld
Systems).
T.
TI
.P
- Bo v h thng
PE
- Qun l mng
Tin trnh l mt chng trnh ang thi hnh. Trong b nh, ti mt thi im c th c nhiu tin
trnh, mt s tin trnh l ca h iu hnh, mt s tin trnh l ca ngi s dng. Khi tin trnh
c to ra hoc ang thi hnh s c h iu hnh cung cp cc ti nguyn tin trnh hot
ng nh l CPU, b nh, tp tin, cc thit b nhp/xut Khi tin trnh kt thc, h iu hnh s
thu hi li cc ti nguyn cp pht. Mt tin trnh khi thc thi li c th to ra cc tin trnh con
v hnh thnh cy tin trnh.
U
.V
Ti mt thi im, trong b nh chnh c th c nhiu tin trnh, h iu hnh cn phi qun l
phn b nh cp cho mi tin trnh trnh xung t.
ED
T.
TI
.P
H iu hnh cn che du nhng c th ca cc thit b phn cng, bng cch cung cp cc chc
nng x l nhp xut n gin, khng ph thuc vo chi tit ca mi loi thit b.
PE
My tnh c th lu tr thng tin trong nhiu dng thit b vt l khc nhau nh bng t, a t,
a quang, ... Mi dng c c kh nng lu tr, tc truyn d liu v cch truy xut khc nhau.
H iu hnh cn ng nht cch truy xut h thng lu tr, nh ngha mt n v lu tr l tp
tin.
U
.V
Li gi h thng l tp lnh do h iu hnh cung cp dng giao tip gia tin trnh ca ngi
dng v h iu hnh, li gi h thng cn gi l ngt. Cc li gi h thng c th c chia
thnh cc loi nh l tp lnh qun l tin trnh, tp lnh qun l tp tin, tp lnh qun l thit b,
tp lnh dng lin lc gia cc tin trnh. Mi li gi h thng c mt s hiu duy nht dng
phn bit li gi ny vi li gi khc. Cc a ch ni cha m lnh ca cc ngt (li gi h thng)
c lu trong mt bng gi l bng vect ngt.
Khi tin trnh dng li gi h thng, cn cung cp tham s cho li gi h thng. C ba phng
php m tin trnh dng chuyn tham s cho h iu hnh:
- Chuyn tham s vo thanh ghi
ED
PE
.P
TI
T.
V d chuyn a ch bng X (bng cha cc tham s) vo thanh ghi, gi ngt 13. Ngt 13 l li
gi h thng do h iu hnh cung cp.
Li gi hm
M t
Pid=fork()
Exit(status)
10
M t
Fd=open(file,how,)
S=close(fd)
ng mt file m trc
N=read(fd,buffer,nbytes)
N= write(fd,buffer,nbytes)
Position=lseek(fd,offset,whence)
S=stat(name,&buf)
U
.V
Li gi hm
Qun l Tp tin
S=mkdir(name,mode)
To th mc mi
S=rmdir(name)
Xa th mc rng
S=link(name1,name2)
S=unlink(name)
Xa i tng th mc
S=mount(special,name,flag)
S=unmount(special)
TI
T.
ED
Li gi hm
.P
PE
L tp lnh c bn cng trnh thng dch lnh ngi s dng giao tip vi h iu hnh. Cc
lnh c bn nh lnh qun l tin trnh, qun l nhp xut, qun l b nh chnh, qun l b nh
ph, qun l tp tin v cc lnh bo v h thng Cc lnh trong h thng thng dch dng lnh
thc ra cng s gi cc cc li gi h thng.
Cung cp cc chc nng phn quyn, chia x ti nguyn mng, lin lc gia cc tin trnh trn
mng,
11
U
.V
ng dng c th truy xut trc tip cc hm nhp/xut trong ROM BIOS ghi trc tip ln mn
hnh hay b iu khin a.
ED
PE
.P
TI
T.
H iu hnh UNIX phin bn u tin cng c cu trc n gin v c chia thnh hai phn:
phn system calls v phn kernel. Phn kernel cung cp tt c cc dch v ca h iu hnh. Cc
phn c th gi ln nhau.
Hnh 1.12: cu trc ca h iu hnh UNIX phin bn u tin (cu trc n gin)
12
ED
U
.V
Thao tc
T.
Tng
.P
Qun l Xut/Nhp
TI
a chng
PE
1.5.3 Cu trc my o
13
N
U
.V
ED
.P
TI
T.
H iu hnh c chia thnh nhiu phn (gi l cc tin trnh server), mi tin trnh thc hin
mt dch v nh l dch v qun l tp tin, qun l tin trnh, qun l b nh, Cc tin trnh
yu cu (gi l tin trnh client) s gi yu cu n mt tin trnh server, tin trnh server thc
hin v gi kt qu tr li cho tin trnh client. Ht nhn ch c nhim v kim sot qu trnh lin
lc gia cc tin trnh client v server.
* u im ca cu trc client-server
+ Ht nhn rt nh, ch gm cc lnh c bn, nn d bo v, d nng cp.
PE
+ Cc tin trnh server c thc hin ch ngi dng (user-mode), khng phi ch ht
nhn (kernel-mode), nn khng truy xut trc tip phn cng.
+ Cu trc client-server rt thch hp vi m hnh h thng phn tn. Cc tin trnh server c th
thc thi cc my khc nhau.
14
U
.V
+ H iu hnh cn d vit, d sa li, d nng cp (nn vit h iu hnh bng ngn ng cp cao
v d vit v d sa li hn l vit bng ngn ng assembly).
+ H iu hnh cn d ci t, d bo tr, khng c li v hiu qa.
ED
+ H iu hnh cn c tnh kh chuyn cao (thc hin c trn mt nhm cc phn cng khc
nhau).
T.
+ H iu hnh cn c chng trnh SYSGEN (System Generation) thu thp thng tin lin quan
n phn cng thit lp cu hnh h iu hnh cho ph hp vi mi my tnh.
TI
TM TT
PE
.P
CU HI BI TP
1. Nu mc ch chung ca h iu hnh
2. Phn bit h thng a chng v h thng a nhim
15
[2]. Robert Switzer. Operating Systems, A Practical Approach. Prentice-Hall International, Inc.
1993.
[3]. Andrew S. Tanenbaum. Modern Operating Systems. Prentice-Hall International, Inc. Second
Edition, 2001.
U
.V
[4]. Abraham Silberschatz & Peter Baer Galvin. Operating System concepts. John Wiley & Sons,
Inc. Fifth Edition, 1999.
[5]. H. M. Deitel. Operating Systems. Addison-Wesley Inc. Second Edition, 1999.
PE
.P
TI
T.
ED
[7]. Trn Hnh Nhi & L Khc Nhin n & Hong Kim. Gio trnh h iu hnh (tp 1 & 2).
HKHTN 2000.
16
CHNG 2
ED
U
.V
T.
TI
.P
+ Thit b khi: thng tin c c/ghi theo tng khi c kch thc c nh v c a ch xc
nh, v d a l mt thit b khi.
PE
+ Thit b tun t: thng tin c gi/nhn theo dy tun t cc bit, khng c a ch, v d mn
hnh, bn phm, my in, card mng, chut l thit b tun t.
17
Hnh 2.1: thi gian truy xut v dung lng ca mt s thit b nhp/xut
U
.V
ED
L phn cng iu khin trc tip thit b nhp/xut, CPU khng th truy xut trc tip thit b
nhp/xut m phi thng qua b iu khin thit b, dng h thng ng truyn gi l bus. V d
b iu khin mn hnh c cc k t cn hin th trong b nh v iu khin cc tia ca CRT
(ng phng in t ca mn hnh) xut k t trn mn hnh. Thit b nhp/xut v b iu
khin phi tun theo cng chun giao tip nh chun ANSI, IEEE hay ISO
.P
TI
T.
Hnh 2.2: CPU truy xut cc thit b nhp/xut thng qua b iu khin thit b
PE
a ch nhp/xut
Vect ngt
nhp/xut
(a ch ca cc thanh ghi)
ng h
040 - 043
Bn phm
060 - 063
RS232 ph
2F8 - 2FF
11
a cng
320 - 32F
13
18
378 - 37F
15
Mn hnh mono
380 - 3BF
Mn hnh mu
3D0 - 3DF
a mm
3F0 - 3F7
14
RS232 chnh
3F8 - 3FF
12
My in
U
.V
CPU thc hin nhp/xut bng cch ghi lnh, cng cc tham s ln cc thanh ghi ca b iu
khin, sau CPU s thc hin cng vic khc. Khi b iu khin thc hin xong, s pht sinh
mt ngt bo hiu cho CPU bit v n ly kt qu (kt qu cng c b iu khin lu trong
cc thanh ghi).
ED
+ Chng trnh nhp/xut ca ngi dng (user program): thc hin cc li gi n chng trnh
nhp/xut c lp thit b.
T.
PE
.P
TI
+ Chng trnh iu khin thit b (Device drivers): do h iu hnh hoc nh sn xut thit b
cung cp, chng trnh ny ph thuc vo thit b, s nhn nhng yu cu nhp/xut ca chng
trnh nhp/xut c lp thit b. Nu device driver ang bn, yu cu s c a vo hng
i, ngc li n s thc hin ngay yu cu, bng cch chuyn lnh vo thanh ghi ca b iu
khin thit b (I/O controller).
Hnh 2.4: S giao tip gia cc chng trnh thc hin nhp/xut
19
ED
U
.V
H thng qun l nhp/xut c phn chia thnh 5 lp l: tin trnh ngi dng (user processes),
chng trnh nhp/xut c lp thit b (device-independent software), chng trnh iu khin
thit b (device drivers), chng trnh kim sot ngt (interrupt handlers), phn cng (hardware).
Mi lp c chc nng ring v c th giao tip vi lp khc.
T.
TI
.P
+ Chng trnh iu khin thit b (Device driver): thit lp gi tr cc thanh ghi thit b, kim tra
trng thi thit b,
+ Chng trnh kim sot ngt (Interrupt handlers): thng bo cho chng trnh iu khin thit b
khi thao tc nhp/xut hon tt.
+ Phn cng nhp/xut (I/O Hardware): thc hin thao tc nhp/xut
PE
V d tin trnh ngi dng (user processes) mun c mt khi d liu trn a, s gi yu cu
nhp/xut n chng trnh nhp/xut c lp thit b (device-independent software), chng
trnh ny s tm kim khi trong b m nhp/xut, nu khi cn c cha c trong b m, n s
gi chng trnh iu khin thit b (device driver). Chng trnh iu khin thit b gi yu cu
n a cng v tin trnh ngi dng s tm ngng cho n khi thao tc c a hon tt, a s
pht sinh mt ngt thng bo c xong, gi tn hiu ngt cho chng trnh kim sot ngt.
Chng trnh kim sot ngt ghi nhn trng thi ca thit b v nh thc tin trnh ca ngi
dng tip tc thc hin.
20
U
.V
Hnh 2.6: khi thao tc c a hon tt, b iu khin a s pht sinh mt ngt.
- B x l pht sinh mt lnh I/O n cc thit b I/O, sau ch cho n khi thao tc I/O hon
tt ri mi tip tc x l, hoc:
ED
- B x l pht sinh mt lnh I/O n cc thit b I/O, sau tip tc vic x l cho ti khi nhn
c mt ngt t thit b I/O bo l hon tt nhp/xut, b x l tm ngng vic x l hin ti
chuyn qua x l ngt, hoc:
- S dng c ch DMA
T.
.P
TI
PE
ti u, b iu khin thng c cung cp thm kh nng truy xut b nh trc tip (DMA).
Ngha l sau khi b iu khin c ton b d liu t thit b vo buffer ca n, b iu khin
chuyn byte u tin vo b nh chnh ti a ch c m t bi a ch b nh DMA. Sau n
tng a ch DMA v gim s bytes phi chuyn. Qu trnh ny lp li cho ti khi s bytes phi
chuyn bng 0, v b iu khin to mt ngt. Nh vy b iu khin t chuyn khi vo trong b
nh chnh.
21
ED
U
.V
truy xut cc khi trn a, trc tin phi di chuyn u c n track thch hp, thao tc ny
gi l seek v thi gian hon tt thao tc ny gi l seek time. Mt khi n ng track, cn
phi ch cho n khi khi cn thit n di u c, thi gian ch ny gi l latency time. Cui
cng l chuyn d liu t a vo b nh chnh, thi gian ny gi l transfer time. Tng thi gian
cho dch v a chnh l tng ca ba khong thi gian trn (seek time + latency time + transfer
time). Trong seek time v latency time l mt nhiu thi gian nht, do gim thiu thi
gian truy xut, h iu hnh cn a ra cc thut ton lp lch di u c sao cho ti u.
.P
TI
T.
PE
22
U
.V
TI
T.
ED
.P
Thut ton SCAN v C-SCAN thch hp cho nhng h thng phi truy xut d liu khi lng
ln. Thut ton lp lch ph thuc vo s khi v kiu khi cn truy xut, v d nu s khi cn
truy xut l lin tc th FCFS l thut ton tt.
PE
B iu khin a phi thc hin hai chc nng l c/ghi d liu v chuyn d liu vo h thng.
ng b hai chc nng ny, cc sector c nh s sao cho cc sector c s hiu lin tip
nhau khng nm k bn nhau m c mt khong cch, khong cch ny c xc nh bi qu
trnh format a v gi l h s an xen.
23
U
.V
Nh vy sau bn ln th t cc sector c c vn l t 1 n 17
Ln 4: 16, 17
* Ram disk:
ED
T.
TI
PE
.P
sector
track
24
Tn file dng phn bit file ny vi file khc, UNIX phn bit tn file ch thng vi tn file
ch hoa nhng WINDOWS th khng phn bit. Trong UNIX tn file c th c nhiu phn cch
(v d prog.c.Z), WINDOWS ch c mt phn cch. H iu hnh dng phn m rng nhn
dng kiu ca file v cc thao tc c th thc hin trn kiu file , v d phn m rng l *.exe,
*.com th h iu hnh hiu l file kiu nh phn c th thc thi nhng nu khng thc thi c
th l do cu trc file khng ng qui nh ca file *.exe, *.com.
U
.V
C hai loi file l file vn bn v file nh phn. File vn bn cha cc dng vn bn cui dng c
k t xung dng (k t enter). File nh phn gm dy cc byte, c cu trc ty theo chng trnh
to ra file. V d file .com, .exe, .wav, .bmp,. h iu hnh ch thc thi c file .com, .exe nu
n c cu trc ng qui nh.
ED
+ Kch thc file: Kch thc hin thi, kch thc ti a ca file tnh bng bytes/words/blocks,
+ Ngy gi to file, ngi to file: Ngy, gi to file; ngy, gi cp nht file gn nht; ngy, gi
s dng file sau cng, ngi to file.
T.
ngha
Ai c th truy xut file v bng cch no
Mt khu cn c truy xut file
ID ca ngi to file
Ngi s hu hin ti
0: cho php c/ghi; 1: ch cho php c
0: bnh thng; 1: khng xut hin khi lit k
0: file bnh thng, 1: file h thng
0: backup, 1: cn c backup.
0: file dng m ASCII, 1: file dng m nh phn
0: ch cho php truy xut tun t; 1: cho php truy xut ngu
0: bnh thng, 1: file b hy khi tin trnh kt thc
0 : khng kha, khc 0: kha
S bytes trong mt mu tin
offset ca kha trong tng mu tin
S byte ca kha trong mu tin
Ngy gi to file
Ngy gi truy xut file gn nht
Ngy gi cp nht ni dung file gn nht
S byte ca file
S bytes ti a cho php ca file
PE
.P
Thuc tnh
Protection
Password
Creator
Owner
Read-only flag
Hidden flag
System flag
Archive flag
ASCII/binary flag
Random Access flag
Temporary flag
Lock flags
Record length
Key position
Key length
Creation time
Time of last access
Time of last change
Current size
Maximum size
TI
+ Bo v file: Dng account (username, password), owner/creator hoc dng quyn cp cho
user, group trn file hay th mc, gm cc quyn sau: quyn c (Read), ghi (Write), xa
(Delete), thc thi (Execute), lit k (List), thm (Append)...
25
U
.V
+ M file (open): Khi ln u tin file c truy xut, thng tin v file c c t cu trc th
mc v lu vo bng open-files trong b nh. Nu file cha ng, th nhng ln truy xut sau s
khng phi tm thng tin v file trong cu trc th mc na m ly trong bng open-files. Thao
tc m file s tr v ch mc trong bng open-files
+ ng file (close): Ghi mc tng ng trong bng open-files vo cu trc th mc, v hy mc
ny trong bng open-files.
+ c file (read): Tm tn file trong cu trc th mc, bit c v tr lu tr file, c file vo b
nh, dng mt con tr c (read pointer) ghi nhn v tr cho ln c k tip.
ED
+ Ghi file (write): Tm tn file trong cu trc th mc, ly c s hiu khi nh u tin cp pht
cho file, ghi d liu ca file vo v tr ny, dng mt con tr ghi (write pointer) ghi nhn v tr
cho ln ghi k tip.
+ Ly thuc tnh (get attribute)
+ t thuc tnh (set attribute)
TI
+ i tn file (rename)
T.
PE
.P
mc 0 mc 1 . mc n
Cu trc th mc
Dir Structure
Files
F1
F2
F3
F4
Fn
Hnh 2.16: m hnh cu trc th mc, mi mc trong cu trc th mc qun l mt file hoc th
mc con
26
* Cu trc th mc
+ Th mc mt cp: (Single Level Directory)
U
.V
.P
TI
T.
ED
PE
27
U
.V
H iu hnh c th chia a cng thnh nhiu phn vng (partition), mi phn vng gm nhiu
t tr (cyclinder) lin tip, hoc tp hp nhiu a cng thnh mt phn vng. Mi phn vng s
c cu trc th mc ring qun l cc tp tin trong phn vng .
T.
ED
.P
TI
PE
28
U
.V
Vic ci t h thng qun l file ph thuc vo vic h iu hnh chn phng php cp pht
khi nh cho file l lin tc hay khng lin tc.
2.2.2.1 Cp pht khi nh lin tc
PE
.P
TI
T.
ED
Khi cp pht khi nh lin tc, ci t h thng qun l file, h iu hnh ch cn dng bng
th mc, mi mc trong bng th mc ngoi nhng thuc tnh thng thng ca file, cn c thm
thng tin v s hiu khi bt u (start) v s khi cp cho file (length). Phng php ny d
ci t, d thao tc v ton b file c c t cc khi lin tip trn a khng cn nh v li,
nhng c khuyt im l file khng th pht trin v c th gy ra lng ph do s phn mnh trn
a.
Khi cp pht khi nh lin tc, ci t h thng qun l file, h iu hnh s dng bng th
mc v cn phi s dng thm mt trong cc cu trc sau: danh sch lin kt, bng ch mc, bng
cp pht file, bng I-Nodes.
2.2.2.2.1 Danh sch lin kt:
Mi mc trong bng th mc cha s hiu ca khi u tin (start) v s hiu ca khi kt thc
(end), mi khi trn a dnh mt s byte u hoc cui (thng l 4 bytes) lu s hiu khi k
tip ca file, phn cn li ca khi s lu d liu ca file. Phng php ny khng b lng ph do
phn mnh ngoi vi, nhng truy xut ngu nhin chm v rt kh bo v cc s hiu khi ca File.
29
N
U
.V
Hnh 2.25: m hnh cp pht khng lin tc, s dng danh sch lin kt
2.2.2.2.2 Bng ch mc (index table):
ED
T.
V d a cng c dung lng 32 GB, kch thc 1 khi l 512 Bytes. Hi kch thc mt bng
ch mc l bao nhiu nu mun qun l file c kch thc ln nht l 256K?
PE
.P
TI
32 GB=25 x 210 x 210 KB = 225 KB = 216 khi => c 216 a ch trn a => mi phn t bng ch
mc cn 2 byte. File kch thc 256KB = 256 x 1024 byte = 512 khi => bng ch mc cn c
512 phn t => mt bng ch mc chim hai khi!
30
U
.V
ED
Hnh 2.27: m hnh cp pht khng lin tc, s dng bng FAT
Bng th mc:
(A, 4)
TI
T.
(B, 6)
PE
Bng FAT :
Entry ca B
.P
Entry ca A
Hnh 2.28: m hnh cp pht khng lin tc, s dng bng FAT, c hai file
31
T.
ED
U
.V
Ghi ch: H iu hnh Unix s dng cu trc ny v s phn t ca phn th hai, khng nht thit
l 13 m c th thay i ty phin bn ca UNIX
TI
.P
PE
Mt phn vng c t chc thnh cc phn sau: boot block, super block, free space mgmt, inodes, root dir, files and directories. Trong I-nodes l bng I-nodes gm nhiu mc, mi mc
gi l mt i-node, cha mt cu trc i-node ghi thng tin ca mt file. Mi mc ca bng th mc
gc (root dir) ghi tn file v s hiu i-nodes ca file. Phng php ny tng i linh ng v
hiu qu khi qan l nhng h thng file ln.
Hnh 2.30: m hnh cp pht khng lin tc, s dng bng I-nodes tng qut
32
T.
ED
U
.V
TI
Hnh 2.31: m hnh cp pht khng lin tc, s dng bng I-nodes chi tit
.P
C hai phng php m h iu hnh thng s dng qun l cc khi trng l s dng danh
sch lin kt hoc vector bit.
Mi nt trong danh sch lin kt (dslk) l mt khi cha mt bng gm cc s hiu khi trng,
phn t cui ca bng lu s hiu khi tip theo trong danh sch.
PE
V d: Gi s khi u tin trong dslk l khi 2. Trong khi 2 lu cc s 75, 53, 70, 59 l cc s
hiu khi trng, cc khi 3 l khi cha bng cc s hiu khi trng tip theoH iu hnh ch
cn bit s hiu khi u tin ca danh sch lin kt.
0
75
1
2
3
53 70 59
Khi 2
4
3
0
35
1
2
3
47 79 39
Khi 3
4
4
V d: Mt a 20M, dng khi c kch thc 1 K. qun l a ny, nu a hon ton trng
th DSLK cn bao nhiu khi (s nt ti a ca dslk)?
Gii:
20M= 20x 210 khi ~ 215 khi => cn dng 16 bit=2 byte lu mt s hiu khi
=> 1 khi=1024 byte lu c 511 s hiu khi trng
=> qun l a c 20M hon ton trng, dslk cn 20x 210/ 511 ~ 40 khi !
33
U
.V
Nhn xt: Tn kh nhiu khi nh cho dslk nu a hon ton trng, nhng s t tn khi nh cho
dslk nu a gn y.
ED
Hnh 2.32: Qun l danh sch cc khi trng s dng danh sch lin kt.
PE
.P
TI
T.
Hnh 2.33: Qun l danh sch cc khi trng s dng danh sch lin kt v vector bit.
34
TI
T.
ED
U
.V
File trn a mm c sao lu bng cch chp li ton b qua mt a khc. D liu trn a
cng nh th c sao lu trn cc bng t. i vi a cng ln, vic sao lu c th tin hnh
nh sau: chia a cng lm hai phn mt phn cha d liu gc v mt phn cha bn sao. Mi
khi thc hin sao lu, phn d liu gc s c chp sang phn sao lu.
.P
PE
H iu hnh MSDOS hoc Windows (s dng h thng FAT) s qun l h thng tp tin thng
qua ba cu trc sau: Boot Sector, bng FAT, bng ROOT DIR.
+ Boot sector
35
Size(byte)
Content
Gii thch
00
JMP
03
Version
Phin bn h iu hnh
0B
SectSiz
0D
ClustSize
0E
ResSecs
s sector dnh ring trc bng FAT, tnh lun boot sector (i
vi FAT12, FAT16 =1, FAT32=20h)
10
FatCnt
11
RootSiz
13
TotSecs
15
MediaDescriptor
16
FatSize
18
TrkSecs
s sector / mt track
1A
HeadCnt
s u c
1C
HidnSec
20
BigTotSecs
24
BigFatSize
T.
ED
U
.V
Offset(hex)
TI
1D
1E
u on m boot
.P
1FF
cui on m boot
PE
Sau boot sector l bng FAT (File Allocation Table), thng c hai bng FAT an ton. Mi
mc ca FAT qun l mt khi (cluster) d liu ( khi d liu c nh s bt u t 2). Hai
mc u tin ca bng FAT cha thng tin m t loi a. Kch thc khi c lu trong boot
sector thng thng t 1 n 8 sector. C ba loi FAT l FAT 12 v FAT 16, FAT 32. FAT 12
(mi mc trong bng FAT12 c kch thc l 12 bit) c th qun l c 212 = 4096 khi, FAT 16
c th qun l 216 = 64 K khi, FAT 32 c th qun l 232 =4G khi trn mt partition. Cc gi tr
c th c trong mt entry ca bng FAT.
(0)000
Cluster cn trng
(0)002 - (F)FEF
(F)FF0 - (F)FF6
36
(F)FF7
Cluster hng
(F)FF8 - (F)FFF
Bng FAT1
Bng DIR
DATA
Kch thc
Thuc tnh
8 byte
Tn File
3 byte
Phn m rng
1 byte
Thuc tnh : A D V S - H - R
10 byte
2 byte
Gi : 5 bit cho gi, 6 bit cho pht, 5 bit cho giy (thieu 1, nn lu n v 2 giy)
2 byte
Ngy : 7 bit cho nm (t 1980), 4 bit cho thng, 5 bit cho ngy.
2 byte
.P
TI
T.
ED
Boot sector
PE
4 byte
Bng FAT2
U
.V
Bng ROOT DIR nm ngay sau FAT, v mi mc ca bng DIR l 32 byte. Khi h thng m mt
File/ th mc, MS-DOS tm tn File/th mc trong bng ROOT DIR, ly s hiu khi u cp
cho file/th mc v tm cc s hiu khi9 tip theo trong bng FAT.
37
9
FAT12
14
DIR
Cn li
DATA
1
Boot sector
S sector
Lu tr
Byte
0-7
8-10
11
12-21
22-23
U
.V
26-27
28-31
Lu
Tn Phn m ADVSHR Dnh Gi
Ngy S hiu
Kch
tr
File rng
ring
khi u thc File
Bng DIR= 14 sector = 7168 byte = 224 entry (mi entry 32 byte), 1 sector=16 entry
ED
T.
0,1,2
3,4,5
4606,4607
Lu tr
e0,e1 (s hiu a)
e2,e3
e3070, e3071
.P
- c/ghi FAT 12
TI
Bng FAT12 = 9 sector = 4608 bytes = 3072 entry (mi entry 12 bit)
Byte
(s hiu a
2A
5F
BC
PE
Gi tr
}
else //k l
38
}
}
10
11
AB
CD
EF
AB
BD
1A
U
.V
V d: gi s new_fat = 1AB, luu vao entry k=7 ->luu vao byte i=10 v i+1=11
ED
unsigned i=k*3/2;
T.
else val_fat=val_fat>>4;
return val_fat;
TI
}
- c/ghi gi, pht, giy
.P
time (2 byte)= 5 bit gi, 6 bit pht, 5 bit giy (thieu 1, nn lu n v 2 giy)
- Ghi : time=(h<<11)|(m<<5)|(s>>1)
PE
date (2 byte)= 7 bit cho nm (t 1980), 4 bit cho thng, 5 bit cho ngy.
- Ghi : y-=1980 ; date=(y<<9)|(m<<5)|d ;
S dng h thng NTFS, kch thc File ti a trong NTFS l 232 cluster. Cu trc volume ca
NTFS nh sau: partition boot sector, Master File Table, cc file h thng, vng d liu.
+ Partition boot sector: l sector khi ng ca partition (<= 16 sector) gm cc thng tin v cu
trc ca volume, cu trc ca h thng File v m ngun khi ng.
+ Master File Table (MFT): lu cc thng tin v tt c file v th mc trn volume NTFS ny
cng nh danh sch cc khi trng. MFT c t chc thnh nhiu dng, mi dng lu nhng
39
thuc tnh cho mt file hoc mt th mc trn volume. Nu kch thc file nh th ton b ni
dung ca file c lu trong dng ny.
+ Cc file h thng: c kch thc khong 1Mb bao gm:
. MFT2: bn sao ca MFT
. Log file: thng tin 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.
M t
Bao gm cc thuc tnh truy xut (ch c, c/ghi,...), nhn thi gian, ch s lin kt
U
.V
Danh sch thuc tnh s dng khi tt c thuc tnh vt qu 1 dng ca MFT
Tn File
thng tin v ngi s hu v truy cp
D liu
ED
M t an ton
dng cho th mc
Ch mc nh v
dng cho th mc
nh tn version v tn volume
Bitmap
TI
T.
Ch mc gc
.P
PE
H thng File ca UNIX thng thng c ci t trn a gm cc khi theo th t sau: khi
boot, khi c bit, I-nodes, cc khi d liu.
+ Khi boot: cha m khi ng ca h thng.
+ Khi super block : cha thng tin v ton b h thng file, bao gm:
40
tc truy xut a. Vic cp nht super block s c thc hin ngay trong RAM v sau mi
ghi xung a. Cc I-node c nh s t 1, mi I-node c di l 64 byte v m t cho mt
file duy nht, cha thuc tnh v a ch cc khi lu tr trn a ca file. Tt c file v th mc
c lu tr cc khi d liu.
TM TT
U
.V
+ Thit b nhp/xut c th phn thnh cc loi nh l thit b khi, thit b tun t, thit b khc.
c tnh ca thit b nhp/xut l tc truyn d liu, cng dng, n v truyn d liu, cch
biu din d liu, tnh trng li
+ Mi thit b nhp/xut cn c b iu khin thit b, thit b v b iu khin phi tun theo
cng chun giao tip. CPU khng th truy xut trc tip thit b nhp/xut m phi thng qua b
iu khin thit b, mi b iu khin c mt s thanh ghi lin lc vi CPU
ED
+ Cc chng trnh thc hin nhp/xut gm c chng trnh nhp/xut ca ngi dng, chng
trnh nhp/xut c lp thit b, chng trnh iu khin thit b.
T.
+ H thng qun l nhp/xut c t chc thnh 5 lp: chng trnh nhp/xut ca ngi dng,
chng trnh nhp/xut c lp thit b, chng trnh iu khin thit b, chng trnh kim sot
ngt, phn cng. Mi lp c chc nng ring v c th giao tip vi lp khc.
.P
TI
+ C ch nhp/xut: b x l pht sinh mt lnh I/O n cc thit b I/O, sau ch cho n khi
thao tc I/O hon tt ri mi tip tc x l, hoc b x l pht sinh mt lnh I/O n cc thit b
I/O, sau tip tc vic x l cho ti khi nhn c mt ngt t thit b I/O bo l hon tt
nhp/xut, b x l tm ngng vic x l hin ti chuyn qua x l ngt, hoc s dng c ch
DMA
+ C ch DMA: b iu khin thng c cung cp thm kh nng truy xut b nh trc tip
(DMA). Ngha l sau khi b iu khin c ton b d liu t thit b vo buffer ca n, b
iu khin t chuyn d liu vo trong b nh chnh.
PE
41
U
.V
+ H iu hnh c th chia a cng thnh nhiu phn vng hoc tp hp nhiu a cng thnh
mt phn vng. Mi phn vng s c cu trc th mc ring qun l cc tp tin trong phn
vng .
ED
T.
.P
TI
+ ci t h thng qun l file theo phng php cp pht khi nh cho file l lin tc, ch cn
dng bng th mc, mi mc trong bng th mc ngoi nhng thuc tnh thng thng ca file,
cn c thm thng tin v s hiu khi bt u (start) v s khi cp cho file (length).
PE
+ ci t h thng qun l file theo phng php cp pht khi nh cho file l khng lin tc,
s dng bng th mc v s dng thm mt trong cc cu trc sau: danh sch lin kt/bng ch
mc/bng cp pht file/cu trc I-Nodes. - Cu trc danh sch lin kt: mi mc trong bng th
mc cha s hiu ca khi u tin v s hiu ca khi kt thc , mi khi trn a dnh mt s
byte u lu s hiu khi k tip ca file, phn cn li ca khi s lu d liu ca file. - Bng
ch mc: mi file c mt bng ch mc chim mt hoc vi khi, bng ch mc cha tt c cc s
hiu khi ca mt file. Mt mc trong bng th mc s lu s hiu khi cha bng ch mc ca
file. - Bng cp pht file: nu mi mc trong bng th mc ch cha s hiu ca khi u tin, th
s hiu cc khi cn li ca file s c lu trong mt bng gi l bng cp pht file. - Cu trc Inode: mi file c qun l bng mt cu trc gi l cu trc I-node, mi I-node gm hai phn:
phn th nht lu tr thuc tnh file, phn th hai gm 13 phn t: 10 phn t u cha 10 s hiu
khi u tin ca file, phn t th 11 cha s hiu khi cha bng single, phn t th 12 cha s
hiu khi cha bng double, phn t th 13 cha s hiu khi cha bng triple. Trong mi
phn t ca bng triple cha s hiu khi cha bng double, mi phn t ca bng double cha s
hiu khi cha bng single v mi phn t ca bng single cha s hiu khi d liu tip theo cp
cho file.
+ qun l cc khi trng phng php thng dng l danh sch lin kt hoc vector bit.
42
Danh sch lin kt: mi nt l mt khi cha mt bng gm cc s hiu khi trng, phn t cui
ca bng lu s hiu khi tip theo trong danh sch. Vector bit: Bit th i = 1 l khi th i trng, =
0 l s dng. Vector bit c lu trn mt hoc nhiu khi a, khi cn s c vo b nh
x l nhanh.
+ Qun l khi b hng c th dng phn mm: dng mt file cha cc danh sch cc khi hng.
Hoc dng phn cng: dng mt sector trn a lu gi danh sch cc khi b hng.
ED
U
.V
CU HI V BI TP
T.
TI
.P
12. Nu l do ti sao cn phn chia a cng thnh nhng phn vng (partiton). Thng tin v cc
phn vng c qun l, lu tr nh th no? Trn h iu hnh MS-DOS hoc windows, mi
phn vng c cn mt bng th mc ring khng? ti sao?
PE
255
255
64
112
255
255
143
255
255
255
43
22. 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
240
255
247
255
255
Cho bit gi tr ca tng phn t trong FAT (di dng s thp phn)
U
.V
23. Chp 1 File 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 .
24. 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 File (hoc th mc). Mt cluster = 2 sector. a s dng Fat 12. Hi mun
truy xut cluster 10 th phi c nhng sector no ?
255
255
79
LT DOC 7
255
159
10
240
255
255
127
255
THO DAT 8
TI
VD TXT 3
247
T.
240
ED
25. Hin trng ca FAT12 v RDET (mi entry ch gm tn File v cluster u tin)ca mt a
nh sau :
.P
Cho bit hin trng ca FAT12 v RDET sau khi xo File vd.txt v chp vo File bt.cpp c kch
thc 1025 bytes ( gi s 1 cluster = 1 sector)
26. Mt File 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.
PE
44
[3]. Andrew S. Tanenbaum. Modern Operating Systems. Prentice-Hall International, Inc. Second
Edition, 2001.
[4]. Abraham Silberschatz & Peter Baer Galvin. Operating System concepts. John Wiley & Sons,
Inc. Fifth Edition, 1999.
[5]. H. M. Deitel. Operating Systems. Addison-Wesley Inc. Second Edition, 1999.
[6] Cm nang lp trnh h thng cho my vi tnh IBM-PC tp 1 v 2, tc gi Michael Tischer.
PE
.P
TI
T.
ED
U
.V
[7]. Trn Hnh Nhi & L Khc Nhin n & Hong Kim. Gio trnh h iu hnh (tp 1 & 2).
HKHTN 2000.
45
CHNG 3
U
.V
T.
ED
Tin trnh l mt chng trnh ang x l, mi tin trnh c mt khng gian a ch, mt con tr
lnh, mt tp cc thanh ghi v stack ring. Tin trnh c th cn n mt s ti nguyn nh CPU,
b nh chnh, cc tp tin v thit b nhp/xut. H iu hnh s dng b iu phi (scheduler)
quyt nh thi im cn dng hot ng ca tin trnh ang x l v la chn tin trnh tip theo
cn thc hin. Trong h thng c nhng tin trnh ca h iu hnh v tin trnh ca ngi dng.
* Mc ch cho nhiu tin trnh hot ng ng thi:
TI
CPU
.P
Phn ln cc tin trnh 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 :
IO
CPU
IO
CPU
PE
Nu ch c 1 tin trnh duy nht trong h thng, th vo cc chu k IO ca tin trnh, CPU s hon
ton nhn ri. tng tng cng s lng tin trnh trong h thng l tn dng CPU: nu tin
trnh 1 x l IO, th h iu hnh c th s dng CPU thc hin tin trnh 2...
Tin trnh 1:
CPU
IO
CPU
IO
CPU
CPU
IO
CPU
IO
Tin trnh 2:
b/ Tng mc a nhim
Cho mi tin trnh thc thi lun phin trong mt thi gian rt ngn, to cm gic l h thng c
nhiu tin trnh thc thi ng thi.
46
U
.V
Hnh 3.1: a) A,B,C,D thc thi tun t ch cn s dng mt con tr lnh. b) A,B,C,D thc thi ng
thi bng cch chia x CPU v s dng bn con tr lnh.
c/ Tng tc x l:
ED
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.
T.
TI
Mt tin trnh c th to nhiu tiu trnh, mi tiu trnh thc hin mt chc nng no v thc
thi ng thi cng bng cch chia s CPU. Cc tiu trnh trong cng mt tin trnh dng chung
khng gian a ch tin trnh nhng c con tr lnh, tp cc thanh ghi v stack ring. Mt tiu
trnh cng c th to lp cc tin trnh con, v nhn cc trng thi khc nhau nh mt tin trnh.
.P
PE
Cc tin trnh ch c th lin lc vi nhau thng qua cc c ch do h iu hnh cung cp. Cc tiu
trnh lin lc vi nhau d dng thng qua cc bin ton cc ca tin trnh. Cc tiu trnh c th do
h iu hnh qun l hoc h iu hnh v tin trnh cng phi hp qun l.
Hnh 3.2: a) ba tin trnh thc thi ng thi, mi tin trnh ch c mt tiu trnh. b) mt tin trnh
c ba tiu trnh, vic hot ng ng thi ca cc tiu trnh l do tin trnh qun l.
47
N
U
.V
TI
T.
ED
.P
Hnh 3.4: web server c hai thread: worker thread v dispatcher thread, vic hot ng ng thi
ca cc tiu trnh l do tin trnh qun l.
PE
48
Khng gian a ch
B m chng trnh
Cc bin ton cc
Cc thanh ghi
Cc tp tin m
Ngn xp
Trng thi
Cc cnh bo
Cc tn hiu v cc b x l tn hiu
U
.V
.P
TI
T.
ED
PE
Hnh 3.7: tin trnh chu trch nhim iu phi cc tiu trnh thuc tin trnh
c/ Ci t trong Kernel-space v User-space: Mt s thread mc User c ci t bng mt
thread mc kernel.
49
U
.V
.P
TI
T.
ED
PE
50
End
1
3
Running
2
ED
Ready
U
.V
T.
Blocked
TI
.P
PE
- Cung 3: Khi tin trnh kt thc vic thc hin, khi tin trnh t trng thi Running c
chuyn sang trng thi End.
- Cung 6: Khi ti nguyn m tin trnh yu cu tr nn sn sng cp pht ; hay s kin hoc
thao tc nhp/xut m tin trnh ang i hon tt, khi b tin trnh c chuyn t trng
thi Blocked sang trng thi Ready.
51
H iu hnh qun l cc tin trnh thng qua bng tin trnh (process table), mi mc trong bng
gi l PCB (khi qun l tin trnh), PCB lu thng tin v mt tin trnh gm c cc thng tin sau:
a/ nh danh tin trnh: m s tin trnh, gip phn bit tin trnh ny vi tin trnh khc
U
.V
c/ Ng cnh tin trnh: m t cc ti nguyn tin trnh ang s dng, dng phc v cho hot
ng hin ti, hoc lm c s phc hi hot ng cho tin trnh. Ng cnh tin trnh bao gm
cc thng tin sau:
ED
- Trng thi CPU: bao gm ni dung cc thanh ghi, quan trng nht l con tr lnh IP lu tr a
ch lnh k tip m tin trnh s thc hin. 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.
- S hiu b x l: xc nh s hiu CPU m tin trnh ang s dng.
- B nh chnh: danh sch cc khi nh c cp cho tin trnh.
T.
- Ti nguyn s dng: danh sch cc ti nguyn h thng m tin trnh ang s dng.
- Ti nguyn to lp: danh sch cc ti nguyn c tin trnh to lp.
TI
d/ Thng tin giao tip: phn nh cc thng tin v quan h ca tin trnh vi cc tin trnh khc
trong h thng gm c cc thng tin sau:
.P
PE
e/ Thng tin thng k: 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.
52
C th lit k thng tin trong PCB theo chc nng qun l nh sau:
Qun l b nh
Con tr ti on vn bn
Con tr ti on d liu
Con tr ti on stack
U
.V
Qun l tp tin
Th mc gc
Th mc lm vic
Cc m t tp tin
ID ngi dng
ID nhm
ED
Hnh 3.13: thng tin trong khi PCB c lit k theo chc nng qun l
T.
PE
.P
TI
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 (trong Windows khng c khi
nim cy tin trnh, mi tin trnh l ngang cp). 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 tin trnh cha to tin trnh con, tin trnh cha c th
x l theo mt trong hai kh nng sau: tin trnh cha tip tc x l ng hnh vi tin trnh con,
hoc tin trnh cha ch n khi mt tin trnh con no , hoc tt c cc tin trnh con kt thc x
l. V d: tin trnh A to hai tin trnh con B v C, B to ba tin trnh con D, E, F.
53
U
.V
Mt tin trnh kt thc x l khi n hon tt lnh cui cng v s dng mt li gi h thng
yu cu h iu hnh hy b n. Mt tin trnh c th yu cu h iu hnh kt thc x l ca mt
tin trnh khc.
ED
+ Khi mt tin trnh kt thc h iu hnh cn thc hin cc cng vic sau:
- Thu hi cc ti nguyn cp pht cho tin trnh
.P
TI
T.
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. Tin trnh c th t kt thc bnh thng (Normal exit ) do thc thi
xong hoc c li v t kt thc (Error exit) hoc c li nng v b h iu hnh kt thc (Fatal
exit) hoc b kt thc bi tin trnh khc (Killed by another process ).
c/ Tm dng tin trnh (suspend)
PE
b/ Trng thi ti nguyn: 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.
c/ Hng i trn ti nguyn: danh sch cc tin trnh ang ch c cp pht ti nguyn tng
ng.
54
ngha
nh danh ti nguyn
rid
Hng i
B cp pht
U
.V
RCB
ED
T.
- Ti u ha s s dng ti nguyn.
.P
TI
H iu hnh iu phi tin trnh thng qua b iu phi (scheduler) v b phn phi (dispatcher).
B iu phi s dng mt gii thut thch hp la chn tin trnh c x l tip theo. B phn
phi chu trch nhim cp nht ng cnh ca tin trnh b tm ngng v trao CPU cho tin trnh
c chn bi b iu phi tin trnh thc thi.
PE
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.
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.
Thng h iu hnh kh th tha mn tt c cc mc tiu k trn m ch c th dung ha.
vic iu phi c hiu qa, h iu hnh cn quan tm n c tnh ca tin trnh.
55
Tin trnh khi thc thi, ch yu thc hin thao tc nhp xut, rt t lnh x l. Tin trnh c
khuynh hng khng s dng CPU n ht thi gian dnh cho n. 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( CPU-boundedness):
Tin trnh khi thc thi, ch yu thc hin thao tc x l, rt t thao tc nhp/xut. Tin trnh 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.
U
.V
ED
T.
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 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
TI
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.
.P
Khi thc hin iu phi, cn quyt nh thi im chuyn i CPU gia cc tin trnh, h iu
hnh c th da vo cc nguyn l sau:
PE
Tin trnh khi nhn c CPU s c c chim CPU n khi hon tt x l hoc t nguyn gii
phng CPU. Cc gii thut c quyn thng n gin v d ci t nhng khng thch hp vi
cc h thng nhiu ngi dng, v nu cho php mt tin trnh c quyn x l bao lu ty , 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 c quyn cng 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.
3.2.3.2 iu phi khng c quyn (nopreemptive):
Khi mt tin trnh nhn c CPU, n vn c s dng CPU n khi hon tt hoc t nguyn
gii phng CPU, nhng nu xut hin mt tin trnh khc c u tin cao hn th h iu hnh
s cho tin trnh c u tin cao hn dnh quyn s dng CPU ca tin trnh ban u.
Cc thut ton iu phi khng c quyn trnh 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.
56
i vi cc h thng tng tc, cc h thi gian thc (real time), cn iu phi khng c quyn
cc tin trnh quan trng c c hi hi p kp thi. Tuy nhin thc hin iu phi 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. Vn t ra cho h iu hnh l thi im no
cn thc hin iu phi.
+ Thi im thc hin iu phi
H iu hnh thc hin vic iu phi tin trnh khi c mt trong cc tnh hung sau:
a/ Tin trnh chuyn t trng thi running sang trng thi blocked: v d ch mt thao tc nhp
xut hay ch mt tin trnh con kt thc
b/ Tin trnh chuyn t trng thi running sang trng thi ready: v d xy ra mt ngt.
U
.V
c/ Tin trnh chuyn t trng thi blocked sang trng thi ready: v d mt thao tc nhp/xut hon
tt.
d/ Tin trnh kt thc.
ED
e/ Tin trnh c u tin cao hn xut hin: ch p dng i vi iu phi khng c quyn
T.
thc hin iu phi, h iu hnh s dng ba loi danh sch l: danh sch tc v (job list),
danh sch sn sng (ready list), danh sch ch i (waiting list).
.P
TI
Khi mt tin trnh c to, PCB ca tin trnh s c chn vo danh sch tc v (job list). Khi
b nh ch, mt tin trnh trong danh sch tc v c chn, np t a vo b nh v PCB
ca tin trnh c chuyn sang danh sch sn sng (ready list). 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 thi hnh,
v s chuyn sang danh sch ch i (waiting list) khi xy ra cc s kin v d nh i mt thao
tc nhp/xut hon tt hoc yu cu ti nguyn m cha c tha mn hoc c yu cu tm
dng ...
Tin trnh ang thi hnh 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.
PE
Hnh 3.15: Mi ti nguyn c mt hng i lu danh sch cc tin trnh ang i ti nguyn.
57
ds sn sng
I/O
CPU
Yu cu
ti nguyn
ds i ti nguyn
Ngt xy ra
Ht
thi gian
i 1 ngt
U
.V
TI
T.
ED
PE
.P
CPU c cp pht cho tin trnh u tin trong danh sch sn sng, tin trnh ny l tin trnh
c a vo h thng sm nht. y l thut ton iu phi theo nguyn tc c quyn.
58
P1
24
P2
P3
24 27
U
.V
P1 P2 P3
30
Thi gian ch i c x l l 0 i vi P1, (24 -1) vi P2 v (27-2) vi P3. Thi gian ch trung
bnh l ( 0+23+25)/3 = 16 miliseconds.
ED
Nhn xt:
- C th mt tin trnh c thi gian x l ngn phi ch mt tin trnh c thi gian x l di thc
thi xong.
T.
- Thi gian ch trung bnh ph thuc vo th t ca cc tin trnh trong danh sch sn sng.
b/ Thut ton phn phi xoay vng (Round Robin)
PE
.P
TI
B iu phi ln lt cp pht cho mi tin trnh trong danh sch RL mt khong thi gian s
dng CPU gi l quantum. 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
(blocked) 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. y l mt gii thut iu phi khng c quyn
24
P2
P3
59
10 14 18 22 26
30
- Nu c n tin trnh trong danh sch sn sng v s dng quantum q, th mi tin trnh s khng
phi i qu (n-1)q n v thi gian trc khi nhn c CPU cho lt k tip.
U
.V
- Nu thi lng quantum qu b s pht sinh 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 gim kh nng
tng tc ca h thng.
c/ Thut ton u tin
ED
Mi tin trnh c gn cho mt u tin, tin trnh c u tin cao nht s c chn cp
pht CPU u tin. u tin c th c nh ngha nh vo cc yu t bn trong hay bn
ngoi. Yu t bn trong nh l gii hn thi gian, nhu cu b nhYu t bn ngoi nh l tm
quan trng ca tin trnh, loi ngi s dng s hu tin trnh
T.
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.
.P
TI
Gii thut khng c quyn s thu hi CPU t tin trnh hin hnh cp pht cho tin trnh mi
nu u tin ca tin trnh mi cao hn tin trnh hin hnh. Gii thut c quyn s ch n
gin chn tin trnh mi vo danh sch sn sng theo th t u tin, v tin trnh hin hnh vn
tip tc x l ht thi gian dnh cho n.
V d : gi s u tin 1 > u tin 2> u tin 3
PE
P1
24
P3
P2
24 27
30
60
30
U
.V
- 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 (khong 100ms). 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.
ED
TI
T.
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 cn yu
cu (p = 1/t), vi qui c p ln th u tin ln. Khi CPU ri, n s c cp pht cho tin trnh
yu cu thi gian x l cn li t nht kt thc- tin trnh ngn nht. Gii thut ny cng c th
c quyn hay khng c quyn. S iu phi 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 hin c trong RL c th yu cu
thi gian s dng CPU (CPU-burst) ngn hn thi gian cn li m tin trnh hin hnh cn x l.
Khi 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.
.P
V d :
P3
P4
PE
P2
12
20
61
12
20
Gii thut ny cho php t c thi gian ch trung bnh cc tiu. Kh khn thc s ca gii
thut SJF l thng khng th bit c thi gian yu cu x l cn li ca tin trnh.
U
.V
TI
T.
ED
Danh sch sn sng c chia thnh nhiu danh sch, mi danh sch gm cc tin trnh c cng
u tin v c p dng mt gii thut iu phi ring. Ngoi ra, cn c mt gii thut iu
phi gia cc danh sch, thng gii thut ny l gii thut khng c quyn v s dng u
tin c nh. Mt tin trnh thuc v mt danh sch no ch c cp pht CPU khi cc danh
sch c cp u tin cao hn trng.
Nhn xt:
.P
PE
- 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 (Multilevel
Feedback). 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 mt khong thi gian no . Cng vy, mt tin trnh ch qu
lu trong cc danh sch c u tin thp cng c chuyn dn ln cc danh sch c u tin
cao hn.
- Khi xy dng gii thut iu phi nhiu cp u tin v xoay vng cn quan tm cc vn sau :
- 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 v
phng php xc nh thi im di chuyn mt tin trnh xung danh sch c u tin thp hn.
- Phng php xc nh mt tin trnh mi c a vo h thng s thuc danh sch c tin
no.
62
U
.V
Pht mt v s cho mi tin trnh khi vo h thng. Khi n thi im ra quyt nh iu phi, s
chn 1 v trng gii, tin trnh no s hu v ny s c nhn CPU. y l gii thut c
quyn.
ED
Nhn xt: Gii thut Lottery n gin chi ph thp, bo m tnh cng bng cho cc tin trnh.
TI
T.
Mt tin trnh khng b nh hng bi mt tin trnh khc gi l tin trnh c lp, ngc li gi
l tin trnh hp tc (cooperating process). L do cc tin trnh hp tc, lin lc vi nhau l
chia s thng tin nh dng chung file, b nh, hoc hp tc hon thnh cng vic. H iu hnh
cn cung cp c ch cc tin trnh lin lc vi nhau, v thng thng c cc c ch lin lc sau:
.P
SIGINT
SIGILL
Tin trnh x l mt ch th bt hp l
SIGKILL
SIGFPT
Li chia cho 0
SIGSEGV
SIGCLD
PE
Tn hiu
63
+ Tn hiu c gi i bi:
- Phn cng: V d li do cc php tnh s hc
- H iu hnh: V d mt tin trnh no truy xut n mt a ch bt hp l.
- Tin trnh: V d tin trnh cha yu cu mt tin trnh con kt thc
- Ngi s dng: V d NSD nhn phm Ctl-C ngt x l ca tin trnh.
+ Khi tin trnh nhn tn hiu, n c th x l theo mt trong cc cch sau:
U
.V
- B qua tn hiu.
PE
.P
TI
T.
ED
ghi s byte cn c (nbytes) vo thanh ghi; ghi a ch vng nh cha d liu (buffer) vo thanh
ghi; ghi s hiu a vo thanh ghi (fd=0 l a mm,); gi hm h thng read;
64
pid = fork()
exit(status)
Hm
Qun tr tp tin
ngha
fd = open(file, how, )
s = close(fd)
ng 1 file ang m
s = stat(name, &buf)
ngha
T.
Hm
s = mkdir(name, mode)
To th mc mi
s = unlink(name)
Xa mt th mc rng
To mt mc mi gi l name2, ch ti name1.
TI
s = rmdir(name)
s = link(name1, name2)
ED
U
.V
Hm
Xa mt mc
s = unmount(special)
ng h thng tp tin
.P
Hm
Cc hm khc
ngha
i th mc lm vic
s = chmod(name, mode)
i cc bit bo v ca 1 file
s = kill(pid, signal)
seconds = time(&seconds)
PE
s = chdir(dirname)
65
H iu hnh cn cung cp cc hm (li gi h thng) read/write cho cc tin trnh thc hin thao
tc c/ghi d liu trong pipe.
- Tin trnh c pipe s b kha nu pipe trng, v i n khi pipe c d liu mi c truy xut.
Nhn xt:
U
.V
- Tin trnh ghi pipe s b kha nu pipe y, v i n khi pipe c ch trng cha d liu.
Mt tin trnh kt ni vi mt pipe ch c th thc hin mt trong hai thao tc c hoc ghi.
ED
Pipe ch lin lc gia hai tin trnh c quan h cha-con, v trn cng mt my tnh.
.P
TI
T.
Nhiu tin trnh cng c th truy xut n mt vng nh dng chung, d liu m cc tin trnh
mun gi cho nhau, ch cn t vo vng nh ny. Vng nh chia s c lp vi cc tin trnh, khi
mt tin trnh no mun truy xut n vng nh dng chung, tin trnh phi gn kt vng nh
chung vo khng gian a ch ring ca tin trnh, v thao tc trn vng nh chung ging nh
vng nh ca tin trnh.
PE
- Vng nh chia s l phng php nhanh nht trao i d liu gia cc tin trnh.
- Vng nh chia s cn c bo v bng nhng c ch ng b ha.
Hai tin trnh mun lin lc vi nhau, cn thit lp mt mi lin kt gia hai tin trnh, sau s
dng cc hm send, receive do h iu hnh cung cp trao i thng ip. Khi s lin lc chm
dt mi lin kt gia hai tin trnh s b hy.
66
U
.V
Tnh cht: Mt lin kt c thit lp gia hai tin trnh nu v ch nu chng dng chung port.
Mt lin kt c th phc v nhiu tin trnh.
ED
Tnh cht: Mt lin kt duy nht, hai chiu c thit lp t ng gia hai tin trnh P,Q v lin
kt ny ch dng cho P v Q.
V d: Bi ton nh sn xut - ngi tiu th (producer-consumer)
void nsx()
{
while(1)
{
to_sp();
T.
Hai tin trnh nsx, ntt thc thi ng thi. Nsx sn xut mt sn phm, ntt tiu th sn phm ,
nu cha c sn phm th ntt ch.
TI
while(1)
.P
PE
tiu_th(sp);
Nhn xt:
Cc tin trnh c th trao i d liu dng c cu trc. Lin kt trc tip nh trn cn gi l lin
kt trc tip i xng (symmetric), ta c th c lin kt trc tip khng i xng (asymmetric)
nh sau:
- Send(P, message) : gi mt thng ip n tin trnh P
- Receive(id,message): nhn mt thng ip t tin trnh bt k c m s id.
67
chnh l s trao i d liu gia hai tin trnh. 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 v trong mi trng phn tn.
* C hai cch lin lc qua socket:
a/ Lin lc kiu th tn (socket ng vai tr bu cc):
Hai tin trnh khng cn kt ni, tin trnh gi ghi d liu vo socket ca mnh, d liu s c
chuyn cho socket ca tin trnh nhn, tin trnh nhn s nhn d liu bng cch c d liu
t socket ca tin trnh nhn. D liu c gi theo tng gi c cha thng tin IP ca my nhn
v port ca tin trnh nhn (port dng phn bit cc tin trnh trn cng mt my)
U
.V
Nhn xt:
ED
. Mt tin trnh sau khi to mt socket c th s dng n lin lc vi nhiu tin trnh khc
nhau.
T.
Hai tin trnh cn kt ni trc khi truyn/nhn d liu v kt ni c duy tr sut qu trnh
truyn nhn d liu.
TI
Nhn xt:
.P
3.4.1. Yu cu ng b
PE
68
U
.V
ED
T.
gi l mt min gng.
PE
.P
TI
V d hai tin trnh chy trn hai b x l, cng ghi d liu vo mt hng i dng chung, s xy
ra li trong trng hp sau: tin trnh A thm d liu vo hng i ti v tr tail (tail l v tr ct d
liu) nhng cha kp tng tail th ht quantum v n lt tin trnh B x l, tin trnh B thm d
liu ti v tr tail v nh vy s ghi chng ln d liu do tin trnh A va ghi, li xy ra!
69
U
.V
Hnh 3.27: Khi A trong min gng th nu B mun vo min gng , B s b kho ch A ra khi
min gng, B mi c vo min gng.
ED
T.
.P
TI
C 5 nhm gii php gii quyt bi ton ng b l: Busy Waiting, Sleep And Wakeup,
Semaphore, Monitor, Message.
3.4.3.1 Nhm gii php Busy Waiting (bn th i)
Nhm gii php Busy Waiting li chia thnh hai loi: cc gii php s dng phn mm v cc
gii php s dng phn cng.
PE
Vic ng b l do chng trnh thc hin, gii php ny l kh v lp trnh vin khng lng
trc c mi tnh hung c th xy ra. Thc vy, chng ta th xt mt s thut ton ng b sai
sau y:
a) Thut ton 1: S dng bin c hiu, thut ton mong i dng cho nhiu tin trnh nhng vn
cn trng hp sai. tng nh sau:
Cc tin trnh dng chung bin c hiu lock , vi ngha lock=0 l khng c tin trnh trong min
gng, lock=1 l c mt tin trnh trong min gng. lock c gn tr ban u l 0. Mt tin trnh
mun vo min gng trc tin 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 c gi tr 1, tin trnh phi ch bn ngoi
min gng cho n khi lock c gi tr 0.
70
U
.V
T.
ED
Nhn xt: Gii php ny vn c th vi phm iu kin th nht l hai tin trnh c th cng
trong min gng ti mt thi im. Thc vy, 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 t li lock = 1 v vo min
gng. Sau tin trnh th nht c ti kch hot, n gn lock = 1 ri va min gng. Nh vy
ti thi im c hai tin trnh u trong min gng.
b) Thut ton 2: S dng bin lun phin, thut ton dng cho hai tin trnh nhng vn cn
trng hp sai. tng nh sau:
TI
Hai tin trnh A, B s dng chung bin turn vi ngha sau: turn = 0, tin trnh A c vo min
gng, turn=1 th B c vo min gng. Turn c gn tr ban u l 0, tc l A c vo trc.
.P
PE
while (1)
{
while (turn == 1); // neu turn=1 thi A vao vong while de doi
// tin trnh B
while (1)
{
while (turn == 0); //neu turn=0 thi B vao vong while de doi
critical-section (); //turn=1 thi B duoc vao mien gang
71
Nhn xt: Hai tin trnh chc chn khng th vo min gng cng lc, v ti mt thi im turn
ch c mt ga tr. Nhng c th vi phm iu kin th ba l mt tin trnh c th b ngn chn vo
min gng bi mt tin trnh khc khng trong min gng. Thc vy gi s tin trnh A ang
trong phn Noncritical-section(), th B khng th vo min gng hai ln lin tip. Nh vy, gii
php ny ph thuc vo tc thc hin ca hai tin trnh, n vi phm c iu kin th hai.
U
.V
c) Thut ton Peterson: y l gii php ng v dng cho hai tin trnh P0 v P1. tng nh
sau:
Hai tin trnh dng chung hai bin turn v flag[2] (kiu int). Gn tr ban u flag [0]=flag
[1]=FALSE v gi tr ca turn c khi ng l 0 hay 1. Nu flag [i] = TRUE (i=0,1) c ngha
l tin trnh Pi mun vo min gng v turn=i l n lt Pi.
T.
ED
c th vo c min gng, trc tin tin trnh Pi t gi tr flag [i]=TRUE thng bo rng
tin trnh Pi mun vo min gng, sau t turn=j th ngh tin trnh Pj vo min gng.
Nu tin trnh Pj khng quan tm n vic vo min gng ngha l flag [j] = FALSE, th Pi c th
vo min gng, nu flag [j]=TRUE th Pi phi ch n khi flag [j]=FALSE. Khi tin trnh Pi ri
khi min gng, n t li gi tr cho flag [i] l FALSE.
// tin trnh P0 (i=0)
TI
while (TRUE)
{
.P
critical_section();
PE
noncritical_section ();
72
Nhn xt: Nu c hai tin trnh u mun vo min gng th flag [0] = flag [1] =TRUE nhng gi
tr ca turn ti mt thi im ch c th hoc l 0 hoc l 1, do vy ch c mt tin trnh c vo
min gng v d dng kim tra l gii php cng tha cc iu kin cn li.
Nhn xt:
+ D ci t nhng cm tt c cc ngt l nguy him .
U
.V
ED
T.
a s phn cng cung cp lnh TSL cho php kim tra v cp nht mt vng nh trong mt thao
tc c quyn. Nu c hai lnh TSL x l ng thi trn hai CPU khc nhau th chng s c x
l tun t. Lnh TSL c cu trc nh sau:
{
TI
.P
lock = TRUE;
PE
C th ci t gii php truy xut c quyn vi TSL bng cch s dng thm mt bin lock dng
chung 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.
boolean lock=FALSE; //bin dng chung
while (TRUE)
while (Test_And_Set_Lock(lock));
critical_section ();
lock = FALSE;
noncritical_section ();
}
Nhn xt: Nhm gii php busy and waiting u phi thc hin mt vng lp kim tra xem
c c vo min gng hay khng nn tin trnh ang ch vn chim dng CPU. Do cn trnh
cc gii php busy waiting nu c th.
73
U
.V
Vic s dng hai lnh SLEEP V WAKEUP thc khng n gin, rt d b li. Thc vy, ta xt
mt chng trnh gii quyt bi ton min gng nh sau:
int busy=FALSE; // TRUE l c tin trnh trong min gng, FALSE l khng c tin trnh trong
min gng.
int blocked=0; // m s lng tin trnh ang b kha
{
if (busy)
{
sleep();
}
busy = TRUE;
TI
else
T.
blocked = blocked + 1;
ED
critical-section ();
.P
busy = FALSE;
if (blocked>0)
{
blocked = blocked - 1;
PE
Noncritical-section ();
Nhn xt:
- C th vi phm iu kin th 1 l c hai tin trnh trong min gng cng lc. Thc vy, gi s
tin trnh A kim tra bin busy, thy busy=FALSE, nhng cha kp gn busy=TRUE th n lt
tin trnh B. B thy busy=FALSE, B gn busy=TRUE v vo min gng. Trong khi B cha ra
khi min gng th n lt A, A gn busy=TRUE v vo min gng!
- C th vi phm iu kin th ba l mt tin trnh c th b ngn chn vo min gng bi mt tin
trnh khc khng trong min gng. V d 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
74
U
.V
Li ny xy ra do vic kim tra bin busy v vic gi SLEEP l nhng hnh ng tch bit, c th
b ngt gia chng trong qu trnh x l. trnh nhng tnh hung tng t, h iu hnh cung
cp nhng c ch ng b ha nh Semaphore, Monitor da trn tng ca chin lc SLEEP
and WAKEUP nhng vic kim tra iu kin vo min gng v vic ch xy dng thnh mt
hnh ng c quyn, gip vic gii quyt bi ton min gng an ton, hiu qa hn.
b) S dng cu trc Semaphore:
ED
- Mt gi tr nguyn dng e
Down(s): e=e-1. Nu e < 0 th tin trnh phi ch trong f, ngc li tin trnh tip tc.
T.
Up(s): e=e+1. Nu e<=0 th chn mt tin trnh trong f cho tip tc thc hin (nh thc).
Gi P l tin trnh thc hin thao tc Down(s) hay Up(s):
{
e = e - 1;
if (e < 0)
.P
TI
Down(s)
enter(P,f);
PE
Up(s)
//cho P vo hng i f
e = e + 1;
if (e<= 0 )
{
75
Nhn xt:
- H iu hnh cn ci t cc thao tc Down, Up l c quyn. ci t s c quyn c th
dng k thut cm ngt (1 cpu) hoc cc gii php phn mm, hoc lnh TSL (nhiu cpu). Nu
dng gii php phn mm th gii php semaphore vn l gii php "busy and waiting" nhng tch
vng lp ch ra khi chng trnh.
- Hng i c th ci t l mt con tr tr ti danh sch cc khi PCB ca cc tin trnh ang
ch trn s, khi semaphore c dng:
class semaphore
{
int e;
U
.V
ED
};
|e| = s tin trnh ang ch trn f.
C th dng semaphore gii quyt bi ton min gng hay ng b cc tin trnh.
T.
TI
.P
while (1)
Down(s);
critical-section ();
Up(s);
PE
Noncritical-section ();
V d c hai tin trnh ng hnh P1 v P2, P1 thc hin cng vic 1, P2 thc hin cng vic 2.
Gi s mun cv1 lm trc ri mi lm cv2, ta c th cho hai tin trnh dng chung mt
semaphore s, khi gn e(s)= 0:
semaphore s=0; //dng chung cho hai tin trnh
P1:
{
job1();
Up(s); //nh thc P2
}
76
P2:
{
Down(s); // ch P1 nh thc
job2();
}
U
.V
Nhn xt: Nh lnh down, up l c quyn, semaphore gii quyt c vn tn hiu "nh
thc" b tht lc. Tuy nhin s dng semaphore cng khng n gin, chng trnh d b li m
khng d on c. Ta xt mt s tnh hung gy ra li sau:
- Nu t Down v Up sai v tr hoc thiu th c th b sai. V d nu P1 Up() ln trc lnh
job1() th nu P1 thc hin trc P2, c th job1 cha thc hin xong m job2 c thc hin.
Xt v d khc
ED
e(s)=1;
while (1)
{
T.
TI
Tin trnh qun gi Up(s), v kt qu l khi ra khi min gng n s khng cho tin trnh khc vo
min gng!
- S dng semaphore c th gy ra tnh trng tc nghn. V d c hai tin trnh P1, P2 s dng
chung hai semaphore s1=s2=1
.P
P1:
{
down(s1); down(s2);
.
PE
up(s1); up(s2);
P2:
down(s2); down(s1);
.
up(s2); up(s1);
}
Nu th t thc hin nh sau: P1: down(s1), P2: down(s2) , P1: down(s2), P2: down(s1) khi
s1=s2=-1 nn P1,P2 u ch mi
- S dng semaphore c th gy ra tnh trng i CPU khi gii thut chn tin trnh ang i l
gii thut LIFO.
77
{
down(s1); //down of binary semaphore
if (c<0) down(s2); //down of binary semaphore
up(s1); //up of binary semaphore
}
up() //up of counting semaphore
ED
U
.V
c--;
T.
up(s1);
}
TI
.P
Monitor l mt cu trc c bit (lp) bao gm cc phng thc c quyn (chnh l cc criticalsection) v cc bin c tnh cht sau :
PE
+ Cc bin trong monitor ch c th c truy xut bi cc phng thc trong monitor, y chnh
l cc bin c dng chung cho cc tin trnh.
+ Ti mt thi im, ch c mt tin trnh duy nht c hot ng bn trong mt monitor.
- Wait(c): chuyn trng thi tin trnh gi sang ch (blocked) v t tin trnh ny vo hng i
trn bin iu kin c.
- Signal(c): nu c mt tin trnh ang ch trong hng i ca c, ti kch hot tin trnh v tin
trnh gi s ri khi monitor. Nu khng c tin trnh no ang ch trong hng i ca c th lnh
signal(c) b b qua.
78
Wait(c)
{
status(P)= blocked;
enter(P,f(c));
}
Signal(c)
{
{
//Ly tin trnh Q ang ch trn c
statusQ) = ready;
enter(Q,ready-list);
U
.V
exit(Q,f(c));
if (f(c) != NULL)
}
}
ED
.P
TI
T.
+ Bin kiu monitor dng chung cho cc tin trnh dng chung ti nguyn.
monitor <tn monitor > //khai bo monitor dng chung cho cc tin trnh
PE
79
Nhn xt:
- 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.
- Gii php monitor i hi ngn ng lp trnh ang s dng c kiu d liu l monitor, hin cc
ngn ng ny cha c nhiu.
- Gii php "busy and waiting" khng phi thc hin vic chuyn i ng cnh trong khi gii php
"sleep and wakeup" s tn thi gian cho vic ny.
ED
U
.V
1
2
3
4
T.
.P
monitor philosopher
TI
enum {thinking, hungry, eating} state[5];// cac bien dung chung cho cc trit gia
condition self[5];
//cac pt doc quyen (cac mien gang), viec doc quyen do nnlt ho tro.
void init();//phng thc khoi tao
PE
void test(int i); //phng thc kim tra iu kin trc khi cho trit gia th i n
void pickup(int i);
//phng thc ly a
//gn trng thi ban u cho cc trit gia l "ang suy ngh"
for (int i = 0; i < 5; i++) state[i] = thinking;
}
void test(int i)
{
80
{
self[i].signal();//nh thc tg_i, nu tg_i ang ch
state[i] = eating; //ghi nhn tg_i ang n
}
}
void pickup(int i)
{
U
.V
ED
T.
TI
Pi:
{
.P
while (1)
Noncritical-section ();
PE
Noncritical-section ();
C mt tin trnh kim sot vic s dng ti nguyn v nhiu tin trnh khc yu cu ti nguyn.
Tin trnh cn ti nguyn s gi mt thng ip yu cu ti nguyn n tin trnh kim sot, sau
t chuyn sang trng thi blocked (ch trong hng i ti nguyn). Tin trnh kim sot , khi
nhn c thng ip yu cu ti nguyn, i n khi ti nguyn sn sng th gi mt thng ip
n mt tin trnh ang i ti nguyn nh thc v cho s dng ti nguyn. Khi s dng xong
ti nguyn , tin trnh s dng ti nguyn gi mt thng ip khc n tin trnh kim sot bo
kt thc truy xut ti nguyn.
//Cu trc tin trnh yu cu ti nguyn trong gii php message
81
while (1)
{
Send(process controler, request message); //goi td yc tn va chuyen sang trang thai blocked
Receive(process controler, accept message); //nhan td chap nhan su dung tn
critical-section (); //doc quyen su dung tai nguyen dung chung
Send(process controler, end message); //goi td ket thuc su dung tn.
Noncritical-section ();
U
.V
Nhn xt: 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 khng thun li trong cc h
thng phn tn, khi m mi b x l s hu mt b nh ring bit v lin lc thng qua mng.
Trong nhng h thng phn tn, c ch trao i thng ip s n gin hn v c dng gii
quyt bi ton ng b ha.
ED
PE
.P
TI
T.
Hnh 3.30: (a) mt tnh trng tc nghn tim n; (b) mt tnh trng tc nghn thc s.
v d: Ba n ti ca cc trit gia. C 5 nh trit gia cng ngi n ti. Mi nh trit gia cn dng 2
ci a c th n. Nhng trn bn ch c tng cng 5 ci a, nu c 5 ngi u cm ci a
bn tri cng lc, th s khng c ai c c ci a bn phi c th bt u n . Tnh trng ny
gi l tnh trng tc nghn.
Ti nguyn c th l ti nguyn vt l (my in, b nh, cpu, a, ) hoc ti nguyn logic (file,
semaphore, monitor,). Ti nguyn li phn thnh hai loi: loi ti nguyn c th ly li t mt
tin trnh ang chim gi m khng nh hng n tin trnh ang chim gi v loi ti nguyn
khng th thu hi li t tin trnh ang chim gi.
82
C tin trnh chim gi cc ti nguyn trong khi li ch c cp pht thm ti nguyn b chim
gi bi tin trnh khc.
U
.V
Ti nguyn khng th c thu hi t tin trnh ang chim gi chng trc khi tin trnh ny s
dng chng xong.
+ iu kin 4: Tn ti mt chu trnh trong th cp pht ti nguyn
ED
C t nht hai tin trnh ch i ln nhau: tin trnh ny ch c cp pht ti nguyn ang b tin
trnh khc chim gi v ngc li.
.P
TI
T.
hnh trn l tin trnh, hnh vung l ti nguyn. i vi tin trnh, mi tn i ra l chim gi ti
nguyn, mi tn vo l yu cu ti nguyn. V d tin trnh A ang gi ti nguyn R, tin trnh B
yu cu ti nguyn S. Tin trnh C gi U, yu cu T, tin trnh D gi T, yu cu U. Tp hp tin
trnh {C,D} gi l tnh trng tc nghn.
PE
83
+ Hoc b qua vic x l tc nghn, xem nh h thng khng bao gi xy ra tc nghn. Thng
p dng phng php ny khi h thng rt t khi b tc nghn v chi ph kim tra tc nghn cao
(UNIX v WINDOWS s dng phng php ny)
* Ngn chn tc nghn
U
.V
ED
- Tin trnh phi yu cu tt c cc ti nguyn cn thit trc khi cho bt u x l. Phng php
ny gp kh khn l h iu hnh kh c th bit trc cc ti nguyn tin trnh cn s dng v
nhu cu ti nguyn cn ph thuc vo qu trnh tin trnh thc hin. Ngoi ra nu cho tin trnh
chim gi sn cc ti nguyn cha cn s dng ngay th vic s dng ti nguyn s km hiu qu.
T.
- 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 s gp
kh khn trong vic bo v tnh ton vn d liu ca h thng.
TI
.P
PE
Ta c th trnh tc nghn khi cp pht ti nguyn bng cch s dng gii thut cp pht ti
nguyn nh sau:
84
U
.V
ED
T.
TI
.P
- Quay li bc 1
B3. Nu Finish[i] = true vi mi i, th h thng trng thi an ton, ngc li l khng an ton.
3.5.4.2 Gii thut Banker
PE
85
Max
Allocation
Available
R2
R3
R1
R2
R3
R1
R2
R3
P1
P2
P3
P4
TI
T.
ED
R1
U
.V
.P
Need[i,j]=Max[i,j]-Allocation[i,j]
Need
Allocation
Available
R2
R3
R1
R2
R3
R1
R2
R3
P1
P2
P3
P4
PE
R1
86
Allocation
Available
R2
R3
R1
R2
R3
R1
R2
R3
P1
P2
P3
P4
U
.V
R1
ED
+ B4: Kim tra trng thi an ton ca h thng (dng gii thut xc nh trng thi an ton). Ln
lt chn tin trnh th cp pht:
- Chn P2, th cp pht, g/s P2 thc thi xong thu hi:
Available[j]= Available[j] + Allocation[i,j];
R2
R3
P1
P2
P3
P4
R1
R2
R3
.P
R1
Available
T.
Allocation
PE
R1
R2
TI
Need
R3
+ Chn P1
Need
Allocation
Available
R1
R2
R3
R1
R2
R3
R1
R2
R3
P1
P2
P3
87
P4
+ Chn P3:
Need
Allocation
Available
R2
R3
R1
R2
R3
R1
R2
R3
P1
P2
P3
P4
U
.V
Available
R2
R3
R1
R2
R3
P1
P2
P3
P4
R1
R2
R3
TI
R1
T.
Allocation
ED
+ Chn P4:
Need
R1
.P
PE
88
Tin trnh
Chim gi
Yu cu
P1
R1
R2
P2
R3, R4
R1
P3
R5
R4
P4
R2
R5
R3
P5
U
.V
P5
P5
R4
P1
P2
P3
R2
P4
R5
R1
P1
R2
R3
R4
P2
P3
ED
R3
P4
P1
P2
P3
P4
R5
T.
R1
th i ti nguyn
th th cp pht ti nguyn
theo yu cu
TI
th cp pht ti nguyn
.P
th i ti nguyn khng th p dng cho trng hp ny. Ta c th p dng gii thut sau
pht hin tc nghn (kh ging gii thut cp pht ti nguyn) :
PE
89
b/ Thu hi ti nguyn:
U
.V
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. Khi thu
hi ti nguyn 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?
ED
+ Tr li trng thi trc tc nghn (rollback): 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 cha b tc nghn.
+ Tnh trng i ti nguyn : lm sao bo m rng khng c mt tin trnh no lun lun b
thu hi ti nguyn?
T.
TM TT
TI
+ Tin trnh l mt chng trnh ang x l, mi tin trnh c mt khng gian a ch, mt con tr
lnh, mt tp cc thanh ghi v stack ring. Cc tin trnh ch c th lin lc vi nhau thng qua cc
c ch do h iu hnh cung cp.
.P
+ Mc ch cho nhiu tin trnh hot ng ng thi l tng hiu sut s dng CPU, tng mc
a nhim, tng tc x l.
+ Mt tin trnh c th to nhiu tiu trnh, mi tiu trnh thc hin mt chc nng no v thc
thi ng thi cng bng cch chia s CPU. Cc tiu trnh trong cng mt tin trnh dng chung
khng gian a ch tin trnh nhng c con tr lnh, tp cc thanh ghi v stack ring. Cc tiu trnh
lin lc vi nhau thng qua cc bin ton cc ca tin trnh.
PE
+ Tp lnh ca CPU c phn thnh tp lnh c quyn (cc lnh nu s dng khng chnh xc,
c th nh hng xu n h thng) v tp lnh khng c quyn (khng nh hng ti h thng).
Phn cng ch cho php cc lnh c quyn c thc hin trong ch c quyn. H iu hnh
hot ng trong ch c quyn, cc tin trnh ca ngi dng s hot ng trong ch khng
c quyn
+ H iu hnh qun l cc tin trnh thng qua bng tin trnh, mi mc trong bng gi l khi
qun l tin trnh lu thng tin v mt tin trnh gm c: nh danh ca tin trnh , trng thi tin
trnh, ng cnh ca tin trnh, thng tin giao tip, thng tin thng k.
+ Cc thao tc trn tin trnh: to tin trnh, kt thc tin trnh, tm dng tin trnh, ti kch hot
tin trnh, thay i u tin tin trnh.
+ Mi ti nguyn c qun l bng mt cu trc gi l khi qun l ti nguyn cha cc thng
tin sau : nh danh ti nguyn, trng thi ti nguyn, hng i trn mt ti nguyn, b cp pht.
90
+ Mt s c tnh ca tin trnh: tnh hng nhp/xut, tnh hng x l, tin trnh tng tc hay
x l theo l, u tin ca tin trnh, thi gian s dng CPU ca tin trnh, thi gian cn li
tin trnh cn hon tt.
+ Tin trnh c iu phi thng qua b iu phi v b phn phi. B iu phi s dng mt
gii thut thch hp la chn tin trnh c x l tip theo. B phn phi chu trch nhim cp
nht ng cnh ca tin trnh b tm ngng v trao CPU cho tin trnh c chn bi b iu phi
tin trnh thc thi.
+ Mc tiu ca b iu phi: s cng bng, tnh hiu qa, thi gian p ng hp l, thi gian lu
li trong h thng, thng lng ti a. Cc nguyn l iu phi: iu phi c quyn, iu phi
khng c quyn.
U
.V
+ Thi im thc hin iu phi: tin trnh chuyn t trng thi running sang trng thi blocked,
hoc tin trnh chuyn t trng thi running sang trng thi ready, hoc tin trnh chuyn t trng
thi blocked sang trng thi ready, hoc tin trnh kt thc, hoc tin trnh c u tin cao hn
xut hin.
ED
+ thc hin iu phi, h iu hnh s dng ba loi danh sch l: danh sch tc v , danh sch
sn sng, danh sch ch i. Cc thut ton iu phi: FIFO, Round Robin, u tin, SJF, nhiu
mc u tin,iu phi x s.
+ C ch lin lc gia cc tin trnh: lin lc bng tn hiu, lin lc bng ng ng, lin lc qua
vng nh chia s, lin lc bng thng ip, lin lc qua socket.
T.
+ ng b cc tin trnh, min gng. Cc gii php ng b: semaphore, monitor, trao i thng
ip.
TI
+ Tnh trng tc nghn, iu kin xut hin tc nghn, cc phng php x l tc nghn. Gii
thut cp pht ti nguyn.
.P
CU HI V BI TP
1. Xt gii php phn mm do Dekker ngh t chc truy xut c quyn cho hai tin trnh.
Hai tin trnh P0, P1 chia s cc bin sau :
int turn; // n phin i hay j (i,j=0..1)
PE
flag[i] = TRUE;
while (flag[j])
if (turn == j)
{
flag[i]=
while
flag[i]= TRUE;
(turn
==
j)
FALSE;
;
91
critical_section();
turn= j; flag[i]= FALSE;
non_critical_section();
}
Gii php ny c tha mn 4 yu cu ca bi ton min gng khng ?
2. 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;
ED
Noncritical-section ();
U
.V
T.
.P
int temp=a;
TI
a= b; b= temp;
}
PE
S dng lnh ny c th t chc truy xut c quyn khng ? Nu c xy dng cu trc chng
trnh tng ng.
4. Trong gii php peterson b bin turn c c khng?
92
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 .
8. Tng qut ho bai 6: 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 ;}
w = x1 * x2
(1)
v = x3 * x4
(2)
y = v * x5
y=w*y
(5)
z=w*z
(6)
ans = y + z
(x1,x2,x3,x4,x5,x6 l cc hng s)
process B
(4)
(7)
TI
z = v * x6
T.
process A
{ while (1) na = na +1;}
(3)
ED
U
.V
a) ng b ho x l ca hai tin trnh trn, sao cho ti bt k thi im no cng c nb < na <=
nb +10
.P
PE
Hai tin trnh cng chia s mt b m c kch thc gii hn. Mt tin trnh to d liu, t d
liu vo b m (ngi sn xut) v mt tin trnh ly d liu t b m x l (ngi tiu
th).
93
U
.V
ED
}
MakeO()
{
while (true)
T.
TI
.P
while (True)
PE
#define LEFT
(i-1)%N
#define RIGHT
(i+1)%N
#define THINKING
#define HUNGRY
#define EATING
#define N
int
state[N];
semaphore
mutex = 1;
semaphore
94
put_forks(i); // t c 2 na ln bn li
}
U
.V
}
//kim tra iu kin c n
void test ( int i) // i l trit gia th i : 0..N-1
{
{
state[i] = EATING;
up(s[i]);
T.
ED
}
//yu cu ly 2 na
{
{
.P
while (TRUE)
TI
PE
down(s[i]); // ch nu khng c 2 na
//t 2 na xung
void put_forks ( int i) // i l trit gia th i : 0..N-1
{
while (TRUE)
{
down(mutex); // vo min gng
state[i] = THINKING; // ghi nhn trit gia i n xong
95
U
.V
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?
ED
T.
TI
.P
PE
ArriveBridge(direction); //ti cu
OnBridge(); //ln cu
ExitBridge();// Qua cu
96
U
.V
Hacker()
ED
T.
RuntoRiver(); // i n b sng
TI
.P
Mi xe bus c 10 ch, 4 ch dnh cho khch ngi xe ln, 6 ch dnh cho khch bnh thng, khi
xe y khch th s khi hnh. C th c nhiu xe v nhiu hnh khch vo bn cng lc, nguyn
tc iu phi s xp khch vo y mt xe, cho xe ny khi hnh ri mi iu phi cho xe khc.
PE
Gi s hot ng iu phi khch cho 1 chic xe bus c m t qua tin trnh GetPassengers();
hot ng ca mi loi hnh khch c m t bng tin trnh WheelPassenger() v
NonWheelPassenger(). Hy sa cha cc on code, s dng semaphore ng b ho .
GetPassenger() //chng trnh iu phi khch cho 1 xe
97
{
ArrangeSeat(); // a 1 khch bnh thng vo ch
}
CloseDoor(); // ng ca xe
DepartTerminal(); // cho mt xe ri bn
}
WheelPassenger() //chng trnh to khch ngi xe ln
{
ArriveTerminal(); // n bn
U
.V
GetOnBus(); // ln xe
}
ED
GetOnBus(); // ln xe
}
TI
T.
.P
Produce_chassis();// to khung xe
- B phn sn xut 1 bnh xe :
{
Make_Tires()
// to bnh xe v gn vo khung xe
PE
Produce_tire();
Put_tire_to_Chassis();
98
down(s[i]);
//ly a
down(s[(i+1)%5]);
eat();
up(s[i]);
//b a
up(s[(i+1)%5]);
Allocation
Available
R2
R3
R1
R2
R3
R1
R2
R3
P1
P2
P3
P4
T.
ED
R1
U
.V
Max
TI
.P
Allocation
Max
Available
P1
P2
P3
P4
P5
PE
99
[1]. Gary J. Nutt, University of Colorado. Centralized And Distributed Operating Systems.
Second Edition, 2000.
[2]. Robert Switzer. Operating Systems, A Practical Approach. Prentice-Hall International, Inc.
1993.
U
.V
[3]. Andrew S. Tanenbaum. Modern Operating Systems. Prentice-Hall International, Inc. Second
Edition, 2001.
[4]. Abraham Silberschatz & Peter Baer Galvin. Operating System concepts. John Wiley & Sons,
Inc. Fifth Edition, 1999.
ED
PE
.P
TI
T.
[6]. Trn Hnh Nhi & L Khc Nhin n & Hong Kim. Gio trnh h iu hnh (tp 1 & 2).
HKHTN 2000.
100
CHNG 4
QUN L B NH
Chng QUN L B NH" s gii thiu v gii thch cc vn sau:
4.1 Cc vn pht sinh khi qun l b nh.
4.3 B nh o
U
.V
ED
- Ngn chn cc tin trnh xm phm n vng nh c cp pht cho tin trnh khc.
- Cho php nhiu tin trnh c th dng chung mt phn b nh ca nhau.
- M rng b nh c th lu tr c nhiu tin trnh ng thi.
T.
TI
.P
PE
Nu ti thi im bin dch, cha th bit v tr m tin trnh s c np vo trong b nh, trnh
bin dch ch pht sinh m tng i. Khi np chng trnh vo b nh, h iu hnh s chuyn
cc a ch tng i thnh a ch tuyt i do bit v tr bt u lu tr tin trnh. Khi c s
thay i v tr lu tr, cn np li chng trnh thc hin li vic chuyn i a ch, khng cn
bin dch li chng trnh.
+ Thi im x l (execution time):
Nu c nhu cu di chuyn tin trnh t vng nh ny sang vng nh khc trong qu trnh tin trnh
x l, th vic chuyn i a ch s c thc hin vo lc tin trnh thc thi. Chc nng chuyn
i a ch do phn cng cung cp gi l MMU (memory management unit). Cc h iu hnh
thng dng vic chuyn i theo cch ny.
101
TI
T.
ED
U
.V
.P
PE
102
U
.V
Hnh 4.2: qun l vic cp pht b nh bng dy bit hoc danh sch lin kt
T.
ED
Trc khi tin trnh X kt thc, c 4 trng hp c th xy ra v khi tin trnh X kt thc, h iu
hnh cn gom nhng nt trng gn nhau.
TI
.P
PE
103
JUMP
0X5000
JUMP
0X2000
0X6000
(bound)
0X3000
(base)
0X0000
HH
B nh vt l
U
.V
ED
T.
PE
.P
TI
Ging nh m hnh Linker-Loader nhng phn cng cn cung cp hai thanh ghi, mt thanh ghi
nn (base register) v mt thanh ghi gii hn (limit register). Khi mt tin trnh c cp pht
vng nh, h iu hnh ct vo thanh ghi nn a ch bt u ca vng nh cp pht cho tin trnh,
v ct vo thanh ghi gii hn kch thc ca tin trnh.
104
U
.V
ED
TI
T.
+ C th c hin tng phn mnh ngoi vi (external fragmentation ): tng vng nh trng
tho mn yu cu, nhng cc vng nh ny li khng lin tc nn khng cp cho mt tin
trnh khc. 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. V d v s phn mnh ngoi vi ca b nh, cc tin trnh lin tc vo ra b nh, sau mt thi
gian s li cc vng nh nh m khng th cha bt k tin trnh no.
.P
OS
D
C
B
A
B
A
B
A
B
A
B
A
OS
OS
OS
OS
OS
OS
F
OS
PE
* 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:
+ 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.
105
N
U
.V
ED
Hnh 4.8: dnh ch trng tin trnh c th pht trin trong m hnh cp pht lin tc
TI
T.
.P
trnh tnh trng b nh b phn mnh v do phi cp pht mt vng nh lin tc cho tin trnh,
h iu hnh c th cp pht cho tin trnh nhng vng nh t do bt k, khng cn lin tc.
PE
C ba m hnh cp pht b nh khng lin tc l m hnh phn on, m hnh phn trang v m
hnh phn on kt hp phn trang.
4.2.2.1 M hnh phn on (Segmentation)
Mt chng trnh c ngi lp trnh chia thnh nhiu phn on, mi phn on c ng ngha
khc nhau v h iu hnh c th np cc phn an vo b nh ti cc v tr khng lin tc.
V d: chng trnh chia lm 5 phn on (segment), mi phn on c np vo vng nh
trng c th khng lin tc.
106
N
U
.V
ED
T.
TI
.P
Phn t th s trong bng phn on gm hai phn (base, limit), base l a ch vt l bt u phn
on s, limit l chiu di ca phn on s. Mi a ch o gm hai phn (s,d) vi s l s hiu phn
on , d l a ch tng i trong phn on s.
PE
chuyn a ch o (s,d) thnh a ch vt l, MMU truy xut phn t th s trong bng phn
on, ly c gi tr limit v base ca phn on s, sau kim tra iu kin (d<limit), nu sai
th thng bo li truy xut a ch khng hp l, nu ng th tnh i ch vt l theo cng thc:
cvl =base + d.
Theo v d trn, gi s tin trnh truy xut a ch o (s,d)=(4,1500) th MMU s thng bo li!.
Nu tin trnh truy xut a ch o (4,100) th MMU s chuyn thnh a ch vt l l
4700+100=4800.
107
N
U
.V
ED
T.
TI
PE
.P
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 (STBR+s) c c a ch ca phn t th s trong bng phn
on v i ch vt l cui cng l (base + d)
Hnh 4.11: c ch MMU trong m hnh phn on. s dng thanh ghi STLR v STBR
* Bo v phn on
108
Limit
Base
Attribute
Hnh 4.12: Cu trc mt phn t trong bng phn on c s dng thuc tnh bo v
* Chia s phn on
.P
TI
T.
ED
U
.V
Mun hai tin trnh dng chung mt phn on no , MMU ch cn gn hai phn t trong hai
bng phn on ca hai tin trnh cng gi tr.
Hnh 4.13: hai tin trnh P1,P2 dng chung phn on 0 (phn on editor)
+ Nhn xt
PE
Trong h thng s dng k thut phn on , hin tng phn mnh ngoi vi vn xy ra khi cc
khi nh trng u qu nh, khng cha mt phn on. u im ca k thut phn on l
m chng trnh v d liu c tch ring thnh nhng khng gian a ch c lp nn d dng
bo v m chng trnh v d dng dng chung d liu hoc hm.
4.2.2.2 M hnh phn trang (Paging)
109
N
U
.V
ED
T.
Hnh 4.14: khng gian a ch o oc chia thnh nhiu trang v lu vo cc khung trang
TI
PE
.P
Page 3
Page 2
Page 1
Page 0
Khng
gian a
ch o
7 Page 1 7168
6
6144
5 Page 0 5120
4
4096
3
3072
2 Page 3 2048
1
1024
0 Page 2 0000
Khng gian a ch
vt l
3 2
2 0
1 7
0 5
Bng
trang
Hnh 4.15: s dng bng trang lu cc s hiu khung trang cha trang.
* Cu trc a ch o:
d dng phn tch a ch o thnh s hiu trang v a ch tng i, phn cng qui nh kch
thc ca trang l ly tha ca 2n (9<=n<= 13). Nu kch thc ca khng gian a ch o l 2m
(CPU dng a ch o m bt) v kch thc trang l 2n th m-n bit cao ca a ch o s biu din s
hiu trang, v n bit thp biu din a ch tng i trong trang. Khi mi a ch o m bit s c
dng (p,d) vi p chim m-n bit v p l s hiu trang, d chim n bit v l a ch tng i trong
trang p.
a ch o dng (p,d) c m bit
p l s hiu trang v chim m-n bit cao
d l a ch tng i trong trang v chim n bt thp
110
Hnh 4.16: cu trc a ch o gm hai phn: cc bit cao lu s hiu trang, cc bit thp lu a ch
tng i trong trang.
* C ch MMU trong m hnh phn trang:
a ch o
p
a ch vt l
B
nh
vt l
T.
ED
CPU
U
.V
Khi chng trnh c np vo b nh, MMU ghi nhn li s hiu khung trang cha trang vo
bng trang (pages table), cn CPU lm nhim v chuyn i tt c cc a ch tng i trong
chng trnh thnh a ch o. Phn t th p trong bng trang lu s hiu khung trang trong b
nh vt l ang cha trang p. chuyn a ch o (p,d) thnh a ch vt l, MMU truy xut
phn t th p trong bng trang, ly c gi tr f l s hiu khung trang cha trang p v t tnh
c i ch vt l = v tr bt u ca khung trang f + d.
.P
TI
Theo v d trn, gi s tin trnh truy xut a ch o (p,d) = (3,500), MMU s truy xut phn t
th 3 trong bng trang v bit c trang 3 khung trang 2 v chuyn a ch o thnh a ch vt
l l 2x 210 +500 = 2548 (2x 210 = 2048 l a ch bt u ca khung trang 2).
Trong thc t, vic chuyn i a ch o (p,d) c MMU thc hin nh sau: MMU truy xut
phn t th p trong bng trang, ly c gi tr f l s hiu khung trang cha trang p v tnh i
ch vt l bng cch chp d vo n bit thp ca a ch vt l v chp f vo (m-n) bit cao ca a
ch vt l.
PE
111
N
U
.V
ED
T.
TI
* Ci t bng trang
PE
.P
Hnh 4.19: c ch MMU trong m hnh phn trang, s dng hai thanh ghi PTLR v PTBR
112
TI
T.
ED
U
.V
PE
.P
Hnh 4.21: mt v d v bng trang c thuc tnh bo v (protection) v thuc tnh cp nht
(modified): 1 l mi oc cp nht, 0 l cha cp nht.
V d mt h thng my tnh 32 bit, c kch thc 1 khung trang l 4K. Hi h thng qun l
c tin trnh kch thc ti a l bao nhiu?
113
TI
T.
ED
U
.V
Bn thn bng trang cng s c phn trang. Xt trng hp phn trang nh cp, khi bng
trang cp 1 lu s hiu khung trang cha bng trang cp 2, cc bng trang cp 2 lu s hiu khung
trang tin trnh s dng. Thng thng trong phn trang a cp mi bng trang chim 1 khung
trang, ring bng trang cp 1 c th lu tr trn a v c th c kch thc ln hn 1 khung trang.
.P
PE
Nu mt my tnh 32 bt, vi kch thc trang 4K th a ch logic c th biu din nh sau: dng
p=20 bt lu s hiu trang, d=12 bt lu v tr tng i trong trang. Nu dng bng trang nh cp
th p c chia ra thnh p1, p2 (p=p1+p2): p1=10 bt lu ch mc ca bng trang cp 1, p2=10 bt
lu ch mc ca bng trang cp 2 (vic phn chia p1, p2 l bao nhiu bt th do phn cng qui
nh). Ta c: BTC1[p1] lu s hiu khung trang cha bng trang cp 2, BTC2[p2] lu s hiu
khung trang cha trang ca tin trnh.
page number
page offset
p2
pi
10
10
12
Bng trang cp 1
114
Bng trang cp 2
U
.V
Khi khng gian a ch o ln (> 32 bt) thng h iu hnh dng bng bm lu tr bng
trang. Ga s trang p, lu khung trang r, th thng tin ny c lu tr nh sau: p c bm v
lu tr trong mt danh sch xung t tng ng ca bng bm.
TI
T.
ED
V d: Mt my tnh 64 bt, c RAM 256MB, kch thc 1 khung trang l 4KB. Bng trang thng
thng phi c 252 mc, nu dng bng trang bm c th s dng bng c s mc bng s khung
trang vt l l 216 (<<232) vi hm bm l hasfunc(p)=p mod 216.
.P
PE
Khi tm khung trang cha trang p, h iu hnh dng hm bm tm ra danh sch cha trang p, sau
tm tuyn tnh trn danh sch ny tm ra khung trang cha trang p.
115
U
.V
.P
TI
T.
ED
Nhn xt: s phn t trong bng trang nghch o bng vi s khung trang vt l
PE
116
N
U
.V
ED
T.
Trong k thut phn trang, h iu hnh cng c th cho php cc tin trnh dng chung mt s
khung trang, bng cch ghi cng s hiu khung trang vo bng trang ca mi tin trnh.
3 0
2 6
1 3
0 2
Bng trang
P1
3
2
1
0
.P
data1
code3
code2
code1
P1
PE
3
2
1
0
TI
v d: Hai tin trnh P1, P2 sinh ra t chng trnh word.exe c th dng chung on code (gm 3
trang) nhng mi tin trnh c on data ring.
data2
code3
code2
code1
P2
3 4
2 6
1 3
0 2
Bng trang
P2
7
6 code3
5
4 data2
3 code2
2 code1
1
0 data1
B nh
Vt l
Hnh 4.30: hai tin trnh P1,P2 dng chung ba trang 0,1,2
Nhn xt:
+ K thut phn trang loi b c hin tng phn mnh ngoi vi v 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.
+ S phn trang khng phn nh ng cch thc ngi s dng cm nhn v b nh. 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. iu ny lm rc
ri vn hn rt nhiu so vi vic cp pht cc trang c kch thc c nh v bng nhau. Mt
117
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.
4.2.2.3 M hnh phn on kt hp phn trang (Paged segmentation)
ED
U
.V
Mt tin trnh gm nhiu phn on, mi phn on c chia thnh nhiu trang, lu tr vo cc
khung trang c th khng lin tc.
T.
TI
.P
PE
118
ED
U
.V
Hnh 4.32: cu trc mt phn t ca bng trang trong m hnh phn on kt hp phn trang.
.P
TI
T.
PE
Nhn xt:
+ 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.
4.3 B NH O
B nh o l k thut dng b nh ph lu tr tin trnh, cc phn ca tin trnh c chuyn
vo-ra gia b nh chnh v b nh ph cho php thc thi mt tin trnh m khng cn np
119
U
.V
Mt tin trnh c chia thnh nhiu trang, thng tr trn b nh ph (thng l a cng) v
mt trang ch c np vo b nh chnh khi c yu cu. Vng khng gian a dng lu tr
tm cc trang gi l khng gian swapping.
PE
.P
TI
T.
ED
Mi phn t trong bng trang s gm hai trng: Mt trng cha bit "kim tra" c gi tr 1
(valid) l trang ang trong b nh chnh , 0 (invalid) l trang ang c lu trn b nh ph
hoc trang khng thuc tin trnh, khi u tt c bit kim tra trong bng trang u bng 0. Mt
trng cha s hiu khung trang (nu bit kim tra l valid) hoc cha a ch ca trang trn b
nh ph (nu bit kim tra l invalid).
+ Bc 1: MMU truy xut phn t th p trong bng trang ly cc thng tin cn thit cho vic
chuyn i a ch.
+ Bc 2: Nu phn t th p c bit kim tra bng 1 (valid), th trang ang yu cu truy xut hp
l, tc l c sn trong b nh, khi vic chuyn i a ch o thnh a ch vt l xy ra bnh
thng, a ch vt l = s hiu khung trang * kch thc ca mt khung + d. Nu phn t th p
c bit kim tra bng 0 (invalid), th MMU s pht sinh mt ngt bo cho h iu hnh c li
120
trang. Khi h iu hnh s kim tra trang truy xut c thuc tin trnh khng, nu trang khng
thuc tin trnh th h iu hnh kt thc tin trnh, ngc li chuyn n bc 3
+ Bc 3: Tm v tr trn a cha trang mun truy xut v tm mt khung trang trng trong b
nh chnh: nu c khung trang trng th n bc 4, nu khng cn khung trang trng, chn mt
khung trang "nn nhn" (victim) v chuyn trang "nn nhn " ra b nh ph , ri n bc 4
+ Bc 4: Chuyn trang mun truy xut t b nh ph vo khung trang trng chn.
+ Bc 5: Cp nht ni dung bng trang.
ED
U
.V
T.
TI
.P
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). Gi tr ca bit
c phn cng t l 1 nu ni dung trang c b sa i. Khi cn thay th mt trang, nu bit cp
nht c gi tr l 1 th trang ny 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.
PE
s hiu khung trang cha trang bit nhn din trang c trong b bit nhn din trang c
hoc a ch trn a ca trang
nh (bit valid-invalid)
thay i (bit dirty)
Hnh 4.37: cu trc mt phn t ca bng trang trong k thut phn trang theo yu cu.
121
U
.V
.P
TI
T.
ED
Mc tiu ca cc thut tan l chn trang nn nhn l trang m sau khi thay th s gy ra t li
trang nht. Thng thng s li trang t l nghch vi s khung trang dnh cho tin trnh (s
khung trang tng th s li trang gim).
Hnh 4.38: biu minh ha s li trang s gim khi s khung trang dnh cho tin trnh tng
PE
C th nh gi thut ton bng cch xt mt chui cc trang m tin trnh s ln lt truy xut
vi s khung trang cp cho tin trnh bit v tnh s li trang pht sinh. V d tin trnh truy
xut cc a ch theo th t : 0100, 0432, 0101, 0611. Nu kch thc ca mt trang l 100 bytes
th c th vit li chui a ch thnh chui trang m tin trnh truy xut l 1, 4, 1, 6.
7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0 1
122
7 7 7 2 2 2 2 4 4 4 0 0 0 0 0 0 0 7 7 7
0 0 0 0 3 3 3 2 2 2 2 2 1 1 1 1 1 0 0
1 1 1 1 0 0 0 3 3 3 3 3 2 2 2 2 2 1
* * * *
* * * * * *
* *
* * *
U
.V
Thut ton FIFO n gin, d ci t, nhng nu trang c chn l trang thng xuyn c s
dng, th khi b chuyn ra b nh ph s nhanh chng gy ra li trang.
ED
S lng li trang c th tng ln khi s lng khung trang s dng tng, hin tng ny gi l
nghch l Belady.
V d: Xt tin trnh truy xut chui trang theo th t sau: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5
1 2 3 4 1 2 5 1 2 3 4 5
TI
1 1 1 4 4 4 5 5 5 5 5 5
T.
2 2 2 1 1 1 1 1 3 3 3
.P
3 3 3 2 2 2 2 2 4 4
* *
* * * * * * *
PE
2 2 2 2 2 2 1 1 1 1 5
3 3 3 3 3 3 2 2 2 2
4 4 4 4 4 4 3 3 3
* * * *
* * * * * *
123
7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0 1
7 7 7 2 2 2 2 2 2 2 2 2 2 2 2 2 2 7 7 7
0 0 0 0 0 0 4 4 4 0 0 0 0 0 0 0 0 0 0
1 1 1 3 3 3 3 3 3 3 3 1 1 1 1 1 1 1
*
* * * *
U
.V
Nhn xt:
Thut ton ny bo m s lng li trang pht sinh l thp nht, n cng khng b nghch l
Belady, tuy nhin y l mt thut ton kh ci t v thng khng th bit trc chui truy xut
ca tin trnh.
ED
i vi cc h iu hnh cho thit b gia dng, thng ch c mt s tin trnh c nh thc thi
nn c th cho tin trnh chy trc mt ln, ghi nhn li chui trang truy xut, cc ln thc thi
sau c th s dng thut ton ti u chn trang nn nhn.
4.3.1.5.3 Thut ton LRU ( Least-recently-used)
.P
TI
T.
Thut ton FIFO s dng thi im np trang chn trang thay th, thut ton ti u dng thi
im trang s c s dng gn nht trong tng lai. V thi im ny thng kh xc nh trc
nn thut ton LRU s dng thi im cui cng trang c truy xut (dng qu kh gn d
on tng lai gn). 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 vi suy ngh l trang ny c kh nng
t c s dng nht.
V d:
7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0 1
PE
7 7 7 2 2 2 2 4 4 4 0 0 0 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 3 3 3 3 3 3 0 0 0 0 0
1 1 1 3 3 3 2 2 2 2 2 2 2 2 2 7 7 7
* * * *
* * * *
Nhn xt:
C 12 li trang, FIFO 15 li =>LRU tt hn FIFO.
124
Thm vo cu trc ca mi phn t trong bng trang mt trng ghi nhn thi im truy xut
gn nht, v thm vo cu trc ca CPU mt thanh ghi m (counter). Mi ln thc hin truy
xut n mt trang, gi tr ca counter tng ln 1 v ghi gi tr counter vo trng thi im truy
xut gn nht ca phn t tng ng vi trang trong bng trang. Khi trang nn nhn l trang
c gi tr trng thi im truy xut gn nht l nh nht.
U
.V
ED
Dng mt mt dslk lu tr cc s hiu trang, trang cui danh sch l trang c truy xut gn
nht, v trang u danh sch l trang lu nht cha c s dng. Nu c li trang v nu c
khung trang trng th thm nt cha s hiu trang ang truy xut vo cui danh sch, nu khng
c khung trng th trang c chn lm trang nn nhn s l trang u danh sch, khi hy nt
u v thm nt cha s hiu trang ang truy xut vo cui danh sch. Nu khng c li trang th
chuyn nt cha s hiu trang hin hnh xung cui danh sch.
.P
TI
T.
bit dirty
bit reference
PE
Hnh 4.39: cu trc mt phn t ca bng trang trong thut ton xp x LRU
Mi trang s dng thm 8 bit lch s (history). Sau tng khong thi gian nht nh (thng l
100 milliseconds), mt ngt ng h c pht sinh v quyn iu khin c chuyn cho h iu
hnh. H iu hnh s cp nht cc bt history ca mi trang bng cch dch cc bit history sang
phi 1 v tr loi b bit thp nht v t bit reference ca mi trang vo bit cao nht trong 8 bit
history ca trang . 8 bit history s lu tr tnh hnh truy xut n trang trong 8 chu k cui
cng.
Nu 8 bit history l 00000000 th trang tng ng c kh nng khng c dng trong 8 chu k
cui, nu 8 bit history l 11111111 th trang tng ng c dng n t nht 1 ln trong mi 8
chu k cui. Nu xt 8 bit history nh mt s nguyn khng du th trang nn nhn l trang c
125
gi tr history nh nht. S lng cc bit history c th thay i ty theo phn cng, s bt history
nhiu th vic chn trang nn nhn s chnh xc hn.
b/ Thut ton c hi th hai
TI
T.
ED
U
.V
Tm mt trang theo nguyn tc FIFO, ri kim tra bit reference ca trang . Nu bit reference l
0, chn trang ny, nu bit reference l 1 th gn li l 0 ri tm trang FIFO tip theo (cho trang ny
mt c hi th hai). Mt trang c cho c hi th hai s khng b thay th cho ti khi tt c
nhng trang khc c thay th hoc c cho c hi th hai. 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.
Nu tt c cc bt reference l 1 th thut ton tr thnh FIFO. Thut ton c th ci t bng dslk
vng.
.P
Hnh 4.40: c ch chn trang nn nhn trong thut ton chn trang nn nhn th hai.
V d:
7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0 1
PE
7 7 7 2 2 2 2 4 4 4 0 0 0 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 3 3 3 3 3 3 0 0 0 0 0
1 1 1 3 3 3 2 2 2 2 2 2 2 2 2 7 7 7
* * * *
* * * *
7(1) 7(1) 7(1) 0(0) 1(0) 2(1) 2(1) 3(0) 0(0) 4(1) 2(0) 2(0) 0(1) 3(0) 3(0) 1(0) 2(1) 0(0) 1(0) 7(1)
126
0(1) 0(1) 1(0) 2(1) 0(1) 3(1) 0(0) 4(1) 2(1) 3(0) 0(1) 3(1) 2(0) 1(0) 2(1) 0(1) 1(0) 7(1) 0(1)
1(1) 2(1) 0(1) 3(1) 0(1) 4(1) 2(1) 3(1) 0(1) 3(1) 2(1) 1(0) 2(1) 0(1) 1(1) 7(1) 0(1) 1(1)
c/ Thut ton c hi th hai nng cao (Not Recently Used Page Replacement Algorithm: NRU)
Xem cc bit reference v dirty bit nh mt cp c th t v to thnh 4 lp sau :
U
.V
T.
ED
TI
+ Thut ton LFU (least frequently used): Thay th trang c gi tr bin m nh nht, ngha l
trang t c s dng nht.
.P
+ Thut ton MFU (most frequently used): Thay th trang c gi tr bin m ln nht, ngha l
trang c s dng nhiu nht.
PE
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. V d my
IBM 370 lnh MOVE c th thc hin ti thiu phi c hai trang: mt trang from , mt trang
to. Khi mt li trang xy ra trc khi ch th hin hnh hon tt, ch th cn c ti khi ng,
lc cn phi c cc khung trang np tt c cc trang m mt ch th cn s dng. 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.
4.3.2.1 Cp pht s lng khung trang
C ba cch cp pht s lng khung trang l: cp pht ngang bng, cp pht theo t l kch thc,
cp pht theo t l u tin.
a/ Cp pht ngang bng:
Nu c m khung trang v n tin trnh, mi tin trnh c cp m/n khung trang. Cp pht ny n
gin nhng khng hiu qu.
127
m khung
si
-->
ai =?
ai= si/ S x m
U
.V
v d: c hai tin trnh, tin trnh 1= 10K, tin trnh 2=127K v c 62 khung trang trng. Khi
c th cp cho
tin trnh 1: 10/137 x 62 ~ 4 khung
tin trnh 2: 127/137 x62 ~ 57 khung
ED
T.
S lng khung trang cp cho tin trnh ph thuc vo u tin ca tin trnh. Tin trnh c
u tin cao s c cp nhiu khung hn tng tc thc hin.
4.3.2.2 Thay th trang
a/ Thay th ton cc
TI
.P
Chn trang nn nhn t tp tt c cc khung trang trong h thng, khung trang c th ang
c cp pht cho mt tin trnh khc. V d c th chn trang ca tin trnh c u tin thp
hn lm trang nn nhn. Thut ton thay th ton cc cho php h thng c nhiu kh nng la
chn hn, s khung trang cp cho mt tin trnh c th thay i, nhng cc tin trnh khng th
kim sot c t l pht sinh li trang ca mnh.
b/ Thay th cc b
PE
Ch chn trang thay th trong tp cc khung trang c cp cho tin trnh pht sinh li trang, khi
s khung trang cp cho mt tin trnh s khng thay i
Khi tin trnh khng c cc khung trang cha nhng trang cn thit cho vic x l, th n s
thng xuyn pht sinh cc li trang, v th phi dng n rt nhiu thi gian s dng CPU
thc hin thay th trang. H iu hnh thy hiu qu s dng CPU thp s tng mc a
chng, dn n tr tr ton b h thng. ngn cn tnh trng tr tr ny xy ra, cn phi cp
cho tin trnh cc khung trang cn thit hot ng. Vn l lm sao bit c mi tin
trnh cn bao nhiu trang?
4.3.3.1 M hnh tp lm vic (working set)
128
U
.V
Tp lm vic ca tin trnh ti thi im t l tp cc trang c tin trnh truy xut n trong ln
truy cp cui cng tnh ti thi im t.
ED
H iu hnh gim st working set ca mi tin trnh Pi v ti thi im t s cp pht cho tin
trnh Pi s khung trang bng vi s phn t trong tp lm vic (WSSi)(, t-1).
TI
T.
.P
V d: xt ct sau:
int a[128][128];
PE
a[i][j]=0;
Ga s trang c kch thc 128 bytes v tin trnh c cp 2 khung trang: khung trang th nht
ch m tin trnh, khung trang cn li c khi ng trng thi trng . Trong Pascal, C mng
lu theo hng, mi hng chim 1 trang b nh, nn s li trang pht sinh l 128. Nhng trong
Fortran mng lu theo ct, do s li trang s l 128x128=1638.
TM TT
+ Cc vn cn phi gii quyt khi qun l b nh l vic chuyn i a ch tng i thnh a
ch thc, qun l b nh cp pht v cha cp pht, cc k thut cp pht b nh.
129
+ C hai phng php qun l vic cp pht b nh l s dng mt dy bit hoc s dng mt
danh sch lin kt, mi nt ca danh sch lin kt lu thng tin mt vng nh cha tin trnh hay
vng nh trng gia hai tin trnh.
U
.V
+ chn mt on trng c th s dng mt trong cc thut ton sau :First-fit, Best-fit, Worstfit
+ C hai k thut dng cp pht b nh cho mt tin trnh l
TI
T.
ED
+ C ba m hnh cp pht b nh lin tc l m hnh Linker-Loader hoc m hnh Base & Limit.
M hnh Linker-Loader: chng trnh c np vo mt vng nh lin tc ln cha ton b
chng trnh, h iu hnh s chuyn cc a ch tng i v a ch tuyt i ngay khi np
chng trnh. M hnh Base & Limit ging nh m hnh Linker-Loader nhng phn cng cn
cung cp hai thanh ghi, mt thanh ghi nn v mt thanh ghi gii hn . Khi mt tin trnh c cp
pht vng nh, h iu hnh ct vo thanh ghi nn a ch bt u ca vng nh cp pht cho tin
trnh, v ct vo thanh ghi gii hn kch thc ca tin trnh.
.P
+ C ba m hnh cp pht b nh khng lin tc l m hnh phn on, m hnh phn trang v m
hnh phn on kt hp phn trang.
PE
- M hnh phn on: mt chng trnh c ngi lp trnh chia thnh nhiu phn on, mi
phn on c ng ngha khc nhau v h iu hnh c th np cc phn an vo b nh ti cc v
tr khng lin tc v ghi cc v tr cc phn on vo bng phn on, ng thi chuyn cc a
ch tng i trong chng trnh thnh cc a ch o. Mi a ch o gm hai phn (s,d): s l s
hiu phn on , d l a ch tng i trong phn on s. Mi phn t trong bng phn on gm
hai phn (base, limit): base l a ch vt l bt u phn on, limit l chiu di ca phn on.
- M hnh phn trang: B nh vt l c chia thnh cc khi c kch thc c nh v bng nhau
gi l khung trang. Tin trnh cng c chia thnh cc khi c cng kch thc vi khung trang
v gi l trang. Khi chng trnh c np vo b nh, MMU ghi nhn li s hiu khung trang
cha trang vo bng trang , CPU chuyn a ch tng i trong chng trnh thnh a ch o.
Mi a ch o c dng (p,d): p l s hiu trang, d l a ch tng i trong trang p. Mi phn t
trong bng trang lu s hiu khung trang cha trang.
- M hnh phn on kt hp phn trang:
Mt tin trnh gm nhiu phn on, mi phn on c chia thnh nhiu trang, lu tr vo cc
khung trang c th khng lin tc.
+ B nh o l k thut dng b nh ph lu tr tin trnh, cc phn ca tin trnh c chuyn
vo-ra gia b nh chnh v b nh ph cho php thc thi mt tin trnh m khng cn np
130
+ Cc thut ton chn trang nn nhn: FIFO, ti u, LRU, cc thut ton xp x LRU
U
.V
CU HI V BI TP
ED
int A [100][100] ;
for (i=0; i<100; i++)
TI
T.
.P
Gi s tin trnh c cp 3 khung trang vi kch thc mt khung trang l 200 bytes, m tin
trnh lun chim khung trang 1, khung trang 2 v 3 lu mng A v khi u khung 2, 3 l rng.
Hi tin trnh c bao nhiu li trang khi s dng thut ton thay th LRU. Xt chng trnh C sau
vi cu hi tng t nh trn
int A [100][100] ;
PE
a) Nu s khung cp cho tin trnh l khng hn ch v gi s khung trang th nht lun dng
ch tin trnh, cc khung trang cn li c khi ng trng thi trng th tin trnh c bao
nhiu li trang.
b) Nu s khung cp cho tin trnh l 2 khung v gi s khung trang th nht lun dng ch
tin trnh, khung trang th hai c khi ng trng thi trng th tin trnh c bao nhiu li
trang.
131
Thi im
Thi im
np
126
279
230
260
120
272
160
280
ED
U
.V
Trang
4. Mt my tnh c 4 khung trang. Thi im np, thi im truy cp cui cng, v cc bit
Reference (R), Dirty (D) ca mi trang trong b nh c cho trong bng sau :
T.
TI
5. Tnh kch thc dy bt dng qun l RAM 512 MB, gi s a ch nh theo byte.
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.
.P
PE
a) Nu thi gian cho mt ln truy xut b nh bnh thng l 200 nanoseconds, th mt bao nhiu
thi gian cho mt thao tc truy xut b nh trong h thng ny ?
b) Nu s dng TLBs vi t l tm thy (hit-ratio) 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)
2300 14
90
100
132
U
.V
11. Gi s c mt my tnh chi s dng 7-bit a ch, 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 o trong nhng phm vi sau : 0..15, 21..29, 94..106, v
115..127.
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?
ED
T.
TI
.P
[1]. Gary J. Nutt, University of Colorado. Centralized And Distributed Operating Systems.
Second Edition, 2000.
PE
[2]. Robert Switzer. Operating Systems, A Practical Approach. Prentice-Hall International, Inc.
1993.
[3]. Andrew S. Tanenbaum. Modern Operating Systems. Prentice-Hall International, Inc. Second
Edition, 2001.
[4]. Abraham Silberschatz & Peter Baer Galvin. Operating System concepts. John Wiley & Sons,
Inc. Fifth Edition, 1999.
[5]. H. M. Deitel. Operating Systems. Addison-Wesley Inc. Second Edition, 1999.
[6]. Trn Hnh Nhi & L Khc Nhin n & Hong Kim. Gio trnh h iu hnh (tp 1 & 2).
HKHTN 2000.
133
CHNG 5
QUN L PROCESSOR
Chng QUN L PROCESSOR" s gii thiu v gii thch cc vn sau:
5.1 Processor Vt l v Processor logic
5.3 X l ngt trong IBM-PC
U
.V
ED
Trong lnh vc cng ngh thng tin, khi nim b x l (processor) thng c gi l n v x
l trung tm (CPU-Central Processing Unit). CPU l mt thnh phn bn trong my tnh thc hin
cng vic bin dch cc ch th ca my tnh v x l cc d liu bn trong cc chng trnh. Cng
vi n v lu tr chnh, thit b nhp/xut, CPU l thnh phn c bn nht khng th thiu trong
bt k h thng my tnh no.
PE
.P
TI
T.
tng tc cho mt h thng my tnh, ngoi vic s dng nhiu CPU, cn c mt gii php
khc hyper threading (siu phn lung). Vi k thut ny, h iu hnh s nhn thy mt
processor vt l thnh hai processor logic. Processor vt l l mt thnh phn phn cng thc s,
thc hin cc thao tc do h iu hnh v cc chng trnh ang thc thi trn my tnh ra lnh.
Trong khi , processor logic c to ra bi cc chng trnh, ti nguyn h iu hnh, hoc l
s m phng ca processor vt l. Mt l do khc to ra processor logic l tn dng ti a
ngun ti nguyn bn trong b x l ng thi cho php thc hin tnh ton cho nhiu tiu trnh
hn trong cng mt thi im.
134
ED
U
.V
thy c hai hnh ch nht ri nhau o Performance cho tng CPU (logic). Trong khi ,
hnh (a) ch c mt CPU (vt l) c o Performance.
T.
TI
.P
Ngt l s xy ra ca mt iu kin, s kin lm cho treo tm thi chng trnh trong khi iu
kin, s kin ny c phc v bi chng trnh khc. Mt h thng c iu khin bng ngt
cho o gic l n thc hin nhiu cng vic ng thi. D nhin, CPU mi ln khng th thc thi
nhiu hn mt lnh; nhng n c th tm treo vic thc thi mt chng trnh thc thi chng
trnh khc, ri quay v chng trnh th nht. C th hn, khi ngt xy ra, th:
PE
+ H iu hnh ly c s iu khin.
+ H iu hnh lu li trng thi ca tin trnh b ngt. Trong nhiu h thng, cc thng tin ny
c lu trong khi iu khin tin trnh ca tin trnh b ngt.
+ H iu hnh phn tch ngt v chuyn iu khin n mt th tc tng ng thc hin ngt.
+ Th tc thc hin ngt tin hnh ngt.
+ Tin trnh b ngt c thc thi.
135
a ch
CPU
Th tc ngt:
- Xc nh ngun.
- Cm cc ngt khc?
- Lu li ni dung cc
thanh ghi.
- Link n th tc
ngt.
102
1000
Phc v ngt A
1001
Cc lnh c thc
hin cho vic phc
v ngt A
1002
- Khi phc li cc
thanh ghi.
- Cho php ngt
- Quay li chng
trnh chnh
Ngt A
ED
Quay lui
Input
101
Chng trnh
chnh
U
.V
100
B nh
T.
.P
TI
Ngt c th c np t mt tin trnh ang thc thi, t mt s c c lin quan hoc khng lin
quan n tin trnh ang thc thi. Nh v d trong hnh 5.11, CPU nhy n a ch 1000 v thc
thi chng trnh . V cui th tc ngt, mt lnh c khi to khi phc li trng thi
ca cc thanh ghi b treo trong chng trnh chnh, nh n cng gip khi phc li vic iu
khin cho chng trnh gc.
Cu trc ngt c th khc nhau gia cc h thng, nhng nhn chung chng u thc hin cng
mt th tc ngt nh nhau. Di y l mt s yu cu m mt h thng ngt phi p ng c
trc khi thc hin ngt:
PE
+ CPU phi thc hin vic kim tra trng thi ngt theo thi gian nh k. Vic thit lp v kim
tra trng thi cc c ngt thng c x l t ng bi phn cng vi rt t hoc khng c s
tham gia ca CPU.
+ H thng phi kim tra xc nh xem yu cu ngt xut pht t u, v quyt nh c nn
cp CPU p ng yu cu ngt hay khng.
+ Xc nh v tr bn trong CPU, lu thng tin v nguyn nhn gy ra ngt.
+ Nu yu cu ngt cn c p ng, th CPU phi nhy n chng trnh hoc th tc phc v
ngt tng ng.
136
U
.V
ED
5.2.1. ng h ngt
TI
T.
ngn chn nhng ngi s dng chim c quyn h thng (ch ng hoc b ng), h iu
hnh s c cc c ch i li CPU. H iu hnh ci mt ng h ngt ngt cc hat ng
chim gi CPU trong mt thi gian xc nh. Khi CPU c trao cho mt tin trnh, tin trnh
c quyn iu khin CPU cho n khi n ch ng tr li CPU hoc khi ng h ngt thc hin
ngt. Nu ngi s dng vn cn ang thc thi chng trnh, v ng h ngt xy ra vic ngt
gi, th vic ngt ny s ly quyn x l v li cho h iu hnh. Sau h iu hnh s quyt
nh tin trnh no s c nhn CPU tip theo.
.P
5.2.2. a ngt
PE
137
B iu khin ngt X
ED
B iu khin ngt X
U
.V
Chng trnh
ngi dng
B iu khin ngt Y
T.
B iu khin ngt Y
TI
Chng trnh
ngi dng
(b) Tin hnh ngt lng (nested)
.P
PE
Cm cc ngt hat ng trong khi c mt ngt ang tin hnh. Ngha l CPU c th v s b qua
cc tn hiu yu cu ngt. Nu mt ngt xy ra trong thi gian ny th n s b treo v s c
kim tra sau khi b x l cho php ngt. Do , khi mt chng trnh ca ngi s dng ang
thc thi v mt ngt xy ra th cc ngt khc s b cm ngay lp tc. Sau khi th tc phc v ngt
hon tt th cc ngt c cho php trc khi ti kch hat chng trnh ca ngi s dng v b
x l s kim tra xem c ngt no xy ra na khng. Cch tip cn ny d v n gin v cc ngt
c iu khin theo mt th t nghim ngt. Minh ho trong hnh 5.4(a) cho ta thy cch x l
ngt trong h thng a ngt theo cch tip cn ny. Ngt X c phc v xong th mi ti lt
ngt Y c phc v.
Xc nh th t u tin cho cc ngt v cho php ngt c th t u tin thp hn t ngt. Ngha l,
trong khi mt ngt ang c phc v, nu c ngt khc xy n, th h thng phi tin hnh kim
tra th t yu tin ca cc ngt. Nu ngt ang c phc v c u tin cao hn th ngt n
sau s b b qua. Ngc li, nu ngt ang c phc v c u tin thp hn, th n phi thc
hin vic t ngt cho php ngt n sau thc hin trc. Minh ha trong hnh 5.4(b). Ngt A
138
ang c phc v, gi s ngt B n sau nhng c u tin cao hn ngt A, th ngt A phi t
ngt trao quyn iu khin CPU cho ngt B.
Tr li v d ban u, gi s mt h thng c ba thit b nhp/xut: mt my in, mt a, v mt
ng lin lc vi cc mc u tin tng dn tng ng l 2, 4, v 5. Hnh 5.5 m t mt chui cc
thao tc c th xy ra.
t=0
Phc v ngt
ca vic lin
Phc v ngt
ca my in
t = 15
t = 10
U
.V
Chng trnh
ngi dng
t = 25
ED
t = 40
T.
t = 25
TI
t = 35
Phc v ngt
ca a
.P
PE
Mt chng trnh ca ngi s dng bt u ti thi im t=0. Ti thi im t=10, mt ngt cho
my in xy ra; cc thng tin ca ngi s dng c lu trong ngn xp ca h thng v vic thc
thi vn tip tc ti th tc phc v ngt ca my in. Trong khi th tc ny vn ang thc thi th ti
thi im t=15 mt ngt lin lc xy ra. V ng lin lc c mc u tin cao hn my in nn vic
ngt cho n c u tin trc Th tc phc v ngt ca my in b ngt, trng thi ca n li c
a vo ngn xp v vic thc thi vn c tip tc vi th tc phc v ngt ca s lin lc.
Trong khi th tc ny ang thc thi th mt ngt cho a xy ra (t=20). V ngt ny c mc u tin
thp hn nn n phi ch v th tc phc v ngt ca vic lin lc vn hot ng cho n khi n
hon tt.
Khi th tc phc v ngt cho vic lin lc kt thc (t=25) th trng thi ca b x l trc c
khi phc (trng thi thc thi th tc phc v ngt ca my in). Tuy nhin, trc khi mt lnh
trong th tc c thc thi th b x l u tin cho vic ngt a c mc u tin cao hn v s
iu khin c chuyn cho th tc phc v ngt ca a. Ch khi th tc ny chm dt (t=35) th
th tc phc v ngt ca my in mi c ti kch hot. Khi th tc kt thc (t=40) th s iu
khin tr v chng trnh ca ngi s dng.
139
8088 c hai lnh chia (DIV v IDIV), chng cho php chia cc s 16 bit v 32 bit cho cc s 8 v
16 bit. Theo qui tc ton hc, th php chia cho 0 l khng hp l. Bi vy, 8088 cm cc php
chia c thng s l 0. Nu xut hin php chia cho 0, b b x l s gi ngt 00h thc hin
mt th tc x l tng ng (hin th thng bo Division by Zero).
Ngt 01h: thc hin tng lnh
U
.V
CPU gi ngt ny khi bit TRAP ca thanh ghi c bng 1. Ngt s c gi sau mi lnh my.
Ngt ny cho php ngi s dng theo di vic thc hin tng lnh ca mt chng trnh ngn
ng my. khng xy ra vic gi quy ngt ny, b x l s t bit TRAP bng 0 khi vo ngt
ny. N ct thanh ghi c vo ngn xp, c ngha l c bit TRAP.
T.
ED
Nu th tc x l ngt c kt thc bng lnh IRET, th thanh ghi c (cha bit TRAP) c t
ng khi phc t ngn xp. sau khi thc hin xong lnh tip theo, ngt 01h li c gi. sau khi
ngui lp trnh nhn thng tin v chng trnh, th bit TRAP c th b xa. Tuy nhin,
chng trnh ang c kim tra khng h bit rng n ang c thc hin tng lnh, v n
khng c lnh no xa bit TRAP trong thanh ghi c. Tuy nhin, ngt 01h rt t khi c s
dng bi chng trnh.
.P
TI
PE
Ngt ny c s dng trong cc chng trnh tin ch. Khc vi cc ngt khc, l cc ngt c
gi bi mt lnh my di 2 bytes, ngt ny c gi bi mt lnh my di 1 byte. Ngt ny rt
hu ch kim tra mt chng trnh chy ti mt im no . Ngt 03h dng vic chy chng
trnh, v cho php ngi s dng kim tra ni dung cc thanh ghi ca b x l.
Ngt 04h: Li trn
Ngt 08h -0Fh: Cc ngt ny do b iu khin ngt 8259 to ra. B iu khin ngt ny nhn tt
c cc yu cu ngt ca h thng. N xc nh mc u tin ca cc yu cu ngt. C n 8 ngun
sinh ngt (thit b) c th c ni ti 8259, mi thit b c gn mt mc u tin. Thng qua
cc bit ca thanh ghi c, CPU c th cm tt c cc ngt ca 8259 (tr ngt 02h v NMI).
140
U
.V
Ta cng c th cm ngt t mt thit b no , bng cch t bit ngt tng ng ca thanh ghi
che ngt thuc 8259 bng 1. Thanh ghi ny c truy nhp thng qua cng 21h. 8 bit ca thanh
ghi ny tung ng vi 8 thit b sinh ngt. Bit 0 tng ng vi thit b s 0, bit 7 tng ng vi
thit b s 7. Nu bit c gi tr 0, th CPU s nhn c ngt do thit b tng ng sinh ra. Nu
ngt bng 1, yu cu ngt s b b qua. Nu ng thi c nhiu yu cu ngt, yu cu ngt s 0 s
c mc u tin cao nht, yu cu ngt s 7 c mc u tin thp nht. Nu yu cu ngt mc cao
c x l xong, th yu cu ngt tip theo s c 8259 chuyn ti CPU. Hnh 6.14 m t cc
yu cu ngt ca cc thit b v mc u tin ca chng trn PC. Trong hnh ny, cc bit 2 v 5
khng c s dng. Bit 2 c s dng bi b iu khin ngt th hai (trong cc my AT). Bit 5
cha dng do trc y n c IBM dnh ring cho cng song song LPT2, nhng v c qu t
ngi dng s dng cng LPT2 nn IBM khng tip tc pht trin ngt ny na (tuy nhin, card
m thanh c th s s dng n). Do vy, sau ny trn cc dng my XT th bit 5 c dng
phc v cho ngt ca a cng.
Chiu tng ca mc u
7
ED
B iu khin ngt (a ch
B thi gian
Bn phm
TI
T.
COM 2
COM 1
a mm
My in song song
.P
PE
C sau 65.536 nhp tn hiu (khang 18,2 ln/giy), ngt 08h li c gi. b iu khin ngt
8259 s chuyn yu cu ngt ny ti CPU. V s xut hin ngt ny khng ph thuc tn s nhp
ca h thng, nn n c th dng o thi gian. Sau 18,2 ln gi ngt, th c ngha l tri qua
mt giy.
Ngt 09h: ngt bn phm (bit 1)
141
U
.V
Vic nh ngha cc bit cu thanh ghi che ngt l khc nhau, ty loi PC. C th coi rng, thit b
tng ng bit 0 ca thanh ghi she ngt s gi ngt 08h. Thit b tng ng bit 1 s gi ngt 09h
Ngt 0Fh, ngt cui cng ca 8259, s c kch hat bi thit b tng ng bit 7 ca thanh ghi
che ngt. Tng qut, 8 ngt trn c cc k hiu l IRQ0, IRQ1, IRQ c ngha l Interupt
Request (yu cu ngt).
5.3.2. Cc b iu khin ngt ca my AT
ED
.P
TI
T.
Ta cng c th che cc yu cu ngt ca b iu khin ngt th hai, bng cch thao tc cc bit ca
thanh ghi che ngt thuc 8259 th hai. Thanh ghi ny c a ch cng A0h. ta phi gi lnh EOI
ti c hai b iu khin ngt sau khi kt thc vic x l mt yu cu ngt ca b iu khin ngt
th hai. l v hai b iu khin ny c ni vi nhau, mi yu cu ngt ca b th hai u
lm xut hin yu cu ngt s 2 ca b th nht. Cc hnh sau y cho thy cc yu cu ngt ca
cc thit b v mc u tin ca chng.
Chiu tng ca mc u
6
0
B iu khin ngt (a ch
PE
ng x l ton hc
Thi gian thc
Chiu tng ca mc u
Hnh 5.7. Cc yu cu ngt v mc yu tin trn my AT
5.3.3. Cc ngt ca AT
V c thm b x l ngt th hai, nn AT c nhiuu ngt cng hn PC v XT. B iu khin ngt
th hai c th gi cc ngt t 70h ti 77h. Thit b tng ng yu cu ngt s 0 s gi ngt 70h,
thit b tng ng yu cu ngt s 1 gi ngt 71h,
142
Ngt 75h thng bo cho CPU bit l b ng x l ton hc yu cu phc v (th d, n thc
hin xong mt php tnh no ).
U
.V
TM TT
ED
Trong lnh vc cng ngh thng tin, khi nim b x l (processor) thng c gi l n v x
l trung tm (CPU-Central Processing Unit). CPU l mt thnh phn bn trong my tnh thc hin
cng vic bin dch cc ch th ca my tnh v x l cc d liu bn trong cc chng trnh. Cng
vi n v lu tr chnh, thit b nhp/xut, CPU l thnh phn c bn nht khng th thiu trong
bt k h thng my tnh no.
.P
TI
T.
tng tc cho mt h thng my tnh, ngoi vic s dng nhiu CPU, cn c mt gii php
khc hyper threading (siu phn lung). Vi k thut ny, h iu hnh s nhn thy mt
processor vt l thnh hai processor logic. Processor vt l l mt thnh phn phn cng thc s,
thc hin cc thao tc do h iu hnh v cc chng trnh ang thc thi trn my tnh ra lnh.
Trong khi , processor logic c to ra bi cc chng trnh, ti nguyn h iu hnh, hoc l
s m phng ca processor vt l. Mt l do khc to ra processor logic l tn dng ti a
ngun ti nguyn bn trong b x l ng thi cho php thc hin tnh ton cho nhiu tiu trnh
hn trong cng mt thi im.
CU HI V BI TP
PE
2. K thut siu phn lung v Dual core c tng t nhau khng? Hy phn bit bn cht ca
chng.
3. Ti sao ngt c xem l mc iu khin cao nht trong mt b x l?
4. nh ngha v phn loi mt vi loi ngt cng, ngt mm. Ch ra mc ch ca ngt mm.
[1]. Gary J. Nutt, University of Colorado. Centralized And Distributed Operating Systems.
Second Edition, 2000.
[2]. Robert Switzer. Operating Systems, A Practical Approach. Prentice-Hall International, Inc.
1993.
[3]. Andrew S. Tanenbaum. Modern Operating Systems. Prentice-Hall International, Inc. Second
Edition, 2001.
143
CHNG 6
H IU HNH NHIU B VI X L
Chng H IU HNH NHIU B VI X L" s gii thiu v gii thch cc vn sau:
6.1 Cu hnh nhiu processor
6.2 Cc loi h iu hnh h tr nhiu b vi x l
6.3 ng b trong h thng a x l
U
.V
ED
T.
+ a x l phn tn.
PE
.P
TI
i vi m hnh th nht, cc CPU truyn thng vi nhau thc hin mt hoc mt s cng vic
no thng qua vic s dng chung mt b nh (b nh chia s). Trong m hnh ny, cc CPU
u c quyn nh nhau truy xut vo b nh vt l. i vi m hnh th hai, h thng gm
nhiu cp CPU-b nh c kt ni vi nhau thng qua cc ng kt ni tc cao. Trong m
hnh ny, b nh l cc b i vi mi CPU v ch c th c truy xut bi CPU . Cn trong
m hnh th ba, h thng cng gm nhiu cp CPU-b nh, nhng chng kt ni vi nhau thng
qua mng din rng, chng hn nh Internet, v hnh thnh nn mt h thng phn tn. Trong m
hnh ny, vic truyn thng gia cc cp CPU-b nh ny cng s dng cch chuyn thng ip
(message passing), ging nh trong m hnh th hai. Tuy nhin, s khc nhau gia hai h thng
ny l tr. tr truyn thng ip gia cc cp CPU-b nh trong m hnh th hai l
thp hn rt nhiu so vi tr trong m hnh th 3.
144
hnh dng trong h thng a x l. Chng hn nh: vic qun l ti nguyn, vic ng b tin
trnh, cng nh vic iu phi tin trnh trong nhiu b x l khc nhau.
Trong gii hn ca gio trnh ny, chng ti ch cung cp cho bn c chi tit v cu hnh phn
cng cng nh cc vn lin quan v h iu hnh cho h thng a x l dng b nh chia s.
Phn tng t cho hai h thng cn li, bn c c th tham kho thm trong cc ti liu khc v
h iu hnh khc.
U
.V
.P
TI
T.
ED
Hnh 6.1: Cc h thng a x l dng m hnh Bus: (a) Khng c cache. (b) C cache. (c) C
cache v cc b nh ring.
PE
Cn nu bus bn khi mt CPU mun c hoc ghi b nh, CPU phi i n khi bus tr v trng
thi ri. i vi h thng c 2 hoc 3 CPU, vic cnh tranh bus l c th qun l c. Tuy nhin
nu h thng c s lng CPU ln hn (v d 32, hoc 64 CPU), iu ny l khng th. H thng
b hn ch hon ton bi bng thng cho php ca bus, v v vy hu ht cc CPU s ri trong
phn ln thi gian.
Gii php cho vn ny l thm b nh cache cho mi CPU nh ch ra trong hnh 6-1(b). B
nh cache c th nm bn trong chip ca CPU, nm k bn, nm trn bo mch ca CPU, hoc
c kt hp t cc cch trn. iu ny thc s lm gim bt ti cho bus chung. V v vy h
thng c th h tr nhiu CPU hn. Ni chung, caching khng thc hin trn mt n v nh
ring no, m n da trn khi cc byte (thng l cc khi 32-byte hoc 64-byte). Khi mt t
nh c tham chiu n, th ton b khi (block) cha t nh s c np vo trong cache
ca CPU yu cu.
145
Mi block d liu trong cache hoc l read-only (trong trng hp n hin din trong nhiu cache
cng mt thi im), hoc l read-write (trong trng hp n khng hin din trong cc cache
khc). Nu mt CPU c gng ghi mt t nh ang hin din bn trong mt hoc mt vi cache
khc, mt tn hiu s c phn cng pht ln trn bus thng bo cho cc cache khc bit vic
ghi ny. Nu cc cache ny c mt bn sao (ging nh bn gc trong b nh), th chng s ch
hy b nhng bn sao ny v cho php CPU np block d liu t b nh vo cache. i vi mt
vi cache c mt bn sao c thay i, th n phi hoc l c ghi ngc li ra b nh trc
khi vic ghi c thc hin, hoc c truyn trc tip n CPU c nhu cu ghi thng qua bus.
U
.V
Mt kh nng khc c th c thit k nh trong hnh 6-1(c). Trong m hnh ny, mi CPU
khng ch c cache m cn c b nh ring c truy xut thng qua mt bus ring. s dng
ti u cu hnh ny, trnh bin dch nn t tt c cc chng trnh text, chui, hng s v nhng
d liu ch c, ngn xp, v cc bin cc b vo trong cc b nh ring ny. B nh chia s dng
chung ch c s dng cho cc bin chia s. Trong hu ht cc trng hp, vic lm ny s gim
ng k lu lng cho bus chung, tuy nhin iu ny cng i hi s tch cc hp tc t trnh
bin dch.
ED
6.1.2. H thng a x l UMA dng m hnh chuyn mch cho (Crossbar Switch)
.P
TI
T.
Ngay c khi h thng c h tr nhiu CPU vi b nh cache, th vic s dng mt tuyn bus
duy nht cng ch cho php ti a 16 hoc 32 CPU trong mt h thng a x l UMA. Nhm
nng cao hn na kh nng p ng cho h thng, cn thay i cch kt ni cc CPU. Mt cch
kt ni n gin gia n CPU v k b nh hnh thnh mt m hnh kt ni cho c th hin
trong hnh 6-2. M hnh ny c ng dng cch y nhiu thp k trong cc tng i chuyn
mch in thoi kt ni mt nhm cc line vo v mt tp cc line ra. Trng thi ca mi giao
im (crosspoint), im giao nhau gia ng ngang (line vo) v ng dc (line ra), l ng
hay m ty thuc vo trng thi kt ni hay khng kt ni ca ng ngang v ng dc ny.
Trong hnh 6-2(a), 3 crosspoint ng ng thi, cho php 3 kt ni gia CPU v b nh c
hnh thnh cng lc. l cc cp (001, 000), (101, 101), v (110, 010). ng nhin l nhiu s
kt hp khc cng u c kh nng nh vy. M hnh ny c th h tr ti a nxk s kt hp c
th c gia n CPU v k b nh.
PE
146
N
U
.V
ED
Hnh 6.2. (a) Chuyn mch cho 8x8. (b) Giao im m. (c) Giao im ng.
T.
6.1.3. H thng a x l UMA dng m hnh mng chuyn mch a tng (Multistage
Switching Network)
PE
.P
TI
Mt thit k hon ton khc cho h thng a x l da trn chuyn mch 2x2 c trnh by trong
hnh 6-3(a). Chuyn mch ny c 2 ng vo v 2 ng ra. Cc message c th n bt k mt trong
hai ng vo v c chuyn ra theo mt trong hai ng ra. Theo , mi message s gm 4 phn,
nh trong hnh 6-3(b). Trong hnh ny, trng Module cho bit vng nh no c s dng.
Trng Address cho bit a ch no trong vng nh . Trng Opcode cho bit hat ng g s
c thc hin (c (READ) hay ghi (WRITE)). V trng Value l trng ty chn, cho bit
ton hng no s c dng vo vic c hoc ghi (chng hn nh mt t 32-bit s c c hoc
ghi). Chuyn mch (switch) s kim tra trng Module v dng n xc nh xem message nn
i ra ng no, X hay Y.
147
N
U
.V
ED
Xt mng chuyn mch Omega nh trong hnh 6-4, gi s CPU 011 mun c mt t nh (word)
t b nh 110. CPU gi message READ n chuyn mch 1D cha gi tr 110 trong trng
Module. Switch ly bit u tin (bn tri nht) ca 110 v dng n cho vic nh tuyn. Nu bit
ny c gi tr 0, switch s chn ln ng ra pha trn, ngc li, nu bit ny c gi tr 1, th switch
s chn tuyn bn di. Nh vy, trong trng hp ny, bit u tin c gi tr 1, nn message
c a n ng ra bn di i n switch 2D.
TI
T.
Tt c cc switch tng th 2, bao gm switch 2D, bit th 2 (t tri sang) s c dng vo vic
nh tuyn. V trong trng hp ny, bit th 2 c gi tr 1, nn message cng c chuyn n
ng ra bn di n switch 3D. Ti y, bit th 3 t tri sang s c kim tra, v v n mang gi
tr 0 nn message s c chuyn n ng ra bn trn v i n b nh 110. Kt qu l message s
i theo con ng c nh du bng k t a trong hnh 6-4.
PE
.P
Gi s ti cng thi im din ra nhng vic trn, CPU 001 mun ghi mt word n b nh 001.
Mt tin tnh tng t nh vy cng xy ra, , message c nh tuyn thng qua cc cng
theo th t nh sau: message n ng vo trn ca switch 1B v i ra ng ra trn ca 1B, sau
n switch 2C, v i ra ng ra trn ca 2C n switch 3A, sau cng th message s i ra
ng ra di ca switch 3A n b nh 001. Kt qu l message s i theo con ng c
nh du bng k t b trong hnh 6-4. Bi v 2 yu cu ny s dng cc switch, kt ni v b nh
khc nhau, nn khng xy ra bt k s ng no, chng c th thc hin cng vic mt cch
ng thi.
148
U
.V
.P
TI
T.
ED
Khi thi gian truy xut b nh xa c s khc bit ln so vi thi gian truy xut b nh cc b
(bi v khng c c ch caching) th h thng c gi l NC-NUMA (NonCaching NUMA).
Ngc li, khi c cc b nh cache, th h thng c gi l CC-NUMA (Cache Coherent
NUMA).
PE
Hnh 6.4. (a) H thng a x l s dng Directory 256 node. (b) Phn chia a ch nh 32-bit
thnh cc trng. (c) Cu trc Directory ca node 36.
Cch tip cn ph bin nht xy dng mt h thng a x l CC-NUMA hin nay l s dng
mt c s d liu lu v tr ca cc khi cache v trng thi ca chng. Khi mt khi cache
c tham chiu, c s d liu c yu cu c truy vn tm ra v tr v trng thi ca n l
nguyn bn hay b sa i. V c s d liu ny phi c truy vn bi mi ch th lnh tham
chiu n b nh, nn n phi c lu gi trong mt thit b phn cng c bit h tr tc
truy xut cc nhanh.
149
cho node 1 Cc node c kt ni vi nhau nh trong hnh 6-5(a). Ngoi ra, mi node cng
lu gi cc thc th (entry) trong th mc (directory) cho 218 khi cache 64-byte (hnh thnh b
nh 224 byte) tng ng.
thy r c ch lm vic ca h thng ny, thc hin theo vt lnh LOAD t CPU 20 nh sau.
u tin, CPU s pht ch th lnh n n v qun l b nh ca n (MMU), n v ny s
chuyn ch th lnh sang mt a ch vt l (gi s l 0x24000108). MMU tip tc chia a ch
ny thnh 3 phn nh trong hnh 6-5(b). Gi s 3 phn ny ln lt c gi tr l node 36, khi
cache 4 v offset 8. Nh vy, MMU nhn thy rng, word c tham chiu l t node 36, khng
phi node 20, do vy n gi mt message yu cu n node 36, l node qun l khi cache 4, hi
xem khi 4 c c cache hay khng, nu c th n c cache u.
U
.V
ED
T.
TI
Trong phn ny chng ta chuyn t phn cng sang tm hiu v phn mm, c th l chng ta s
tm hiu v cc h iu hnh h tr cho cc h thng c nhiu b x l. C rt nhiu loi, tuy
nhin, y chng ta s tm hiu 3 trong s cc loi .
PE
.P
Hnh 6.5. Phn chia b nh cho cc CPU trong h thng a x l, nhng cng chia s chung tp
lnh ca h iu hnh. D liu cng c lu tr ring cho tng CPU.
150
cho php cc CPU chia s code ca h iu hnh trong khi d liu th c lu tr ring ti cc
vng nh dnh ring cho chng.
U
.V
ED
.P
TI
T.
PE
151
U
.V
ED
T.
PE
.P
TI
M hnh ny lm cn bng qu trnh x l v phn phi b nh mt cch linh hot trong h thng
v n ch h tr duy nht mt tp cc bng ca h iu hnh trn cng mt phn cng. Ngoi ra,
n cn loi b c vn nghn c chai trong m hnh ch-t v n khng c CPU no ng
vai tr ch trong h thng c. Tuy nhin n vn c vn ca ring n. Nu c hai hoc nhiu
CPU ang thc thi cng lc cc on code ca h iu hnh, vn nghim trng s xy ra. iu
g s xy ra nu c hai CPU chn cng tin trnh thc thi v yu cu cng trang nh ri? Cch
152
n gin nht gii quyt vn ny l s dng bin mutex cho php khi no th mt CPU
c i vo min gng thc thi tin trnh v s dng trang nh m n cn. Khi mt CPU mun
thc thi on code ca h iu hnh, trc tin n phi ginh c mutex. Nu mutex b kha, n
phi i. Theo cch ny, bt k CPU no cng c th thc thi code ca h iu hnh, nhng ch
ti mt thi im ch c mt CPU c thc thi.
U
.V
Tuy nhin hiu sut thc hin ca m hnh ny cng khng kh hn m hnh ch-t nhiu. Gi
s rng 10% tng thi gian c dnh cho h iu hnh x l tng tranh, nu h thng h tr 20
CPU th cn phi c mt hng i CPU kh di cc CPU ln lt c phc v. Tuy th, trong
m hnh ny, iu ny c ci thin d dng hn. V rng, nhiu phn trong mt h iu hnh l
c lp vi mt vi phn khc. Chng hn nh, s chng c vn g nu mt CPU ang thc thi
vic iu phi trong khi mt CPU th hai khc ang gii quyt mt li gi h thng v tp tin v
mt CPU th ba th li ang x l vn li trang.
ED
T nhn xt ny, chng ta thy r rng h thng c th c chia thnh nhiu min gng c lp,
cc min gng ny khng thc hin bt k mt s tng tc no vi nhau. Mi min gng c
bo v bi mt bin mutex ca n, v nh vy ch c mt CPU c th thc thi code ca h iu
hnh ti mt thi im. Tng t nh trong trng hp mt bng no trong h iu hnh c
th c s dng bi nhiu min gng, v mi bng nh th cng cn c mt bin mutex ca
chnh n qun l vic tng tranh. Theo cch ny, mi min gng c th c thc thi bi mt
CPU ti mt thi im v mi bng (c bo v bi min gng) cng c th c truy xut ch
bi mt CPU mt thi im.
.P
TI
T.
PE
Ngoi ra, vn kha cht (deadlocks) cng phi c quan tm. Nu c hai min gng u cn
dng bng A v bng B, v mt trong hai min gng ny yu cu bng A trc trong khi min
gng kia li yu cu bng B trc. V vy, trc sau g th deadlock cng s xy ra v khng min
gng no bit c l do ti sao. Theo l thuyt th tt c cc bng nn c gn cc gi tr
nguyn, v cc min gng cng cn ginh c cc bng theo th t tng dn. Chin lc ny s
trnh deadlocks nhng n i hi ngi lp trnh phi suy ngh rt cn thn chn ra bng no
m mi min gng cn ginh c theo ng th t. Khi code c pht trin sau mt thi
gian thc thi, mt min gng c th cn mt bng mi m n cha bao gi cn trc y. Nu
mt lp trnh vin cha c kinh nghim v cha hiu r v hat ng logic ca h thng th s d
dng thc hin vic chn ra mt mutex cho bng m min gng cn v sau gii phng n i khi
khng cn cn n na. iu ny d dn n deadlocks. V vy, vic s dng bin mutex
khng d th vic gi n lm vic ng trong sut qu trnh hat ng ca h thng l iu cc
hn i vi cc lp trnh vin.
153
U
.V
T.
ED
Phn chnh ca mt giao thc dng bin mutex l mt ch th lnh. Ch th ny cho php mt t
nh c kim tra v thit t li gi tr. Chng ta thy cch m giao thc TSL (Test and Set
Lock) c s dng trong chng 3 ci t cc min gng nh th no. Nh chng ta thy
trc y, nhng g m mt ch th lm l c mt t nh ra v ghi n vo mt thanh ghi.
ng thi, n ghi mt gi tr 1 (hoc mt gi tr khc 0 no ) vo t nh. Tt nhin, n phi tn
hai vng truy xut bus ring bit thc hin vic c v ghi b nh. Trn mt h thng c mt
b x l, min l mt ch th khng b ngt gia chng, giao thc TSL lun lm vic ng chc
nng ca n.
PE
.P
TI
Hnh 6.8: Ch th lnh TSL c th b li nu Bus khng th b kha. Bn bc trong hnh minh
ha dy cc s kin gy ra li.
ngn chn vn ny, ch th TSL u tin phi kha bus, ngn chn cc CPU khc truy xut
bus. Sau mi cho php c hai CPU truy xut n b nh. V sau cng mi gii phng bus. Ch
th ny ch c th c ci t trn mt bus c h tr giao thc phn cng c bit. Cc bus hin
154
T.
ED
U
.V
Thong qua, ta c th ngh rng nu dng c ch caching s gii quyt c vn tranh ginh
bus, nhng thc s l khng. V l thuyt, khi CPU cn c gi tr ca bin lock, n nn c mt
bn sao trong cache ca mnh. Min l khng c CPU no khc c gng s dng lock, CPU s
loi b ht cache ca n. Khi CPU s hu lock ghi gi tr 1 vo, c ch caching s t ng v
hiu tt c cc bn sao ca CPU trong cc cache xa, v cc cache ny s np li mt gi tr
hp l mi. Nhng vn l ch, cache lm vic vi cc block 32 hoc 64 byte. Thng thng,
cc t nh xung quanh lock l rt cn cho CPU ang nm gi lock . V ch th TSL l mt lnh
ghi, nn n cn thc hin truy xut c chn lc n khi cache ang cha lock . Bi vy, mi
ch th TSL u lm v hiu khi cache bn trong cache ca CPU ang lu gi lock v ly ra
mt bn sao ring c chn lc cho tng yu cu ca CPU. Ngay khi CPU ang lu gi lock truy
xut n mt t nh k bn lock , khi cache c chuyn n CPU . Kt qu l, ton b
khi cache cha lock c chuyn qua li lin tc gia CPU gi lock v CPU yu cu lock, to
ra nhiu lu lng bus hn vic c mt bin lock bnh thng.
PE
.P
TI
Mt cch khc gim lu lng bus l s dng gii thut Ethernet binary exponential backoff do
Anderson a ra nm 1990. Thay v phi thm d lin tc, mt vng lp tr (delay loop) s c
thm vo gia cc bin thm d. Ban u, delay l mt ch th lnh. Nu lock vn bn, delay c
nhn i thnh hai ch th lnh, sau l 4 ch th lnh n mt con s ti a no . Nu gi
tr ti a ny thp s cho php thc hin hi p nhanh khi lock c gii phng, nhng n li lm
lng ph nhiu vng bus trong vn cache thrashing. Cn nu gi tr ti a ny cao th s lm
gim cache thrashing nhng vic thng tin v trng thi lock b chm i. Binary Exponential
Backoff c th c s dng trong c hai trng hp c hoc khng c cc ch th c kim tra
trc ch th TSL thc s.
Mt tng hay hn l cho php mi CPU chim ly mt mutex (bin lock ring ca n)
kim tra nh minh ha trong hnh 6-10. Bin lock ny nn nm trong mt khi cache cha s
155
ED
U
.V
dng trnh xung t. Khi CPU ang gi lock that ra khi min gng, n gii phng bin lock
ring m CPU u tin trn danh sch ang kim tra (trn cache ca n). CPU ny sau i vo
min gng. Khi n c thc thi, n gii phng lock m CPU trc n s dng ... Mc d giao
thc ny l tng i phc tp ( trnh vic hai CPU cng ng thi gn chng vo cui danh
sch), n tht s l giao thc hiu qu v gii quyt c vn i ti nguyn.
TI
T.
PE
.P
Mt yu t phc tp khc l trong nhiu h thng, cc tin trnh khng lin quan g vi nhau trong
khi cc tin trnh khc li thuc cng mt nhm. Mt v d cho trng hp u l h thng chia s
thi gian, , cc user khi to cc tin trnh mt cch c lp. Cc tin trnh khng lin quan g
vi nhau v mi tin trnh c th c iu phi m khng cn quan tm n cc tin trnh khc.
Mt v d cho trng hp th 2 thng xut hin trong cc mi trng pht trin phn mm. Cc
h thng ln thng bao gm nhiu tp tin header, bao gm tp tin macro, tp tin nh ngha, v
tp tin khai bo cc bin. Cc tp tin ny s c s dng trong cc tp tin chnh ca chng
trnh. Khi mt tp tin header thay i, tt c cc tp tin chnh c dng tp tin header ny phi c
bin dch li. Th d, chng trnh make thng c s dng qun l nhng vic dng ny.
Khi make c gi, n bt u kt hp ch nhng tp tin chnh, nhng tp tin ny l cn thit phi
c bin dch li do nhng thay i ca tp tin header m chng s dng. Phin bn c ca make
lm vic mt cch tun t, nhng phin bn mi c thit k cho h iu hnh c nhiu b x l
c th bt u cc cng vic bin dch ti cng mt lc. Nu c 10 cng vic cn bin dch, n
phi thc hin nhm cc tin trnh ny li v thc hin iu phi chng mt cch ng thi.
6.4.1. iu phi theo phng php chia s thi gian (Time sharing)
u tin, hy tm hiu vic iu phi trong trng hp cc tin trnh c lp nhau. Gii thut iu
phi n gin nht gii quyt cc tin trnh (hoc tiu trnh) c lp nhau l dng mt cu trc
d liu cho ton h thng cho cc tin trnh sn sng, c th l mt danh sch, nhng c th l mt
tp cc danh sch cho cc tin trnh vi cc u tin khc nhau nh c ch ra trong hnh 7-
156
ED
U
.V
11(a). y, 16 CPU hin ang trng thi bn, v mt tp c u tin gm 14 tin trnh ang
i chy. CPU u tin phi kt thc cng vic hin ti ca n (hoc tin trnh ca n phi b
kha) l CPU 4. Sau CPU ny kha cc hng i iu phi v chn tin trnh c u tin cao
nht, A, nh ch ra trong hnh 7-11(b). Tip theo, CPU 12 i vo trng thi ri v chn tin trnh
B, nh minh ha trong hnh 7-11(c). Min l cc tin trnh hon tan c lp nhau, th vic iu
phi theo kiu ny l mt chn la hp l.
T.
Hnh 6.10. S dng mt cu trc d liu duy nht thc hin qa trnh iu phi cho h thng
a x l.
.P
TI
PE
Mt vn khc cng ng mt vai tr quan trng trong iu phi l trong khi hu ht cc CPU
c nng lc nh nhau, th mt vi CPU li c nng lc cao hn. c bit, khi tin trnh A thc
thi trong mt thi gian di trn CPU k, cache ca CPU k s cha y cc block ca A. Nu A tin
hnh thc thi tr li lin, n c th s thc hin tt hn nu chy vi CPU k. C nhiu block c
np trc ln cache s gip h thng p ng nhanh hn cho tng tin trnh. Nh vy, TLB c th
cng cha cc trang ng, gim thiu cc lai li TLB.
157
6.4.2. iu phi theo phng php chia s khng gian (Space Sharing)
Mt cch tip cn ph bin khc cho vn iu phi trn h thng a x l khi cc tin trnh c
lin quan vi nhau theo mt cch no l space sharing. Chng hn chng trnh make trong v
d trn cng l mt trng hp. Hoc nh, mt cng vic gm nhiu tin trnh lin quan vi nhau,
hoc mt tin trnh gm nhiu tiu trnh lm nhng vic tng t nhau. Vic iu phi cho nhiu
tiu trnh cng thi im cho nhiu CPU gi l space sharing.
.P
TI
T.
ED
U
.V
Thut tan space sharing n gin nht lm vic nh sau. Gi s tt c cc tiu trnh thuc cng
mt nhm c to ti cng mt thi im. Vo lc chng c to, b iu phi kim tra xem c
nhiu CPU ri cho cc tiu trnh ny khng! Nu c, mi tiu trnh c cp cho mt CPU tng
ng v tt c u bt u. Nu khng CPU, khng c tiu trnh no c thc hin v chng
phi i cho n khi c CPU cho mi tiu trnh. Mi tiu trnh s nm gi CPU ca n cho n
khi kt thc. Nu mt tiu trnh b kha do ch thao tc nhp/xut, n vn tip tc gi CPU cho
n khi tiu trnh quay tr li. Khi c mt nhm cc tiu trnh khc xut hin, thut tan c lp
li. Tp cc CPU c chia c nh thnh cc nhm (partition), mi nhm thc thi cc tiu trnh
ca cng mt tin trnh. Trong hnh 7-12, c cc nhm gm 4, 6, 8, 12 CPU v 2 CPU cha c
gn. Sau mt thi gian thc thi, kch thc ca mi nhm s thay i do mt vi tin trnh kt
thc v cc tin trnh khc pht sinh.
PE
158
TI
T.
ED
U
.V
tm hiu vn g xy ra khi cc tiu trnh ca mt tin trnh (hoc cc tin trnh ca mt cng
vic) c iu phi c lp, xt mt h thng vi cc tiu trnh A0 v A1 thuc cng tin trnh A
v cc tiu trnh B0 v B1 thuc cng tin trnh B. Cc tiu trnh A0 v B0 c chia s thi gian
trn CPU 0; tiu trnh A1 v B1 c chia s thi gian trn CPU 1. Cc tiu trnh A0 v A1 cn
truyn thng thng xuyn. Gi s A0 gi cho A1 mt message, sau A1 gi ngc li cho A0
mt hi p, cng vic ny din ra lp i lp li. Gi s rng A0 v B1 bt u trc nh c ch
ra trong hnh 7-13.
.P
Hnh 6.12. Truyn thng gia hai tiu trnh ca cng mt tin trnh A
PE
Trong khe thi gian 0 (0 ms), A0 gi cho A1 mt yu cu (request), nhng A1 khng th nhn
c cho n khi n chy khe thi gian 1 (100ms). N gi hi p (reply) ngay lp tc, nhng
A0 khng nhn c hi p ny lin n khi n chy li 200 ms sau . Kt qu l mt cp
request/reply s c hon thnh trong vng 200 ms. Cch tip cn ny r rng l khng hiu qu.
Gii php cho vn ny l gang scheduling. C ch iu phi ny gm ba phn:
Cc tiu trnh lin quan c iu phi nh l mt nhm.
Tt c cc thnh vin ca mt nhm thc thi ng thi, trn cc CPU chia s thi gian.
159
ED
U
.V
.P
TM TT
TI
T.
tng ca gang scheduling l cho tt c cc tiu trnh ca mt tin trnh chy cng nhau, nu
mt trong chng gi yu cu cho mt tiu trnh khc, n s nhn c gn nh l lp tc v c th
hi p tr li cng hu nh tc thi. Trong hnh 7-14, v tt c cc tiu trnh thuc tin trnh A
ang chy cng nhau, trong cng mt quantum, nn chng c th gi v nhn mt s lng rt
ln cc message trong cng quantum , v v vy n loi b c vn ch ra trong hnh 613.
PE
+ a x l dng b nh ring.
+ a x l phn tn.
CU HI V BI TP
1. Phn bit gia a chng v a x l. Cc loi cu hnh a x l: dng b nh chia s, dng b
nh ring, h thng phn tn.
2. Cc cu hnh phn cng ca mt h thng c nhiu b x l: UMA dng bus, UMA dng
crossbar switch, UMA dng multistage switch network.
160
U
.V
10. Cc phng php iu phi trong h thng a x l: chia s thi gian, chia s khng gian,
gang scheduling. nh gi tng phng php.
11. Trong mt h thng c nhiu b x l, nu c hai CPU c gng truy xut cng mt t nh vo
cng mt thi im. iu g s xy ra?
T.
ED
12. Trn mt h thng my tnh hot ng vi tc 200 MIPS (triu lnh trn giy). Gi s,
trong mi lnh, mt CPU u c nhu cu truy xut b nh. V mi tham chiu n b nh yu
cu mt vng truy xut bus. Vy, s cn bao nhiu CPU tiu tn ton b 400MHz bus. Cu hi
tng t nhng trong trng hp c s dng c ch caching, vi t l thnh cng (ti l m cc t
nh tham chiu n tn ti trong cache) ca cc cache l 90%. Nu h thng cn cho php 32
CPU cng chia s bus (nhng khng lm qu ti bus), th t l thnh cng s l bao nhiu?
TI
13. Xt m hnh mng Omega nh trong hnh 6-5, nu ng ni gia switch 2A v switch 3B b
t. Vy th nhng CPU no s b ngt tham chiu n cc b nh no?
.P
14. Trong m hnh Ch-T (tham kho hnh 6-7), vic x l tn hiu c thc hin nh th
no? (v d nh c mt tn hiu c to ra t bn phm).
15. Trong m hnh i xng (tham kho hnh 6-8), khi mt li gi h thng c sinh ra, mt vn
phi c gii quyt ngay sau khi trap xy ra (iu ny khng xy ra trong h m hnh cht). Bn cht ca vn l g? N c gii quyt th no?
16. Ti sao vn ng b l thc s cn thit trong h thng c nhiu b x l?
PE
18. Khi ch th lnh TSL c s dng cho vic ng b trong h thng c nhiu b x l, khi
cache ang gi bin mutex s chuyn i chuyn v gia CPU gi lock v CPU yu cu lock nu
c hai ang tham chiu n block . gim lu lng bus, CPU yu cu lock s thc thi mt
ch th lnh TSL trong 50 vng bus, cn CPU gi lock lun tham chiu n khi cache gia 2 ch
th lnh lin tip. Nu mt khi cache gm 16 t nh 32-bit, mi t nh yu cu mt vng bus
truyn, v bus hat ng tc 400 MHz. T l phn trm ca bng thng bus b lng ph do
vic duy chuyn khi cache ti lui l bao nhiu?
161
20. Gi s rng ch th lnh TSL khng cn c s dng cho vic ng b trong h thng c
nhiu b x l na. Thay vo , mt ch th lnh khc gi l SWP s c s dng, ch th ny t
ng trao i qua li ni dung ca thanh ghi vi t nh trong b nh. Vy, ch th SWP ny c th
c s dng thc hin ng b cho h thng a x l khng? Nu c, n c s dng nh
th no? Nu khng, v sao?
21. Gi s rng mi ch th lnh c thc thi bi CPU tn 5 nsec. Sau khi mt ch th lnh kt
thc, bt k vng bus no (cn cho TSL) cng u c thc hin. Mi vng bus tn thm 10
nsec. Nu mt tin trnh c gng i vo min gng s dng TSL loop, t l phn trm ca bng
thng bus b tiu hao s l bao nhiu? Gi s rng c ch caching vn hot ng bnh thng
cho php vic np ch th lnh bn trong loop khng tn vng bus no.
U
.V
22. C ch Affinity Scheduling lm gim cache miss (t nh cn tham chiu khng c sn trong
cache). Vy n c gim TLB miss khng? V cc li trang th th no?
ED
[1]. Gary J. Nutt, University of Colorado. Centralized And Distributed Operating Systems.
Second Edition, 2000.
[2]. Robert Switzer. Operating Systems, A Practical Approach. Prentice-Hall International, Inc.
1993.
T.
[3]. Andrew S. Tanenbaum. Modern Operating Systems. Prentice-Hall International, Inc. Second
Edition, 2001.
TI
[4]. Abraham Silberschatz & Peter Baer Galvin. Operating System concepts. John Wiley & Sons,
Inc. Fifth Edition, 1999.
[5]. H. M. Deitel. Operating Systems. Addison-Wesley Inc. Second Edition, 1999.
PE
.P
[6]. Trn Hnh Nhi & L Khc Nhin n & Hong Kim. Gio trnh h iu hnh (tp 1 & 2).
HKHTN 2000.
162
HNG DN CU HI V BI TP
CHNG 1: GII THIU V H IU HNH
1. Mc ch chung ca h iu hnh
Gip ngi dng s dng my tnh n gin, hiu qu.
U
.V
Phn cng, h iu hnh, chng trnh ng dng/chng trnh h thng, ngi s dng
3. Cc thnh phn c bn ca h iu hnh
ED
4. Cc loi h iu hnh
T.
Ging nhau: ti mt thi im c th c nhiu cng vic trong b nh, s dng chung mt CPU
Khc nhau:
TI
a chng: vic chuyn i cng vic xy ra khi cng vic ang thc thi c yu cu nhp/xut.
.P
a nhim: vic chuyn i cng vic xy ra khi cng vic ang thc thi ht thi gian qui nh s
dng CPU hoc c yu cu nhp/xut.
6. Cc vn m h iu hnh a chng/a nhim cn gii quyt
PE
a nhim: cc cng vic dng chung mt CPU, cc cng vic s thc hin lun phin, khng
ng thi.
a x l: my tnh c nhiu CPU, mi CPU s thc hin mt cng vic, cc cng vic s thc s
din ra ng thi.
8. Nu cc u im chnh ca h iu hnh a x l
+ S hng hc ca mt b x l s khng nh hng n ton b h thng.
+ H thng s thc hin rt nhanh do thc hin cc cng vic ng thi trn cc b x l khc
nhau, vic lin lc gia cc cng vic rt d dng bng cch s dng b nh dng chung.
163
9. Nu cc loi h thng a x l
C hai loi h thng a x l:
+ H thng a x l i xng (Symmetric MultiProcessing (SMP)): mi b x l chy vi mt
bn sao ca h iu hnh v cc b x l l ngang cp.
+ H thng a x l bt i xng (Asymmetric multiprocessing): C mt b x l chnh (master
processor) kim sot, phn vic cho cc b x l khc (slave processors).
U
.V
Khc nhau:
ED
T.
+ Peer-to-peer: h thng mng ngang hng, cc my tnh ngang cp, khng c my no ng vai
tr qun l ti nguyn dng chung.
.P
TI
+ Tng tc tnh ton : phn chia cng vic tnh ton trn nhiu v tr khc nhau
+ An ton : Nu mt v tr b hng, cc v tr khc vn tip tc lm vic.
PE
H thng phi cho kt qu chnh xc trong khong thi gian nhanh nht. H thng thng dng
cho nhng ng dng chuyn dng nh l h thng iu khin trong cng nghip. C hai loi h
thng x l thi gian thc :
+ H thng x l thi gian thc cng (Hard real-time): cc cng vic c hon tt ng thi
im qui nh.
+ H thng x l thi gian thc mm (Soft real-time): mi cng vic c mt u tin ring v s
c thi hnh theo u tin.
14. Trnh by h thng nhng
164
H iu hnh c nhng trong cc thit b gia dng, cc my tr chi,... Do cc thit b gia dng
c b nh t, b x l tc thp, kch thc mn hnh nh nn h iu hnh ny cn n gin,
nh gn, c tnh c trng cho tng thit b. V d h iu hnh dng cho my PDAs (Personal
Digital Assistants), Mobil phones, H thng nhng cn c gi l h thng cm tay (Handheld
Systems).
15. Nu cc dch v ca h iu hnh
Qun l tin trnh, Qun l b nh chnh, Qun l b nh ph, Qun l h thng nhp xut, Qun
l h thng tp tin, Cc li gi h thng , Bo v h thng, H thng dng lnh, Qun l mng.
U
.V
ED
Tin trnh l mt chng trnh ang thi hnh. Trong b nh, ti mt thi im c th c nhiu tin
trnh, mt s tin trnh l ca h iu hnh, mt s tin trnh l ca ngi s dng. Khi tin trnh
c to ra hoc ang thi hnh s c h iu hnh cung cp cc ti nguyn nh CPU, b nh,
tp tin, cc thit b nhp/xut Khi tin trnh kt thc, h iu hnh s thu hi li cc ti nguyn
cp pht. Mt tin trnh khi thc thi li c th to ra cc tin trnh con v hnh thnh cy tin
trnh.
17. Trnh by cc chc nng ca dch v qun l tin trnh
T.
TI
.P
PE
Cp pht b nh cho tin trnh v thu hi b nh khi tin trnh thc thi xong.
19. Trnh by cc chc nng ca dch v qun l b nh ph
Xc nh v tr ct gi d liu
Lp lch cho a
165
ED
U
.V
Li gi h thng l lnh do h iu hnh cung cp dng giao tip gia tin trnh ca ngi
dng v h iu hnh, li gi h thng cn gi l ngt. Cc li gi h thng c th c chia
thnh cc loi nh l tp lnh qun l tin trnh, tp lnh qun l tp tin, tp lnh qun l thit b,
tp lnh dng lin lc gia cc tin trnh. Mi li gi h thng c mt s hiu duy nht dng
phn bit li gi ny vi li gi khc. Cc a ch ni cha m lnh ca cc ngt c lu trong
mt bng gi l bng vect ngt
T.
L tp lnh c bn cng trnh thng dch lnh ngi s dng giao tip vi h iu hnh. Cc
lnh c bn nh lnh qun l tin trnh, qun l nhp xut, qun l b nh chnh, qun l b nh
ph, qun l tp tin v cc lnh bo v h thng Cc lnh trong h thng thng dch dng lnh
thc ra s gi cc cc li gi h thng.
24. Nu cc cu trc ca h iu hnh
TI
.P
D vit, d sa li, d nng cp (nn vit h iu hnh bng ngn ng cp cao v d vit v d sa
li hn l vit bng ngn ng assembly).
PE
166
CPU khng th truy xut trc tip thit b nhp/xut m phi thng qua b iu khin thit b,
dng h thng ng truyn gi l bus. Thit b v b iu khin phi tun theo cng chun giao
tip nh chun ANSI, IEEE hay ISO
4. Nu cc chng trnh thc hin nhp/xut
Chng trnh nhp/xut ca ngi dng, chng trnh nhp/xut c lp thit b, chng trnh
iu khin thit b.
U
.V
H thng qun l nhp/xut c t chc thnh 5 lp: tin trnh ngi dng, chng trnh
nhp/xut c lp thit b, chng trnh iu khin thit b, chng trnh kim sot ngt, phn
cng. Mi lp c chc nng ring v c th giao tip vi lp khc.
6. Nu c ch nhp/xut
T.
7. Trnh by c ch DMA
ED
B x l pht sinh mt lnh I/O n cc thit b I/O, sau ch cho n khi thao tc I/O hon tt
ri mi tip tc x l, hoc B x l pht sinh mt lnh I/O n cc thit b I/O, sau tip tc
vic x l cho ti khi nhn c mt ngt t thit b I/O bo l hon tt nhp/xut, b x l
tm ngng vic x l hin ti chuyn qua x l ngt, hoc S dng c ch DMA.
.P
TI
8. Nu c ch truy xut a
PE
B iu khin a phi thc hin hai chc nng l c/ghi d liu v chuyn d liu vo h thng.
ng b hai chc nng ny, cc sector c nh s sao cho cc sector c s hiu lin tip
nhau khng nm k bn nhau m c mt khong cch, khong cch ny c xc nh bi qu
trnh format a v gi l h s an xen.
167
U
.V
T.
ED
TI
Tn file, kiu file, v tr file, kch thc file, ngy gi to file, ngi to file, loai file, bo v file.
15. Trnh by cc thao tc trn file
.P
PE
168
Ch cn dng bng th mc, mi mc trong bng th mc ngoi nhng thuc tnh thng thng
ca file, cn c thm thng tin v s hiu khi bt u (start) v s khi cp cho file (length).
U
.V
22. Nu cch ci t h thng qun l file theo phng php cp pht khi nh cho file l khng
lin tc
.P
TI
T.
ED
S dng bng th mc v s dng thm mt trong cc cu trc sau: danh sch lin kt/bng ch
mc/bng cp pht file/cu trc I-Nodes. - Cu trc danh sch lin kt: mi mc trong bng th
mc cha s hiu ca khi u tin v s hiu ca khi kt thc , mi khi trn a dnh mt s
byte u lu s hiu khi k tip ca file, phn cn li ca khi s lu d liu ca file. - Bng
ch mc: mi file c mt bng ch mc chim mt hoc vi khi, bng ch mc cha tt c cc s
hiu khi ca mt file. Mt mc trong bng th mc s lu s hiu khi cha bng ch mc ca
file. - Bng cp pht file: nu mi mc trong bng th mc ch cha s hiu ca khi u tin, th
s hiu cc khi cn li ca file s c lu trong mt bng gi l bng cp pht file. - Cu trc Inode: mi file c qun l bng mt cu trc gi l cu trc I-node, mi I-node gm hai phn:
phn th nht lu tr thuc tnh file, phn th hai gm 13 phn t: 10 phn t u cha 10 s hiu
khi u tin ca file, phn t th 11 cha s hiu khi cha bng single, phn t th 12 cha s
hiu khi cha bng double, phn t th 13 cha s hiu khi cha bng triple. Trong mi
phn t ca bng triple cha s hiu khi cha bng double, mi phn t ca bng double cha s
hiu khi cha bng single v mi phn t ca bng single cha s hiu khi d liu tip theo cp
cho file.
23. Trnh by phng php qun l cc khi trng
PE
Dng l danh sch lin kt hoc vector bit. Danh sch lin kt: mi nt l mt khi cha mt bng
gm cc s hiu khi trng, phn t cui ca bng lu s hiu khi tip theo trong danh sch.
Vector bit: Bit th i = 1 l khi th i trng, = 0 l s dng. Vector bit c lu trn mt hoc
nhiu khi a, khi cn s c vo b nh x l nhanh.
24. Nu phng php qun l cc khi hng
C th dng phn mm: dng mt file cha cc danh sch cc khi hng. Hoc dng phn cng:
dng mt sector trn a lu gi danh sch cc khi b hng.
169
if (turn == j)
flag[i]=
while
flag[i]= TRUE;
(turn
}
critical_section();
==
j)
ED
FALSE;
;
U
.V
non_critical_section();
}
T.
HD:
PE
.P
TI
170
{
int j = 1-i;
flag[i]= TRUE; turn = i;
while (turn == j && flag[j]==TRUE);
critical-section ();
flag[i] = FALSE;
}
HD:
U
.V
Noncritical-section ();
Pj:
while (TRUE)
while (TRUE)
int j = 1-i;
int i = 1-j;
critical-section ();
critical-section ();
flag[i] = FALSE;
flag[j] = FALSE;
Noncritical-section ();
Noncritical-section ();
T.
ED
Pi:
.P
TI
Gi s Pi mun vo min gng, n t turn=i. Khi kim tra iu kin (turn == j &&
flag[j]==TRUE), k sai nhng cha kp vo min gng th n lt Pj. Pj t turn=j v kim tra
iu kin (turn == i && flag[i]==TRUE), k sai, Pj vo min gng nhng cha ra khi min gng
th li ti lt Pi, Pi khng kim tra k na m vo min gng, vy gii php trn khng m bo
c c quyn truy xut.
3. Gi s mt my tnh khng c lnh TSL, nhng c lnh swap hon i ni dung ca hai t nh
bng mt thao tc c quyn :
PE
int temp=a;
a= b; b= temp;
S dng lnh ny c th t chc truy xut c quyn khng ? Nu c xy dng cu trc chng
trnh tng ng.
HD: Dng bin chung lock, gn tr ban u l 0
Chng trnh P:
int lock=0; //bin dng chung
171
While (1)
{
int key=1;//bien cc b
do{
swap(lock,key);
}while (key);
critical_section();
lock=0;
}
4. Trong gii php peterson b bin turn c c khng?
HD: khi cu trc tin trnh Pi s nh sau:
{
//
j
[i]=
(flag
T.
int
j
=
1-i;
flag
while
critical_section_Pi
flag
[i]
Noncritical_section_Pi ();
ED
while (TRUE)
U
.V
noncritical_section();
trnh
cn
li
TRUE;
[j]==TRUE);
();
FALSE;
TI
tin
.P
HD:
PE
Tin trnh Pi s cp cho mt s number[i] l s ln nht trong cc s cp trc +1, tin trnh
c s nh nht s c cho vo min gng trong lt k tip. Nu c hai tin trnh Pi v Pj c
cng s th xt nu i<j s chn Pi. Qui c: (a,b)<(c,d) nu a<c hay nu a=c v b<d
Cc bin dng chung number[i] khi u =0, choosing[i]=false;
172
HD:
Xt li on ct gii quyt min gng bng semaphore
e(s)= 1;
ED
while (TRUE)
{
Down(s)
}
tt1: down(s): e=0
.P
TI
Noncritical-section ();
T.
critical-section ();
Up(s)
U
.V
6. Chng t rng nu cc lnh Down v Up trn semaphore khng thc hin mt cch khng th
phn chia, th khng th dng semaphore gii quyt bi ton min gng.
Khi kim tra k (e<0) tho nn c hai cng ch ngoi min gng.
do{
7. Mt bin X c chia s bi hai tin trnh cng thc hin on code sau:
PE
X = X +1;
if ( X == 20) X = 0;
}while ( TRUE );
173
down(s);
X = X +1;
if ( X == 20) X = 0;
up(s);
}while ( TRUE );
8. Xt hai tin trnh x l on chng trnh sau:
process P1 { A1 ; A2 }
process P2 { B1 ; B2 }
U
.V
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 .
HD:
e(s1)=1; e(s2)=1;
P1
{
ED
P2
{
down(s2); A1(); up(s1);
down(s2); A2(); up(s1);
T.
TI
.P
e(s1)=1; e(s2)=1;
PE
P1
{
for(i=1; i<=100; i++)
{
down(s2); Ai(); up(s1);
}
}
P2
{
for(j=1; j<=100; j++)
{
down(s1); Bj(); up(s2);
}
}
10. S dng semaphore vit li chng trnh sau theo m hnh x l ng hnh:
w = x1 * x2
(1)
v = x3 * x4
(2)
y = v * x5
(3)
y=w*y
(5)
z=w*z
(6)
ans = y + z
(7)
z = v * x6
(4)
(x1,x2,x3,x4,x5,x6 l cc hng s)
HD:
semaphore s3=s4=s5=s6=s7=0;
174
P1:{w=x1*x2; up(s5);up(s6);}
P2:{v=x3*x4; up(s3); up(s4);}
P3:{down(s3); y = v * x5; up(s5);}
P4:{down(s4); z = v * x6; up(s6);}
P5:{down(s5); down(s5); y = w * y; up(s7);}
P6:{down(s6);down(s6); z = w * z; up(s7);}
HD:
monitor cal
{
int v,w,y,z,ans;
int v1,w1,y1,z1,y2,z2;
ED
condition s3,s4,s5w,s5y,s6w,s6z,s7y,s7z;
U
.V
TI
w=x1*x2; w1=1;
T.
};
}
cal::F2()
{
.P
s5w.signal(); s6w.signal();
v=x3*x4; v1=1;
s3.signal(); s4.signal();
PE
cal::F3()
{
if (v1==0) s3.wait();
y = v * x5; y1=1;
s5y.signal();
}
cal::F4()
{
if (v1==0) s4.wait();
z = v * x6; z1=1;
175
s6z.signal();
}
cal::F5()
{
if (w1==0) s5w.wait();
if (y1==0) s5y.wait();
y = w * y; y2=1;
s7y.signal();
}
U
.V
cal::F6()
{
if (w1==0) s6w.wait();
if (z1==0) s6z.wait();
z = w * z; z2=1;
ED
s7z.signal();
}
cal::F7()
if (y2==0) s7y.wait();
ans = y + z;
}
TI
if (z2==0) s7z.wait();
T.
.P
P5:{cal.F5();}P6:{cal.F6();} P7:{cal.F7();}
10. Xt hai tin trnh sau:
PE
process A
176
process A
{
while (1)
{
down(s1);
if (na < nb +10) na = na +1;
up(s1);
}
}
U
.V
process B
{
while (1)
{
if (nb +1< na) nb = nb +1;
up(s2);
}
T.
TI
b) na <= nb +10
semaphore s1=1,s2=1;
ED
down(s2);
process A
{
.P
int na,nb;//bien dung chung na,nb gan tri ban dau thoa dieu kien na <= nb +10
while (1)
down(s1);
PE
process B
{
while (1)
{
nb = nb +1;
}
}
177
c) ng
11. Bi ton Ngi sn xut Ngi tiu th (Producer-Consumer)
U
.V
Hai tin trnh cng chia s mt b m c kch thc gii hn. Mt tin trnh to d liu, t d
liu vo b m (ngi sn xut) v mt tin trnh ly d liu t b m x l (ngi tiu
th).
ED
- K3: Hai tin trnh cng loi hoc khc loi u khng c truy xut b m cng lc.
PE
.P
TI
T.
Nhn xt: ch p dng cho mt producer v mt consumer v ch tho dk1 v dk2. Hy m rng
p dng cho nhiu producer, nhiu consumer v tho c 3 k
+ Cch 2: dng Semaphore
S dng ba semaphore :
- empty: m s ch cn trng trong b m. (dng gii quyt K1)
- full: m s ch c d liu trong b m(dng gii quyt K2)
- mutex: kim tra vic khng truy xut ng thi.(dng gii quyt K3)
178
BufferSize = 3;
// s ch trong b m
semaphore mutex = 1;
int item;
{
produce_item(item); // to d liu mi
U
.V
while (TRUE)
ED
.P
while (TRUE)
TI
T.
down(full); // gim s ch y, neu bo dem trong thi cho (full<0 thi ch)
remove_item(item); // ly d liu t b m
up(mutex); // ra khi min gng
PE
179
enter_item(item);
// t d liu vo b m
count ++;
// tng s ch y
remove_item(&item);
// ly d liu t b m
count --;
// gim s ch c dl
U
.V
if (count == 0) wait(empty)
T.
while (TRUE) {
ED
produce_item(item); //sx dl
TI
}
}
.P
while (TRUE) {
ProducerConsumer.remove();//lay dl tu buffer
consume_item(item); //tiu th dl
PE
Nhn xt:
G/s N=2, v c 2 ntt ang i trn empty, khi nsx 1 xut hin, tng count=1, nh thc ntt1, v
tip nsx 2 xut hin, tng count=2, nhng khng nh thc ntt2, ntt2 i mi
Do cn b k khi gi signal() trong enter() v remove. Khi s gii quyt trit bi ton
180
int rc=0;
semaphore db = 1;
Reader()
{
while (TRUE)
{
rc = rc + 1;
ED
U
.V
T.
TI
read_database(); // c d liu
.P
rc = rc - 1;
PE
Writer()
{
while (TRUE)
{
create_data();
down(db); // khng c writer hoc reader no khc c tx
//hoac khi co reader ang c dl th writer ch
write_database();
// cp nht d liu
181
}
Nhn xt:
Thut ton ch ng khi c t nht mt Reader thc thi trc mi Writer. Nu khng s c nhiu
trng hp sai, v d nu writer thc hin trc v ang cp nht dl th ch cm c reader 1,
khng cm c reader 2.
Thut ton ny gi l thut tan u tin Readers: Reader thc hin trc writer v Writer phi i
tt c cc Reader truy xut xong mi c vo database. Hy xy dng thut ton u tin Writer
Cch 2: Monitor
U
.V
S dng bin chung rc ghi nh s cc tin trnh Reader. 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
int
ED
{
rc = 0; //khac 0 la co Reader dang doc
T.
void BeginRead() //truoc khi doc, reader goi phng thc nay de kiem tra dk duoc c
{
TI
rc++;
}
.P
signal(OKRead);
void FinishRead()
rc--; // bt mt Reader
PE
void BeginWrite()
{
}
void FinishWrite()
{
busy = 0; // cho cac reader va writer khac truy xuat db
if (!Empty(OKRead.Queue)) signal(OKRead);//neu co reader dang doi thi cho c
182
else
}
}
Reader()
{
while (TRUE)
{
//doc dl
ED
while (TRUE)
U
.V
Read_Database();
{
Create_data(info);
//tao dl
T.
TI
Ghi ch:
.P
PE
while (true)
Make-Hydro(); // to 1 nguyn t H
}
MakeO()
{
while (true)
183
U
.V
}
HD:
Semaphore s1=0, s2=0;
MakeH()
// to 1 nguyn t H
while (1)
{
Make-Hydro(); up(s1);
T.
ED
//to 1 nguyn t O
{
while(1)
.P
TI
MakeO()
Make-Oxy(); up(s2);
}
MakeWater()
PE
while (1)
}
14. Xt mt gii php semaphore ng cho bi ton Dining philosophers :
#define N
#define LEFT
(i-1)%N
#define RIGHT
(i+1)%N
184
#define THINKING
#define HUNGRY
#define EATING
int
state[N];
semaphore
mutex = 1;
semaphore
ED
put_forks(i); // t c 2 na ln bn li
U
.V
}
}
T.
TI
.P
state[i] = EATING;
up(s[i]);
//yu cu ly 2 na
PE
while (TRUE)
185
//t 2 na xung
void put_forks ( int i) // i l trit gia th i : 0..N-1
{
while (TRUE)
{
down(mutex); // vo min gng
test(LEFT); // kim tra ngi bn tri c th n?
up(mutex); // ra khi min gng
}
}
a)Ti sao phi t state[i] = HUNGRY trong take_forks ?
U
.V
ED
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?
TI
T.
.P
HD:
Semaphore mutex = 1;
Semaphore customers = 0;
Semaphore haircut = 0;
int waiting = 0
PE
down( mutex );
if( waiting == N )
{
up( mutex ); return ;
}
waiting ++; //tng s khch i
up( mutex );
up(customers);
186
}
void barber() //th ct tc
{
while( 1 ) //ct lin tc, ht khch ny n khch khc
{
down( customers ); //nu khng c khch, barber s ng
down( mutex );
U
.V
cut_hair();
}
}
ED
16. Bi ton Cy cu c
T.
TI
.P
ArriveBridge(direction); //ti cu
OnBridge(); //ln cu
PE
ExitBridge();// Qua cu
HD:
ArriveBridge(direction)
{
down(ncar);
if (direction==1) down(ncar1);
else down(ncar2);
}
Exit Bridge(direction)
{
187
up(ncar);
if (direction==1) up(ncar1);
else up(ncar2);
}
17. 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 phi
c 4 ngi mi khi hnh c. bo m an ton cho c 2 pha, cn tun th cc lut sau :
U
.V
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 khi hnh khi c 4 hnh khch.
T.
ED
TI
Hacker()
{
.P
RuntoRiver(); // i n b sng
PE
Employee()
{
RuntoRiver(); // i n b sng
HD:
int n=0;//so nguoi tren thuyen
semaphore h=2, e=2, s=0;
HackerArrives()
{
down(h); //cho hacker cho tren bo neu da co 2 hacker tren thuyen
188
down(mutex);
n++; //cho hacker xuong thuyen
if (n<4)
{
up(mutex);
down(s); //neu thuyen chua du 4 nguoi thi cho tren thuyen
}
else //neu du 4 thi danh thuc nhung nguoi dang cho tren thuyen de qua song
{
n=0;up(mutex);
U
.V
up(s);up(s);up(s);
}
up(h); // danh thuc cac hacker cho tren bo cho xuong thuyen
}
ED
EmployeeArrives()
{
T.
down(mutex);
n++; //cho Employee xuong thuyen
if (n<4)
up(mutex);
TI
{
}
.P
n=0; up(mutex);
up(s);up(s);up(s);
PE
up(e);// danh thuc cac Employee cho tren bo cho xuong thuyen
Gi s hot ng iu phi khch cho 1 chic xe bus c m t qua tin trnh GetPassengers();
hot ng ca mi loi hnh khch c m t bng tin trnh WheelPassenger() v
NonWheelPassenger(). Hy sa cha cc on code, s dng semaphore ng b ho .
189
U
.V
for (int i=0; i<6; i++) // tip nhn cc khch bnh thng
ED
DepartTerminal(); // cho mt xe ri bn
WheelPassenger() //chng trnh to khch ngi xe ln
{
GetOnBus(); // ln xe
}
T.
ArriveTerminal(); // n bn
TI
.P
ArriveTerminal(); // n bn
GetOnBus(); // ln xe
HD:
PE
GetPassenger()
{
down(bus);
190
{
down(nonwheel);
ArrangeSeat(); // a 1 khch binh thuong vo ch
}
CloseDoor(); // ng ca xe
DepartTerminal(); // cho mt xe ri bn
up(bus);
WheelPassenger()
{
while(1)
{
ArriveTerminal(); // n bn
ED
up(wheel);
}
}
T.
NonWheelPassenger()
{
while(1)
TI
U
.V
ArriveTerminal(); // n bn
}
}
.P
up(nonwheel);
PE
Produce_chassis();// to khung xe
191
Put_tire_to_Chassis();
}
Hy ng b hot ng trong vic sn xut xe hi theo nguyn tc sau :
-
U
.V
semaphore chassis=0,tire=0;
MakeChassis()
{
while(1)
{
ED
// to khung xe
Produce_chassis(); up(chassis);
T.
}
}
{
while(1)
.P
TI
MakeTires()
down(chassis);
for (i=0;i<4;i++)
PE
Produce_tire();
Put_tire_to_Chassis(); up(tire);
//ly a
down(s[(i+1)%5]);
eat();
192
up(s[i]);
//b a
up(s[(i+1)%5]);
}
HD:
Max
Allocation
U
.V
Available
R2
R3
R1
R2
R3
R1
R2
R3
P1
P2
P3
P4
TI
T.
ED
R1
.P
Allocation
PE
Max
Available
P2
P3
P4
P5
P1
193
CHNG 4: QUN L B NH
U
.V
ED
ma=100 nanoseconds
int A [100][100] ;
for (i=0; i<100; i++)
TI
T.
.P
Gi s tin trnh c cp 3 khung trang vi kch thc mt khung trang l 200 bytes, m tin
trnh lun chim khung trang 1, khung trang 2 v 3 lu mng A v khi u khung 2, 3 l rng.
Hi tin trnh c bao nhiu li trang khi s dng thut ton thay th LRU.
Xt chng trnh C sau vi cu hi tng t cu a
int A [100][100] ;
PE
b) 10000 li
3. Trong mt h thng s dng k thut phn trang theo yu cu, kch thc mi trang l 2K , xt
on chng trnh C sau y:
int n = 3*1024; int A[n], B[n];
for (i=0; i<n;i++) A[i]=i;
for (i=0 ;i<n;i++) B[A[i]]=i;
194
a) Nu s khung cp cho tin trnh l khng hn ch v gi s khung trang th nht lun dng
ch tin trnh, cc khung trang cn li c khi ng trng thi trng th tin trnh c bao
nhiu li trang.
b) Nu s khung cp cho tin trnh l 2 khung v gi s khung trang th nht lun dng ch
tin trnh, khung trang th hai c khi ng trng thi trng th tin trnh c bao nhiu li
trang.
HD:
a) Mng A c kch thc l 6K => cn 3 trang, mi trang cha 1024 phn t lin tip.
U
.V
C truy xut 1024 pt ca mng A s sinh ra mt li trang => vng for th 1 sinh ra 3 li trang. L
lun tng t vng for th 2 sinh ra 3 li trang. Vy tin trnh c 6 li trang
b) S li trang l: 3+2*3*1024= 6147 li trang
ED
4. Mt my tnh c 4 khung trang. Thi im np, thi im truy cp cui cng, v cc bit
Reference (R), Dirty (D) ca mi trang trong b nh c cho trong bng sau :
Thi im np
126
279
230
260
120
160
TI
272
.P
T.
Trang
280
PE
HD:
trang 0
trang 2
trang 1
trang 0
195
5. Tnh kch thc dy bt dng qun l RAM 512 MB, gi s a ch nh theo byte.
HD: 512 MB=512*1024*1024 bytes = 229 bytes. Mi mt byte dng 1 bit qun l => kch
thc dy bt s dng l 229/8/1024/1024 MB = 64 MB.
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.
U
.V
HD:
a) 8 trang => p= 3 bit. Kch thc trang 1 K =>d=10 bit=> c logic= p+d=13 bit
b) c vt l c 32 khung => cvl=32 K= 215 bytes => dcvl=15 bit
ED
a) Nu thi gian cho mt ln truy xut b nh bnh thng l 200 nanoseconds, th mt bao nhiu
thi gian cho mt thao tc truy xut b nh trong h thng ny ?
HD:
a) 200+200=400 nanoseconds
T.
b) Nu s dng TLBs vi t l tm thy (hit-ratio) 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)
TI
.P
2300 14
90
100
PE
b. (2,500)
HD: c logic=(s,d)
s=1, d=10, base(1)=2300 => cvl=2300+10=2310
s=2, d=500, d>length(2)=100 => li truy xut c khng hp l
9. 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, cn li dnh cho offset. Cho bit
kch thc mt trang trong h thng, v khng gian a ch o c bao nhiu trang ?
HD:
196
U
.V
=>
ED
T.
11. Gi s c mt my tnh chi s dng 7-bit a ch, 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 o 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
TI
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?
.P
HD:
c o = (p1,p2,d)=7 bit
PE
C1
f0
f1
f2
f3
C2
f11
C2
f12
f13
f14
f15
C2
p13
p14
p0
p3
p11
p2
p12
p1
p15
bnvl
0
15
21
29
94
106
115
127
00.00.000
00.01.111
00.10.101
00.11.101
10.11.110
11.01.010
11.10.011
11.11.111
(0,0,0)
(0,1,7)
(0,2,5)
(0,3,5)
(2,3,6)
(3,1,2)
(3,2,3)
(3,3,7)
197
d) dng 1 bng trang cp 1, 3 bng trang cp 2 => kch thc bng trang = 4 khung trang = 32
bytes
U
.V
ED
c) Bao nhiu bytes ng vi cc vng phn mnh ni vi trong tin trnh ny?
HD:
T.
TI
1039
(0,0,350)
0000.010.000001111
(0,2,15)
0000.101.111100110
(0,5,486)
PE
3046
0000.000.101011110
350
.P
0000.111.101000000
(0,7,320)
7100
0001.101.110111100
(1,5,444)
9450
0010.010.011101010
(2,2,234)
33056
1000.000.100100000
(8,0,288)
39200
1001.100.100100000
(9,4,288)
61230
1110.111.100101110
(14,7,302)
63500
1111.100.000001100
(15,4,12)
3904
(0,0,350)..(0,2,15);(0,5,486)..(0,7,320);
(1,5,444)..(2,2,234);
(8,0,288)..(9,4,288); (14,7,302)..(15,4,12)
=>
s=0: p=0,1,2,5,6,7
s=1: p=5,6,7
s=2: p=0,1,2
s=8: p=0,1,2,3,4,5,6,7
s=9: p=0,1,2,3,4
s=14: p=7
s=15: p=0,1,2,3,4
198
d) Tin trnh dng 1 bng phn on => b nh dnh cho bng phn on= 512 byte.
Tin trnh c 16 phn on =>s bng trang tin trnh s dng l 16=> b nh dnh cho bng
trang= 16*512 (gi s mt bng trang chim 1 khung trang)
[1]. Gary J. Nutt, University of Colorado. Centralized And Distributed Operating Systems.
Second Edition, 2000.
[2]. Robert Switzer. Operating Systems, A Practical Approach. Prentice-Hall International, Inc.
1993.
U
.V
[3]. Andrew S. Tanenbaum. Modern Operating Systems. Prentice-Hall International, Inc. Second
Edition, 2001.
[4]. Abraham Silberschatz & Peter Baer Galvin. Operating System concepts. John Wiley & Sons,
Inc. Fifth Edition, 1999.
ED
PE
.P
TI
T.
[6]. Trn Hnh Nhi & L Khc Nhin n & Hong Kim. Gio trnh h iu hnh (tp 1 & 2).
HKHTN 2000.
199
MC LC
CHNG 1: GII THIU V H IU HNH
Trang
3
11
14
U
.V
16
16
17
18
20
ED
20
22
T.
23
23
28
32
33
34
.P
TI
53
61
66
80
PE
CHNG 4: QUN L B NH
99
101
4.3 B nh o
116
200
130
131
136
149
152
PE
.P
TI
T.
ED
- HT -
146
U
.V
201