You are on page 1of 201

ED

U
.V

HOC VIEN CONG NGHE BU CHNH VIEN THONG


C S THANH PHO HO CH MINH
KHOA CNG NGH THNG TIN
WX

GIO TRNH

H IU HNH

PE

.P

TI

T.

(OPERATING SYSTEM)

BIN SON
NINH XUN HI - HUNH TRNG THA
NM 2008

LI M U

H iu Hnh (Operating Systems) l mt thnh phn khng th thiu trong mt h thng my


tnh. Mt my tnh mc d t tin, cu hnh cao nhng nu khng c h iu hnh th hu nh
khng th s dng c. H iu hnh iu khin mi hot ng ca my tnh, gip vic s dng
my tnh tr nn n gin, d dng v hiu qa hn rt nhiu. Do vy mn hc H iu hnh l
mn hc quan trng v rt cn thit trong chng trnh o to chuyn nghnh tin hc h cao
ng v k s.

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.

Mi s gp hoc thc mc xin gi v a ch Email: hainx@ptithcm.edu.vn


htthua@ptithcm.edu.vn.

hoc

GV. bin son

Ninh Xun Hi - Hunh Trng Tha

PE

.P

TI

Ngy 21 Thng 11 Nm 2008

CHNG I

GII THIU H IU HNH


Chng GII THIU V H IU HNH s gii thiu v gii thch cc vn sau:
1.1 H iu hnh l g, cc khi nim ca h iu hnh.
1.2 Lch s pht trin ca h iu hnh
1.3 Cc loi h iu hnh
1.4 Cc dch v ca h iu hnh.

1.5 Cu trc ca h iu hnh

U
.V

1.6 Nguyn l thit k h iu hnh

1.1 CC KHI NIM


1.1.1 H iu hnh l g?

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.

1.1.2 Cc thnh phn ca mt h thng my tnh

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

+ Phn cng (hardware) : CPU, b nh, cc thit b nhp/xut,

.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

+ Ngi s dng (user): ngi s dng hoc my tnh.

Hnh 1.1: Cc thnh phn ca mt h thng my tnh

1.1.3 Cc thnh phn ca mt h thng nhp/xut


Mt h thng nhp/xut gm ba thnh phn sau:
+ H thng b nh m (buffer-caching system)
+ Chng trnh iu khin thit b (Drivers for specific hardware devices).
+ Chng trnh giao tip vi chng trnh iu khin thit b (A general device-driver interface).
Chng trnh giao tip vi chng trnh iu khin thit b
H thng b nh m

U
.V

Hnh 1.2: Cc thnh phn ca mt h thng nhp/xut

Chng trnh iu khin thit b

1.1.4 Cc thnh phn ca h iu hnh


H iu hnh gm c ba thnh phn sau:

+ B cp pht ti nguyn (Resource allocator): Qun l v cp pht ti nguyn.

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

Chng trnh kim sot

T.

Phn nhn

TI

Hnh 1.3: Cc thnh phn ca h iu hnh

1.2 LCH S PHT TRIN CA H IU HNH

.P

+ Giai on 1 (1945 1955): c my tnh ln nhng cha c h iu hnh.


+ Giai on 2 (1956 1965): h thng x l theo l (Batch systems)

+ Giai on 3 (1966 1980): h thng x l a chng (Multiprogramming systems) , h thng


x l a nhim (Multitasking systems).

PE

+ Giai on 4 (1981 - 2007 ): h thng a x l (Multiprocessor systems), h thng x l phn tn


(Distributed systems), h thng x l thi gian thc (Real-time systems), h thng nhng
(Embedded systems).

1.3 PHN LOI H THNG MY TNH


Mt h thng my tnh gm hai phn l h iu hnh v phn cng tng ng thc thi h iu
hnh.

1.3.1 H thng x l theo l (Batch Systems)


y l h iu hnh u tin, th s nht. i vi h iu hnh ny th ti mt thi im ch c
mt cng vic trong b nh, khi thc hin xong mt cng vic, cng vic khc s c t ng
np vo v cho thc thi. H iu hnh c mt chng trnh, gi l b gim st, thng tr trong
b nh chnh, gim st vic thc hin dy cc cng vic theo th t v t ng.

Cch b tr b nh ca h iu hnh x l theo l nh sau: phn b nh a ch thp dnh cho h


iu hnh, phn cn li dnh cho mt chng trnh ca ngi dng.

U
.V

Hnh 1.4: m hnh t chc b nh ca h iu hnh x l theo l


Xem mt v d v cch thc lm vic vi h thng x l theo l:
- Lp trnh vin mang phiu ghi chng trnh n my 1401

- My s c chng trnh t phiu v ghi chng trnh vo bng t

ED

- Lp trnh vin em bng t ti my 7094 thc hin tnh ton v kt qa c ghi vo bng t

TI

T.

- Lp trnh vin em bng t cha kt qa ti my 1402 in

.P

Hnh 1.5: v d v cch thc x l cng vic vi h iu hnh x l theo l

1.3.2 H thng x l a chng (MultiProgramming Systems)

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,

Hnh 1.6: m hnh t chc b nh ca h thng x l a chng

* Cc chc nng ca h iu hnh trong h thng x l a chng


+ Lp lch CPU (CPU scheduling): chn mt trong nhng cng vic trong b nh cho thc thi
(cho s dng CPU). Khi chn cn trnh trng hp mt cng vic ch trong b nh qu lu.
+ Qun l b nh (Memory management): cn phi qun l phn b nh no cp pht v cp
cho cng vic no (b nh cp pht cho mi cng vic phi ring bit), phn b nh no cha cp,
khi mt cng vic thc thi xong cn thu hi phn b nh cp cho cng vic . Nu mt cng
vic truy xut n phn b nh cp cho cng vic khc th phi ngn cm. Nu b nh b phn
mnh qu nhiu, cn dn b nh, vv

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

1.3.3 H thng x l a nhim (Multitasking Systems)

TI

T.

H thng x l a nhim l h thng m rng ca h thng x l a chng. i vi h iu hnh


trong h thng x l a nhim, vic chuyn i cng vic khng ch cng vic ang thc thi c
yu cu nhp/xut, m khi cng vic ang thc thi ht thi gian qui nh s dng CPU th vic
chuyn i cng vic cng s xy ra. Mi cng vic c thc hin lun phin qua c ch chuyn
i CPU, thi gian mi ln chuyn i din ra rt nhanh nn ngi s dng c cm gic l cc
cng vic ang c thi hnh cng lc. H thng x l a nhim cn gi l h thng chia x thi
gian (Time-Sharing Systems).

.P

V d h thng c mt CPU v hin c ba cng vic A, B, C trong b nh. Ba cng vic ny s


c thc hin lun phin: cng vic A thc hin trong khong thi gian q (quantum) th tm
ngng, n lt cng vic B thc hin trong khong thi gian q, ri n lt cng vic C. Sau
li n lt A, lp li vic thc thi cc cng vic cho n khi tt c cc cng vic hon tt.

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

1.3.4 H thng a x l (Multiprocessor Systems)


My tnh c nhiu b x l cng chia x h thng ng truyn d liu, ng h, b nh v cc
thit b ngoi vi. Mi CPU s thc hin mt cng vic v khi cc cng vic s thc s din ra
ng thi. H thng a x l cn gi l h thng x l song song (Parallel Systems).

Hnh 1.7: m hnh h thng a x l: c nhiu cpu nhng s dng chung b nh

* 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.

* Phn loi h thng a x l

ED

+ 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. Cc h iu hnh hin nay u h tr
SMP.
+ H thng a x l bt i xng (Asymmetric multiprocessing): C mt b x l chnh (master

T.

processor) kim sot, phn vic cho cc b x l khc (slave processors).

1.3.5 H thng x l phn tn (Distributed Operating Systems)

.P

TI

Tng t nh h thng a x l nhng mi b x l c b nh ring. Cc b x l lin lc vi


nhau thng qua cc ng truyn dn mng. Mng LAN, WAN vi h iu hnh Windows,
UNIX chnh l cc h thng x l phn tn.

* Phn loi h thng x l phn tn: c hai loi

+ 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

+ Client-server: c mt my ng vai tr qun l cc ti nguyn dng chung gi l my server


(my ch), cc my khc gi l my client (my khch). Client mun s dng ti nguyn dng
chung phi c server cp quyn. M hnh h thng client-server:

Hnh 1.8: m hnh h thng x l phn tn

* 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,

1.3.6 H thng x l thi gian thc (Real-Time Systems)


H thng s 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.

* Cc 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.

1.3.7 H thng nhng (Embedded Systems)

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.

1.4 CC DCH V CA H IU HNH

H iu hnh thng thng cn cung cp cc dch v sau:

TI

- Qun l tin trnh


- Qun l b nh chnh (RAM)
- Qun l b nh ph (DISK)

.P

- Qun l h thng nhp xut


- Qun l h thng tp tin

- Bo v h thng

- H thng dng lnh

PE

- Qun l mng

- Cc li gi h thng (system calls).

1.4.1 Dch v qun l tin trnh (Process Management)

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.

* Cc chc nng ca dch v qun l tin trnh


+ To v hy cc tin trnh ca ngi s dng v ca h iu hnh.

+ Tm ngng v thc hin li mt tin trnh.


+ Cung cp c ch ng b cc tin trnh.
+ Cung cp c ch lin lc gia cc tin trnh.
+ Cung cp c ch kim sot tc nghn.

1.4.2 Dch v qun l b nh chnh (Main Memory Management)

U
.V

* Cc chc nng ca dch v qun l b nh chnh

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.

+ Lu gi thng tin v cc v tr trong b nh s dng v tin trnh no ang s dng.


+ Quyt nh chn tin trnh np vo b nh chnh khi b nh chnh c ch trng.
+ Cp pht b nh cho tin trnh v thu hi b nh khi tin trnh thc thi xong.

ED

1.4.3 Dch v qun l b nh ph (Secondary Management)

lu tr d liu lu di, d liu cn lu trn a dng tp tin, ngoi ra a cn lu gi cc tin


trnh khi b nh RAM khng cn , vng nh ny gi l b nh o.

T.

* Cc chc nng ca dch v qun l b nh ph

+ Qun l vng trng trn a (Free space management)

TI

+ Xc nh v tr ct gi d liu (Storage allocation).

.P

+ Lp lch cho a (Disk scheduling).

1.4.4 Dch v qun l h thng nhp/xut (I/O System Management)

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

1.4.5 Dch v qun l h thng tp tin (File Management)

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.

* Cc chc nng ca dch v qun l h thng tp tin


+ H tr cc thao tc trn tp tin v th mc (to/xem/xo/sao chp/di chuyn/i tn).
+ nh x tp tin trn h thng lu tr ph.
+ Sao lu tp tin trn cc thit b lu tr.

1.4.6 Dch v bo v h thng (Protection System)


H iu hnh cn cung cp c ch m bo rng ti nguyn ch c truy xut bi nhng tin
trnh c quyn. V d m bo rng tin trnh ch c thi hnh trong phm vi a ch ca n hoc
m bo rng khng c tin trnh no c chim CPU

1.4.7 Li gi h thng (system call)

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

- Lu tr tham s trong mt bng trong b nh v ghi a ch bng vo thanh ghi


- Lu tr tham s vo stack v tham s c ly ra bi h iu hnh .

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.

Hnh 1.9: truyn tham s dng bng cho ngt 13


Qun l tin trnh

Li gi hm

M t

Pid=fork()

To mt tin trnh con ging tin trnh cha

Pid=waitpid(pid, &statloc, options)

i mt tin trnh con kt thc

Exit(status)

Kt thc vic thc thi tin trnh v tr v trng thi

10

M t

Fd=open(file,how,)

M mt file c, ghi hoc c hai

S=close(fd)

ng mt file m trc

N=read(fd,buffer,nbytes)

c d liu t file vo vng m

N= write(fd,buffer,nbytes)

Ghi d liu t buffer vo file

Position=lseek(fd,offset,whence)

Di chuyn con tr file

S=stat(name,&buf)

Ly thng tin trng thi ca file

U
.V

Li gi hm

Qun l Tp tin

Qun l H thng file v th mc


M t

S=mkdir(name,mode)

To th mc mi

S=rmdir(name)

Xa th mc rng

S=link(name1,name2)

To mt i tng mi name2 tr vo i tng name1 trc

S=unlink(name)

Xa i tng th mc

S=mount(special,name,flag)

Kch hot h thng file

S=unmount(special)

Ngng kch hot h thng file

TI

T.

ED

Li gi hm

.P

Hnh 1.10: Mt s li gi h thng

1.4.8 H thng thng dch dng lnh (Command-Interpreter System)

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.

1.4.9 Qun l mng (Networking)

Cung cp cc chc nng phn quyn, chia x ti nguyn mng, lin lc gia cc tin trnh trn
mng,

1.5 CU TRC H IU HNH


1.5.1 Cu trc n gin
H iu hnh khng c chia thnh nhng lp (phn) r rt, mt lp c th gi hm thuc bt k
lp no khc. H iu hnh ny n gin, d thit k, d ci t nhng kh bo v, kh m rng,
v kh nng cp. V d h iu hnh MSDOS l h iu hnh c cu trc n gin: chng trnh

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

Hnh 1.11: Cu trc ca h iu hnh MS-DOS (cu trc n gin)

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)

1.5.2 Cu trc phn lp


H iu hnh c chia thnh nhiu lp, mi lp c xy dng da vo nhng lp thp hn.
Lp di cng l phn cng, lp trn cng l lp giao tip vi ngi s dng. Mi lp ch s
dng nhng hm do lp di cung cp. Ht nhn lp k lp phn cng, dng cc lnh ca phn
cng to cc li gi h thng.

12

ED

U
.V

Xem m hnh phn lp hnh 1.12: Lp M tha k mt s hm ca lp M-1 v c th c thm


mt s hm ca ring mnh. Nhng hm m lp M-1 t thuc tnh n th lp M khng c tha
k.

Hnh 1.13: m hnh cu trc phn lp


Chc nng

Thao tc

T.

Tng

Chng trnh ngi dung

Truyn thng Thao tc-Tin trnh


Qun l b nh

.P

Qun l Xut/Nhp

TI

a chng

Hnh 1.14: cu trc phn lp ca h iu hnh THE

PE

1.5.3 Cu trc my o

Vi h iu hnh my o, mt my c gi lp thnh nhiu my, ti nguyn ca h thng nh l


CPU, b nh, a, c chia x to cc my o. Mi my o c c lp vi my o khc
nn ti nguyn dng chung c bo v nhng cng dn n vic khng c chia x ti nguyn
trc tip.

13

N
U
.V
ED

Hnh 1.15: M hnh cu trc my o

1.5.4 Cu trc Client-Server

.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.

+ Mi dch v ca h iu hnh do mt tin trnh server m nhn, cc tin trnh ny c lp vi


nhau nn khi mt tin trnh server b li, h thng vn hot ng.

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.

Hnh 1.17: M hnh h iu hnh client-server trn mt my

14

U
.V

Hnh 1.18: M hnh h iu hnh client-server trn nhiu my

1. 6 NGUYN L THIT K H IU HNH

+ 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 d s dng, d hc, an ton, c tin cy cao v thc hin nhanh.

+ 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

Mt h thng my tnh gm c phn cng, h iu hnh v cc chng trnh ng dng. H iu


hnh gip cho vic s dng my tnh hiu qu, n gin hn. H iu hnh c nhiu loi nhng
thng dng l loi h iu hnh a nhim, phn tn. H iu hnh cung cp cc dch v c bn
nh dch v qun l tin trnh, dch v qun l b nh, dch v qun l tp tin, dch v qun l
nhp/xut, v mt tp cc li gi h thng (ngt). H iu hnh cn thit k sao cho d sa li,
d ci t, d bo tr, khng c li, d s dng, d hc, tin cy cao, thc hin nhanh v c tnh
kh chuyn cao.

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

3. Nu cc vn m h thng a chng/a nhim cn gii quyt


3. Phn bit h thng a nhim v h thng a x l
4. Phn bit h thng a x l v h thng x l phn tn
5. Nu mc ch ca h thng b nh m (buffer-caching system) trong h thng nhp/xut
6. Chng trnh iu khin thit b (Drivers for specific hardware devices) do h iu hnh cung
cp hay do hng sn xut thit b cung cp?
7. Chng trnh giao tip vi chng trnh iu khin thit b (general device-driver interface) do
h iu hnh hay do hng sn xut hay do ngn ng lp trnh hay do ngi lp trnh cung cp?

15

8. Phn nhn (kernel) ca h iu hnh MS-DOS gm nhng chng trnh no?


9. Nu khuyt im ca h iu hnh c cu trc n gin.

TI LIU THAM KHO


[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.

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.

[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

[7]. Trn Hnh Nhi & L Khc Nhin n & Hong Kim. Gio trnh h iu hnh (tp 1 & 2).
HKHTN 2000.

16

CHNG 2

QUN L NHP/XUT V QUN L H THNG TP TIN


Chng QUN L NHP/XUT V QUN L H THNG TP TIN s gii thiu v gii
thch cc vn sau:

2.1.1 Phn loi v c tnh ca thit b nhp/xut


2.1.2 B iu khin thit b nhp/xut
2.1.4 C ch nhp/xut v c ch DMA
2.1.5 Cc thut ton lp lch di chuyn u c
2.1.6 H s an xen v ram disk

ED

2.2 Qun l h thng tp tin

U
.V

2.1.3 Cc chng trnh thc hin nhp/xut v t chc h thng nhp/xut

2.1. Qun l nhp/xut

2.2.1 Cc khi nim v a cng, tp tin, th mc, bng th mc


2.2.2 Cc phng php ci t h thng tp tin.

2.2.3 Phng php qun l danh sch cc khi trng

T.

2.2.4 Phng php qun l s an ton ca h thng tp tin

TI

2.2.5 Gii thiu mt s h thng tp tin: MSDOS/Windows, UNIX.

2.1. QUN L NHP/XUT

.P

2.1.1 Phn loi v c tnh ca thit b nhp/xut


* Phn loi thit b nhp/xut:

+ 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.

+ Thit b khc: c mt s cc thit b khng ph hp vi hai loi trn, v d ng h khng l


thit b khi, cng khng l thit b tun t.
* c tnh ca thit b nhp/xut:

+ Tc truyn d liu: v d bn phm : 0.01 KB/s, chut 0.02 KB/s ...


+ Dung lng lu tr, thi gian truy xut mt n v d liu.
+ Cng dng: dng nhp hay xut
+ n v truyn d liu: truyn theo khi hoc k t
+ Biu din d liu: iu ny ty thuc vo tng thit b c th.
+ Tnh trng li: nguyn nhn gy ra li, cch m thit b bo li...

17

Hnh 2.1: thi gian truy xut v dung lng ca mt s thit b nhp/xut

U
.V

2.1.2 B iu khin thit b nhp/xut (I/O controller)

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.

B iu khin thit b nhp/xut c th iu khin c nhiu thit b, v d mt b iu khin


mn hnh (video controller) c th iu khin nhiu mn hnh.

Hnh 2.2: CPU truy xut cc thit b nhp/xut thng qua b iu khin thit b

PE

Mi b iu khin c mt s thanh ghi lin lc vi CPU, cc thanh ghi ny c gn mt a


ch xc nh nh l mt phn ca b nh chnh, gi l nh x b nh nhp/xut. V d:
B iu khin

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

Hnh 2.3: bng a ch cc thanh ghi ca mt s b iu khin nhp/xut.

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

2.1.3 Cc chng trnh thc hin nhp/xut v t chc h thng nhp/xut


* Cc chng trnh thc hin nhp/xut:

+ Chng trnh nhp/xut ca ngi dng (user program): thc hin cc li gi n chng trnh
nhp/xut c lp thit b.

T.

+ Chng trnh nhp/xut c lp thit b: cn gi l li gi h thng nhp/xut hoc ngt


nhp/xut, do h iu hnh cung cp, chng trnh nhp/xut c lp thit b cung cp mt giao
tip ng nht cho chng trnh nhp/xut ca ngi dng.

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

* T chc h thng nhp/xut

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.

Hnh 2.5: m hnh phn lp ca h thng qun l nhp/xut


+ Tin trnh ngi dng (user processes): nh dng nhp/xut, thc hin li gi nhp/xut.

TI

+ Chng trnh nhp/xut c lp thit b (Device-independent software): t tn, bo v, t chc


khi, t chc b m, cp pht,

.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

2.1.4 C ch nhp/xut v c ch DMA


* C ch nhp/xut:

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.

* C ch DMA (Direct Memory Access):

.P

TI

Xt qu trnh c a, CPU gi cho b iu khin a (disk controller) lnh c a v cc thng


s nh a ch trn a ca khi, a ch trong b nh RAM ni s ct khi c c, s byte cn
c, sau CPU tip tc x l cng vic khc. B iu khin s c khi trn a, tng bit cho ti
khi ton b khi c a vo buffer ca b iu khin (local buffer). Tip theo b iu khin
pht ra mt ngt bo cho CPU bit l thao tc c hon tt. CPU n ly d liu trong buffer
chuyn vo b nh chnh (RAM) bng cch to mt vng lp c ln lt tng byte. Thao tc ny
lm lng ph thi gian ca CPU.

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.

Hnh 2.7: C ch DMA

21

2.1.5 Cc thut ton lp lch di chuyn u c

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.

Hnh 2.8: m hnh a cng


2.1.5.1 Thut ton FCFS (first-come, first-served)

.P

TI

T.

Thut ton s di u c theo th t ng vi th t cc khi cn c, thut ton d lp trnh


nhng cha tt. V d cn phi c cc khi theo th t nh sau: 98, 183, 37, 122, 14, 124, 65, v
67. Gi s hin ti u c ang v tr 53, thut ton s di u c ln lt i qua cc khi 53,
98, 183, 37, 122, 14, 124, 65, v 67

Hnh 2.9: Cc bc di chuyn u c theo thut ton FCFS

PE

2.1.5.2 Thut ton SSTF (shortest-seek-time-first)

Thut ton s di chuyn u c ln lt n cc khi cn c theo v tr gn vi v tr hin hnh


ca u c nht. V d cn c cc khi nh sau: 98, 183, 37, 122, 14, 124, 65, v 67. Gi s
hin ti u c ang v tr 53, thut ton s di u c ln lt i qua cc khi 53, 65, 67, 37,
14, 98, 122, 124 v 183.

Hnh 2.10: Cc bc di chuyn u c theo thut ton SSTF

22

2.1.5.3 Thut ton SCAN

U
.V

Thut ton s di chuyn u c v mt pha ca a v t di chuyn qua pha kia. V d cn


c cc khi nh sau: 98, 183, 37, 122, 14, 124, 65, v 67. Gi s hin ti u c ang v tr
53, u c ln lt i qua cc khi: 53, 37, 14, 65, 67, 98, 122, 124 v 183

Hnh 2.11: Cc bc di chuyn u c theo thut ton SCAN


2.1.5.4 Thut ton C-SCAN

TI

T.

ED

Thut ton ny tng t nh thut ton SCAN, ch khc l khi n di chuyn n mt u no


ca a, n s lp tc tr v u bt u ca a. Ly li v d trn, khi th t truy xut cc
khi s l 53, 65, 67, 98, 122, 124, 183, 14, 37

.P

Hnh 2.12: Cc bc di chuyn u c theo thut ton C-SCAN

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

2.1.6 H s an xen v Ram Disks


* H s an xen (Interleave)

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.

Hnh 2.13: (a) interleave=0, (b) interleave=1, (c) interleave=2

23

V d gi s h thng c 17 sector/track, v interleave = 4 th cc sector c b tr theo th t


nh sau: 1, 14, 10, 6, 2, 15, 11, 7, 3, 16, 12, 8, 4, 17, 13, 9, 5
Cch c ln lt nh sau :
Ln 1: 1, 2, 3, 4, 5
Ln 2: 6, 7, 8, 9, 10
Ln 3: 11, 12, 13, 14, 15

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

H iu hnh c th dng mt phn ca b nh chnh lu tr cc khi a, phn b nh ny gi


l Ram Disk . Ram Disk cng c chia lm nhiu khi, mi khi c kch thc bng kch thc
ca khi trn a. Khi driver nhn c lnh c/ghi khi, s tm trong b nh Ram Disk v tr ca
khi, v thc hin vic c/ ghi trong thay v t a . RAM disk c u im l cho php truy
xut nhanh, khng phi ch quay hay tm kim, thch hp cho vic lu tr nhng chng trnh
hay d liu c truy xut thng xuyn.

T.

2.2 QUN L H THNG TP TIN


2.2.1 a cng, tp tin, th mc

TI

2.2.1.1 a cng (hard disk)

PE

.P

a cng c nh dng thnh cc vng trn ng tm gi l rnh (track), mi rnh c chia


thnh nhiu phn bng nhau gi l cung (sector). Mt khi (cluster) gm mt hoc nhiu cung v
d liu c c/ghi theo n v khi. Vic s dng n v khi tng hiu qu trong vic
c/ghi v gim chi ph qun l s a ch trn a. Ngoi ra khi a cng ln, c th chia thnh
nhiu phn vng (partition), mi phn vng gm mt s t tr (cyclinder) lin tip. Mt t tr l
tp hp cc rnh cng bn knh.

sector

track

Hnh 2.14: m hnh t chc a

2.2.1.2 File (tp tin)


File l mt tp hp thng tin c t tn v lu tr trn a. File l n v lu tr thng tin nh
nht trn a ca h iu hnh. File c th lu tr chng trnh hay d liu, file c th l dy tun
t cc byte khng cu trc hoc c cu trc dng (kt thc bng k t enter), hoc cu trc mu tin
c chiu di c nh hay thay i. Cu trc file do h iu hnh hoc chng trnh qui nh. File
c th truy xut tun t (c cc byte theo th t t u file), hoc truy xut ngu nhin (c/ghi
ti mt v tr bt k trong file).

24

* Thuc tnh file (file attributes)


Thuc tnh ca file l cc thng tin lin quan n file, s thuc tnh ca file ty theo h iu hnh,
nhng thng th file c cc thuc tnh sau:
+ Tn file (file name)

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

+ Kiu file (file type)

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

+ V tr file: Danh sch cc khi (cluster) trn a cp cho file.

+ 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.

+ Loai file: file n, ch c, h thng, lu tr, file/th mc

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)...

Hnh 2.15: Mt s thuc tnh ca file/th mc

25

* Cc thao tc trn file


H iu hnh cn cung cp cc cc li gi h thng (system call) x l file nh l:
to/xa/m/ng/c/ghi/thm/di con tr file/ly thuc tnh/t thuc tnh/i tn file,
+ To file (create): Ghi mt mc cha thng tin file vo cu trc th mc v tm mt khi trng
cp cho file.
+ Xa file (delete): Tm tn file trong cu trc th mc, gii phng tt c khi a m file chim
gi, xo mc tng ng trong cu trc th mc.

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.

+ Ghi thm vo cui (append)

2.2.1.3 Cu trc th mc (Directory Structure)


* Khi nim

PE

.P

Cu trc th mc l cu trc dng qun l tt c cc file trn a. Cu trc th mc cng c


ghi trn a v gm nhiu mc (Directory Entry), mi mc lu thng tin ca mt file. Thng
thng thng tin file gm c thuc tnh file v danh sch cc s hiu khi a lu tr file. Khi mt
file c truy xut, h iu hnh tm tn file trong cu trc th mc, nu tm thy s ly thuc tnh
v cc s hiu khi lu tr file a vo mt bng trong b nh (bng open-files), cc ln sau khi
truy xut file hoc thay i thng tin file th khng cn truy xut a m truy xut bng open-files
trong b nh chnh v s nhanh hn nhiu. H iu hnh cng cn cung cp cc li gi h thng
thao tc trn th mc tng t nh i vi file. Cc thao tc trn th mc c th l: Create,
Delete, Open, Close, Read, Rename, Link, Unlink,

mc 0 mc 1 . mc n
Cu trc th mc

TenFile ThuocTinh ViTriLuuTru


Mt mc trong 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

Cu trc th mc s cha thuc tnh ca tt c cc file ca tt c ngi dng. Cu trc ny n


gin nhng gy ra kh khn do t tn file khng c trng nhau v ngi s dng khng th
phn nhm cho file cng nh tm kim chm khi s lng file nhiu.

Hnh 2.17: cu trc th mc mt cp


+ Th mc hai cp: (Two Level Directory)

.P

TI

T.

ED

S bt tin ch yu ca th mc mt cp l nhm ln v tn file gia nhng ngi dng. Gii


php l to th mc ring (user file directory:UFD) cho mi user. Mi UFD c cu trc ging
nhau nhng ch qun l file ca mt user, nh vy cc user c th c file cng tn nhng user ch
c truy xut cc file trong th mc ca user . Gii php ny tm kim file nhanh hn, nhng
vn khng c kh nng nhm file. Trong hnh 2.5, user1 mun truy xut file test th s dng
ng dn: user1/test.

Hnh 2.18: cu trc th mc hai cp

+ Th mc a cp: (Tree-Structured Directory)

PE

C mt th mc gi l th mc gc (root directory) v trong c cc th mc con. Mi user c


th to nhng th mc con ring, trong mi th mc con cha file v c th cha th mc con
khc. Cu trc ny cho php user c th truy xut n file ca user khc thng qua quyn c
cp v cho php tm kim hiu qu hn, cng nh c kh nng phn nhm file.

Hnh 2.19: cu trc th mc a cp

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 .

Hnh 2.20: t chc phn vng a


* Bng th mc (Directory Table)

T.

ED

Bng th mc l mt dng ci t bng dy mt chiu ca cu trc th mc (Directory Structure).


Bng th mc c nhiu mc (directory entry), mi mc lu tr thng tin ca mt file/th mc,
thng tin file gm thuc tnh ca file v a ch trn a ca ton b file hoc s hiu ca khi u
tin cha file hoc l s I-node ca file. Mi a c mt bng th mc gi l bng th mc gc,
ci t phn u ca a v c th c nhiu bng th mc con.
V d:

.P

TI

+ Mi mc trong bng th mc ca h iu hnh MSDOS/WINDOWS (FAT) ch lu s hiu khi


u tin ca mi file/th mc. Khi bit s hiu cc khi cn li ca file/th mc, h iu
hnh s dng bng cp pht file (bng FAT).

PE

Hnh 2.21: cu trc mt mc trong bng th mc ca MSDOS/WINDOWS (FAT)

+ Mi mc trong bng th mc ca h iu hnh CP/M cha tt c cc s hiu khi cha file/th


mc, khi khng cn dng bng cp pht file (bng FAT)

Hnh 2.22: cu trc mt mc trong bng th mc ca CP/M

28

+ Mi mc trong bng th mc ca h iu hnh UNIX lu s hiu I-node

Hnh 2.23: cu trc mt mc trong bng th mc ca UNIX

2.2.2 Ci t h thng qun l file

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.

Hnh 2.24: Bng th mc trong m hnh cp pht lin tc

2.2.2.2 Cp pht khi nh khng lin tc

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

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. Khi mt mc trong bng th mc s lu s hiu khi cha bng ch mc ca file.
Phng php ny d bo v cc bng ch mc, ngha l bo v c cc s hiu khi ca file
nhng tn nhiu khi nh lu cc bng ch mc.

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!

Hnh 2.26: m hnh cp pht khng lin tc, s dng bng ch mc

2.2.2.2.3 Bng cp pht file (FAT: File Allocation Table)


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 (bng FAT). Phng php ny d
bo v cc s hiu khi cp cho file, truy xut file ngu nhin d dng hn, kch thc file d
m rng nhng bng FAT b gii hn bi kch thc b nh dnh cho n. y chnh l cch m
h iu hnh MSDOS, OS/2, Windows (FAT) s dng qun l File.

30

U
.V

V d: Gi s file test.txt c lu tr ln lt 3 khi trn a c s hiu l: 217, 618, 339. S


hiu khi u l 217 ghi trong mt mc ca bng th mc, cc s hiu khi tip theo l 618, 339
ghi trong bng cp pht file.

ED

Hnh 2.27: m hnh cp pht khng lin tc, s dng bng FAT

Bng th mc:
(A, 4)

TI

T.

V d: Gi s file A v file B c cp pht gm cc khi theo th t sau: file A: 4, 7, 2, 10, 12 ;


file B: 6, 3, 11, 14. Khi trong bng th mc s c mt mc lu tn file A v s hiu khi u
ca file A l 4. Tng t c mt mc lu tn file B v s hiu khi u ca file B l 6. Cc s
hiu khi tip theo ca file A v file B lu trong bng cp pht file (fat)

(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

2.2.2.2.4 Bng I-nodes:


Mi file c qun l bng mt cu trc gi l 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.

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

Hnh 2.29: cu trc mt I-node trong bng I-nodes


* Phng php t chc qun l a bng I-nodes:

.P

+ MBR(Master Boot Record): l sector u tin cha thng tin v a.


+ Partion Table: bng phn vng cha cc thng tin v mi phn vng.

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

V d h iu hnh mun c file /usr/ast/mbox, trc tin tm tn th mc usr trong bng th


mc gc (root dir), v nhn thy th mc usr c i-nodes l 6. Tip theo truy xut phn t i-node
th 6 trong bng i-nodes, ly c s hiu khi u ca usr l 132, khi ny s cha bng th
mc con (sub dir) ca usr. Tip theo tm tn th mc ast trong bng th mc con ca usr,
v tm c th mc ast c i-nodes l 26. Tip theo truy xut phn t i-node th 26 trong bng
i-nodes, ly c s hiu khi u ca ast l 406, khi ny s cha bng th mc con ca ast.
Tip theo tm tn file mbox trong bng th mc con ny, v tm c file mbox c i-nodes l
60. Truy xut phn t i-node th 60 trong bng i-nodes, ly c cc s hiu khi ca file
mbox.

TI

Hnh 2.31: m hnh cp pht khng lin tc, s dng bng I-nodes chi tit

2.2.3. Qun l cc khi trng

.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.

2.2.3.1 Danh sch lin kt

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.

V d: Gi s khi a 1KB v mt s hiu khi a l 32 bit th mt khi a c th ghi c 256


-1 s hiu khi a trng

Hnh 2.33: Qun l danh sch cc khi trng s dng danh sch lin kt v vector bit.

2.2.3.2 Dng vector bit (dy bt)

Bit th i = 1 l khi th i trng, bit th i = 0 l khi th i s dng. Vector bit c lu trn mt


hoc nhiu khi a, khi cn s c vo b nh x l nhanh. Vector bit t tn khi nh hn l
dslk nhng kch thc vector bit l c nh v h iu hnh cn ng b vector bit trong b nh
v vector bit trn a.
V d: xt li v d trn, nu dng vector bit, hy tnh kch thc vector bit.
HD: a 20M c 20 x 210 khi nn kch thc vector bit l 20 x 210 bit = 20 x 210 /8/ 210 KB ~ 3
khi.

34

2.2.4. Qun l s an ton ca h thng tp tin


2.2.4.1 Qun l khi b hng
+ Dng phn mm: dng mt file cha cc danh sch cc khi hng.
+ Dng phn cng: dng mt sector trn a lu gi danh sch cc khi b hng.
Khi b kim sot a thc hin ln u tin, n c danh sch khi b hng vo b nh, t
khng cho truy cp nhng khi hng.

2.2.4.2 Sao lu file (Backup)

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

Hnh 2.34: sao lu d liu

2.2.5 Gii thiu mt s h thng tp tin


2.2.5.1 H thng tp tin ca MSDOS/Windows (FAT)

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

sector u tin, track 0, side 0 ca a mm, i vi a cng th v tr ny l bng partition, ri


mi ti boot sector ca partition th nht, i vi cc partition khc, boot sector l sector u tin.
Boot sector cha bng tham s a BPB (Bios Parameter Block) v cha on m boot dng
np cc file h thng, boot sector hp l phi c gi tr AA55 offset 1FE. Trn my IBM PC sau
khi thc hin thao tc POST (Power On Self Test), ROM BIOS tm boot sector hp l, c boot
sector vo a ch 0X7C00, gn CS=0000h, IP=7C00h v cho thc thi lnh u tin trong boot
sector (lnh JMP). Boot sector c cu trc nh sau:

35

Size(byte)

Content

Gii thch

00

JMP

Lnh nhy n u on m boot

03

Version

Phin bn h iu hnh

0B

SectSiz

s byte /mt sector, thng l 512 (y l bt u ca BPB)

0D

ClustSize

s sector / mt cluster (khc 0)

0E

ResSecs

s sector dnh ring trc bng FAT, tnh lun boot sector (i
vi FAT12, FAT16 =1, FAT32=20h)

10

FatCnt

s bng FAT (thng l 2)

11

RootSiz

S mc trong bng ROOT DIR

13

TotSecs

Tng s sector trn a hay trn mt partition (<=65535)

15

MediaDescriptor

Byte nhn dng a (F8:a cng, F0:1.44 MB)

16

FatSize

S sector /mt bng FAT (<=65535). FAT32=0

18

TrkSecs

s sector / mt track

1A

HeadCnt

s u c

1C

HidnSec

s sector n ( gia bng partition v partion)

20

BigTotSecs

Tng s sector trn a hay trn mt partition ( >65535)

24

BigFatSize

S sector /mt bng FAT (>65535)

T.

ED

U
.V

Offset(hex)

(kt thc BPB)

TI

1D
1E

u on m boot

.P

1FF

cui on m boot

Hnh 2.35: Cu trc boot sector.


+ Bng FAT

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

Cluster cha d liu ca File, gi tr ny l s hiu cluster k.

(F)FF0 - (F)FF6

Dnh ring, khng dng

36

(F)FF7

Cluster hng

(F)FF8 - (F)FFF

Cluster cui cng ca chui (kt thc file)

Hnh 2.36: Cu trc mt mc (entry) trong bng fat.


+ Bng ROOT DIR (bng th mc gc)

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

Dnh ring s dng sau ny.

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

S hiu khi u tin ca file

.P

TI

T.

ED

Boot sector

Kch thc File

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.

Hnh 2.37: Cu trc mt mc trong bng ROOT DIR/ SUB DIR


Gi tr ca byte thuc tnh:

1 : File ch c (Read Only)


2 : File n (Hidden)
4 : File h thng (System)
8 : nhn a (Volume)
16 : th mc con (Directory)
32 : File cha c sao lu (Archive)

37

V d: Xt a 1.4MB, c format di h iu hnh MS-DOS/WINDOWS (FAT12) gm c


2880 sector (1.4MB=>1.4*1024*1024/512=2880 sector), v 1 khi (cluster) = 1 sector nn mi
mc ca bng FAT ch cn 12 bit. Sector u tin l boot sector, bao gm bng tham s vt l ca
a v chng trnh khi ng ca h iu hnh. 18 sector tip theo l FAT (FAT12), gm 2 bng,
mi bng 9 sector (c 3072 mc, nu 8 sector th khng qun l 2880 khi). Ba bytes u
tin ca mi bng FAT lu s hiu loi a (240, 255, 255). 14 sector k tip cha bng th mc
gc (bng ROOT DIR). Cc sector cn li dng lu d liu, cluster nh s t 2.
9
FAT12

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

Cu trc mt mc trong bng ROOT DIR


24-25

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

a 1.44MB th mc gc c ti a 224 file hoc th mc con. Nu file c kch thc file =0 th


s hiu khi u = 0. K t u ca tn file c gi tr l 0 (trng), du chm (dnh ring cho DOS),
0xE5 (file b xa: khi xa file, DOS s in k t 0xE5 vo k t u ca file).

T.

+ Cu trc bng FAT


Byte

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)

V d: ghi vo entry 2 gi tr F2Ah v entry 3 gi tr BC5h. Do byte 0,1,2 lu s hiu a, nn


entry 2 s c ghi vo byte th 3,4 v entry 3 s c ghi vo byte th 4,5 . Cch ghi nh sau:
0

Byte

(s hiu a

2A

5F

BC

PE

Gi tr

unsigned char fat[512*9]; //mng cha bng fat c t a


void WriteFat (unsigned new_fat, unsigned k) // ghi gi tr new_fat vo entry th k = 2,3,...,3071

unsigned i=k*3/2; //entry k s c ghi vo byte th i v i+1


if (k%2==0)// k chn
{

//t 8 bt cui ca new_fat vo byte th i


fat[i] = new_fat&0x0FF;
//t 4 bt cao ca new_fat vo 4 bt cui ca byte th i+1
fat[i+1] = (fat[i+1]&0xF0) | (new_fat>>8);

}
else //k l

38

//t 8 bt cao vo vo byte th i+1


fat[i+1]=new_fat>>4;
//t 4 bt thp vo 4 bt cao ca byte th i
fat[i]=((new_fat&0xF)<<4)|(fat[i]&0x0F);

}
}

10

11

AB

CD

EF

(trc khi ghi)

AB

BD

1A

(sau khi ghi)

U
.V

V d: gi s new_fat = 1AB, luu vao entry k=7 ->luu vao byte i=10 v i+1=11

unsigned ReadFat (unsigned k) // c gi tr ca entry th k (k>=2)


{

//entry th k byte th i, i+1

ED

unsigned i=k*3/2;

unsigned val_fat=(fat[i+1]<<8) | fat[i] ; // hoc val_fat=fat[i+1]*256+fat[i];


if (val_fat%2==0) val_fat=val_fat & 0x0FFF;

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)

- c: h=(time>>11); m=(time>>5)&0x3F; s=(time&0x1F)<<1;


- c/Ghi ngy, thng, nm

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 ;

- c : y=(date>>9) + 1980 ; m=(date>>5)&0xF ; d=date&0x1F ;

2.2.5.2 H thng tp tin ca Windows NT

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

Thng tin chun

Bao gm cc thuc tnh truy xut (ch c, c/ghi,...), nhn thi gian, ch s lin kt

U
.V

Kiu thuc tnh

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

thng tin volume

nh tn version v tn volume

Bitmap

hin trng cc dng trong MFT

TI

T.

Ch mc gc

.P

Hnh 2.38: Cc kiu thuc tnh ca File v th mc trong Windows NTFS

2.5.3. H thng file ca UNIX

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:

- Kch thc ca ton b h thng file.


- a ch ca khi d liu u tin.
- S lng khi trng v danh sch khi trng.

- S lng I-node trng v danh sch I-node trng.


- Ngy super block c cp nht sau cng.
- Tn ca h thng file.
Nu khi ny b hng, h thng file s khng truy cp c. C rt nhiu trnh ng dng s dng
thng tin lu tr trong super block, v vy mt bn sao super block c t trong RAM tng

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

+ C ch truy xut a: u c c di chuyn n track thch hp, v ch cho n khi khi cn


c n di u c, c d liu t a vo b nh chnh, h iu hnh cn a ra cc thut ton
lp lch di u c sao cho ti u. Cc thut ton lp lch di chuyn u c: FCFS, SSTF,
SCAN, C-SCAN

+ H s an xen: Trn a cc sector s hiu lin tip nhau khng nm k bn nhau m c mt


khong cch nht nh, khong cch ny c xc nh bi qu trnh format a v gi l h s
an xen. Mc ch ca h s an xen l ng b hai thao tc c/ghi d liu v chuyn d liu
vo h thng
+ RAM disk l mt phn ca b nh chnh lu tr cc khi a. RAM disk truy xut rt nhanh,
thch hp cho vic lu tr nhng chng trnh hay d liu c truy xut thng xuyn.
+ a cng c t chc thnh cc vng trn ng tm gi l rnh (track), mi rnh c chia
thnh nhiu phn bng nhau gi l cung (sector). Mt khi (cluster) gm 1 hoc nhiu cung v d
liu c c/ghi theo n v khi.

41

+ File l mt tp hp cc thng tin c t tn v lu tr trn a. File c th lu tr chng


trnh hay d liu, file c th l dy tun t cc byte khng cu trc hoc c cu trc dng, hoc
cu trc mu tin c chiu di c nh hay thay i. File c th truy xut tun t, hoc truy xut
ngu nhin.
+ Thuc tnh ca file l thng tin ca file, thng c cc thuc tnh sau: tn file, kiu file, v tr
file, kch thc file, ngy gi to file, ngi to file, loai file, bo v file.
+ Cc thao tc trn file gm c to/xa/m/ng/c/ghi/thm/di con tr file/ly thuc tnh/t
thuc tnh/i tn file

+ Cu trc th mc l cu trc dng qun l tt c cc file trn a. Cu trc th mc cng


c ghi trn a v gm nhiu mc, mi mc lu thng tin ca mt file.

U
.V

+ Cu trc th mc c cc loi sau: th mc mt cp, th mc hai cp, th mc a cp.

+ 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

+ Cc thao tc trn th mc tng t nh i vi file v gm c: Create, Delete, Open, Close,


Read, Rename, Link, Unlink,

T.

+ Bng th mc l mt dng ci t ca cu trc th mc. Bng th mc c nhiu mc, mi mc


lu tr thng tin ca mt file, thng tin file gm thuc tnh ca file v a ch trn a ca ton b
file hoc s hiu ca khi u tin cha file hoc l s I-node ca file. Mi a c mt bng th
mc gi l bng th mc gc, ci t phn u ca a v c th c nhiu bng th mc con.
+ C th ci t h thng qun l file theo phng php cp pht khi nh cho file l lin tc hay
khng lin tc.

.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.

1. Nu cc loi thit b nhp/xut


2. Trnh by c tnh ca thit b nhp/xut
3. B iu khin thit b nhp/xut (I/O controller) l g?
5. Nu cch t chc h thng nhp/xut
6. Nu c ch nhp/xut
6. Trnh by c ch DMA
7. Nu c ch truy xut a

ED

4. Nu cc chng trnh thc hin nhp/xut

U
.V

CU HI V BI TP

T.

8. Trnh by cc thut ton lp lch di chuyn u c


9. Trnh by h s an xen

TI

10. Nu khi nim Ram Disks

11. Ti sao d liu khng lu tr ti v tr bt k trn a m li lu tr trn cc rnh (track)?

.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?

13. Mc ch ca bng open-files, bng open-files lu tr nhng thng tin no?


14. Mc ch ca bng th mc? phn bit bng th mc gc v bng th mc con.

PE

15. Ti sao h iu hnh CP/M khng cn bng cp pht file (FAT)?


16. Nu u/khuyt im ca vic cp pht cc khi nh lin tc cho file.
17. Nu u/khuyt im ca vic cp pht cc khi nh khng lin tc cho file.
18. Nu u/khuyt im h thng qun l file dng bng th mc v bng cp pht file.

19. Nu u/khuyt im h thng qun l file dng cu trc I-nodes.


20. Ti sao trong h iu hnh MS-DOS v h iu hnh WINDOWS s dng FAT, s file hoc
th mc con trong th mc gc b hn ch, trong khi s file hoc th mc trong th mccon li
khng b hn ch?
21. Cho dy byte ca FAT12 nh sau (bt u t u):
240

255

255

64

112

255

255

143

255

255

255

Cho bit nhng phn t no ca FAT c gi tr c bit, ngha ca phn t .


Nu sa li phn t 5 l FF0 th dy byte ca FAT12 ny c ni dung nh th no ?

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

V I_node ca File ny, gi s mi khi ch cha c 3 phn t.


27. Vit cc lnh ni tr v ngoi tr ca MSDOS bng ngn ng C v ch c s dng hai hm
c/ghi sector sau:

int absread(int drive, int nsects, long lsect, void *buffer);


int abswrite(int drive, int nsects, long lsect, void *buffer);

TI LIU THAM KHO


[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.

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

QUN L TIN TRNH


Chng QUN L TIN TRNH" s gii thiu v gii thch cc vn sau:
3.1 Cc khi nim v tin trnh
3.2 iu phi cc tin trnh

3.3 Lin lc gia cc tin trnh


3.5 Tnh trng tc nghn (deadlock)

3.1. CC KHI NIM V TIN TRNH


3.1.1 Tin trnh (Process)

U
.V

3.4 ng b cc tin trnh

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

a/ Tng hiu sut s dng CPU (tng mc a chng):

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:

Mt s bi ton c th x l song song nu c xy dng thnh nhiu n th hot ng ng


thi th s tit kim c thi gian 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.

3.1.2 Tiu trnh (thread)

T.

3.1.2.1 Khi nim tiu trnh

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

3.1.2.2 Lin lc gia cc tiu trnh

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

Hnh 3.3: mt chng trnh x l vn bn c ba thread: mt thread nhn cc k t nhp t bn


phm, mt thread hin vn bn, mt thread ghi vn bn vo a.

.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

(a) on m cho dispatcher thread (b) on m cho worker thread

Hnh 3.5: mt process c ba thread, mi thread s c stack ring.

48

Trong bng di y, tt c cc thread trong cng process dng chung cc mc ct 1, nhng


mi thread s c ring cc mc ct 2
Trong cng tin trnh

Trong mi tiu trnh

Khng gian a ch

B m chng trnh

Cc bin ton cc

Cc thanh ghi

Cc tp tin m

Ngn xp

Cc tin trnh con

Trng thi

Cc cnh bo
Cc tn hiu v cc b x l tn hiu

U
.V

Thng tin ti khon

3.1.2.3 Ci t tiu trnh (Threads)

.P

TI

T.

ED

a/ Ci t trong Kernel-space : bng qun l thread lu tr phn kernel v vic iu phi cc


thread l do h iu hnh chu trch nhim.

Hnh 3.6: h iu hnh chu trch nhim iu phi cc tiu trnh

PE

b/ Ci t trong User-space: bng qun l thread lu tr phn user-space v vic iu phi cc


thread l do tin trnh chu trch nhim.

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

Hnh 3.8: mt thread ca h iu hnh qun l mt s thread ca tin trnh.

V d: gi s quantum ca process=50 msec, quantum ca thread=5 msec v gi s tin trnh A


c ba thread, tin trnh B c 4 thread.

.P

TI

T.

ED

- Nu vic iu phi thread c thc hin mc user-space th th t iu phi c th l A1, A2,


A3, A1, A2, A3 nhng khng th l A1, B1, A2, B2, A3, B3; v khi tin trnh A c cho thc thi
vi quantum=50 v mi thread c thc thi vi quantum=5 th khng th A1 n B1 c do
thread ca tin trnh no tin trnh qun l v tin trnh A cha ht quantum nn thread ca tin
trnh B khng th thc hin.

Hnh 3.9: iu phi thread mc user, mt th t iu phi c th v khng th

PE

- Nu vic iu phi thread c thc hin mc kernel-space th th t iu phi A1 n B1 l c


th v cc thread do h iu hnh qun l

Hnh 3.10: iu phi thread mc kernel, mt th t iu phi c th v khng th.

50

3.1.3 Cc trng thi ca tin trnh


Vic chuyn trng thi ca tin trnh l do b iu phi (scheduler) thc hin v ti mt thi im,
tin trnh c th nhn mt trong cc trng thi sau y :
a/ New: tin trnh mi c to ang trong b nh tm trn a cng.
b/ Ready: tin trnh trong b nh v ch c cp pht CPU.
c/ Running: tin trnh trong b nh ang thc thi.

d/ Blocked (wait): tin trnh trong b nh ch c cp pht ti nguyn, hoc ch thao tc


nhp/xut hon tt hoc ch mt s kin no .

3.1.3.1 S chuyn trng thi tin trnh


New

End
1

3
Running
2

ED

Ready

U
.V

e/ End: tin trnh trong b nh hon tt x l.

T.

Blocked

TI

Hnh 3.11: s chuyn trng thi gia cc tin trnh.

.P

Ti mt thi im, ch c mt tin trnh c th nhn trng thi running trn mt b x l no .


Trong khi , c th c nhiu tin trnh trng thi blocked hay ready. Cc cung chuyn tip
trong s trng thi biu din su s chuyn trng thi c th xy ra trong cc iu kin sau :

- Cung 1: Tin trnh mi to, nu b nh cn trng, s c a vo b nh v sn sng nhn


CPU, khi tin trnh t trng thi New c chuyn sang trng thi Ready.
- Cung 2: B iu phi cp pht cho tin trnh mt khong thi gian s dng CPU v cho tin
trnh thc hin, khi tin trnh t trng thi Ready c chuyn sang trng thi Running.

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 4: Khi tin trnh yu cu mt ti nguyn nhng cha c p ng v ti nguyn cha sn


sng hoc tin trnh ch thao tc nhp/xut hon tt hoc tin trnh ch mt s kin no , khi
tin trnh c chuyn t trng thi Running sang trng thi Blocked.
- Cung 5: Khi tin trnh tm dng v ht thi gian s dng CPU, b iu phi s chn mt tin
trnh khc cho x l, khi tin trnh c chuyn t trng thi Running sang trng thi
Ready.

- 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

3.1.3.2 Cc ch x l ca tin trnh


+ Tp lnh ca CPU c phn chia 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.
+ Thng thng ch c h iu hnh hot ng trong ch c quyn, cc tin trnh ca ngi
dng s hot ng trong ch khng c quyn.

3.1.4 Khi qun l tin trnh (Process Control Block: PCB)

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

b/ Trng thi tin trnh: xc nh hot ng hin hnh ca tin trnh.

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

- Tin trnh cha: tin trnh to lp tin trnh ny.

- Tin trnh con: cc tin trnh do tin trnh ny to lp.


- u tin : gip b iu phi c thng tin la chn tin trnh c cp CPU.

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.

Hnh 3.12: Cu trc ca khi qun l tin trnh (PCB)

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

Qun l tin trnh


Cc thanh ghi
B m chng trnh
Trng thi chng trnh
Con tr Stack
Tnh trng ca tin trnh
u tin
Cc tham s iu phi
ID ca tin trnh
Tin trnh cha
Nhm tin trnh
Cc tn hiu
Thi im bt u tin trnh
Thi gian CPU s dng
Thi gian CPU ca tin trnh con
Thi gian ln cnh bo k tip

Hnh 3.13: thng tin trong khi PCB c lit k theo chc nng qun l

a/ To lp tin trnh (create)

T.

3.1.5 Cc thao tc trn tin trnh

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.

Cc h iu hnh khc nhau c th chn la cc ci t khc nhau thc hin thao tc to lp


mt tin trnh.
+ Cc cng vic cn thc hin khi to lp tin trnh:
- nh danh cho tin trnh mi pht sinh
- a tin trnh vo danh sch qun l ca h thng

- Xc nh u tin cho tin trnh

53

- Cp pht cc ti nguyn ban u cho tin trnh


- To PCB lu tr thng tin tin trnh
+ Cc thi im tin trnh c to ra :
Tin trnh c to ra vo mt trong cc thi im sau:
- Thi im khi to h thng (System initialization)
- Thi im thc thi li gi to tin trnh

- Thi im ngi s dng yu cu to tin trnh mi

U
.V

- Thi im khi u mt cng vic theo l (batch job)

b/ Kt thc tin trnh (destroy)

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

- Hy tin trnh khi tt c cc danh sch qun l ca h thng


- Hy b PCB ca 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)

d/ Ti kch hot tin trnh (resume)

e/ Thay i u tin tin trnh (change priority)

PE

3.1.6 Khi qun l ti nguyn ( Resource Control Block: RCB)


Mi ti nguyn c h iu hnh qun l bng mt cu trc gi l khi qun l ti nguyn RCB.
RCB khc nhau v chi tit cho tng loi ti nguyn, nhng c bn c cc thng tin sau:

a/ nh danh ti nguyn: dng phn bit ti nguyn ny vi ti nguyn khc.

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.

d/ B cp pht ti nguyn: l on m m nhim vic cp pht ti nguyn. Mt s ti nguyn


i hi cc gii thut c bit (nh CPU, b nh chnh, h thng tp tin), trong khi nhng ti
nguyn khc (nh cc thit b nhp/xut) c th cn cc gii thut cp pht v gii phng tng
qut hn.

54

ngha

nh danh ti nguyn

rid

Trng thi ti nguyn

Danh sch cc phn ca ti nguyn c th s dng

Hng i

Danh sch cc tin trnh ang i ti nguyn

B cp pht

Con tr n b cp pht ti nguyn

U
.V

RCB

Hnh 3.14: thng tin trong khi RCB


+ Mc tiu ca b cp pht ti nguyn :

ED

- Bo m mt s lng hp l cc tin trnh truy xut ng thi n cc ti nguyn khng th


chia s c.
- Cp pht ti nguyn cho tin trnh c yu cu trong mt khong thi gian tr hon c th chp
nhn c.

T.

- Ti u ha s s dng ti nguyn.

3.2 IU PHI TIN TRNH

.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.

3.2.1 Mc tiu ca b iu phi

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.

c/ Thi gian p ng hp l (Response time): Cc tiu ho thi gian hi p cho cc tng tc


ca ngi s dng.

d/ Thi gian lu li trong h thng (Turnaround Time): Cc tiu ha thi gian hon tt cc tc
v x l theo l.
e/ Thng lng ti a (Throughput ): Cc i ha s cng vic c x l trong mt n v
thi gian.
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.

3.2.2 Cc c tnh ca tin trnh


a/ Tnh hng nhp/xut( I/O-boundedness):

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.

c/ Tin trnh tng tc hay x l theo l :

d/ u tin ca tin trnh

U
.V

Ngi s dng theo kiu tng tc thng yu cu c hi p tc thi i vi cc yu cu ca


h, trong khi cc tin trnh ca tc v c x l theo l ni chung c th tr hon trong mt thi
gian chp nhn c.
Cc tin trnh c th c phn cp u tin theo mt s tiu chun no . Cc tin trnh c u
tin cao cn thc hin trc.

ED

e/ Thi gian s dng CPU ca tin trnh

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:

3.2.3 Cc nguyn l iu phi

3.2.3.1 iu phi c quyn (preemptive):

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.

3.2.4 T chc iu phi


3.2.4.1 Cc danh sch iu phi

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

H iu hnh ch s dng mt danh sch tc v, mt danh sch sn sng nhng mi mt ti


nguyn (thit b ngoi vi, file,) c mt danh sch ch i ring bao gm cc tin trnh ang ch
c cp pht ti nguyn .

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

Hnh 3.16: khi c yu cu ti nguyn m cha c p ng, tin trnh c a vo hng i ti


nguyn.
3.2.4.2 Cc loi iu phi
a) iu phi tc v (job scheduling)

TI

T.

ED

L la chn tc v no c a vo b nh chnh thc hin. Chc nng iu phi tc v


quyt nh mc a chng ca h thng (s lng tin trnh trong b nh chnh). Khi h thng
to lp mt tin trnh, hay c mt tin trnh kt thc x l th chc nng iu phi tc v mi c
kch hot. V mc a chng tng i n nh nn chc nng iu phi tc v c tn sut
hot ng thp . cn bng hot ng ca CPU v cc thit b ngoi vi, b iu phi tc v nn
la chn cc tin trnh np vo b nh sao cho l s pha trn hp l gia cc tin trnh hng
nhp xut v cc tin trnh hng x l.
b) iu phi tin trnh ( process scheduling)

PE

.P

Chn mt tin trnh trng thi sn sng ( c np vo b nh chnh, v c ti nguyn


hot ng ) v cp pht CPU cho tin trnh thc hin. B iu phi tin trnh c tn sut hot
ng cao, sau mi ln xy ra ngt (do ng h bo gi, do cc thit b ngoi vi...), thng l 1 ln
trong khong 100ms. Do vy nng cao hiu sut ca h thng, b iu phi tin trnh cn s
dng cc thut ton tt nht.
3.2.4.3 Cc thut ton iu phi
a/ Thut ton FIFO

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.

Hnh 3.17: m hnh iu phi theo FIFO


V d: H thng ln lt c ba tin trnh P1, P2, P3 vo ready list. Thi im vo RL v thi gian
x l ca mi tin trnh cho trong bng sau:

58

P1

24

P2

P3

Theo thut ton FIFO, th t cp pht CPU cho cc tin trnh l :

24 27

U
.V

P1 P2 P3

Tin trnh Thi im vo RL Thi gian x l

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

Hnh 3.18: m hnh iu phi theo round robin


V d:

Tin trnh Thi im vo RL Thi gian x l


P1

24

P2

P3

59

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


P1 P2 P3 P1 P1 P1 P1 P1
0

10 14 18 22 26

30

Thi gian ch i trung bnh s l (6+3+5)/3 = 4.66 milisecondes.


Nhn xt:

- 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

Tin trnh Thi im vo RL u tin Thi gian x l


3

24

P3

P2

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


P1 P2 P3
0

24 27

30

Thi gian ch i trung bnh s l (0+23+25)/3 =16 milisecondes.

60

Nu s dng thut gii u tin khng c quyn, th t cp pht CPU nh sau :


P1 P2 P3 P1
0

30

Thi gian ch i trung bnh s l (6+0+2)/3 = 2.7 milisecondes.


Nhn xt:

- Tnh trng i CPU (starvation) l mt vn chnh yu ca cc gii thut s dng u tin.


Cc gii thut ny c th cc tin trnh c u tin thp ch i CPU v hn!

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

d/ Thut ton cng vic ngn nht (Shortest-job-first SJF)

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 :

Tin trnh Thi im vo RL Thi gian x l


P1

P3

P4

PE

P2

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


P1 P4 P3 P2
0

12

20

Thi gian ch i trung bnh s l (0+11+6+3)/4 = 5 milisecondes.

61

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


P1 P4 P1 P3 P2
0

12

20

Thi gian ch i trung bnh s l (2+11+6+0)/3 = 6.33 milisecondes.


Nhn xt:

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

e/ Thut ton nhiu mc u tin

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

Hnh 3.19: m hnh iu phi theo nhiu mc u tin

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

+ Chin lc iu phi x s (Lottery)

Hnh 3.20: m hnh iu phi theo nhiu mc u tin xoay vng.

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.

3.3. LIN LC GIA 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:

3.3.1 Lin lc bng tn hiu (Signal)

.P

Mt tn hiu c s dng thng bo cho tin trnh v mt s kin no xy ra. Vi mi tn


hiu s c mt hm x l tn hiu (signal handler) do phn cng hoc h iu hnh cung cp. V
d mt s tn hiu ca h iu hnh UNIX:
M t

SIGINT

Ngi dng nhn phm Ctl-C ngt x l tin trnh

SIGILL

Tin trnh x l mt ch th bt hp l

SIGKILL

Yu cu kt thc mt tin trnh

SIGFPT

Li chia cho 0

SIGSEGV

Tin trnh truy xut n mt a ch bt hp l

SIGCLD

Tin trnh con kt thc

PE

Tn hiu

Hnh 3.21: mt s tn hiu ca h iu hnh UNIX

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:

- X l tn hiu bng cch gi hm x l tn hiu.


- X l theo cch ring ca tin trnh.

U
.V

- B qua tn hiu.

V d c 11 bc khi thc hin li gi h thng: read(fd,buffer,nbyte)

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;

Hnh 3.22: cc bc thc hin li gi h thng read.


Nhn xt
- Tin trnh nhn tn hiu khng th xc nh trc thi im nhn tn hiu.
- Cc tin trnh ch c th thng bo cho nhau v mt s kin, khng th trao i d liu

64

Qun l tin trnh


ngha

pid = fork()

To mt tin trnh con ging ht tin trnh cha

pid = waitpid(pid,&statloc, options)

i mt tin trnh con ngng thc thi

s = execve(name, argv, environp)

Thay th 1 nh nhn tin trnh (process core image)

exit(status)

Ngng thc thi tin trnh v nhn v trng thi

Hm

Qun tr tp tin
ngha

fd = open(file, how, )

M 1 file c hoc ghi hoc c hai

s = close(fd)

ng 1 file ang m

n = read(fd, buffer, nbytes)

c d liu t 1 file vo 1 b m (buffer)

n = write(fd, buffer, nbytes)

Ghi d liu t 1 b m vo 1 file

position = lseek(fd, offset, whence)

Di chuyn con tr ca file

s = stat(name, &buf)

Ly thng tin trng thi ca 1 file

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

Qun tr h thng th mc v tp tin

U
.V

Hm

Xa mt mc

Khi to h thng tp tin

s = unmount(special)

ng h thng tp tin

.P

s = mount(special, name, tag)

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)

Gi 1 tn hiu ti 1 tin trnh

seconds = time(&seconds)

Ly thi gian tri qua t ngy 1/1/1097

PE

s = chdir(dirname)

Hnh 3.23: mt s li gi h thng thng dng

3.3.2 Lin lc bng ng ng (Pipe)


ng ng l mt knh lin lc trc tip gia hai tin trnh, d liu xut ca tin trnh ny c
chuyn n lm d liu nhp cho tin trnh kia di dng mt dng cc byte. Th t d liu
truyn qua pipe c bo ton theo nguyn tc FIFO. Mt tin trnh ch c th s dng mt pipe
do n to ra hay k tha t tin trnh cha.

65

Hnh 3.24: m hnh lin lc bng ng ng.

+ H iu hnh ng b ha vic truy xut pipe trong tnh hung sau:

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 cho php truyn d liu khng cu trc.

Pipe ch lin lc gia hai tin trnh c quan h cha-con, v trn cng mt my tnh.

3.3.3 Lin lc qua vng nh chia s (shared memory)

.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

Hnh 3.25: M hnh lin lc bng vng nh chia x


Nhn xt:

- 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.

- Vng nh chia s khng th p dng hiu qu trong cc h phn tn

3.3.4 Lin lc bng thng ip (Message)

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

* C hai cch lin lc bng thng ip:


a/ Lin lc gin tip (indirect communication)
Hai tin trnh ch c th lin lc nu c hp th/cng (mailbox/port) dng chung. Mi cng (port)
c mt s hiu duy nht phn bit. Thng ip s c gi v nhn thng qua cng dng
chung.
- Send(A, message): gi mt thng ip ti port A
- Receive(A, message): nhn mt thng ip t port A

Send(P, message) : gi mt thng ip n tin trnh P

U
.V

b/ Lin lc trc tip (direct communication)

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.

Receive(Q,message) : nhn mt thng ip t tin trnh Q

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

send(ntt,sp); //gi sp cho ntt


}
void ntt()

while(1)

.P

receive(nsx,sp); //ntt ch nhn sp

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.

3.3.5 Lin lc qua socket


Socket l knh lin lc hai chiu. Hai tin trnh mun lin lc vi nhau, mi tin trnh cn to mt
socket ring, mi socket c kt buc vi mt cng khc nhau . Cc thao tc c/ghi ln socket

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:

. tin trnh gi khng chc chn thng ip c gi n tin trnh nhn

Hai thng ip c gi theo mt th t no c th n tin trnh nhn theo mt th t


khc.

. Giao thc UDP s dng kiu lin lc ny

ED

. Mt tin trnh sau khi to mt socket c th s dng n lin lc vi nhiu tin trnh khc
nhau.

T.

b/ Lin lc kiu in thoi (socket ng vai tr tng i):

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:

. D liu truyn nhn bo m chnh xc v ng th t gi, nu sai s c gi li.

.P

. Giao thc TCP s dng kiu lin lc ny

3.4. NG B CC TIN TRNH

3.4.1. Yu cu ng b

PE

ng b cc tin trnh l bo m cc tin trnh x l song song khng tc ng sai lch n


nhau. Vic ng b cc tin trnh l do cc yu cu sau:
a/ Yu cu c quyn truy xut (Mutual exclusion): ti mt thi im, ch c mt tin trnh c
quyn truy xut mt ti nguyn khng th chia s.

b/ Yu cu phi hp (Synchronization): cc tin trnh cn hp tc vi nhau hon thnh cng


vic. V d chng trnh in xut k t vo buffer, k t c ly v in bi chng trnh iu khin
my in (printer driver). Hai tin trnh ny phi phi hp vi nhau nh l chng trnh in khng
c xut k t vo buffer khi buffer y m phi ch printer driver ly bt d liu.
T hai yu cu trn, ta c hai bi ton ng b cn gii quyt l bi ton c quyn truy
xut (hay cn gi l bi ton min gng) v bi ton phi hp thc hin.

68

3.4.2. Min gng (critical section)


on m ca mt tin trnh c kh nng xy ra li khi truy xut ti nguyn dng chung (bin, tp
tin,) c gi l min gng.
V d gi s c hai tin trnh P1 v P2 s dng vng nh dng chung lu tr bin taikhoan. Mi
tin trnh mun rt mt khon tin l tienrut t ti khon bng on m sau:

if (taikhoan >= tienrut) taikhoan = taikhoan - tienrut;

U
.V

else Thong bao khong the rut tien ! ;

ED

Gi s ti khon hin cn 800, P1 mun rt 500 v P2 mun rt 400, c th xy ra tnh hung li


nh sau: gi s P1 sau khi kim tra iu kin (800 >=500) l ng, P1 ht thi gian s dng
CPU, h iu hnh cp pht CPU cho P2, P2 kim tra iu kin (800>=400) cng vn ng, bin
taikhoan c cp nht li l 400. Khi P1 c tip tc x l, n s khng kim tra li iu kin
(taikhoan>= tienrut) m thc hin rt tin, gi tr ca bin taikhoan s cp nht thnh -100 !
on m:

if (taikhoan >= tienrut ) taikhoan = taikhoan - tienrut;

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!

Hnh 3.26: hai tin trnh A v B dng chung mt hng i, c th xy ra li.

69

U
.V

C th gii quyt li nu bo m ti mt thi im ch c mt tin trnh c x l lnh trong


min gng, ngha l ti mt thi im ch c mt tin trnh truy xut ti nguyn dng chung.

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

* Khi gii quyt bi ton min gng cn ch 4 iu kin sau:


a/ Khng c hai tin trnh cng trong min gng cng lc.

b/ Khng c gi thit v tc ca cc tin trnh, cng nh v s lng b x l.


c/ Mt tin trnh bn ngoi min gng khng c ngn cn cc tin trnh khc vo min gng.

3.4.3 Cc gii php ng b

T.

d/ Khng c tin trnh no phi ch v hn c vo min gng.

.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

A/ Gii php phn mm:

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

lock=0; //bin dng chung cho mi tin trnh


while (1) //mt tin trnh c th truy xut min gng nhiu ln
{

// nu lock=1 l c tin trnh no trong min gng, dng vng lp while i


while (lock == 1);
//nu lock=0 thot khi while, trc khi vo mg gn lock=1 khng cho cc tin trnh
khc vo mg (c quyn vo mg).
lock = 1;

critical-section (); //on m truy xut d liu dng chung m c th gy ra li.


lock = 0; //cho php cc tin trnh khc vo mg.

U
.V

noncritical-section(); //on m khng phi mg


}

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

Nu turn = 0, tin trnh A c vo min gng. Nu turn = 1, tin trnh A i vo mt vng lp ch


n khi turn nhn gi tr 0 th A c vo min gng. Khi tin trnh A ri khi min gng, n t
gi tr turn v 1 cho php tin trnh B i vo min gng.
// tin trnh A

PE

while (1)
{

while (turn == 1); // neu turn=1 thi A vao vong while de doi

critical-section (); //turn=0 thi A duoc vao mien gang


turn = 1; //gan turn=1 de cho B vao mg
Noncritical-section ();

// 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

turn = 0; //gan turn=0 de cho A vao mg


Noncritical-section ();
}

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)
{

flag [0]= TRUE;//P0 thng bo l P0 muon vao mg

.P

turn = 1; //thu de nghi P1 vao

while (turn == 1 && flag [1]==TRUE); //neu P1 muon vao thi P0 ch

critical_section();

flag [0] = FALSE; //P0 ra ngoai mg

PE

noncritical_section ();

// tin trnh P1 (i=1)


while (TRUE)

flag [1]= TRUE; //P1 thng bo l P1 muon vao mg


turn = 0;//th de nghi P0 vao
while (turn == 0 && flag [0]==TRUE); //neu P0 muon vao thi P1 ch
critical_section();
flag [1] = FALSE;//P1 ra ngoai mg
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.

B/ Cc gii php phn cng:


a) Cm ngt:
Tin trnh cm tt c cc ngt trc khi vo min gng, v phc hi ngt khi ra khi min gng.

Nhn xt:
+ D ci t nhng cm tt c cc ngt l nguy him .

U
.V

Khi ngt ng h cng khng th xy ra, do vy h thng khng th tm dng hot ng ca


tin trnh ang x l cp pht CPU cho tin trnh khc, nh tin trnh hin hnh yn tm
thao tc trn min gng m khng s b tin trnh no khc tranh chp, tc l h iu hnh c
quyn truy xut min gng.

b) S dng lnh TSL (Test and Set Lock):

ED

+ Nu h thng c nhiu b x l, lnh cm ngt ch c tc dng trn b x l ang x l tin


trnh, cn cc tin trnh hot ng trn cc b x l khc vn c th truy xut n min gng.

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

boolean Test_And_Set_Lock (boolean lock)


boolean temp=lock;

.P

lock = TRUE;

return temp; //tr v gi tr ban u ca bin lock


}

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

3.4.3.2. Nhm gii php SLEEP and WAKEUP (ng v nh thc)


a) S dng lnh SLEEP V WAKEUP
H iu hnh cung cp hai lnh SLEEP V WAKEUP. Nu tin trnh gi lnh SLEEP, h iu
hnh s chuyn tin trnh sang danh sch sn sng, ly li CPU cp cho tin trnh khc. Nu
tin trnh gi lnh WAKEUP, h iu hnh s chn mt tin trnh trong ready list, cho thc hin
tip. Khi mt tin trnh cha iu kin vo min gng, n gi SLEEP t kha, n khi c
mt tin trnh khc gi WAKEUP gii phng cho n. Mt tin trnh gi WAKEUP khi ra khi
min gng nh thc mt tin trnh ang ch, to c hi cho tin trnh ny vo min gng.

//busy v blocked l hai bin dng chung.

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

while (TRUE) // cho mt tin trnh c th vo mg nhiu ln

critical-section ();

.P

busy = FALSE;
if (blocked>0)
{

wakeup(); //nh thc mt tin trnh ang ch

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

thy A ang trong , do vy B tng gi tr bin blocked v chun b gi SLEEP t kho.


Tuy nhin trc khi B c th thc hin SLEEP, tin trnh A li c ti kch hot v ra khi min
gng. Khi ra khi min gng A nhn thy c mt tin trnh ang ch (blocked=1) nn gi
WAKEUP v gim gi tr ca blocked. Khi tn hiu WAKEUP s lc mt do tin trnh B cha
tht s ng nhn tn hiu nh thc ! Khi tin trnh B c tip tc x l, n mi goi
SLEEP v t ng vnh vin !

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:

Semaphore l cu trc c Dijkstra xut vo 1965, semaphore s l mt bin c cc thuc tnh


sau:

ED

- Mt gi tr nguyn dng e

- Mt hng i f lu danh sch cc tin trnh ang ch trn semaphore s


- C hai thao tc c nh ngha trn semaphore s:

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)

status(P)= blocked; //chuyn P sang trng thi b kho (ch)

.P

TI

Down(s)

enter(P,f);

PE

Up(s)

//cho P vo hng i f

e = e + 1;

if (e<= 0 )
{

exit(Q,f); //ly mt tt Q ra khi hng i f theo mt thut ton no (FIFO,)

status (Q) = ready; //chuyn Q sang trng thi sn sng


enter(Q,ready-list); //a Q vo danh sch sn sng ca h thng
}

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

PCB * f; //ds ring ca semaphore


public:
down();
up();

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.

* Gii quyt bi ton min gng bng Semaphores:

Dng mt semaphore s, e c khi gn l 1. Tt c cc tin trnh p dng cng cu trc chng


trnh sau:

TI

semaphore s=1; //ngha l e ca s=1


{

.P

while (1)
Down(s);

critical-section ();
Up(s);

PE

Noncritical-section ();

* Gii quyt bi ton ng b bng Semaphores:

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)
{

Down(s); critical-section (); Noncritical-section ();

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

Semaphore xy dng nh trn gi l semaphore m (counting semaphore) gi tr e khng gii


hn. Semaphore nh phn (binary semaphore) c e=0,1 d ci t hn v c s h tr ca phn
cng. Semaphore m c th ci t bng semaphore nh phn nh sau:
//cc bin dng chung
binary semaphore s1=1, s2=0;
int c=gi tr ban u e ca semaphore m;
down() //down of counting semaphore

{
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--;

down(s1); //down of binary semaphore


c++;

if (c<=0) up(s2); //up of binary semaphore

T.

up(s1);
}

TI

down(s1); up(s1); m bo c quyn truy xut min gng .

.P

c) S dng cu trc Monitors

c th d vit ng cc chng trnh ng b ha hn, Hoare(1974) v Brinch & Hansen


(1975) ngh mt c ch cao hn c cung cp bi ngn ng lp trnh l monitor.

Monitor l mt cu trc c bit (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.

+ Trong monitor c th khai bo cc bin iu kin (thuc lp condition) dng ng b vic s


dng cc bin trong monitor. Vic s dng bao nhiu bin iu kin l do ngi lp trnh quyt
nh. Bin iu kin c hai lnh Wait v Signal:

- 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;

//chuyn P sang trng thi ch

enter(P,f(c));

//t P vo hng i f(c) ca bin iu kin c

}
Signal(c)
{
{
//Ly tin trnh Q ang ch trn c

statusQ) = ready;

//chuyn Q sang trng thi sn sng

enter(Q,ready-list);

//a Q vo danh sch sn sng.

U
.V

exit(Q,f(c));

if (f(c) != NULL)

}
}

ED

+ Mi bin kiu monitor c mt hng i ton cc lu cc tin trnh ang ch c s dng


monitor.

.P

TI

T.

+ Bin kiu monitor dng chung cho cc tin trnh dng chung ti nguyn.

Hnh 3.28: m hnh cu trc monitor

monitor <tn monitor > //khai bo monitor dng chung cho cc tin trnh

PE

<cac bien dung chung>;


<cc bin iu kin>;

<cac phuong thuc c quyn>;

//tin trnh Pi:


while (1) //cu trc tin trnh th i
{
Noncritical-section ();
<ten monitor>.Phngthc_i; //thc hin cng vic c quyn th i
Noncritical-section ();
}

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.

V d: Bi ton 5 trit gia n ti.

ED

U
.V

C 5 trit gia n ti mn m ng, ngi xung quanh mt bn trn, trc mt mi ngi c mt


chic a. Bit rng mun n c phi cn hai chic a, nu mi ngi u ly chic a trc
mt mnh cng lc th s xy ra trng hp l khng trit gia no n c (deadlock). Hy ng
b vic n ti ca 5 trit gia sao cho tt c u n c.

1
2

3
4

T.

.P

monitor philosopher

TI

Hnh 3.29: bi ton nm trit gia n ti

enum {thinking, hungry, eating} state[5];// cac bien dung chung cho cc trit gia
condition self[5];

//cac bien dieu kien dung de dong bo viec an toi

//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

void putdown(int i); //phng thc tr a

void philosopher()//phng thc khi to (constructor)


{

//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)
{

//nu tg_i i v cc tg bn tri, bn phi khng ang n th cho tg_i n


if ( (state[i] == hungry) && (state[(i + 4) % 5] != eating) &&(state[(i + 1) % 5] != eating))

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)
{

state[i] = hungry; //ghi nhn tg_i i


if (state[i] != eating) self[i].wait(); //doi tai nguyen
}
void putdown(int i)
{
state[i] = thinking; //ghi nhn tg_i ang suy ngh

U
.V

test(i); //kim tra k trc khi cho tg_i n

ED

test((i+4) % 5); //kt tg bn phi, nu hp l th cho tg ny n


test((i+1) % 5);//kt tg bn tri nu hp l th cho tg ny n

T.

// Cu trc tin trnh Pi thc hin viec n ca trit gia th i


philosopher pp; //bien monitor dung chung

TI

Pi:
{

.P

while (1)

Noncritical-section ();

pp.pickup(i); //pickup l min gng v c truy xut c quyn

eat(); //triet gia an

pp.putdown(i);//putdown l min gng v c truy xut c quyn

PE

Noncritical-section ();

d) S dng thng ip:

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

3.5 TNH TRNG TC NGHN (DEADLOCKS)


3.5.1 Khi nim tc nghn:

PE

.P

TI

T.

Mt tp hp cc tin trnh gi l tnh trng tc nghn nu mi tin trnh trong tp hp u ch


i ti nguyn m tin trnh khc trong tp hp ang chim gi. V d ti mt thi dim, tin trnh
1 ang gi ti nguyn R1, yu cu R2 v tin trnh 2 ang gi ti nguyn R2, yu cu R1, nh vy
yu cu v ti nguyn khng th p ng cho c hai tin trnh. Khi khng c tin trnh no c
th tip tc x l, cng nh gii phng ti nguyn cho tin trnh khc s dng, tt c cc tin trnh
trong tp hp u b kha vnh vin!

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

3.5.2 iu kin xut hin tc nghn


H thng s xut hin tc nghn khi v ch khi c 4 iu kin sau:
+ iu kin 1: C s dng ti nguyn khng th chia s
Mi thi im, mt ti nguyn khng th chia s c h thng cp pht ch cho mt tin trnh ,
khi tin trnh s dng xong ti nguyn ny, h thng mi thu hi v cp pht ti nguyn cho tin
trnh khc.
+ iu kin 2: S chim gi v yu cu thm ti nguyn khng th chia s

+ iu kin 3: Khng thu hi ti nguyn t tin trnh ang gi chng

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

3.5.3 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

Hnh 3.31: m hnh th cp pht ti nguyn

Hnh 3.32: mt v d v tc nghn

83

3.5.3 Cc phng php x l tc nghn v ngn chn tc nghn


* Cc phng php x l tc nghn
+ S dng mt thut ton cp pht ti nguyn no m bo m khng bao gi xy ra tc nghn.
+ Hoc cho php xy ra tc nghn v tm cch sa cha tc nghn.

+ 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

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


ra:
+ iu kin 1 gn nh khng th trnh c iu kin ny v bn cht ti nguyn gn nh c nh.
+ iu kin 2 khng xy ra, th c th p dng mt trong hai nguyn tc sau :

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

+ iu kin 3 khng xy ra, h iu hnh cn cho php h thng c thu hi ti nguyn t cc


tin trnh b kho v cp pht tr li cho tin trnh khi n thot khi tnh trng b kha. Tuy nhin
vi mt s loi ti nguyn, vic thu hi s rt kh khn v vi phm s ton vn d liu.
+ iu kin 4 khng xy ra, c th cp pht ti nguyn theo mt s phn cp nh sau :

.P

Gi R = {R1, R2,...,Rm} l tp cc loi ti nguyn. Cc loi ti nguyn c nh s th t . V


d : F(a) = 2, F(my in) = 12,

Khi tin trnh ang chim gi ti nguyn Ri th ch c th yu cu cc ti nguyn Rj nu F(Rj) >


F(Ri).

PE

Ta c th trnh tc nghn khi cp pht ti nguyn bng cch s dng gii thut cp pht ti
nguyn nh sau:

3.5.4 Gii thut cp pht ti nguyn (gii thut banker)

3.5.4.1 Gii thut xc nh trng thi an ton


Nu h thng c th tha mn cc nhu cu ti nguyn ti a ca mi tin trnh theo mt th t cp
pht no m khng b tc nghn th gi l h thng trng thi l an ton. H thng trng
thi khng an ton c th dn n tnh trng tc nghn. Ta c gii thut xc nh trng thi an ton
nh sau:
int NumResources;//s ti nguyn, mt ti nguyn c th c nhiu th hin (instance)
int NumProcs;//s tin trnh trong h thng
int Available[NumResources]; // Available[r]= s lng cc th hin cn t do ca ti nguyn r
int Max[NumProcs, NumResources]; //Max[p,r]= nhu cu ti a ca tin trnh p v ti nguyn r

84

int Allocation[NumProcs, NumResources];// Allocation[p,r] = s ti nguyn r cp pht cho tin


trnh p
int Need[NumProcs, NumResources]; // Need[p,r] = Max[p,r] - Allocation[p,r]= s ti nguyn r
m tin trnh p cn cn s dng
int Finish[NumProcs] = false; //Finish[p]=true l tin trnh p thc thi xong;
B1.Tm tin trnh i tho cc iu kin sau:
Finish[i] = false
Need[i,j] <= Available[j], vi mi ti nguyn j

U
.V

- Mi nhu cu v ti nguyn ca tin trnh i u c th p ng:

- Tin trnh i cha thc thi xong:

Nu khng c tin trnh i nh th th n bc 3, nu c xung bc 2

- Cp pht ti nguyn cho tin trnh i.

ED

B2. Cp pht mi ti nguyn m tin trnh i cn


Allocation[i,j]= Allocation[i,j]+Need[i,j]; j
need[i,j]=0 ; j

T.

Available[j]= Available[j] - Need[i,j];


- nh du tin trnh i thc hin xong
Finish[i] = true;

TI

- Thu hi li tt c ti nguyn cp cho tin trnh i, cp nht li s ti nguyn j kh dng


Available[j]= Available[j] + Allocation[i,j];

.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

Khi c tin trnh yu cu cc ti nguyn, h iu hnh th cp pht, sau xc nh h thng c


an ton khng (dng gii thut xc nh trng thi an ton). Nu h thng an ton th cp pht thc
s cc ti nguyn m tin trnh yu cu, ngc li tin trnh phi i.

Gi s tin trnh Pi yu cu kr th hin ca ti nguyn r. Gii thut cp pht c thc hin nh


sau:
B1. Nu kr <= Need[i,r] vi mi r, n bc 2, ngc li, xy ra tnh hung li
B2. Nu kr <= Available[r] vi mi r, n bc 3 , ngc li Pi phi ch

B3. Gi s h thng cp pht cho Pi cc ti nguyn m n yu cu v cp nht tnh trng h


thng nh sau:
Available[r]=Available[r]-kr; vi mi r
Allocation[i,r] =Allocation[i,r]+ kr; vi mi r
Need[i,r] = Need[i,r] - kr; vi mi r

85

B4: Kim tra trng thi an ton ca h thng.


Dng gii thut xc nh trng thi an ton xc nh trng thi ca h thng sau khi th
cp ti nguyn cho Pi. Nu trng thi l an ton th cc ti nguyn s c cp pht tht s cho
Pi. Ngc li, Pi phi ch.

V d gi s tnh trng hin hnh ca h thng c m t nh trong bng di y. Ct Max l


nhu cu ti a v mi ti nguyn ca mi tin trnh, Allocation l s lng ca mi loi ti
nguyn cp cho mi tin trnh, Available l s lng ca mi loi ti nguyn cn c th s
dng.

Max

Allocation

Available

R2

R3

R1

R2

R3

R1

R2

R3

P1

P2

P3

P4

TI

T.

ED

R1

U
.V

Nu tin trnh P2 yu cu 4 R1, 1 R3. hy cho bit yu cu ny c th p ng m khng xy ra


deadlock hay khng?

.P

p dng Gii thut banker

+ B0: Tnh Need l nhu cu cn li v mi ti nguyn j ca mi tin trnh i:

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

+ B1+B2: yu cu ti nguyn ca P2 tho k B1, B2.

86

+ B3: Th cp pht cho P2, cp nht tnh trng h thng


Need

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

Mi tin trnh c cp pht ti nguyn vi yu cu cao nht, nn trng thi ca h thng l an


ton, do c th cp pht cc ti nguyn theo yu cu ca P2.

3.5.5 Gii thut pht hin tc nghn

Nu khi tin trnh yu cu ti nguyn m h thng c cp pht th tnh trng tc nghn c th xy


ra, khi h thng cn cung cp gii thut pht hin tc nghn v gii thut phc hi tnh trng
trc khi tc nghn. Ta c hai loi ti nguyn, mi loi s c gii thut pht hin tc nghn tng
ng.
a/ Ti nguyn ch c mt th hin
Dng th i ti nguyn (wait-for graph), th ny c xy dng t th cp pht ti
nguyn (resource allocation graph) bng cch b nhng nh biu din loi ti nguyn, khi mt
cnh t PI ti PJ ngha l PJ ang i PI gii phng mt ti nguyn m PJ cn. H thng b tc
nghn nu v ch nu th i ti nguyn c chu trnh, do pht hin tc nghn ta ch cn
dng mt gii thut pht hin chu trnh (xem l thuyt th).

88

Tin trnh

Chim gi

Yu cu

P1

R1

R2

P2

R3, R4

R1

P3

R5

R4

P4

R2

R5
R3

HD:Xy dng th i ti nguyn:


P5

P5

U
.V

P5

V d: Cc tin trnh ang chim gi v ng thi yu cu cc ti nguyn nh cho trong bng di


y. Hi h thng c b tc nghn khng?

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

Do th c chu trnh nn h thng b tc nghn.

.P

b/ Ti nguyn c nhiu th hin

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

Bc 1: Chn Pi u tin sao cho c yu cu ti nguyn c th c p ng, nu khng c th


h thng b tc nghn, ngc li xung Bc 2
Bc 2: Th cp pht ti nguyn cho Pi v kim tra trng thi h thng, nu h thng an ton th
ti Bc 3, ngc li th quay ln Bc 1 tm Pi k tip.

Bc 3: Cp pht ti nguyn cho Pi. Nu tt c Pi c p ng th h thng khng b tc nghn,


ngc li quay li Bc 1.

Gii thut pht hin tc nghn c th c gi mi khi mt yu cu cp pht ti nguyn khng


c p ng ngay, khi c th xc nh c tp hp cc tin trnh b tc nghn v cng xc
nh c tin trnh gy ra tc nghn nhng s tn nhiu thi gian khi gi gii thut qu nhiu ln
nh vy. Cch khc l gi gii thut theo mt chu k nh trc, v d 1 gi gi mt ln hoc gi
khi hiu sut s dng CPU di 40%

89

3.5.6 Hiu chnh tc nghn


Khi pht hin c tc nghn, c hai la chn chnh hiu chnh tc nghn :
a/ Hy tin trnh trong tnh trng tc nghn:
Hy tt c cc tin trnh trong tnh trng tc nghn hay hy tng tin trnh lin quan cho n khi
khng cn chu trnh gy tc nghn (tin trnh b hy s b thu hi tt c ti nguyn c cp
pht). chn c tin trnh thch hp b hy, phi da vo cc yu t nh u tin, thi gian
x l, s lng ti nguyn ang chim gi , s lng ti nguyn cn yu cu thm...

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

+ Cc trng thi ca tin trnh : New, Ready, Running, Blocked, End

+ 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

int flag [2]; // khi ng l FALSE


//cu trc tin trnh Pi
While (TRUE)

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.

y c phi l mt gii php bo m c c quyn truy xut khng ?


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 :
{

.P

int temp=a;

TI

void swap(int &a, int &b)

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?

5. Pht trin gii php Peterson cho nhiu tin trnh


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.
7. Xt hai tin trnh x l on chng trnh sau:
process P1 { A1 ; A2 }
process P2 { B1 ; B2 }

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 ;}

ng b ho hot ng ca hai tin trnh ny sao cho c vi k bt k ( 2 <= k <= 100), Ak ch c


th bt u khi B(k-1) kt thc, v Bk ch c th bt u khi A(k-1) kt thc.

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)

11. Xt hai tin trnh sau:

process B

(4)

(7)

TI

{ while (1) nb = nb +1;}

z = v * x6

T.

process A
{ while (1) na = na +1;}

(3)

ED

10. Vit li bi 9 dng monitor

U
.V

9. S dng semaphore vit li chng trnh sau theo m hnh x l ng hnh:

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

b) Nu gim iu kin ch l na <= nb +10, gii php ca bn s c sa cha nh th no ?

c) Gii php ca bn c cn ng nu c nhiu tin trnh loi A v B cng thc hin?


12. Bi ton Ngi sn xut Ngi tiu th (Producer-Consumer)

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).

Hai tin trnh cn tho cc iu kin sau :


- K1: Tin trnh sn xut khng c ghi d liu vo b m y.
- K2: Tin trnh tiu th khng c c d liu t b m ang trng.
- K3: Hai tin trnh cng loi hoc khc loi u khng c truy xut b m cng lc.

93

13. Bi ton Readers-Writers


Khi cho php nhiu tin trnh truy xut c s d liu dng chung cc h qun tr CSDL cn m
bo cc iu kin sau :
- k1: khi c reader th khng c writer nhng c th c cc reader khc tx dl
- k2: Khi c writer th khng c writer hoc reader no khc tx dl.
(Cc iu kin ny cn c m bo tnh nht qun ca d liu.)

14. Bi ton To phn t H2O

U
.V

ng b hot ng ca mt phng th nghim s dng nhiu tin trnh ng hnh sau to cc


phn t H2O:
MakeH()
{
while (true)
Make-Hydro(); // to 1 nguyn t H

ED

}
MakeO()
{
while (true)

T.

Make-Oxy(); //to 1 nguyn t O


}

TI

/* Tin trnh MakeWater hot ng ng hnh vi cc tin trnh MakeH, MakeO, ch c 2 H


v 1 O to H2O */
MakeWater()

.P

while (True)

PE

Make-Water(); //To 1 phn t H2O

15. Xt mt gii php semaphore ng cho bi ton Dining philosophers :


5

#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

s[N];//gan tri ban dau =0

//tin trnh m phng trit gia th i

94

void philosopher( int i) // i l trit gia th i : 0..N-1


{
while (TRUE)
{
think(); // Suy ngh
take_forks(i); // yu cu n khi c 2 na
eat(); // yum-yum, spaghetti

put_forks(i); // t c 2 na ln bn li
}

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

if(state[i]==HUNGRY && state[LEFT]!=EATING && state[RIGHT]!= EATING)

}
//yu cu ly 2 na
{
{

.P

while (TRUE)

TI

void take_forks ( int i) // i l trit gia th i : 0..N-1

down(mutex); // vo min gng

state[i] = HUNGRY; // ghi nhn trit gia i i


test(i); // c gng ly 2 na

PE

up(mutex); // ra khi min gng

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

test(LEFT); // kim tra ngi bn tri c th n?


test(RIGHT); // kim tra ngi bn phi c th n?
up(mutex); // ra khi min gng
}
}
a) Ti sao phi t state[i] = HUNGRY trong take_forks ?

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

16. Mt ca hiu ct tc c mt th, mt gh ct tc v N gh cho khch i. Nu khng c


khch, th ct tc s ngi vo gh ct tc v ng thip i. Khi mt khch hng vo tim, anh ta
phi nh thc ngi th. Nu mt khch hng vo tim khi ngi th ang bn ct tc cho khch
hng khc, ngi mi vo s ngi ch nu c gh i trng, hoc ri khi tim nu c N ngi
i (ht gh). Xy dng mt gii php vi semaphore thc hin ng b ho hot ng ca th
v khch hng trong ca hiu ct tc ny.
17. Bi ton Cy cu c

T.

Ngi ta ch c cho php ti a 3 xe lu thng ng thi qua mt cy cu rt c. Hy xy dng


th tc ArriveBridge(int direction) v ExitBridge() kim sot giao thng trn cu sao cho :
- Ti mi thi im, ch cho php ti a 3 xe lu thng trn cu.

TI

- Ti mi thi im, ch cho php ti a 2 xe lu thng cng hng trn cu.

.P

Mi chic xe khi n u cu s gi ArriveBridge(direction) kim tra iu kin ln cu, v khi


qua cu c s gi ExitBridge() bo hiu kt thc. Gi s hot ng ca mi chic xe c
m t bng mt tin trnh Car() sau y:

Car(int direction) /* direction xc nh hng di chuyn ca mi chic xe.*/

PE

ArriveBridge(direction); //ti cu
OnBridge(); //ln cu
ExitBridge();// Qua cu

18. 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 :
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.

96

c. Tt c cc trng hp kt hp khc u hp php.


d. Thuyn ch khi hnh khi c 4 hnh khch.
Cn xy dng 2 th tc HackerArrives() v EmployeeArrives() c gi tng ng bi 1 hacker
hoc 1 nhn vin khi h n b sng kim tra iu kin c cho php h xung thuyn khng ?
Cc th tc ny s sp xp nhng ngi thch hp c th ln thuyn. Nhng ngi c ln
thuyn khi thuyn cha y s phi ch n khi ngi th 4 xung thuyn mi c th khi hnh
qua sng. (Khng quan tm n s lng thuyn hay vic thuyn qua sng ri tr liXem nh
lun c thuyn sp xp theo cc yu cu hp l)

Gi s hot ng ca mi hacker c m t bng mt tin trnh Hacker() sau y:


{
RuntoRiver(); // i n b sng

U
.V

Hacker()

HackerArrives (); // Kim tra iu kin xung thuyn


CrossRiver(); // Khi hnh qua sng

ED

v hot ng ca mi nhn vin c m t bng mt tin trnh Employee() sau y:


Employee()
{

T.

RuntoRiver(); // i n b sng

EmployeeArrives (); // Kim tra iu kin xung thuyn


CrossRiver(); // Khi hnh qua sng

TI

.P

19. Bi ton iu phi hnh khch xe bus ti mt trm dng

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

ArriveTerminal(); // tip nhn mt xe vo bn


OpenDoor(); // m ca xe
for (int i=0; i<4; i++) // tip nhn cc khch ngi xe ln
{
ArrangeSeat(); // a 1 khch ngi xe ln vo ch
}
for (int i=0; i<6; i++) // tip nhn cc khch bnh thng

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
}

NonWheelPassenger() // chng trnh to khch bnh thng


{
ArriveTerminal(); // n bn

ED

GetOnBus(); // ln xe
}

- B phn sn xut 1 khung xe :


MakeChassis()

TI

T.

20. Nh my sn xut thit b xe hi, c 2 b phn hot ng song song

.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();

Hy ng b hot ng trong vic sn xut xe hi theo nguyn tc sau :


- Sn xut mt khung xe, trc khi to bnh xe.
- Cn c 4 bnh xe cho 1 khung xe c sn xut ra, sau mi tip tc sn xut khung xe
khc
21. Thut ton cc trit gia n ti sau ng hay sai?
semaphore s[5]; //c cc gi ban tr u bng 1
//tin trnh trit gia th i:
{

98

down(s[i]);

//ly a

down(s[(i+1)%5]);

//ly a ca ngi bn cnh

eat();
up(s[i]);

//b a

up(s[(i+1)%5]);

//tr a cho ngi bn cnh

Allocation

Available

R2

R3

R1

R2

R3

R1

R2

R3

P1

P2

P3

P4

T.

ED

R1

U
.V

Max

22. Xt trng thi h thng:

TI

Nu tin trnh P2 yu cu 4 cho R1, 1 cho R3. hy cho bit yu cu ny c th p ng m bo


m khng xy ra tnh trng deadlock hay khng ?

.P

23. Xt trng thi h thng sau:

Allocation

Max

Available

P1

P2

P3

P4

P5

PE

a) Cho bit ni dung ca bng Need.

99

b) H thng c trng thi an ton khng?


c) Nu tin trnh P2 c yu cu ti nguyn ( 0,4,2,0), yu cu ny c c p ng tc thi
khng?
TI LIU THAM KHO

[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

[5]. H. M. Deitel. Operating Systems. Addison-Wesley Inc. Second Edition, 1999.

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

4.1 CC VN PHT SINH KHI QUN L B NH

4.2 Cc m hnh cp pht b nh.

+ Chuyn i a ch tng i trong chng trnh thnh a ch thc trong b nh chnh.


+ Qun l b nh cp pht v cha cp pht.
+ Cc k thut cp pht b nh sao cho:

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.

4.1.1 Chuyn i a ch tng i sang tuyt i

TI

Cc a ch trong chng trnh thc thi (dng exe) l a ch tng i, v cn c chuyn i


cc a ch ny thnh cc a ch tuyt i trong b nh chnh. Vic chuyn i c th xy ra vo
mt trong nhng thi im sau:

.P

+ Thi im bin dch (compile time):

PE

Nu ti thi im bin dch, c th bit v tr m tin trnh s c np vo trong b nh, trnh


bin dch c th pht sinh ngay m vi cc a ch tuyt i. Tuy nhin, nu v sau c s thay i
v tr ca chng trnh, cn phi bin dch li chng trnh. V d cc chng trnh .com chy
trn h iu hnh MS-DOS c m tuyt i ngay khi bin dch.
+ Thi im np (load time):

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

4.1.2 Khng gian a ch o v khng gian a ch vt l


+ a ch o (a ch logic): l a ch do b x l (CPU) to ra.
+ a ch vt l (a ch physic): l a ch thc trong b nh chnh, a ch vt l cn gi l a
ch tuyt i/a ch thc.
+ Khng gian a ch o ca tin trnh: l tp hp tt c cc a ch o ca mt tin trnh.
+ Khng gian i ch vt l ca tin trnh: l tp hp tt c cc a ch vt l tng ng vi cc
a ch o.

TI

T.

ED

U
.V

Khi chng trnh np vo b nh cc a ch tng i trong chng trnh c CPU chuyn


thnh a ch o, khi thc thi, a ch o c h iu hnh kt hp vi phn cng MMU chuyn
thnh a ch vt l .Tm li ch c khi nim a ch o nu vic chuyn i a ch xy ra vo
thi im x l, khi tin trnh ch thao tc trn cc a ch o, a ch vt l ch c xc nh
khi thc hin truy xut b nh vt l.

.P

Hnh 4.1: CPU gi a ch o ti MMU, MMU chuyn a ch o thnh a ch vt l

4.1.3 Qun l b nh cp pht v cha cp pht

PE

H iu hnh cn lu tr thng tin v phn b nh cp pht v phn b nh cha cp pht. Nu


cp pht th cp cho tin trnh no. Khi cn cp pht b nh cho mt tin trnh th lm sao tm
c phn b nh trng thch hp nhanh chng v khi b nh b phn mnh th cn dn b nh
li tn dng b nh v tin trnh thc thi nhanh hn.

4.1.3.1 Cc phng php qun l vic cp pht b nh:


a/ S dng dy bit : bt th i bng 1 l khi th i cp pht, bng 0 l cha cp pht.
b/ S dng danh sch lin kt: mi nt ca danh sch lin kt lu thng tin mt vng nh cha
tin trnh (P) hay vng nh trng gia hai tin trnh (H).

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

Hnh 4.3: cc trng hp c th xy ra trc khi tin trnh X kt thc


4.1.3.2 Cc thut ton chn mt on trng:

.P

+ First-fit: chn on trng u tin ln.

+ Best-fit: chn on trng nh nht nhng ln tha mn nhu cu.

+ Worst-fit : chn on trng ln nht.

PE

4.2 CC M HNH CP PHT B NH


C hai m hnh dng cp pht b nh cho mt tin trnh l:
+ Cp pht lin tc: tin trnh c np vo mt vng nh lin tc.

+ Cp pht khng lin tc: tin trnh c np vo mt vng nh khng lin tc

4.2.1 M hnh cp pht lin tc


C hai m hnh cp pht b nh lin tc l m hnh Linker-Loader hoc m hnh Base & Limit.
4.2.1.1 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 (a ch vt l ) ngay khi np chng
trnh, theo cng thc:
a ch tuyt i = a ch bt u np tin trnh + a ch tng i.

103

V d: xt chng trnh P.EXE c lnh Jump 0X200, . Gi s chng trnh c np ti a ch


0X300, khi a ch tng i 0X200 s c chuyn thnh a ch vt l l
0X300+0X200=0X500
P.EXE
0X3000

JUMP
0X5000

JUMP
0X2000

0X6000
(bound)

0X3000
(base)

0X0000

HH
B nh vt l

U
.V

Hnh 4.4: Mt v d v chuyn i a ch tng i thnh a ch vt l trong m hnh linkerloader

Chng trnh khi np vo b nh cho thc thi th gi l tin trnh, vy trng hp ny cc a ch


trong tin trnh l a ch tuyt i, cn a ch trong chng trnh l a ch tng i.
Nhn xt:

ED

+ V vic chuyn i a ch ch thc hin vo lc np nn sau khi np khng th di chuyn tin


trnh trong b nh

4.2.1.2 M hnh Base & Limit

T.

+ Do khng c c ch kim sot a ch m tin trnh truy cp, nn khng th bo v mt tin


trnh b mt tin trnh khc truy xut b nh ca tin trnh mt cch tri php.

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.

Hnh 4.5: mt v d v m hnh base&limit


Khi tin trnh thc thi, mi a ch o (a ch o cng chnh l a ch tng i) s c MMU
so snh vi thanh ghi gii hn bo m tin trnh khng truy xut ngoi phm vi vng nh

104

U
.V

c cp cho n. Sau a ch o c cng vi gi tr trong thanh ghi nn cho ra a ch


tuyt i trong b nh.

Hnh 4.6: c ch MMU trong m hnh base&limit


Nhn xt:

ED

+ C th di chuyn cc chng trnh trong b nh v do tin trnh c np dng a ch o, khi


tin trnh c di chuyn n mt v tr mi, h iu hnh ch cn np li gi tr cho thanh ghi
nn, v vic chuyn i a ch c MMU thc hin vo thi im x l.

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

Hnh 4.7: mt v d v s phn mnh ngoi vi trong m hnh cp pht lin tc

* Vn ny sinh khi kch thc ca tin trnh tng trng trong qa trnh x l m khng
cn vng nh trng gn k m rng vng nh cho tin trnh. C hai cch gii quyt:

+ Di ch tin trnh: di chuyn tin trnh n mt vng nh khc ln tha mn nhu cu


tng trng ca tin trnh.

+ Cp pht d vng nh cho tin trnh : cp pht d phng cho tin trnh mt vng nh ln hn
yu cu ban u ca tin trnh.

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.

+ Tin trnh lun c lu tr trong b nh sut qu trnh x l ca n nn tnh a chng ca h


iu hnh s b hn ch bi kch thc b nh v kch thc ca cc tin trnh trong b nh. Cch
gii quyt l khi tin trnh b kha (i ti nguyn, i mt s kin,) hoc tin trnh s dng ht
thi gian CPU dnh cho n, n c th c chuyn tm thi ra b nh ph (a,) v sau ny
c np tr li vo b nh chnh tip tc x l (k thut swapping).

.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.

4.2.2 M hnh cp pht khng 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.

Hnh 4.9: m hnh phn on trong k thut cp pht b nh khng lin tc

TI

* C ch MMU trong k thut phn on:

.P

Khi chng trnh c np vo b nh, MMU ghi cc v tr lu tr v kch thc cc phn on


vo bng phn on cn CPU lm nhim v chuyn i tt c cc a ch tng i trong chng
trnh thnh a ch o.

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

Hnh 4.10: c ch MMU trong m hnh phn on

T.

* Ci t bng phn on:

TI

C th s dng cc thanh ghi lu tr bng phn on nu c t phn on. Nu chng trnh c


nhiu phn on, bng phn on phi c lu trong b nh chnh. Phn cng cn cung cp mt
thanh ghi nn STBR (Segment Table Base Register) lu a ch bt u ca bng phn on v
mt thanh ghi STLR lu s phn on (Segment Table Limit Register) m chng trnh s dng.

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

V mi phn on do ngi lp trnh xc nh v ngi lp trnh bit c mt phn on cha


nhng g bn trong, do vy h c th ch nh cc thuc tnh bo v thch hp cho mi phn on.
Khi mi phn t ca bng phn on cn c thm mt thnh phn gi l thuc tnh bo v.
MMU s kim tra gi tr ca thuc tnh ny ngn chn cc thao tc x l bt hp l n phn
on. Gi tr ca thuc tnh c th l R (ch c), X (thc thi), W (ghi),

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)

B nh vt l c chia thnh cc khi c kch thc c nh v bng nhau gi l khung trang


(page frame). Khng gian a ch o cng c chia thnh cc khi c cng kch thc vi khung
trang v gi l trang (page). Khi mt tin trnh c a vo b nh x l, cc trang ca tin
trnh s c ct vo nhng khung trang cn trng, nh vy mt tin trnh kch thc N trang s
cn N khung trang trng.

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

V d mi khung trang 1KB, mt tin trnh 3.5KB s c chia lm 4 trang. Ga s trang 0 c


ct khung trang 5, trang 1 khung trang 7,

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.

Hnh 4.17: c ch MMU trong m hnh phn trang

.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

V d: Mt h thng c a ch o 16 bit dng (p,d) vi p c 4 bt, d c 12 bt (h thng c 16


trang, mi trang 4 KB) . Bt Present/absent =1 ngha l trang hin trong b nh v =0 l b
nh ph.

Xt a ch o 819610 = 0010.0000.0000.01002 => p = 00102 = 210 , d = 0000.0000.01002 = 410 .


Do trang p=2 khung trang f=1102 = 610 , nn a ch vt l l 0110.0000.0000.01002 = 6x212 + 4
= 24580

111

N
U
.V
ED

T.

Hnh 4.18: c ch chuyn i a ch ca MMU

TI

* Ci t bng trang

PE

.P

Nu bng trang c kch thc nh c th dng mt tp cc thanh ghi ci t bng trang. Nu


bng trang c kch thc ln, cn phi c lu tr trong b nh chnh, v phn cng cung cp
mt thanh ghi PTBR (Page Table Base Register) lu a ch bt u ca bng trang v thanh ghi
PTLR (Page Table Limit Register) lu s phn t trong bng trang.Vi mt a ch logic (p,d),
trc tin s hiu trang p c kim tra tnh hp l (p<PTLR). K tip, cng gi tr p vi PTBR
(PTBR+s) c c a ch ca phn t th p trong bng phn on v 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.

Hnh 4.19: c ch MMU trong m hnh phn trang, s dng hai thanh ghi PTLR v PTBR

112

* B nh kt hp (Translation Lookaside Buffers:TLBs)


Trong k thut phn trang, mi ln truy xut n d liu hay ch th u cn hai ln truy xut b
nh: mt cho truy xut n bng trang tm s hiu khung trang v mt cho bn thn d liu. C
th gim bt vic truy xut b nh hai ln bng cch s dng thm b nh kt hp (TLBs). B
nh kt hp c tc truy xut rt nhanh v cho php tm kim song song. Mi thanh ghi trong
b nh kt hp gm mt t kha v mt gi tr, khi a n b nh kt hp mt t kho cn tm,
t kho ny s c so snh cng lc vi cc t kha trong b nh kt hp tm ra gi tr tng
ng.

TI

T.

ED

U
.V

Trong k thut phn trang, TLBs c s dng lu tr cc s hiu trang c truy cp gn


hin ti nht. Khi tin trnh truy xut mt a ch o, s hiu trang ca a ch s c so snh vi
cc s hiu trang trong TLBs, nu tm thy th s xc nh c ngay s hiu khung trang tng
ng, nu khng c th mi cn tm kim trong bng trang.

PE

.P

Hnh 4.20: c ch MMU trong m hnh phn trang c s dng b nh kt hp.

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?

HD: My tnh 32 bit => a ch o (p,d) c 32 bit => s bt ca p + s bt ca d = 32, m 1 trang


4K=212 bytes => d c 12 bit =>p c 20 bit => 1 bng trang c 220 phn t => h thng qun l
c tin trnh c ti a 220 trang => kch thc tin trnh ln nht l 220 x 212 byte = 232 byte =4
GB. Nhn xt: My tnh n bit qun l c tin trnh kch thc ln nht l 2n byte.

113

* T chc bng trang


Thng thng h iu hnh cp cho mi tin trnh mt bng trang v phi dng bng trang kch
thc ln qun l tin trnh ln nht nn rt tn b nh. C ba gii php cho vn ny l
s dng phn trang a cp hoc bng trang bm hoc bng trang nghch o.
a/ Phn trang a cp

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

Hnh 4.22: mt v d v phn trang nh cp.

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

p1 ch mc ca bng trang cp mt. p2 ch mc ca bng trang cp 2

Hnh 4.23: cu trc ca mt a ch o trong phn trang nh cp

Bng trang cp 1

114
Bng trang cp 2

Hnh 4.24: c ch chuyn i a ch trong bng trang nh cp.


b/ Bng trang bm

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

Hnh 4.25: s dng bng bm lu tr bng trang

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

Hnh 4.26: c ch chuyn i a ch khi s dng bng trang bm


c/ Bng trang nghch o
H iu hnh c th dng mt bng trang duy nht qun l b nh ca tt c cc tin trnh v
gi l bng trang nghch o. Mi phn t ca bng trang nghch o l cp (pid, p), pid l m s
ca tin trnh, p l s hiu trang v mi a ch o l mt b ba (pid, p, d).

U
.V

Khi mt truy xut b nh c pht sinh, mt phn a ch o l (pid, p) c a n cho trnh


qun l b nh tm phn t tng ng trong bng trang nghch o, nu tm thy ti phn t
th i, th i chnh l s hiu khung trang cha trang p v a ch vt l tng ng l (i,d). Trong cc
trng hp khc, xem nh truy xut mt a ch bt hp l.

.P

TI

T.

ED

Nhn xt: s phn t trong bng trang nghch o bng vi s khung trang vt l

Hnh 4.27: c ch chuyn i a ch khi s dng bng trang nghch o


* Bo v trang

PE

C ch bo v trong h thng phn trang c thc hin vi cc bit bo v (protection) c lu


trong mi phn t ca bng trang, v mi truy xut n b nh u phi tham kho n bng trang
pht sinh a ch vt l, khi , h thng c th kim tra cc thao tc truy xut trn khung trang
tng ng c hp l vi thuc tnh bo v ca n khng. Ngoi ra, c th thm mt s bt khc
vi cc mc ch khc nhau.

Hnh 4.28: cu trc tng qut ca mt phn t trong bng trang

116

N
U
.V

ED

Hnh 4.29: mt v d v m hnh phn trang


* Chia x b nh:

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.

Hnh 4.31: m hnh phn on kt hp phn trang

TI

* C ch MMU trong m hnh phn on kt hp phn trang

.P

Mi a ch logic l mt b (s,d) vi s l s hiu phn on, d l a ch tng i trong phn


on. Tch d thnh p v d' (s bt ca d = s bt ca p + s bt ca d) vi p l ch s trang, d' l
a ch tng i trong trang (s bt ca d' do phn cng qui nh).

PE

chuyn cc a ch o 2 chiu thnh a ch vt l mt chiu, MMU dng mt bng phn on,


mi phn on cn c mt bng phn trang tng ng. Mi phn t trong bng phn on gm
hai phn (base,limit), base lu a ch vt l ni bt u ca bng trang ca phn on ny, limit
lu chiu di ca phn on. H thng cn cung cp mt thanh ghi STBR lu v tr bt u ca
bng phn on, khi tin trnh truy xut mt a ch logic (s,d)=(s,p,d), MMU ly STBR cng vi
s truy xut phn t th s trong bng phn an. Phn t th s ca bng phn on lu hai ga
tr (segment length, page-table base): segment length l kch thc phn on, page-table base l
v tr lu tr bng trang tng ng vi phn on s. Nu segment length <d th thng bo truy
xut a ch khng hp l ngc li phn tch d thnh p v d v cng page-table base vi p
truy xut phn t th p trong bng phn trang ly c gi tr f l s hiu khung trang cha trang
p. Sau cng f vi d s cho a ch vt l tng ng.

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.

Hnh 4.33: c ch chuyn i a ch trong m hnh phn on kt hp phn trang

PE

Hnh 4.34: h iu hnh MULTICS dng phn on kt hp phn trang v b nh kt hp

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.

+ Kh nng cao mc a chng ca h thng.

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

ton b vo b nh vt l. Vi k thut b nh o, h iu hnh s tng c mc a chng


ca h thng, c th thc thi c nhng chng trnh kch thc rt ln so vi kch thc b nh
vt l v ngi lp trnh khng cn quan tm my tnh c RAM thc thi chng trnh hay
khng. C hai phng php ci t k thut b nh o l phn trang theo yu cu (Demand
paging) hoc phn on theo yu cu (Demand segmentation)
4.3.1 Phn trang theo yu cu (Demand paging)

4.3.1.1 Cu trc mt phn t trong bng trang

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.

Hnh 4.35: m hnh phn trang theo yu cu

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).

4.3.1.2 Chuyn a ch o (p,d) thnh a ch vt l

+ 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

+ Bc 6: Ti kch hot tin trnh ngi s dng.

T.

Hnh 4.36: c ch chuyn i a ch trong m hnh phn trang theo yu cu

TI

4.3.1.3 Thay th trang

.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.

4.3.1.4 Thi gian thc hin mt yu cu truy xut b nh

Gi xc sut xy ra li trang l p: 0 p 1.0, nu p = 0 ngha l khng c li trang , nu p = 1


ngha l mi ln truy xut u xy ra li. Memory access (ma) l thi gian mt ln truy xut b
nh. Effective Access Time (EAT) l thi gian thc hin mt yu cu truy xut b nh. Page fault
overhead (pfo) l thi gian x l mt li trang. Swap page in (spi) l thi gian chuyn trang t a
vo b nh. Swap page out (spo) l thi gian chuyn trang ra a (swap page out c th bng 0).
Restart overhead (ro) l thi gian ti khi ng li vic truy xut b nh.
Ta c:

121

EAT = (1 p) x ma+ p (pfo+ [spo]+ spi+ ro)


V d:
Gi s thi gian mt ln truy xut b nh l 1 micro second v gi s 40% trang c chn
thay i ni dung v thi gian hon chuyn trang ra/vo l 10 mili second . Tnh ETA.
Ta c:
ma=1 micro second

4.3.1.5 Cc thut ton chn trang nn nhn

U
.V

=> EAT = (1 p) + p (pfo+10000*0.4+10000+ro) micro second

spo= spin = 10 milisecond = 10000 micro second

.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.

4.3.1.5.1 Thut ton FIFO (First In First Out)


Trang trong b nh lu nht s c chn lm trang nn nhn (vo trc ra trc)

V d: Mt tin trnh c cp 3 khung trang, ban u c 3 khung u trng, tin trnh ln lt


truy xut ti cc trang theo th t sau: 7, 0, 1, 2, 0, 3, 0, 4, 2, 3, 0, 3, 2, 1, 2, 0, 1, 7, 0, 1. Tnh s
li trang khi p dng thut ton FIFO chn trang nn nhn.

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
* * * *

* * * * * *

* *

* * *

K hiu * l c li trang v c 15 li trang


Nhn xt:

U
.V

Khng cn ghi nhn thi im trang c np vo b nh, m ch cn qun l cc trang trong b


nh bng mt danh sch FIFO, khi nu c li trang th trang truy xut c a vo cui danh
sch v nu ht khung trang th trang u danh sch s c chn lm trang nn nhn.

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.

+ Nu s dng 3 khung trang, s c 9 li trang

2 2 2 1 1 1 1 1 3 3 3

.P

3 3 3 2 2 2 2 2 4 4
* *

* * * * * * *

PE

+ Nu s dng 4 khung trang, s c 10 li trang


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

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

* * * *

* * * * * *

4.3.1.5.2 Thut ton ti u (Optimal Page Replacement Algorithm)


Chn trang lu c s dng nht trong tng lai. V d:

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
*

* * * *

C 9 li trang, FIFO 15 li => tt hn FIFO nhiu.

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.

OPT v LRU c s li trang khng i khi nghch o chui a ch truy xut.


* Ci t thut ton LRU: c th dng hai k thut sau
+ S dng b m:

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.

thi im truy xut gn nht

s hiu khung trang cha trang bit valid - bit dirty


hoc a ch trang trn a
invalid

U
.V

+ S dng danh sch lin kt :

4.3.1.5.4 Cc thut ton xp x LRU

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.

C t h thng c cung cp cc phn cng h tr ci t thut ton LRU tht s. Tuy


nhin, nhiu h thng c trang b thm mt bit tham kho (reference). Mi phn t trong bng
trang c thm bit reference c khi gn l 0 bi hh v c phn cng gn l 1 mi ln trang
tng ng c truy cp. Sau mi chu k qui nh trc, phn cng kim tra gi tr ca cc bit
reference xc nh c trang no c truy xut n v trang no khng, sau khi kim
tra xong, cc bit reference c phn cng gn tr v 0. Vi bit reference, c th bit c trang
no c truy xut, nhng khng bit c th t truy xut ca cc trang. Thng tin khng y
ny dn n nhiu thut ton xp x LRU khc nhau.

bit dirty

bit reference

PE

s hiu khung trang cha trang hoc bit valid-invalid


a ch trang trn a

Hnh 4.39: cu trc mt phn t ca bng trang trong thut ton xp x LRU

a/ Thut ton vi cc bt history

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

* * * *

* * * *

Xem danh sch lin kt vng ca v d trn


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 :

- Lp 1 (0,0): gm nhng trang c (ref,dirty)=(0,0). Nhng trang thuc lp ny khng c truy


xut gn y v khng b sa i, y l nhng trang tt nht thay th.
- Lp 2 (0,1): trang khng truy xut gn y nhng b sa i. Trng hp ny khng tht tt,
v trang cn c lu tr li trc khi thay th.

U
.V

- Lp 3 (1,0): trang c truy xut gn y, nhng khng b sa i. Trang c th nhanh chng


c tip tc c s dng.
- Lp 4 (1,1): trang c truy xut gn y, v b sa i. Trang c th nhanh chng c tip tc
c s dng v trc khi thay th cn phi c lu tr li.

T.

4.3.1.5.5 Cc thut ton thng k

ED

Lp 1 c u tin thp nht, v lp 4 c u tin cao nht. Mt trang s thuc v mt trong


bn lp trn v trang c chn lm trang nn nhn l trang u tin tm thy trong lp c
u tin thp nht.

S dng mt bin m lu s ln truy xut n mt trang.

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.

4.3.2 Cp pht s lng khung trang v thay th trang

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

b/ Cp pht theo t l kch thc


Ty vo kch thc ca tin trnh cp pht s khung trang. Gi si l kch thc ca tin trnh pi
S=

l tng kch thc ca tt c tin trnh.

m = s lng khung trang c th s dng


Khi tin trnh pi s c cp pht ai khung trang
-->

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

c/ Cp pht theo t l u tin:

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

C hai cch thay th trang: thay th ton cc v thay th cc b

.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

4.3.3 H thng tr tr (thrashing)

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

Hnh 4.41: m hnh tp lm vic

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.

Gi WSSi ( , t) l s phn t ca tp working set ca tin trnh Pi ti thi im t.


m l s khung trang trng.

D = WSSi l tng s khung trang yu cu cho ton h thng .

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

4.3.3.2 Cu trc chng trnh

T.

Nu tng s khung trang yu cu ca cc tin trnh trong h thng vt qu cc khung trang c


th s dng (D>m), th s xy ra tnh trng h thng tr tr. Khi h iu hnh chn mt tin
trnh tm dng, gii phng cc khung trang ca tin trnh chn cc tin trnh khc c
khung trang hon tt cng vic.

S li trang c khi ph thuc vo ngn ng lp trnh, nn khi lp trnh ta cn ch chng


trnh c th thc hin nhanh hn.

.P

V d: xt ct sau:
int a[128][128];

for (i=0; i<128; i++)


for (j=0; j<128; j++)

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

+ Vic chuyn i a ch tng i thnh a ch thc c th xy ra vo mt trong nhng thi


im sau: thi im bin dch, thi im np, thi im x l.
+ a ch o l a ch do b x l sinh ra, a ch vt l l a ch thc trong b nh. Khi chng
trnh np vo b nh cc a ch tng i trong chng trnh c CPU chuyn thnh a ch o,
khi thc thi, a ch o c h iu hnh kt hp vi phn cng MMU chuyn thnh a ch vt
l .

+ 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

Cp pht lin tc: tin trnh c np vo mt vng nh lin tc.

Cp pht khng lin tc: tin trnh c np vo mt vng nh khng lin tc

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

ton b vo b nh vt l. C hai phng php ci t k thut b nh o l phn trang theo


yu cu hoc phn on theo yu cu
- Phn trang theo yu cu:
Mt tin trnh c chia thnh nhiu trang, thng tr trn a cng v mt trang ch c np
vo b nh chnh khi c yu cu. Nu khi np trang m khng cn khung trang trng, chn mt
khung trang "nn nhn" v chuyn trang "nn nhn " ra b nh ph , ri chuyn trang mun truy
xut t b nh ph vo khung trang trng chn.

+ 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

1. Gi s c mt h thng s dng k thut phn trang theo yu cu. Bng trang c lu tr


trong cc thanh ghi. x l mt li trang tn 8 miliseconds nu c sn mt khung trang trng,
hoc trang b thay th khng b sa i ni dung, v tn 20 miliseconds nu trang b thay th b
sa i ni dung. Mi truy xut b nh tn 100 nanoseconds. Gi s trang b thay th c xc sut
b sa i l 70%. T l pht sinh li trang phi l bao nhiu c th duy tr thi gian truy xut
b nh ( effective acess time) khng vt qu 200 nanoseconds?

int A [100][100] ;
for (i=0; i<100; i++)

TI

for (j=0; j<100; j++) A[i][j]= 0;

T.

2. Xt chng trnh C sau :

.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] ;

for (j=0; j<100; j++)

PE

for (i=0; i<100; i++) A[i][j]= 0;


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;

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

truy cp cui cng

126

279

230

260

120

272

160

280

Trang no s c chn thay th theo :

ED

a) thut ton NRU

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 :

b) thut ton FIFO


c) thut ton LRU

T.

d) thut ton " c hi th 2"

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

a) a ch logic gm bao nhiu bit ?

b) a ch physic gm bao nhiu bit ?

7. Xt mt h thng s dng k thut phn trang, vi bng trang c lu tr trong b nh chnh.

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)

8. Xt bng phn on sau:

Segment Base Length


1

2300 14

90

100

Cho bit a ch vt l tng ng vi cc a ch o sau y :


a. (1,10)
b. (2,500)

132

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 ?
10. Mt my tnh c 48-bit a ch o, v 32-bit a ch vt l, kch thc mt trang l 8K. C bao
nhiu phn t trong mt bng trang thng thng v trong bng trang nghch o?

U
.V

a) V chi tit ton b bng trang cho tin trnh ny

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

12. Gi s c mt my tnh s dng 16-bit a ch. B nh o c thc hin vi k thut phn


on kt hp phn trang, kch thc ti a ca mt phn on l 4096 bytes. B nh vt l c
phn thnh cc khung trang c kch thc 512 bytes.
a) Th hin cch a ch o c phn tch phn nh segment, page, offset

T.

b) Xt mt tin trnh s dng cc min a ch sau, xc nh s hiu segment v s hiu page


tng ng trong segment m chng trnh truy cp n :

TI

350..1039, 3046..3904, 7100..9450, 33056..39200, 61230..63500


c) Bao nhiu bytes ng vi cc vng phn mnh ni vi trong tin trnh ny?

.P

d) Cn bao nhiu b nh cho bng phn on v bng trang ca tin trnh ny ?


TI LIU THAM KHO

[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

5.1. PROCESSOR VT L V PROCESSOR LOGIC

5.2 Ngt v x l ngt

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.

Hnh 5.1. Processor vt l v processor logic

Gi s h thng c mt CPU vt l. Nu CPU ny khng h tr k thut siu phn lung th h


iu hnh ch nhn thy h thng c mt CPU (vt l) duy nht. Ngc li, nu CPU ny h tr k
thut siu phn lung th h iu hnh s cho rng h thng ny c hai CPU (logic). Hnh 5.2
minh ha iu ny khi thc hin trn hai h thng c gi s nh trn. Khi , hnh (b) ta s

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.

Hnh 5.2. Minh ha Performance ca h thng c 1 CPU vt l v h thng c 2 CPU logic

TI

5.2. NGT V X L NGT

.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.

Hnh 5.3 Th tc ngt

.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

+ nh ngha mt tp cc s kin c kh nng gy ra ngt.


+ C phng tin ghi li cc tnh hung (ng cnh) khi mt ngt xy ra, thng l mt hoc
mt vi bit c (flag).

+ 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.

+ Bn trong h iu hnh, cc ngt thng c s dng truy xut cc dch v ca kernel


(nhn ca h iu hnh). Vic thm nhp vo kernel ca mt h iu hnh c lin quan mt thit

136

n qu trnh x l ngt, mt vi kh nng p ng ngt l yu cu tt yu ca kernel trong mt h


iu hnh. C ba loi ngt c s dng trong mt h iu hnh nh sau:
a/ Ngt gim st (supervisor call interupt): l mt loi ngt c bit, xy ra khi mt tin trnh
pht ra mt ch th yu cu mt th tc bn trong h iu hnh. Sau , h iu hnh c th c
xem nh l mt tp cc chng trnh h thng c lin kt vi nhau thc thi cc tn hiu ngt.

b/ Ngt ni (internal interupt): hay cn gi l ngt mm, c to ra bi cc s kin no , bn


trong b x l ang thc thi cc s kin , chng hn nh khi mt chng trnh thc hin sai
chc nng (v d nh chng trnh c gng chia mt s cho 0).

U
.V

c/ Ngt ngoi (external interupt): hay cn gi l ngt cng, c to ra bn ngoi b x l ang


xy ra ngt, thng l bi cc b x l khc hoc cc thit b nhp/xut trong h thng.

ED

Mi loi ngt c mt th tc x l ngt (interupt handler) x l cc yu cu ngt tng ng.


Khi mt th tc x l ngt at c quyn iu khin CPU, nh minh ha trong hnh 5.11, thng
thng n s cm tt c cc ch th t cc ngt khc cho n khi n t n im an ton. im
an ton l v tr m thng tin trng thi ngt c th c lu v s c khi phc li sau khi yu
cu ngt c p ng.

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

ng h ngt gip m bo c thi gian hi p hp l cho h thng a ngi dng, ngn cn


h thng b treo khi c mt ngi s dng ang thc thi mt vng lp v hn.

5.2.2. a ngt

PE

Nhng vn chng ta va nu trn c p dng cho s xut hin ca mt ngt ti mt thi


im. Tuy nhin, trong thc t, mt lc c th xy ra nhiu ngt. Chng hn nh, mt chng
trnh c th nhn d liu t bn ngoi vo v in ra kt qu tng ng. Mi ln my in ch thc
hin c mt ngt cho n khi kt thc hot ng in. B iu khin bus s thc hin mt ngt
mi khi c mt n v d liu n. Nh vy, ngt iu khin bus cho php nhn d liu s xy ra
trong khi ngt phc v in n ang thi hnh.

137

B iu khin ngt X

(a) Tin hnh ngt tun

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

Hnh 5.4. Quy trnh iu khin a ngt

* C hai cch tip cn gii quyt vn a ngt:

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

Hnh 5.5. Mt v d v x l ngt c u tin

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

5.3. X l ngt trong IBM-PC


Trong phn ny, chng ta s tm hiu mt s ngt cng quan trng v vic x l chng nh th
no trong IBM-PC. Cc thit k u tin ca IBM-PC da trn b x l 8088 v s dng b iu
khin ngt 8259 cho php to ra 8 tn hiu ngt ng thi.
Ngt 00h: chia 0

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.

Ngt 02h: NMI (ngt khng che)

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

Ngt khng che (Non-Maskable Interupt) c gi nh vy bi l ngi dng khng th ngn cn


n. Ngi dng c th ngn cn cc ngt khc bng lnh CLI, nhng i vi ngt 02h th khng
th. NMI thng bo cho ngi s dng bit rng c li trong RAM. Li ny c th xut hin do
hng mt chip RAM no y.V chip RAM hng c th lm ny sinh nhng nh hng nghim
trng cho h thng, nn ngt ny c u tin cao nht.
Ngt 03h: im dng

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 ny c th c gi bi mt lnh. l lnh INTO (Interupt of Overflow), lnh ny ch gi


ngt 04h khi bit trn ca thanh ghi c bng 1. iu ny c th xy ra sau mt thao tc ton hc,
nu nh kt qu ca thao tc ny khng cha ni trong mt s bit t.
Ngt 05h: Copy cng
Khi n phm PrtScr, ngt ny s c gi. Ngt ny gi ton b ni dung mn hnh ra my in.
Ngt 06h-07h: khng s dng (dnh cho cc ng dng v sau).

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

Hnh 5.6. Cc yu cu ngt v mc yu tin trn PC


Ngt 08h: b thi gian (bit 0)

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)

Bn phm c h tr bi b x l Intel 8048(PC/XT) hoc 8042 (AT). B x l ny kim sot v


ghi nhn phm b n, nh hoc b n v gi lin tc. N gi tn hiu yu cu ngt ti 8259, b ny
li yu cu CPU gi ngt s 09h (trong trng hp ng thi ang c mt ngt khc c mc u
tin cao hn).
Ngt 0Ah -0Ch: thay i
Cc ngt ny thay i ty theo tng my.
Ngt 0Dh: a cng (bit 5)
Ngt ny c gi khi kt thc cc thao tc c, ghi a cng.

Ngt 0Eh: a mm (bit 6)


Ngt ny c gi khi kt thc cc thao tc c, ghi a mm hoc khi c li xut hin.
Ngt 0Fh: my in (bit 7)

141

My in song song gi ngt ny thng qua 8259 khi n cn s phc v ca CPU.


5.3.1. Thanh ghi ngt
8259 bit c khi no mt yu cu ngt c x l xong l do thanh ghi ch th ngt a ch
20h. Khi mt ngt ca 8259 kt thc, n thc hin lnh OUT gi tr 20h (EOI = End Of Interupt)
ti cng 20h. Lnh ny thng bo cho 8259 bit rng vic x l ngt kt thc, v 8259 c th
chp nhn yu cu ngt tip theo.

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

AT c hai b iu khin ngt 8259, v n c th x l ti 16 yu cu ngt (ngun sinh ngt). Cc


ngt ca b iu khin ngt th hai c tn l IRQ8, , IRQ15. Nu xut hin mt yu cu ngt
ca b iu khin ngt th 2, th n c coi nh l yu cu ngt s 2 ca b iu khin ngt th
nht. Bi vy cc yu cu ngt ca b iu khin ngt th hai c u tin cao hn cc yu cu
ngt t 3 n 7 ca b iu khin ngt th nht.

.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

Ch c cc ngt 70h v 75h l c b iu khin ngt gi, bi l ch c hai thit b ni vi 8259


ny. Tuy nhin, cc vector ngt 71h-74h v 76h-77h c th c i hng cho cc mc ch
khc. Hnh 5.15 m t chi tit mt s yu cu ngt v mc u tin ca chng trn my AT.
Ngt 70h: ng h thi gian thc
Ngt 70h c gi khi n thi im bo chung, thi gian va c cp nht, hoc va xy ra
mt ngt chu k. ngt ny thng c mt th tc ca BIOS x l.
Ngt 75h: b ng x l tan hc

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

1. Phn bit gia CPU vt l v CPU logic. Mc tiu ca CPU logic l g?

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.

5. im an tan trong qu trnh thc thi mt chng trnh l g? ng h ngt c mc ch g


trong h thng?
TI LIU THAM KHO

[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

6.1. CU HNH NHIU PROCESSOR

6.4 iu phi trong h thng a x l

ED

Mc d tc my tnh ngy cng c ci thin nh vo cc cng ngh mi, nhng nhu cu ca


con ngi vn cha c tha mn. Mt trong cc cch tip cn nhm mc ch tng tc ca
my tnh l s dng nhiu b x l trn mt my. Mi b x l ch cn hot ng tc bnh
thng cng cung cp cho h thng kh nng tnh ton tt hn rt nhiu so vi h thng ch c
mt b x l. H thng c nhiu b x l c th chia lm 3 loi chnh nh sau:
+ a x l dng b nh chia s.
+ a x l dng b nh ring.

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.

Mt h thng a x l dng b nh chia s (shared-memory multiprocessor, hoc i khi ngi ta


ch gi multiprocessor) l mt h thng c hai hoc nhiu hn hai CPU cng chia s mt b nh
RAM. Mt chng trnh chy trn bt k CPU no cng u c kh nng nhn thy cng mt
khng gian a ch o nh nhau (ni cch khc, chng c phn trang nh trong h thng c mt
b x l). Tuy nhin, iu khc bit trong h thng a x l th hin ch, mt CPU c th ghi
vo mt t nh no mt gi tr l a nhng khi c ra c th s mang gi tr khc a (bi v mt
CPU khc lm thay i gi tr ny). iu ny to nn c tnh c bn ca vic truyn thng
gia cc tin trnh vi nhau trong h thng c nhiu b x l mt CPU ghi d liu vo trong b
nh v mt CPU khc s c ly d liu ra. Ni chung, h iu hnh dng cho h thng a
x l cng tng t nh h iu hnh trong h thng n x l. N cng x l cc li gi h
thng, thc hin vic qun l b nh, cung cp c ch qun l tp tin cng nh cc c ch qun l
vo ra. Tuy nhin, c mt s vn mi m chng ta cn quan tm khi nghin cu mt h iu

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.

6.1.1. H thng a x l UMA dng m hnh Bus

U
.V

Mc d cc h thng c nhiu b x l u cho php mi CPU c th truy xut n b nh ca h


thng, nhng mt vi h thng c thm mt c tnh na, l n cho php mi t nh c th
c c ra vi cng mt tc . Nhng h thng ny c gi l h thng a x l UMA
(Uniform Memory Access Multiprocessor). Ngc li, h thng no khng c kh nng trn th
c gi l NUMA (NonUniform Memory Access Multiprocessor). V sao c s khc bit ny
chng ta s tm hiu phn sau, cn by gi chng ta s ln lt tm hiu tng loi h thng mt.

.P

TI

T.

ED

Cc h thng c nhiu b x l n gin nht u da trn mt bus chung, c minh ha trong


hnh 6-1(a). Hai hoc nhiu CPU v mt hoc nhiu b nh, tt c s dng mt tuyn bus
truyn thng. Khi mt CPU mun c mt t nh, trc tin n phi kim tra xem bus c ri
khng. Nu trng thi bus l ri, CPU s gi a ch ca t nh m n mun c d liu ln trn
bus, kim tra mt vi tn hiu iu khin, v i cho n khi b nh t t nh c yu cu ln
ln bus.

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

Mt trong nhng c im ni bt ca m hnh ny l n m bo h thng khng b nghn.


Ngha l s khng c trng hp mt CPU no khng c b nh lm vic ch v mt vi
im crosspoint b s dng. Ngoi ra, h thng cng khng cn phi lp ra k hoch phn phi
ti nguyn cho CPU trc. Ngay c khi nhng kt ni bt k gia CPU v b nh c thit
lp, h thng u c kh nng cho php thc hin kt ni cc CPU v b nh cn li vi nhau.

Mt trong nhng yu im ln nht ca m hnh ny l s lng crosspoint rt ln khi s CPU v


b nh tng ln. Vi 1000 CPU v 1000 b nh th h thng s c 1000000 crosspoint. Mt m
hnh kt ni ln nh th l khng kh thi. Tuy nhin, i vi cc h thng vi kch thc nh hn,
th y l mt m hnh tuyt vi.

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.

Hnh 6.3. (a) Chuyn mch 2x2. (b) nh dng ca Message.

Cc chuyn mch 2x2 c th c sp xp theo nhiu cch to nn mt mng chuyn mch a


tng (multistage switching network). Mt kin trc in hnh cho lai ny c trnh by trong
hnh 6-4. y, 8 CPU c kt ni vi 8 b nh s dng 12 switch. Mt cch tng qut, vi n
CPU v n b nh, chng ta cn log2n tng (stage) vi n/2 switch cho mi tng. Ngha l, tng
cng h thng cn (n/1)log2n switch. iu ny r rng l tt hn nhiu so vi h thng a x l
UMA dng chuyn mch cho, cn ti n2 crosspoint, c bit l khi n mang gi tr ln.

147

N
U
.V

Hnh 6.3. Mng chuyn mch Omega

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.

Tuy nhin, iu g s xy ra nu CPU 000 ng thi mun truy xut b nh 000. Yu cu ca n


s ng vi nhu cu ca CPU 001 ti switch 3A. Mt trong hai yu cu ny phi i. Khng
ging nh c ch chuyn mch cho, mng Omega l mt mng c kh nng xy ra nghn. Khng
phi mi yu cu u c th c x l ng thi. ng c th xy ra do vic s dng chung
kt ni, switch hoc b nh m cc yu cu truy xut n.
T h thng ny, ngi ta mong i c mt h thng c ci tin hn bng cch cho php cc
word lin tc c lu trong cc b nh khc nhau. iu ny cho php h thng truy xut n b
nh nhanh hn. Ngai ra, tnh trng nghn mng cng c th c khc phc bng cch cung cp
nhiu ng i t mt CPU ny n mt b nh bt k, khi tc truy xut b nh cng c
ci thin ng k.

148

6.1.4. H thng a x l NUMA


Cc h thng a x l UMA dng bus thng b gii hn ti a khong vi t CPU, cn cc h
thng dng chuyn mch cho hoc chuyn mch a tng th cn nhiu phn cng h tr. cho
php mt h thng c th h tr tt vi trn 100 CPU, ngi ta a ra mt cch tip cn khc. Vi
cch tip cn ny, vic truy xut b nh cc b s nhanh hn vic truy xut b nh xa. Nh vy,
cc chng trnh h tr UMA s chy tt trn cc my h tr NUMA m khng c s thay i
no. Trong khi , cc chng chng trnh c h tr NUMA s gim hiu sut thc thi khi
chy trn cc my h tr UMA cng mt tc ng h.
C mt khng gian a ch duy nht c th nhn thy bi tt c cc CPU.
Truy xut b nh xa chm hn truy xut b nh cc b.

U
.V

Truy xut b nh xa thng qua hai lnh LOAD v STORE.

Cc my NUMA c 3 c im chnh c th phn bit vi cc h thng a x l khc, l:

.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.

lm r hn tng ca h thng ny, chng ta xt v d n gin c m t nh trong hnh


6-5. Mt h thng gm 256 node, mi node gm mt CPU v 16MB b nh RAM c kt ni
n CPU thng qua mt bus cc b. Tng b nh l 232 byte, c chia lm 226 khi cache, mi
khi 64 byte. B nh c nh v c nh ti mi node, vi 0-16MB cho node 0, 16MB32MB

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

Khi yu cu ny n node 36, n s c chuyn n phn cng Directory. Phn cng ny s d


trong bng gm 218 thc th ca n tm ra thc th 4. T hnh 6-5(c), chng ta thy rng khi 4
khng c cache, do vy phn cng s np dng 4 t b nh RAM cc b v gi ngc li node
20, ng thi cp nht Directory thc th 4 v ch ra rng khi ny by gi c cache node
20.

ED

By gi, chng ta xem xt mt yu cu khc, ln ny node 20 hi v khi cache 2 ca node 36. T


hnh 6-5(c), chng ta thy rng khi ny c cache ti node 82. Nh vy, phn cng phi cp
nht thc th 2 trong Directory ch ra rng khi ny ang c cache node 20 ng thi v
hiu ha cache ca n.

T.

6.2. CC LOI H IU HNH H TR NHIU B X L

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

6.2.1. Mi CPU c ring mt h iu hnh

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.

Cch n gin nht t chc mt h iu hnh h tr nhiu b x l l phn chia c nh b nh


thnh nhiu phn tng ng vi s lng CPU m h thng h tr. Mi CPU c cp mt b
nh ring v s hu mt bn sao ring ca h iu hnh. Kt qu l, n CPU sau s hat ng
nh l n my tnh c lp. Mt m hnh ti u nh c trnh by trong hnh 6-6, , h thng

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.

S ny vn tt hn trng hp h thng c nhiu my tnh tch bit bi v n cho php cc


CPU c th chia s mt tp cc ti nguyn a v cc thit b nhp/xut khc, ng thi n cng
cho php b nh c chia s mt cch linh hat hn. Th d, nu mt ngy p tri no , mt
chng trnh c kch thc ln bt thng cn c thc thi, th mt trong cc CPU vn c th
c cung cp mt phn b nh ln thc thi chng trnh . Ngai ra, cc tin trnh cn c
th truyn thng vi nhau mt cch hiu qu, chng hn nh mt producer c th ghi d liu vo
b nh ng thi mt consumer ly d liu ra t ni m producer ghi vo. Tuy nhin, thit k
ny vn cho thy mt s nhc im sau:

U
.V

Th nht, khi mt tin trnh to mt li gi h thng, th li gi h thng ny s c thc thi trn


chnh CPU ca tin trnh s dng cc cu trc d liu trong cc bng ca cng h iu hnh
dnh CPU .

ED

Th hai, v mi h iu hnh u c mt tp cc tin trnh c iu phi bi chnh n. Cho nn,


s khng c vic chia s tin trnh y. Nu mt user lm vic vi CPU 1 th tt c cc tin trnh
ca user ny ch chy trn CPU 1. Kt qu l, CPU1 qu ti trong khi cc CPU khc th rnh ri.
Th ba, khng c vic chia s trang nh y. Chng hn nh, trong khi CPU 1 c nhiu trang
nh d tha, th CPU 2 vn phi thc hin phn trang lin tc. Khng c cch no CPU 2 c
th mn mt vi trang nh t CPU 1 bi v b nh c chia c nh.

.P

TI

T.

Th t v cng l nhc im ln nht. Nu mi h iu hnh ca tng CPU lu gi mt vng


nh cache ca cc khi a mi s dng gn y, th mi h iu hnh s thao tc trn khi d
liu ny mt cch c lp vi cc h iu hnh khc. V vy, c th s xy ra trng hp l cc
khi a ny tr thnh mt phn ring v ch b thay i bi mt CPU tng ng ti mt thi
im. iu ny dn n nhng kt qu mu thun nhau. Ch c mt cch duy nht loi b vn
ny l loi b cc vng nh cache. iu ny khng c g kh, nhng vn l n s lm gim
ng k hiu sut lm vic ca h thng.

V nhng l do m m hnh ny khng cn c s dng na. Mt m hnh th hai c


cp trong phn tip theo l h iu hnh h tr nhiu b x l hot ng theo c ch Ch-T
(Master-Slave).

PE

6.2.2. H iu hnh cho nhiu b x l hat ng theo c ch Ch-T (Master-Slave)

Trong m hnh ny, c trnh by trong hnh 6-7, mt bn sao ca h iu hnh c lu gi


trn CPU 1, cc CPU khc khng c tnh nng ny. Khi , tt c cc li gi h thng u c
chuyn n CPU 1 c x l y. Ngoi ra, CPU 1 cng c th chy cc tin trnh ngi
dng nu n c d thi gian. M hnh ny c gi l Ch-T vi CPU 1 l ch cn cc CPU
khc ng vai tr l t.

M hnh Ch-T ny gii quyt hu ht cc vn trong m hnh th nht. C mt cu trc d


liu duy nht (th d nh mt danh sch hoc mt tp cc danh sch c sp th t u tin)
theo vt cc tin trnh sn sng. Khi mt CPU mun i vo trng thi ri, n s yu cu h iu
hnh gn cho n mt tin trnh thc thi. Nu c gn th n tip tc lm vic, nu khng n
mi i vo trng thi ri. Nh vy, s khng bao gi xy ra trng hp mt CPU ri trong khi
mt CPU khc qu ti. Tng t th, cc trang nh cng c th c phn phi cho tt c cc tin
trnh mt cch linh ng. Ngoi ra, m hnh ny ch h tr mt vng nh cache nn s khng bao
gi xy ra vic c nhng kt qu mu thun nhau.

151

U
.V

Hnh 6.6. M hnh h iu hnh Ch-T trong h thng a x l

ED

Vn trong m hnh ny l h thng c th xy ra tnh trng nghn c chai ti CPU ch nu c


qu nhiu CPU trong h thng. Ngha l CPU ch phi gii quyt tt c cc li gi h thng t
cc CPU t. Gi s c 10% tng thi gian c dng vo vic x l cc li gi h thng th vi
h thng c 10 CPU n s lm trn ngp CPU ch. Cn nu h thng c 20 CPU th n s b
qu ti. V vy m hnh ny l n gin v ch c th lm vic c cho cc h thng a x l vi
s lng nh cc CPU.

T.

6.2.3. H iu hnh cho h thng c nhiu b x l i xng (Symmetric


multiprocessors)

PE

.P

TI

Trong m hnh ny, ch c mt bn sao ca h iu hnh trong b nh, nhng bt k CPU no


cng c kh nng s dng n. Khi mt li gi h thng c to ra cho mt CPU no , th CPU
ny s thc hin truy xut n kernel ca h iu hnh v tin hnh x l li gi h thng . M
hnh ny c th hin trong hnh 6-8.

Hnh 6.7. M hnh h iu hnh cho h thng a x l i xng

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.

Hu ht cc h thng c nhiu b x l u s dng m hnh ny. Ci kh trong cch tip cn ny


khng nm ch vit code nh th no cho khc vi mt h iu hnh thng thng trc y.
M ci kh y l vic chia n thnh nhiu min gng c th thc thi code ca h iu hnh
mt cch ng thi bi nhiu CPU m khng b nh hng bi bt k mt CPU no khc. Bn
cnh , tt c cc bng c s dng bi hai hoc nhiu min gng phi c bo v bng mt
bin mutex v cc on code ang s dng bng ny cng phi s dng bin muxtex mt cch ph
hp.

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

6.3. NG B TRONG H THNG A X L


Cc CPU trong mt h thng cn c ng b thng xuyn. Chng ta thy iu ny thng
qua vic cc min gng v bng c bo v bi cc bin mutex. By gi chng ta tm hiu xem
vic ng b thc s c thc hin nh th no trong mt h thng c nhiu b x l.

U
.V

Cng cn nhc li rng, ng b l tnh cht c bn trong bt k mt h thng my tnh no. Nu


mt tin trnh trn mt h thng c mt b x l to mt li gi h thng yu cu truy xut mt
vi min gng hay bng trong kernel ca h iu hnh, th code trong kernel ch c th thc hin
cm cc ngt trc khi cho php truy xut bng. Li gi h thng sau thc thi cng vic ca n
v cng bit rng n c th s kt thc m khng c s truy xut bng ca bt k tin trnh no
khc. Trn mt h thng nhiu b x l, vic cm ngt ch gy nh hng i vi mt CPU no
thi. Cc CPU khc tip tc lm vic v c th thc hin vic truy xut bng trong kernel ca
h iu hnh. Kt qu l, mt giao thc s dng mutex thch hp phi c s dng bi tt c cc
CPU m bo rng vic ngn chn truy xut ng thi lm vic tt.

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

By gi, chng ta tm hiu vn ny trn mt h thng c nhiu b x l. Trong hnh 6-9, t nh


1000 c dng nh mt bin lock c gi tr khi to l 0. bc 1, CPU 1 c ra t nh v ly
c gi tr 0. bc 2, trc khi CPU 1 c c hi ghi ngc li t nh mt gi tr mi mang
gi tr 1, th CPU 2 truy xut vo v cng c ra t nh c gi tr 0. bc 3, CPU 1 ghi gi tr 1
vo t nh. Bc 4, CPU 2 cng ghi gi tr 1 vo t nh. V c hai u ly gi tr 0 t ch th TSL,
nn c hai u c quyn truy xut n min gng v vn gii quyt tng tranh b tht bi.

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

nay u c kh nng ny, cn trc y, vic ci t ch th dng ny l khng thc hin c.


y cng l l do ti sao Peterson a ra giao thc ng b bng phn mm.
Nu TSL c ci t v s dng ng, n m bo gii quyt tt vn tng tranh. Tuy nhin,
phng php ny vn c hn ch nht nh. V bin lock s b chim dng theo c ch quay trn
(spinning). Ngha l cc CPU phi ln lt thc hin vng lp kim tra bin ny v chim dng
bus mt cch cht ch. iu ny khng ch lm lng ph thi gian yu cu CPU m cn gy ra
mt lng ti ln cho bus hoc b nh, lm gim nghim trng tc lm vic ca cc CPU
khc.

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

Nu chng ta c th loi b c tt c cc ch th ghi do TSL a ra, th c th gim ng k vn


cache thrashing. t c iu ny, CPU u tin s thc hin vic c ch kim tra xem
lock c ri hay khng. Ch nu lock ri, th CPU mi thc hin mt TSL thc s chim ly
lock. Kt qu ca s thay i nh ny th hin ch hu ht cc thm d (poll) by gi s ch l
c m khng ghi. Nu CPU gi lock ang ch c cc bin trong cng khi cache, th mi CPU
c mt bn sao ca khi cache trong ch ch c, loi b tt c cc chuyn i khi cache. Khi
lock cui cng ri, CPU s hu n thc hin ch th ghi, cho php vic truy xut dnh ring, v
vy n lm v hiu tt c cc bn sao khc trong cc cache xa. Trong ln c tip theo, khi
cache s c np li. Nu hai hoc nhiu CPU ang cnh tranh v mun chim dng cng mt
lock, c th xy ra trng hp c hai CPU s cng ng thi thy lock ny ri, v c hai thc hin
ch th TSL chim ly lock ng thi. S ch c mt trong hai thnh cng, v vy s khng
c bt k iu kin cnh tranh no y v vic ginh c lock c thc hin bi ch th TSL
v ch th ny l khng th chia nh c na.

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.

Hnh 6.9. S dng nhiu bin lock trnh cache thrashing

6.4. IU PHI TRONG H THNG A X L

TI

T.

Trn h thng c mt b x l, iu phi l mt hng. Ch mt cu hi cn phi tr li (lp i


lp li) l: Tin trnh no s c chy tip theo?. Trn mt h thng c nhiu b x l, iu
phi l 2 hng. B iu phi phi quyt nh tin trnh no chy vi CPU no. iu ny lm cho
vic iu phi trn h thng c nhiu b x l phc tp hn nhiu.

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

u th ca cch tip cn ny l s dng chung mt cu trc d liu iu phi. iu ny cho


php cn bng ti, ngha l s khng c trng hp mt CPU no ri trong khi cc CPU khc
th lm vic qu ti. Hai hn ch trong trong tip cn ny l s cnh tranh cu trc d liu iu
phi khi s lng CPU tng ln v lng overhead ln khi thc hin chuyn i ng cnh trong
trng hp mt tin trnh b kha i thao tc nhp xut.

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.

Mt s h thng c nhiu b x l thc hin iu phi theo cch gi l affinity scheduling.


tng chnh ca cch iu phi ny cho php mt tin trnh (chy trn cng mt CPU m n
chy trc ) s dng gii thut iu phi hai mc. Khi mt tin trnh c to ra, n c gn
cho mt CPU. Vic gn cc tin trnh cho cc CPU c thc hin mc cao. Kt qu l mi
CPU chim gi mt tp cc tin trnh ca chnh n. Vic iu phi thc s cho cc tin trnh din
ra mc thp. iu c thc hin bi tng CPU ring l s dng cc quyn u tin hoc da
vo mt vi yu t khc. Bng cch gi mt tin trnh trn cng mt CPU, cache c tn dng
ti a. Ngoi ra, nu mt CPU khng c tin trnh no thc thi, n s ly mt tin trnh no
t mt CPU khc hn l phi i vo trng thi ri. C ch iu phi hai mc ny c ba li im.
u tin, n phn b ti u trn cc CPU hin c. Th hai, cache c tn dng ti a. Th ba,
bng cch cho php mi CPU c mt danh sch cc tin trnh sn sng ca chnh n, vic tranh
chp danh sch sn sng c gim thiu.

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.

Hnh 6.11. Mt tp gm 32 CPU c chia thnh 4 nhm v 2 CPU cha c chia

PE

Theo nh k, cc quyt nh iu phi phi c to ra. Trong cc h thng c mt b x l,


shortest-job-first l thut tan c s dng nhiu nht iu phi cho nhm. Thut tan tng
t trong h thng a x l l chn ra tin trnh ang cn s lng nh nht cc chu k CPU. Tuy
nhin, trong thc t, thng tin ny t khi c sn. V vy gii thut ny rt kh thc hin. Thc
vy, gii thut first-come first-served rt kh c thay th. Mt cch tip cn khc h tr tt cho
c ch x l song song l dng mt server chnh theo di du vt ca cc tin trnh ang chy,
mun chy v nhng yu cu v CPU ca chng. nh k, mi CPU thm d server chnh hi
xem c bao nhiu CPU m n c th dng c. Sau , n s iu chnh s lng tin trnh hoc
tiu trnh ph hp vi s lng cho php. V d, mt Web Server c 1, 2, 5, 10, 20 hoc mt s
lng no cc tiu trnh ang chy song song. Nu hin thi n c 10 tiu trnh ang chy, v
bt ng n cn nhiu CPU hn na, n s yu cu gim xung cn 5 tiu trnh (b i 5 tiu trnh),
sau khi 5 tiu trnh ny thc hin xong, n yu cu that ch khng tip tc cng vic mi. S

158

ny cho php kch thc ca mi nhm c thay i mt cch linh ng ph hp vi cng


vic hin hnh, hiu qu hn h thng c nh nh cch tip cn trong hnh 7-12.

6.4.3. Gang Scheduling

Mt u im ca space sharing l loi b c overhead do vic chuyn i ng cnh. Tuy


nhin, mt nhc im ca n l thi gian b lng ph khi mt CPU b kha, n khng c g
lm cho n khi n c gii phng. Do vy, nhiu nh nghin cu tm kim gii php thc
hin iu phi cho php kt hp c thi gian v khng gian), c bit i vi cc tin trnh to ra
nhiu tiu trnh.

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.

Tt c cc thnh vin bt u v kt thc cc khe thi gian cng nhau.


Bn cht ca gang scheduling l cho php tt c cc CPU c iu phi ng thi. Ngha l, thi
gian c chia thnh cc phn (quantum) ri rc nh trong hnh 7-14. u mi quantum mi,
tt c cc CPU c iu phi li, vi mt tiu trnh mi ang c bt u trn mi quantum.
Bt u ca mi quantum tip theo, mt s kin iu phi khc xy ra. Trong khong gia, vic
iu phi khng c thc hin. Nu mt tiu trnh b kha, CPU ca n tr v trng thi ri cho
n khi kt thc quantum.

159

ED

U
.V

Mt v d cho thy gang scheduling lm vic nh th no c minh ha trong hnh 7-14. y,


chng ta c mt h thng a x l vi 6 CPU ang c s dng bi 5 tin trnh t A n E vi
tng cng 24 tiu trnh sn sng. Trong sut khe thi gian 0, cc tiu trnh A0 n A6 c iu
phi chy. Trong sut khe thi gian 1, cc tiu trnh B0, B1, B2, C0, C1 v C2 c iu phi
chy. Trong sut khe thi gian 2, 5 tiu trnh ca D v E0 c iu phi chy. Su tiu
trnh cn li ca tin trnh E c iu phi chy trong khe thi gian 3. Sau chu k c lp
li, vi khe thi gian 4 ging nh khe thi gian 0 ...

Hnh 6.13. Mt v d minh ha c ch lm vic ca Gang Scheduling

.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

Mc d tc my tnh ngy cng c ci thin nh vo cc cng ngh mi, nhng nhu cu ca


con ngi vn cha c tha mn. Mt trong cc cch tip cn nhm mc ch tng tc ca
my tnh l s dng nhiu b x l trn mt my. Mi b x l ch cn hot ng tc bnh
thng cng cung cp cho h thng kh nng tnh ton tt hn rt nhiu so vi h thng ch c
mt b x l. H thng c nhiu b x l c th chia lm 3 loi chnh nh sau:
+ a x l dng b nh chia s.

+ 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

3. Cho bit u v nhc im ca vic s dng bus chung trong h thng a x l.


4. Gii hn ca m hnh chuyn mch cho (crossbar switch).
5. u v nhc ca m hnh mng chuyn mch a tng (multistage switch network) so vi
chuyn mch chp (crossbar switch).
6. Phn bit hai h thng UMA v NUMA. u nhc ca tng h thng.
7. Cc h iu hnh h tr cho h thng a x l: mi CPU c mt h iu hnh, H iu hnh
cho nhiu b x l hat ng theo c ch Ch-T (Master-Slave), H iu hnh cho h thng c
nhiu b x l i xng (Symmetric Multiprocessors). u nhc ca tng m hnh.

8. ng b trong h thng a x l c g khc so vi ng b trong h thng ch c mt b x l?

U
.V

9. iu phi trong h thng a x l cn quan tm n nhng vn khi so vi iu phi trong h


thng c mt b x l.

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

17. i vi h iu hnh h tr h thng a x l i xng, cc min gng (trong code ca h


iu hnh) hoc cc bin mutex (trong cu trc d liu ca h iu hnh) c thc s cn thit
trnh vic tng tranh?

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?

19. Trong c ch ng b cho h thng c nhiu b x l, mt thut ton gi l binary exponential


backoff c s dng chen vo gia ln thc hin c ch TSL thm d bin lock. ng thi,
mt tham s khc gi l tr ti a (maximum delay) cng c s dng gia cc ln thm d.
Vy, thut tan ny c lm vic ng khng nu khng c tham s tr ti a ny?

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?

TI LIU THAM KHO

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.

2. Cc thnh phn ca mt h thng my tnh

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

B cp pht ti nguyn, chng trnh kim sot v phn nhn.

ED

4. Cc loi h iu hnh

H iu hnh x l theo l, h iu hnh x l a chng, h iu hnh x l a nhim, h iu


hnh a x l, h iu hnh l phn tn, h iu hnh x l thi gian thc, h iu hnh nhng.

T.

5. Phn bit h iu hnh a chng v h iu hnh a nhim

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

Lp lch CPU, Qun l b nh, Cp pht thit b, Cung cp cc hm x l nhp/xut.

PE

7. Phn bit h iu hnh a nhim v h iu hnh a x l


Ging nhau: ti mt thi im c th c nhiu cng vic trong b nh
Khc nhau:

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).

10. Phn bit h iu hnh a x l v h iu hnh x l phn tn


Ging nhau: ti mt thi im c th c nhiu cng vic trong b nh, mi cng vic c th c
thc hin trn cc CPU khc nhau.

U
.V

Khc nhau:

a x l: cc CPU dng chung ng truyn d liu, ng h, b nh v cc cng vic lin lc


vi nhau qua b nh dng chung.

11. Nu cc loi h thng x l phn tn


C hai loi: client-server hoc peer-to-peer.

ED

X l phn tn: cc CPU c ng truyn d liu, ng h, b nh ring v cc cng vic lin lc


vi nhau qua ng truyn mng.

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

+ Client-server: c mt my ng vai tr qun l cc ti nguyn dng chung gi l my server


(my ch), cc my khc gi l my client (my khch). Client mun s dng ti nguyn dng
chung phi c server cp quyn.
12. Nu cc u im chnh ca h iu hnh x l phn tn
+ Chia x 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.

PE

+ Truyn thng tin d dng: download/upload file, gi/nhn mail,


13. Trnh by h thng x l thi gian thc

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

16. Trnh by khi nim tin trnh

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.

To v hy cc tin trnh ca ngi s dng v ca h iu hnh.


Tm ngng v thc hin li mt tin trnh.

TI

Cung cp c ch ng b cc tin trnh.

Cung cp c ch lin lc gia cc tin trnh.

.P

Cung cp c ch kim sot tc nghn.

18. Trnh by cc chc nng ca dch v qun l b nh chnh

Lu gi thng tin v cc v tr trong b nh s dng v tin trnh no ang s dng.


Quyt nh tin trnh no s c np vo b nh chnh khi b nh chnh c ch trng.

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

Qun l vng trng trn a

Xc nh v tr ct gi d liu
Lp lch cho a

20. Nu cc thnh phn ca mt h thng nhp/xut


Mt h thng nhp/xut gm c cc thnh phn sau:
H thng b nh m
Cc chng trnh iu khin thit b.
Cc chng trnh giao tip vi cc chng trnh iu khin thit b .

165

21. Trnh by cc chc nng ca dch v qun l h thng tp tin


H tr cc thao tc trn tp tin v th mc (to/xem/xo/sao chp/di chuyn/i tn).
nh x tp tin trn h thng lu tr ph.
Sao lu tp tin trn cc thit b lu tr.
22. Trnh by dch v li gi h thng (ngt)

ED

23. Trnh by h thng thng dch dng lnh

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

Cu trc n gin, Cu trc phn lp, Cu trc my o, Cu trc Client-Server,

.P

25. Nu cc mc tiu thit k h iu hnh

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).

D ci t, bo tr, khng c li v hiu qa.


D s dng, d hc, an ton, tin cy cao v thc hin nhanh.

PE

C tnh kh chuyn cao.

CHNG 2: QUN L NHP/XUT V QUN L TP TIN

1. Nu cc loi thit b nhp/xut


Thit b khi, Thit b tun t, Thit b khc
2. Trnh by c tnh ca thit b nhp/xut
Tc truyn d liu, cng dng, n v truyn d liu, biu din d liu, tnh trng li.
3. B iu khin thit b nhp/xut (I/O controller) l g?

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.

5. Nu cch t chc h thng nhp/xut

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

Xt qu trnh c a, CPU gi cho b iu khin a (disk controller) lnh c a, sau CPU


tip tc x l cng vic khc. B iu khin s c khi trn a, tip theo b iu khin pht ra
mt ngt bo cho CPU bit l thao tc c hon tt. CPU n ly d liu trong buffer
chuyn vo b nh, thao tc ny lm lng ph thi gian ca CPU. ti u, b iu khin c
cung cp thm kh nng truy xut b nh trc tip (DMA), ngha l b iu khin t chuyn khi
c vo trong b nh chnh.

8. Nu c ch truy xut a

PE

Di chuyn u c n track thch hp, ch cho n khi khi cn c n di u c, chuyn


d liu gia a v b nh chnh. gim thiu thi gian truy xut a, h iu hnh cn a ra
cc thut ton lp lch di u c sao cho ti u
9. Trnh by cc thut ton lp lch di chuyn u c

Thut ton FCFS, SSTF, SCAN, C-SCAN


10. Trnh by h s an xen

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

11. Nu khi nim Ram Disks


H iu hnh c th dng mt phn ca b nh chnh lu tr cc khi a, phn b nh ny gi
l Ram Disk . Ram Disk cng c chia lm nhiu khi, mi khi c kch thc bng kch thc
ca khi trn a. Khi driver nhn c lnh c/ghi khi, s tm trong b nh Ram Disk v tr ca
khi, v thc hin vic c/ ghi trong thay v t a . RAM disk c u im l cho php truy
xut nhanh, khng phi ch quay hay tm kim, thch hp cho vic lu tr nhng chng trnh
hay d liu c truy xut thng xuyn.

12. Nu cch t chc lu tr d liu trn a cng

U
.V

a cng c nh dng thnh cc vng trn ng tm gi l rnh (track), mi rnh c chia


thnh nhiu phn bng nhau gi l cung (sector). Mt khi (cluster) gm 1 hoc nhiu cung v d
liu c c/ghi theo n v khi.
13. Trnh by khi nim file

T.

14. Nu cc thuc tnh file

ED

File l mt tp hp cc thng tin c t tn v lu tr trn a. File c th lu tr chng trnh


hay d liu, file c th l dy tun t cc byte khng cu trc hoc c cu trc dng, hoc cu trc
mu tin c chiu di c nh hay thay i. Cu trc file do h iu hnh hoc chng trnh qui
nh. File c th truy xut tun t hoc truy xut ngu nhin.

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

To/xa/m/ng/c/ghi/thm/di con tr file/ly thuc tnh/t thuc tnh/i tn file


16. Th no l cu trc th mc?

PE

L cu trc dng qun l tt c cc file trn a. Cu trc th mc cng c ghi trn a v


gm nhiu mc, mi mc lu thng tin ca mt file.
17. Nu cc loi cu trc th mc

Th mc mt cp, th mc hai cp, th mc a cp

18. Trnh by khi nim phn vng


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
19. Nu cc thao tc trn th mc
Create, Delete, Open, Close, Read, Rename, Link, Unlink,
20. Trnh by bng th mc

168

L mt dng ci t ca cu trc th mc. Bng th mc c nhiu mc, mi mc lu tr thng tin


ca mt file, thng tin file gm thuc tnh ca file v a ch trn a ca ton b file hoc s hiu
ca khi u tin cha file hoc l s I-node ca file. Mi a c mt bng th mc gi l bng
th mc gc, ci t phn u ca a v c th c nhiu bng th mc con.
21. Nu cch ci t h thng qun l file theo phng php cp pht khi nh cho file 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).

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.

CHNG 3: QUN L TIN TRNH


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)

169

int flag [2]; // khi ng l FALSE


Cu trc tin trnh Pi
While (TRUE)
{
flag[i] = TRUE;
while (flag[j])

if (turn == j)
flag[i]=
while
flag[i]= TRUE;

(turn

}
critical_section();

==

j)

ED

turn= j; flag[i]= FALSE;

FALSE;
;

U
.V

non_critical_section();
}

Gii php ny c tha mn 4 yu cu ca bi ton min gng khng ?

T.

HD:

Cu trc tin trnh Pj


While (TRUE)
{
flag[j] = TRUE;
while (flag[i])
if (turn == i)
{
flag[j]= FALSE;
while (turn == i) ;
flag[j]= TRUE;
}
critical_section();
turn= i; flag[j]= FALSE;
non_critical_section();
}

PE

.P

TI

Cu trc tin trnh Pi


While (TRUE)
{
flag[i] = TRUE;
while (flag[j])
if (turn == j)
{
flag[i]= FALSE;
while (turn == j) ;
flag[i]= TRUE;
}
critical_section();
turn= j; flag[i]= FALSE;
non_critical_section();
}

Ti thi im Pi kim tra flag[j], nu flag[j]=TRUE th Pi ch, nu flag[j]=FALSE th Pi s vo


min gng, Pj khng th vo min gng v khi flag[i]=TRUE. Vy tho yu cu th 1.

Khi Pi ngoi min gng, nu flag[i]=FALSE th Pj vo c min gng, nu flag[i]=TRUE v


turn=i th Pj gn flag[j]=FLASE v ch ngoi min gng, khi Pi vo trong min gng,... Vy
tho k 3
D thy gii php tho k 2, 4.
2. Xt gii php ng b ho sau:
while (TRUE)

170

{
int j = 1-i;
flag[i]= TRUE; turn = i;
while (turn == j && flag[j]==TRUE);
critical-section ();
flag[i] = FALSE;
}
HD:

U
.V

y c phi l mt gii php bo m c c quyn truy xut khng ?

Noncritical-section ();

Pj:

while (TRUE)

while (TRUE)

int j = 1-i;

int i = 1-j;

flag[i]= TRUE; turn = i;//j

flag[j]= TRUE; turn = j;//i

while (turn == j && flag[j]==TRUE);

while (turn == i && flag[i]==TRUE);

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

void swap(int &a, int &b)


{

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

v xt trng hp l nu flag[i]=flag[j]=true th c hai tin trnh s i v hn nn vi phm k 3,4


5. Pht trin gii php Peterson cho nhiu tin trnh

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;

Cu trc tin trnh Pi:


int choosing[n], number[n]; //cc bin dng chung
while (1)
{
choosing[i]=true;// Pi mun vo min gng
number[i]=max(number[0],,number[n-1])+1;// ngh tt j c number[j] nho nhat vao mg
choosing[i]=false; // Pi khng i chnh Pi
for (j=0;j<n;j++)
{

172

while (choosing[j]);//nu c Pj (i!=j) no mun vo min gng th Pi s ch


//neu co Pj <Pi th Pi ch
while ((number[j]!=0) && (number[j],j)<(number[i],i));
}
critical_section();
number[i]=0;
non_critical_section();

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

tt2: down(s): e=-1

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 );

Bt u vi gi tr X = 0, chng t rng gi tr X c th vt qu 20. Cn sa cha on chng


trnh trn nh th no bo m X khng vt qu 20 ?
HD:
Gi s khi X=19
tt1: tng X ln 20, ngng
tt2: tng X ln 21, vt qu 20.
Cch sa cha: Dng mt semaphore s, e(s)=1
do
{

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);

down(s1); B1(); up(s2);


down(s1); B2(); up(s2);

T.

9. Tng qut ho bai 6: cho cc tin trnh x l on chng trnh sau:


process P1 { for ( i = 1; i <= 100; i ++) Ai ;}

TI

process P2 { for ( j = 1; j <= 100; j ++) Bj ;}

.P

ng b ho hot ng ca hai tin trnh ny sao cho c vi k bt k ( 2 <= k <= 100), Ak ch c


th bt u khi B(k-1) kt thc, v Bk ch c th bt u khi A(k-1) kt thc.
HD:

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);}

P7:{down(s7);down(s7); ans = y + z;}

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

Vit li bi 10 dng monitor

F1(); F2(); F3(); F4(); F5(); F6(); F7();


void init(){v1=w1=y1=z1=y2=z2=0;}
cal::F1()
{

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

Cc chng trnh ng hnh:

P1:{cal.F1();} P2:{cal.F2();} P3:{cal.F3();} P4:{cal.F4();}

P5:{cal.F5();}P6:{cal.F6();} P7:{cal.F7();}
10. Xt hai tin trnh sau:

PE

process A

{ while (1) na = na +1;}


process B

{ while (1) nb = nb +1;}


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
b)Nu gim iu kin ch l na <= nb +10, gii php ca bn s c sa cha nh th no ?
c)Gii php ca bn c cn ng nu c nhiu tin trnh loi A v B cng thc hin?
HD:
a) nb < na <= nb +10
semaphore s1=1,s2=1;
int na,nb;//bien dung chung na,nb c gn tri ban dau thoa dieu kien nb < na <= nb +10

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

if (na < nb +10) na = na +1;


up(s1);

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).

Hai tin trnh cn tho cc iu kin sau :

- K1: Tin trnh sn xut khng c ghi d liu vo b m y.

- K2: Tin trnh tiu th khng c c d liu t b m ang trng.

ED

- K3: Hai tin trnh cng loi hoc khc loi u khng c truy xut b m cng lc.

PE

.P

TI

T.

+ Cch 1: dng sleep and wakeup

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;

// kim sot truy xut c quyn buffer (cc tt ch khi mutex=-1)

semaphore empty = BufferSize; // s ch trng (tt sx ch khi empty<0)


semaphore full = 0;

// s ch c d liu (tt tt ch khi full<0)

Producer() //nh sn xut


{

int item;
{
produce_item(item); // to d liu mi

U
.V

while (TRUE)

down(empty); // gim s ch trng, y thi ch (empty<0 th ch)


down(mutex); // c quyn truy xut buffer (min gng )
enter_item(item); // t d liu vo b m

ED

up(mutex); // ra khi min gng

up(full); // tng s ch y, danh thuc ntt


}
Consumer() //ngi tiu th
int item;
{

.P

while (TRUE)

TI

T.

down(full); // gim s ch y, neu bo dem trong thi cho (full<0 thi ch)

down(mutex); // c quyn vo min gng

remove_item(item); // ly d liu t b m
up(mutex); // ra khi min gng

PE

up(empty); // tng s ch trng, danh thuc nsx


consume_item(item); // x l d liu

Nhn xt: p dng cho nhiu producer v nhiu consumer v tho c 3 k.


Cch 3: dng Monitor
monitor ProducerConsumer //xy dng monitor
{
int count=0; //m s ch c d liu
condition full, empty; //nsx ch trn full, ntt ch trn empty

179

void enter() //nsx dng phng thc ny t dl vo buffer


{
if (count == N) wait(full);

// nu b m y, nxs phi ch (k1)

enter_item(item);

// t d liu vo b m

count ++;

// tng s ch y

if (count ==1) signal(empty); // nu b m c dl th nh thc ntt neu co


void remove() //ntt s dng phng thc ny ly dl t buffer
{

// nu b m trng, ntt phi ch (k2)

remove_item(&item);

// ly d liu t b m

count --;

// gim s ch c dl

U
.V

if (count == 0) wait(empty)

if (count == N-1) signal(full); // nu b m khng y th kch hot nsx neu co


}
Producer()

//Tin trnh sn xut

T.

while (TRUE) {

ED

produce_item(item); //sx dl

ProducerConsumer.enter(); //dat dl vao buffer

TI

}
}

.P

Consumer() //tin trnh tiu th


{

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

12. Bi ton Readers-Writers


Khi cho php nhiu tin trnh truy xut c s d liu dng chung cc h qun tr CSDL cn m
bo cc iu kin sau :
-

k1: khi c reader th khng c writer nhng c th c cc reader khc tx dl

k2: Khi c writer th khng c writer hoc reader no khc tx dl.

180

(Cc iu kin ny cn c m bo tnh nht qun ca d liu.)


Cch 1: dng Semaphore
S dng bin chung rc (reader count) ghi nh s tin trnh Reader v s dng hai semaphore:
- mutex: kim sot s truy xut c quyn rc
- db: kim tra s truy xut c quyn n d liu.
// S tin trnh Reader

int rc=0;
semaphore db = 1;

// Kim tra truy xut d liu

Reader()
{
while (TRUE)
{
rc = rc + 1;

ED

down(mutex); // ginh quyn truy xut rc

U
.V

semaphore mutex = 1; // Kim tra truy xut rc

// thm mt tin trnh Reader

T.

// nu l Reader u tin th cm Writer tx d liu hoc ch nu c writer ang cp nht dl


if (rc == 1) down(db);
up(mutex);

// chm dt truy xut rc

TI

read_database(); // c d liu

down(mutex); // ginh quyn truy xut rc


// bt mt tin trnh Reader

.P

rc = rc - 1;

if (rc == 0) up(db); // nu l Reader cui cng th cho Writer truy xut dl


up(mutex); // chm dt truy xut rc

use_data_read(); // su dung du lieu

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

up(db); // chm dt truy xut db


}

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

int busy = 0; //=1 la co writer dang ghi


condition OKWrite, OKRead;

T.

void BeginRead() //truoc khi doc, reader goi phng thc nay de kiem tra dk duoc c
{

if (busy) wait(OKRead); // nu c 1 writer ang ghi th reader ch trn OKRead


// thm mt Reader

TI

rc++;
}

//nh thc mt reader ch trn OKRead

.P

signal(OKRead);
void FinishRead()

rc--; // bt mt Reader

PE

if (rc == 0) signal(OKWrite);//nu l Reader cui cng th cho Writer truy xut db

void BeginWrite()
{

if (busy || rc) // nu c 1 writer ang ghi, hay c Reader ang c

wait(OKWrite); //th cho writer ch trn OKWrite


busy = 1;

//khong cho cac reader va writer khac truy xuat db

}
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

signal(OKWrite); //nguoc lai thi cho mt writer ghi

}
}
Reader()
{
while (TRUE)
{
//doc dl

ReaderWriter.FinishRead(); //da doc xong


}
}
Writer()
{

ED

while (TRUE)

U
.V

Read_Database();

ReaderWriter.BeginRead(); //bat dau doc

{
Create_data(info);

//tao dl

T.

ReaderWriter.BeginWrite(); //bat dau ghi


Write_database(info); //ghi

ReaderWriter.FinishWrite();//da ghi xong

TI

Ghi ch:

.P

OKRead.Queue l hng i ca bin iu kin OKRead.

Thut ton vn ng khi Writer thc thi trc Reader.


Cu hi: trong BeginRead () b lnh signal(OKRead) c khng?

PE

13. Bi ton To phn t H2O

ng b hot ng ca mt phng th nghim s dng nhiu tin trnh ng hnh sau to cc


phn t H2O:
MakeH()
{

while (true)
Make-Hydro(); // to 1 nguyn t H
}
MakeO()
{
while (true)

183

Make-Oxy(); //to 1 nguyn t O


}
/* Tin trnh MakeWater hot ng ng hnh vi cc tin trnh MakeH, MakeO, ch c 2 H
v 1 O to H2O */
MakeWater()
{
while (True)

Make-Water(); //To 1 phn t H2O

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)

down(s1); down(s1); down(s2);

Make-Water(); //To 1 phn t H2O


}

}
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

s[N];//gan tri ban dau =0

//tin trnh m phng trit gia th i

void philosopher( int i) // i l trit gia th i : 0..N-1


while (TRUE)
{
think(); // Suy ngh
take_forks(i); // yu cu n khi c 2 na
eat(); // yum-yum, spaghetti

ED

put_forks(i); // t c 2 na ln bn li

U
.V

}
}

T.

//kim tra iu kin c n


void test ( int i) // i l trit gia th i : 0..N-1
{

TI

if(state[i]==HUNGRY && state[LEFT]!=EATING && state[RIGHT]!= EATING)


{

.P

state[i] = EATING;
up(s[i]);

//yu cu ly 2 na

PE

void take_forks ( int i) // i l trit gia th i : 0..N-1


{

while (TRUE)

down(mutex); // vo min gng


state[i] = HUNGRY; // ghi nhn trit gia i i
test(i); // c gng ly 2 na
up(mutex); // ra khi min gng
down(s[i]); // ch nu khng c 2 na
}

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

test(RIGHT); // kim tra ngi bn phi c th n?

state[i] = THINKING; // ghi nhn trit gia i n xong

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.

15. Mt ca hiu ct tc c mt th, mt gh ct tc v N gh cho khch i. Nu khng c


khch, th ct tc s ngi vo gh ct tc v ng thip i. Khi mt khch hng vo tim, anh ta
phi nh thc ngi th. Nu mt khch hng vo tim khi ngi th ang bn ct tc cho khch
hng khc, ngi mi vo s ngi ch nu c gh i trng, hoc ri khi tim nu c N ngi
i (ht gh). Xy dng mt gii php vi semaphore thc hin ng b ho hot ng ca th
v khch hng trong ca hiu ct tc ny.

.P

HD:

Semaphore mutex = 1;

Semaphore customers = 0;

Semaphore haircut = 0;
int waiting = 0

PE

void customer() //khch n ct tc


{

down( mutex );
if( waiting == N )

//nu s khch i = N th ri khi tim

{
up( mutex ); return ;
}
waiting ++; //tng s khch i
up( mutex );
up(customers);

//nh thc barber nu ang ng

down(haircut); //ang ct nhng cha xong (ch trn gh ct tc)

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 );

waiting --; //gim 1 khch i


up(mutex);
up(haircut);

U
.V

cut_hair();

//cho khch ct tc xong ri khi tim

}
}

ED

16. Bi ton Cy cu c

Ngi ta ch c cho php ti a 3 xe lu thng ng thi qua mt cy cu rt c. Hy xy dng


th tc ArriveBridge(int direction) v ExitBridge() kim sot giao thng trn cu sao cho :

T.

- Ti mi thi im, ch cho php ti a 3 xe lu thng trn cu.

- Ti mi thi im, ch cho php ti a 2 xe lu thng cng hng trn cu.

TI

Mi chic xe khi n u cu s gi ArriveBridge(direction) kim tra iu kin ln cu, v khi


qua cu c s gi ExitBridge() bo hiu kt thc. Gi s hot ng ca mi chic xe c
m t bng mt tin trnh Car() sau y:

.P

Car(int direction) /* direction xc nh hng di chuyn ca mi chic xe.*/

ArriveBridge(direction); //ti cu

OnBridge(); //ln cu

PE

ExitBridge();// Qua cu

HD:

semaphore ncar=3, ncar1=2, ncar2=2;

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

Cn xy dng 2 th tc HackerArrives() v EmployeeArrives() c gi tng ng bi 1 hacker


hoc 1 nhn vin khi h n b sng kim tra iu kin c cho php h xung thuyn khng ?
Cc th tc ny s sp xp nhng ngi thch hp c th ln thuyn. Nhng ngi c ln
thuyn khi thuyn cha y s phi ch n khi ngi th 4 xung thuyn mi c th khi hnh
qua sng. (Khng quan tm n s lng thuyn hay vic thuyn qua sng ri tr liXem nh
lun c thuyn sp xp theo cc yu cu hp l)
Gi s hot ng ca mi hacker c m t bng mt tin trnh Hacker() sau y:

TI

Hacker()
{

.P

RuntoRiver(); // i n b sng

HackerArrives (); // Kim tra iu kin xung thuyn


}

CrossRiver(); // Khi hnh qua sng


v hot ng ca mi nhn vin c m t bng mt tin trnh Employee() sau y:

PE

Employee()
{

RuntoRiver(); // i n b sng

EmployeeArrives (); // Kim tra iu kin xung thuyn


CrossRiver(); // Khi hnh qua 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()
{

down(e); //cho Employee cho tren bo neu da co 2 Employee tren thuyen

T.

down(mutex);
n++; //cho Employee xuong thuyen
if (n<4)
up(mutex);

TI

{
}

.P

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);

up(s);up(s);up(s);

PE

up(e);// danh thuc cac Employee cho tren bo cho xuong thuyen

18. Bi ton iu phi hnh khch xe bus ti mt trm dng


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.

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

GetPassenger() //chng trnh iu phi khch cho 1 xe


{
ArriveTerminal(); // tip nhn mt xe vo bn
OpenDoor(); // m ca xe
for (int i=0; i<4; i++) // tip nhn cc khch ngi xe ln
{
}
{

U
.V

for (int i=0; i<6; i++) // tip nhn cc khch bnh thng

ArrangeSeat(); // a 1 khch ngi xe ln vo ch

ArrangeSeat(); // a 1 khch bnh thng vo ch


}
CloseDoor(); // ng ca xe
}

ED

DepartTerminal(); // cho mt xe ri bn
WheelPassenger() //chng trnh to khch ngi xe ln
{
GetOnBus(); // ln xe
}

T.

ArriveTerminal(); // n bn

TI

NonWheelPassenger() // chng trnh to khch bnh thng


{

.P

ArriveTerminal(); // n bn
GetOnBus(); // ln xe
HD:

semaphore bus=1,wheel=0, nonwheel=0;

PE

GetPassenger()
{

down(bus);

ArriveTerminal(); // tip nhn mt xe vo bn


OpenDoor(); // m ca xe
for (int i=0; i<4; i++) // tip nhn cc hnh khch ngi xe ln
{
down(wheel);
ArrangeSeat(); // a 1 khch xe ln vo ch
}
for (int i=0; i<6; i++) // tip nhn cc hnh khch bnh thng

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);

NX: khch bnh thng nu ti trc vn khng c ln xe, phi ch khch xe ln

PE

21. Nh my sn xut thit b xe hi, c 2 b phn hot ng song song


- B phn sn xut 1 khung xe :
MakeChassis()

Produce_chassis();// to khung xe

- B phn sn xut 1 bnh xe :


Make_Tires()
{
// to bnh xe v gn vo khung xe
Produce_tire();

191

Put_tire_to_Chassis();
}
Hy ng b hot ng trong vic sn xut xe hi theo nguyn tc sau :
-

Sn xut mt khung xe, trc khi to bnh xe.

Cn c 4 bnh xe cho 1 khung xe c sn xut ra, sau mi tip tc sn xut khung


xe khc
HD:

U
.V

semaphore chassis=0,tire=0;
MakeChassis()
{
while(1)
{

ED

// to khung xe

Produce_chassis(); up(chassis);

down(tire); down(tire); down(tire); down(tire);

T.

}
}
{
while(1)

.P

TI

MakeTires()

down(chassis);

for (i=0;i<4;i++)

PE

Produce_tire();
Put_tire_to_Chassis(); up(tire);

19. Thut ton cc trit gia n ti sau ng hay sai?

semaphore s[5]; //c cc gi ban tr u bng 1


pi
{
down(s[i]);

//ly a

down(s[(i+1)%5]);

//ly a ca ngi bn cnh

eat();

192

up(s[i]);

//b a

up(s[(i+1)%5]);

//tr a cho ngi bn cnh

}
HD:

nu tt c Pi u thc hin c mt lnh u tin down(s[i]), v sau cc Pi u thc hin lnh


th 2, khi tt c s[i]<0 nn cc Pi s ch nhau v hn!

Max

Allocation

U
.V

20. Xt trng thi h thng:

Available

R2

R3

R1

R2

R3

R1

R2

R3

P1

P2

P3

P4

TI

T.

ED

R1

.P

Nu tin trnh P2 yu cu 4 cho R1, 1 cho R3. hy cho bit yu cu ny c th p ng m bo


m khng xy ra tnh trng deadlock hay khng ?

21. Xt trng thi h thng sau:

Allocation

PE

Max

Available

P2

P3

P4

P5

P1

193

a) Cho bit ni dung ca bng Need.


b) H thng c trng thi an ton khng?
c) Nu tin trnh P2 c yu cu ti nguyn ( 0,4,2,0), yu cu ny c c p ng tc thi
khng?

CHNG 4: QUN L B NH

U
.V

1. Gi s c mt h thng s dng k thut phn trang theo yu cu. Bng trang c lu tr


trong cc thanh ghi. x l mt li trang tn 8 miliseconds nu c sn mt khung trang trng,
hoc trang b thay th khng b sa i ni dung, v tn 20 miliseconds nu trang b thay th b
sa i ni dung. Mi truy xut b nh tn 100 nanoseconds. Gi s trang b thay th c xc sut
b sa i l 70%. T l pht sinh li trang phi l bao nhiu c th duy tr thi gian truy xut
b nh ( effective acess time) khng vt qu 200 nanoseconds?
HD:

ED

ma=100 nanoseconds

EAT = (1-p)ma + p (page fault time) = (1-p)100+p(20*0.7+0.3*8)*1000000 <=200


=>p<= a

int A [100][100] ;
for (i=0; i<100; i++)

TI

for (j=0; j<100; j++) A[i][j]= 0;

T.

2. Xt chng trnh C sau :

.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] ;

for (j=0; j<100; j++)

PE

for (i=0; i<100; i++) A[i][j]= 0;


HD:

a) mi dng mt trang nn c 100 li

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

Thi im truy cp cui cng

126

279

230

260

120

160

TI

272

.P

T.

Trang

280

Trang no s c chn thay th theo :


a) thut ton NRU

PE

b) thut ton FIFO


c) thut ton LRU

d) thut ton " c hi th 2"

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.

a) a ch logic gm bao nhiu bit ?


b) a ch physic gm bao nhiu bit ?

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

7. Xt mt h thng s dng k thut phn trang, vi bng trang c lu tr trong b nh chnh.

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

b) 200*0.25+200= 250 nanoseconds

.P

8. Xt bng phn on sau:


Segment Base Length

2300 14

90

100

PE

Cho bit a ch vt l tng ng vi cc a ch o sau y :


a. (1,10)

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

c o = (p1,p2,d) =32 bit


p1=9, p2=11 => d=12 bit => kt 1 trang= 212 bytes = 4 KB
S trang trong kg c o = 29 x 211 = 220 trang
10. Mt my tnh c 48-bit a ch o, v 32-bit a ch vt l, kch thc mt trang l 8K. C bao
nhiu phn t trong mt bng trang thng thng v trong bng trang nghch o?
HD:

a) Bng trang thng thng


kt trang = 8 K = 213 bytes => d=13 bit => p=35 bit

U
.V

=> mt bng trang thng thng c 235 phn t


b) Bng trang nghch o
1 khung trang = 8K =213 bytes
ktbnvl = 232 bytes

=>

s khung trang ca bnvl= 232/213 = 219 khung

ED

=> s phn t trong bng trang nghch o l 219

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

p1=p2=2 bit=> d=3 bit => kt trang=8 bytes

PE

a) v bng trang : goi fi l s hiu khung trang cha trang pi

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)

Tin trnh s dng cc a ch o trong cc


phm vi sau:
(0,0,0)..(0,1,7); (0,2,5)..(0,3,5);
(2,3,6)..(3,1,2); (3,2,3)..(3,3,7)

b) cp 9 khung + 4 =13 khung

197

c) tnh phn mnh ni vi:


khung trang cp cho trang 0 v trang 1 c s dng ht
khung trang cp cho trang 2 d 21-16 byte=5 byte u
tng t tnh phn mnh cho cc trang cn li
kch thc bng trang cho tin trnh ny

d) dng 1 bng trang cp 1, 3 bng trang cp 2 => kch thc bng trang = 4 khung trang = 32
bytes

U
.V

12. Gi s c mt my tnh s dng 16-bit a ch. B nh o c thc hin vi k thut phn


on kt hp phn trang, kch thc ti a ca mt phn on l 4096 bytes. B nh vt l c
phn thnh cc khung trang c kch thc 512 bytes.
a) Th hin cch a ch o c phn tch phn nh segment, page, offset

b) Xt mt tin trnh s dng cc min a ch sau, xc nh s hiu segment v s hiu page


tng ng trong segment m chng trnh truy cp n :

ED

350..1039, 3046..3904, 7100..9450, 33056..39200, 61230..63500

c) Bao nhiu bytes ng vi cc vng phn mnh ni vi trong tin trnh ny?

HD:

T.

d) Cn bao nhiu b nh cho bng phn on v bng trang ca tin trnh ny ?

a) c o= (s,d)=(s,p,d)=16 bit, vi d=p+d

TI

kt khung trang=512 => d=9 bit

kch thc ti a ca 1 phn on l 4096 bytes => mt phn on c chia ti a thnh


4096/512 = 8 trang =>p=3 bit =>d=12 bit => s=4 bit => dc o=(s,p,d)=(4,3,9)

1039

(0,0,350)

0000.010.000001111

(0,2,15)

0000.101.111100110

(0,5,486)

PE

3046

0000.000.101011110

350

.P

b) Tin trnh s dng cc min a ch o sau:

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

c) tnh phn mnh ni vi:


s=0,p=0 d: 350 byte u
s=0, p=2 d: 512-15=497 byte cui
vv

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)

TI LIU THAM KHO

[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

[5]. H. M. Deitel. Operating Systems. Addison-Wesley Inc. Second Edition, 1999.

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

1.2 Lch s pht trin ca h iu hnh

1.3 Cc loi h iu hnh

1.4 Cc dch v ca h iu hnh

1.5 Cu trc ca h iu hnh

11

1.1 H iu hnh l g, cc khi nim ca h iu hnh.

14

U
.V

1.6 Nguyn l thit k h iu hnh

CHNG 2: QUN L NHP/XUT V QUN L H THNG TP TIN


2.1. Qun l nhp/xut
2.1.1 Phn loi v c tnh ca thit b nhp/xut
2.1.2 B iu khin thit b nhp/xut

16
16
17
18

2.1.4 C ch nhp/xut v c ch DMA

20

ED

2.1.3 Cc chng trnh thc hin nhp/xut v t chc h thng nhp/xut

20

2.1.6 H s an xen v ram disk

22

2.2 Qun l h thng tp tin

T.

2.1.5 Cc thut ton lp lch di chuyn u c

23
23

2.2.2 Cc phng php ci t h thng tp tin.

28

2.2.3 Phng php qun l danh sch cc khi trng

32

2.2.4 Phng php qun l s an ton ca h thng tp tin

33

2.2.5 Gii thiu mt s h thng tp tin: MSDOS/Windows, UNIX.

34

.P

TI

2.2.1 Cc khi nim v a cng, tp tin, th mc, bng th mc

CHNG 3: QUN L TIN TRNH


44

3.2 iu phi cc tin trnh

53

3.3 Lin lc gia cc tin trnh

61

3.4 ng b cc tin trnh

66

3.5 Tnh trng tc nghn (deadlock)

80

PE

3.1 Cc khi nim v tin trnh

CHNG 4: QUN L B NH

4.1 Cc vn pht sinh khi qun l b nh.

99

4.2 Cc m hnh cp pht b nh.

101

4.3 B nh o

116

200

CHNG 5: QUN L PROCESSOR


5.1 Processor Vt l v Processor logic

130

5.2 Ngt v x l ngt

131

5.3 X l ngt trong IBM-PC

136

CHNG 6: H IU HNH NHIU B VI X L


140

6.1 Cu hnh nhiu processor


6.3 ng b trong h thng a x l
6.4 iu phi trong h thng a x l

149

152

PE

.P

TI

T.

ED

- HT -

146

U
.V

6.2 Cc loi h iu hnh h tr nhiu b vi x l

201

You might also like