You are on page 1of 22

CHNG 1: TNG QUAN V H IU HNH CHNG 2: CC M HNH X L NG HNH

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

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

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

CHNG 3: QUN L TIN TRNH


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

Cu hi cng c bi hc
Cc cu hi cn tr li c sau bi hc ny : 1. Thng tin lu tr trong PCB v TCB ?

2. T chc iu phi tin trnh ? 3. Phn tch u, khuyt ca cc chin lc iu phi

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

P1 P2 P3 P4 P5

10 1 2 1 5

3 1 3 4 2

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

S dng nguyn tc iu phi c quyn v cc thng tin c c ti thi im ra quyt nh tr li cc cu hi sau y : a)Cho bit thi gian lu li trung bnh trong h thng (turnaround time) ca cc tin trnh trong thut ton iu phi FIFO. b)Cho bit thi gian lu li trung bnh trong h thng (turnaround time) ca cc tin trnh trong thut ton iu phi SJF. c)Thut ton SJF d nh ci tin s thc hin ca h thng , nhng lu chng ta phi chn iu phi P1 ti thi im 0 v khng bit rng s c hai tin trnh ngn hn vo h thng sau . Th tnh thi gian lu li trung bnh trong thng nu CPU nhn ri trong 1 n v thi

gian u tin v sau s dng SJF iu phi. Lu P 1 v P2 s phi ch trong sut thi gian nhn ri ny, do vy thi gian ch ca chng tng ln. Thut ton iu phi ny c bit n nh iu phi da trn thng tin v tng lai. Bi 3. Phn bit s khc nhau trong cch tip cn u tin cho tin trnh ngn trong cc thut ton iu phi sau : a) FIFO. b)RR c)iu phi vi u tin a cp Bi 4. Cho bit hai u im chnh ca m hnh a tiu trnh so vi a tin trnh. M t mt ng dng thch hp v m hnh a tiu trnh v mt ng dng khc khng thch hp. Bi 5. M t cc x l h iu hnh phi thc hin khi chuyn i ng cnh gia : a)cc tin trnh b)cc tiu trnh Bi 6. Xc nh thi lng quantum q l mt nhim v kh khn. Gi s chi ph trung bnh cho mt ln chuyn i ng cnh l s, v thi gian trung bnh mt tin trnh hng nhp xut s dng CPU trc khi pht sinh mt yu cu nhp xut l t ( t>>s). Tho lun cc tc ng n s thc hin ca h thng khi chn q theo cc quy tc sau : a)q bt nh b)q ln hn 0 1 t c)q = s d)s < q < t e)q = t f)q > t Bi 7. Gi s mt h iu hnh p dng gii thut iu phi multilevel feedback vi 5 mc u tin (gim dn). Thi lng quantum dnh cho hng i cp 1 l 0,5s. Mi hng i cp thp hn s c thi lng quantum di gp i hng i ng vi mc u tin cao hn n. Mt tin trnh khi vo h thng s c a vo hng i mc cao nht, v chuyn dn xung cc hng i bn di sau mi lt s dng CPU. Mt tin trnh ch c th b thu hi CPU khi s dng ht thi lng quantum dnh cho n. H thng c th thc hin cc tc v x l theo l hoc tng tc, v mi tc v li c th hng x l hay hng nhp xut. a)Gii thch ti sao h thng ny hot ng khng hiu qu ? b)Cn phi thay i (ti thiu) nh th no h thng iu phi cc tc v vi nhng bn cht khc bit nh th tt hn ?

CHNG 4

LIN LC GIA CC TIN TRNH & VN NG B HO


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

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

Bi tp
Phn tch cc bi ton sau y v xc nh nhng yu cu ng b ho, min gng : Bi 1.Bi ton To phn t H2O ng b hot ng ca mt phng th nghim s dng nhiu tin trnh ng hnh sau to cc phn t H2O: MakeH() // Mi tin trnh MakeH to 1 nguyn t H { Make-Hydro(); } MakeO() // Mi tin trnh MakeO to 1 nguyn t O { Make-Oxy(); } MakeWater() /* Tin trnh MakeWater hot ng ng hnh vi cc tin trnh MakeH, MakeO, ch c 2 H v 1 O to H2O */ { while (T) Make-Water(); //To 1 phn t H2O

} Bi 2.Bi ton Cy cu c trnh sp , ngi ta ch c cho php ti a 3 xe lu thng ng thi qua mt cy cu rt c. Hy xy dng th tc ArriveBridge(int direction) v ExitBridge() kim sot giao thng trn cu sao cho : Ti mi thi im, ch cho php ti a 3 xe lu thng trn cu. Ti mi thi im, ch cho php ti a 3 xe lu thng cng hng trn cu. Mi chic xe khi n u cu s gi ArriveBridge(direction) kim tra iu kin ln cu, v khi qua cu c s gi ExitBridge() bo hiu kt thc. Gi s hot ng ca mi chic xe c m t bng mt tin trnh Car() sau y: Car(int direction) /* direction xc nh hng di chuyn ca mi chic xe.*/ { RuntoBridge(); // i v pha cu ArriveBridge(direction); PassBridge(); // Qua cu Exit Bridge(); RunfromBridge(); // qua cu } Bi 3. Bi ton Qua sng vt qua sng, cc nhn vin Microsof v cc Linux hacker cng s dng mt bn sng v phi chia s mt s thuyn c bit. Mi chic thuyn ny ch cho php ch 1 ln 4 ngi, v phi c 4 ngi mi khi hnh c. bo m an ton cho c 2 pha, cn tun th cc lut sau : a. Khng chp nhn 3 nhn vin Microsoft v 1 Linux hacker trn cng mt chic thuyn. b. Ngc li, khng chp nhn 3 Linux hacker v 1 nhn vin Microsoft trn cng mt chic thuyn. c. Tt c cc trng hp kt hp khc u hp php. d. Thuyn ch khihnh khi c 4 hnh khch. Cn xy dng 2 th tc HackerArrives() v EmployeeArrives() c gi tng ng bi 1 hacker hoc 1 nhn vin khi h n b sng kim tra iu kin c cho php h xung thuyn khng ? Cc th tc ny s sp xp nhng ngi thch hp c th ln thuyn. Nhng ngi c ln thuyn khi thuyn cha y s phi ch n khi ngi th 4 xung thuyn mi c th khi hnh qua sng. (Khng quan tm n s lng thuyn hay vic thuyn qua sng ri tr liXem nh lun c thuyn sp xp theo cc yu cu hp l) Gi s hot ng ca mi hacker c m t bng mt tin trnh Hacker() sau y: Hacker() { RuntoRiver(); // i n b sng HackerArrives (); // Kim tra iu kin xung thuyn CrossRiver(); // Khi hnh qua sng

} v hot ng ca mi nhn vin c m t bng mt tin trnh Employee() sau y: Employee() { RuntoRiver(); // i n b sng EmployeeArrives (); // Kim tra iu kin xung thuyn CrossRiver(); // Khi hnh qua sng }

CHNG 5 : CC GII PHP NG B HO


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

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


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

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

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


repeat flag[i] := true; while flag[j] do if turn = j then begin

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

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

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

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

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

var temp : boolean; begin temp := a; a:= b; b:= temp; end;

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

a) ng b ho x l ca hai tin trnh trn, s dng hai semaphore tng qut, sao cho ti bt k thi im no cng c nb < na <= nb +10 b) Nu gim iu kin ch l na <= nb +10, gii php ca bn s c sa cha nh th no ? c) Gii php ca bn c cn ng nu c nhiu tin trnh loi A v B cng thc hin? Bi 8.Mt bin X c chia s bi hai tin trnh cng thc hin on code sau :
do X = X +1; if ( X == 20) X = 0; while ( TRUE );

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

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

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

z := v y := w z := w ans :=

* * * y

x6 y z + z

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

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

{ thinhk(); // Suy ngh take_forks(i); // yu cu n khi c 2 na eat(); // yum-yum, spaghetti put_forks(i); // t c 2 na ln bn li } } void take_forks ( int i) // i : xc nh trit gia no (0..N-1) { while (TRUE) { down(mutex); // vo min gng state[i] = HUNGRY; // ghi nhn trit gia i i test(i); // c gng ly 2 na up(mutex); // ra khi min gng down(s[i]); // ch nu khng c 2 na } } } void put_forks ( int i) // i : xc nh trit gia no (0..N-1) { while (TRUE) { down(mutex); // vo min gng state[i] = THINKING; // ghi nhn trit gia i n xong test(LEFT); // kim tra ngi bn tri c th n? test(RIGHT); // kim tra ngi bn phi c th n? up(mutex); // ra khi min gng } } void test ( int i) // i : xc nh trit gia no (0..N-1) { if(state[i]==HUNGRY && state[LEFT]!=EATING && state[RIGHT]!= EATING { state[i] = EATING; up(s[i]); }

} a)Ti sao phi t state[i] = HUNGRY trong take_forks ? b)Gi s trong put_forks, lnh gn state[i] = THINKING c thc hin sau hai lnh test(LEFT), test(RIGHT). iu ny nh hng th no n gii php cho 3 trit gia? Cho 100 trit gia? Bi 15.Xy dng gii php monitor cho bi ton Dining Philosophers. Bi 16.Baber problem : Mt ca hiu ct tc c mt th, mt gh ct tc v N gh cho khch i. Nu khng c khch hng, anh th ct tc s ngi vo gh ct tc v ng thip i. Khi mt khch hng vo tim, anh ta phi nh thc ngi th. Nu mt khch hng vo tim khi ngi th ang bn ct tc cho kh1ch hng khc, ngi mi vo s phi ngi ch nu c gh i trng, hoc ri khi tim nu c N ngi i. Xy dng mt gii php vi semaphore thc hin ng b ho hot ng ca th v khch hng trong ca hiu ct tc ny.

/* Semaphore to protect critical sections */ Semaphore mutex = 1; /* Semaphore for the number of waiting customers. * This lets the barber go to sleep when there are no customers */ Semaphore customers = 0; /* Number of waiting customers in the barber shop */ /* Just used to turn away customers when there are too many already. */ int waiting_customers = 0 /* Semaphore on which to wait for a haircut */ Semaphore haircut = 0; /* Customer calls this function to try to get their hair cut * it returns true if the hair gets cut. */ int customer() { /* protect access to shared variables with semaphore mutex */ wait( mutex ); /* Make sure there is an empty chair */ if( waiting_customers >= 5 ){ signal( mutex ); return 0; } /* there is now a new waiting customer */ waiting_customers += 1; signal( mutex ); /* Wake the barber if the shop was empty */ signal( customers ); /* Wait for a haircut from the barber */ wait( haircut ); return 1; } /* Barber loops within this function */ void barber() { while( 1 ){ /* Go to sleep if there are no customers */ wait( customers ); // protect access to shared variables with semaphore mutex wait( mutex ); /* take customer out of a chair */ waiting_customers -= 1; signal( mutex ); /* cut hair of the current customer */ cut_hair();

/* Let the customer go. */ signal( haircut ); } }

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

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 ?

Bi 19.Xt trng thi h thng :


Max A P1 P2 P3 P4 P5 B 0 1 2 0 0 C 0 7 3 6 6 D 1 5 5 5 5 Allocation A 2 0 6 2 6 B 0 1 1 0 0 C 0 0 3 6 0 D 1 0 5 3 1 Available A 2 0 4 2 4 B C D

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 6 : QUN L B NH
V. Tm tt
C nhiu cch tip cn khc nhau t chc qun l b nh, nhng tu chung mong t n cc mc tiu sau :

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

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


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

Bi Tp
Bi 1. Gii thch s khc bit gia a ch logic v a ch physic? Bi 2. Gii thch s khc bit gia hin tng phn mnh ni vi v ngoi vi? Bi 3. Gi s b nh chnh c phn thnh cc phn vng c kch thc l 600K, 500K, 200K, 300K ( theo th t ), cho bit cc tin trnh c kch thc 212K, 417K, 112K v 426K ( theo th t ) s c cp pht b nh nh th no, nu s dng : a) Thut ton First fit b) Thut ton Best fit c) Thut ton Worst fit Thut ton no cho php s dng b nh hiu qa nht trong trng hp trn ? Bi 4. Xt mt h thng trong mt chng trnh khi c np vo b nh s phn bit hon ton phn on code v phn on data. Gi s CPU s xc nh c khi no cn truy xut lnh hay d liu , v phi truy xut u. Khi mi chng trnh s c cung cp 2 b thanh ghi base-limit : mt cho phn on code, v mt cho phn on data. B thanh ghi baselimit ca phn on code t ng c t thuc tnh readonly. Tho lun cc u v khuyt im ca h thng ny. Bi 5. Ti sao kch thc trang lun l ly tha ca 2 ? Bi 6. Xt mt khng gian a ch c 8 trang, mi trang c kch thc 1K. nh x vo b nh vt l c 32 khung trang.

a) a ch logic gm bao nhiu bit ? b) a ch physic gm bao nhiu bit ? Bi 7. Ti sao trong h thng s dng k thut phn trang, mt tin trnh khng th truy xut n vng nh khng c cp cho n ? Lm cch no h iu hnh c th cho php s truy xut ny xy ra ? H iu hnh c nn cho php iu khng ? Ti sao ? Bi 8. Xt mt h thng s dng k thut phn trang, vi bng trang c lu tr trong b nh chnh. a) Nu thi gian cho mt ln truy xut b nh bnh thng l 200nanoseconds, th mt bao nhiu thi gian cho mt thao tc truy xut b nh trong h thng ny ? b) Nu s dng TLBs vi hit-ratio ( t l tm thy) l 75%, thi gian tm trong TLBs xem nh bng 0, tnh thi gian truy xut b nh trong h thng ( effective memory reference time) Bi 9. Nu cho php hai phn t trong bng trang cng lu tr mt s hiu khung trang trong b nh th s c hiu qa g ? Gii thch lm cch no hiu qa ny c th c s dng gim thi gian cn khi sao chp mt khi lng ln vng nh t v tr ny sang v tr khc. Khi nu sa ni dung mt trang th s tc ng n trang cn li th no? Bi 10. V sao i lc ngi ta kt hp hai k thut phn trang v phn on ? Bi 11. M t c ch cho php mt phn on c th thuc v khng gian i ch ca hai tin trnh. Bi 12. Gii thch v sao chia s mt module trong k thut phn on li d hn trong k thut phn trang? Bi 13. Xt bng phn on sau y : Segment Base Length 0 219 600 1 2300 14 2 90 100 3 1327 580 4 1952 96 Cho bit a ch vt l tng ng vi cc a ch logique sau y :
a. b. c. d. e. 0,430 1,10 2,500 3,400 4,112

CHNG 7: B NH O
IV. Tm tt
Cc k thut h tr cc m hnh t chc b nh hin i :

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

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

Bi Tp
Bi 1. Khi no th xy ra li trang ? M t x l ca h iu hnh khi c li trang. Bi 2. Gi s c mt chui truy xut b nh c chiu di p vi n s hiu trang khc nhau xut hin trong chui. Gi s h thng s dng m khung trang ( khi ng trng). Vi mt thut ton thay th trang bt k : Cho bit s lng ti thiu cc li trang xy ra ? Cho bit s lng ti a cc li trang xy ra ? Bi 3. Mt my tnh 32-bit a ch, s dng mt bng trang nh cp. a ch o c phn b nh sau : 9 bit dnh cho bng trang cp 1, 11 bit cho bng trang cp 2, v cho offset. Cho bit kch thc mt trang trong h thng, v a ch o c bao nhiu trang ? Bi 4. Gi s a ch o 32-bit c phn tch thnh 4 trng a,b,c,d. 3 trng u tin c dng cho bng trang tam cp, trng th 4 dnh cho offset. S lng trang c ph thuc vo c kch thc 4 trng ny khng ? Nu khng, nhng trng no nh hng n s lng trang, v nhng trng no khng ? Bi 5. Mt my tnh c 48-bit a ch o, v 32-bit a ch vt l. Kch thc mt trang l 8K. C bao nhiu phn t trong mt bng trang ( thng thng)? Trong bng trang nghch o ?

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

Bi 9. Mt my tnh c 4 khung trang. Thi im np, thi im truy cp cui cng, v cc bit reference (R), modify (M) ca mi trang trong b nh c cho trong bng sau : Trang Np Truy cp cui R M 0 126 279 0 0 1 230 260 1 0 2 120 272 1 1 3 160 280 1 1 Trang no s c chn thay th theo : a) thut ton NRU; b) thut ton FIFO; c) thut ton LRU; d) thut ton " c hi th 2". Bi 10. Xt mng hai chiu A: var A: array [1 ..100, 1..100] of integer; Vi A[1][1] c lu tr ti v tr 200, trong b nh t chc theo k thut phn trang vi kch thc trang l 200. Mt tin trnh trong trang 0 (chim v tr t 0 n 199) s thao tc ma trn ny ; nh vy mi ch th s c np t trang 0. Vi 3 khung trang, c bao nhiu li trang s pht sinh khi thc hin vng lp sau y khi ng mng, s dng thut ton thay th LRU , v gi s khung trang 1 ch tin trnh, hai khung trang cn li c khi ng trng thi trng : a. for j:= 1 to 100 do for i :=1 to 100 do A[i][j]:= 0; b. for i :=1 to 100 do for j:=1 to 100 do A[i][j]:= 0; Bi 11. Xt chui truy xut b nh sau: 1, 2 , 3 , 4 , 2 , 1 , 5 , 6 , 2 , 1 , 2 , 3 , 7 , 6 , 3 , 2 , 1 , 2 , 3 , 6

C bao nhiu li trang xy ra khi s dng cc thut ton thay th sau y, gi s c 1, 2, 3, 4, 5, 6, 7 khung trang ? a) LRU b) FIFO c) Chin lc ti u Bi 12. Trong mt h thng s dng k thut phn trang theo yu cu, xt hai on chng trnh sau y:
const N = 1024*1024 var A,B : array [1..N] of integer; [Program 1] for i:=1 to N do A[i]:=i; for i:=1 to N do B[A[i]]:=random(N); [Program 2] for i:=1 to N do A[i]:= random(N); for i:=1 to N do B[A[i]]:=i;

Bi 13. Gi s c mt my tnh chi s dng 7-bit a ch. Kch thc mt trang l 8 bytes, v h thng s dng mt bng trang nh cp, dng 2-bit lm ch mc n bng trang cp 1 , 2-bit lm ch mc n bng trang cp 2. Xt mt tin trnh s dng cc a ch trong nhng phm vi sau : 0..15, 21..29, 94..106, v 115..127. a) V chi tit ton b bng trang cho tin trnh ny b) Phi cp pht cho tin trnh bao nhiu khung trang, gi s tt c u nm trong b nh chnh ? c) Bao nhiu bytes ng vi cc vng phn mnh ni vi trong tin trnh ny? d) Cn bao nhiu b nh cho bng trang ca tin trnh ny ? Bi 14. Gi s c mt my tnh s dng 16-bit a ch. B nh o c thc hin vi k thut phn on kt hp phn trang, kch thc ti a ca mt phn on l 4096 bytes. B nh vt l c phn thnh cc khung trang c kch thc 512 bytes. a) Th hin cch a ch o c phn tch phn nh segment, page, offset b) Xt mt tin trnh s dng cc min a ch sau, xc nh s hiu segment v s hiu page tng ng trong segment m chng trnh truy cp n : 350..1039, 3046..3904, 7100..9450, 33056..39200, 61230..63500 c) Bao nhiu bytes ng vi cc vng phn mnh ni vi trong tin trnh ny? d) Cn bao nhiu b nh cho bng phn on v bng trang ca tin trnh ny ?

CHNG 8: H THNG QUN L TP TIN


Cu hi kim tra kin thc

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

CHNG 10: GII THIU MT S H THNG TP TIN


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

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

Cho bit gi tr ca tng phn t trong FAT (di dng s thp phn) Bi 3 : Chp 1 tp tin kch thc l 3220 bytes ln mt a 1.44Mb cn trng nhng b hng sector logic 33. Cho bit gi tr tng byte ca Fat (thp phn) t byte 0 n byte 14 . Bi 4 : Gi s mt a mm c 2 side, mi side c 128 track, mi track c 18 sector. Th mc gc ca a c ti a l 251 tp tin (hoc th mc). Mt cluster = 2 sector. a s dng Fat 12. Hi mun truy xut cluster 10 th phi c nhng sector no ? Bi 5 : Hin trng ca FAT12 v RDET (mi entry ch gm tn tp tin v cluster u tin)ca mt a nh sau : 240 255 255 247 79 0 6 0 0 255 159 0 10 240 255 255 127 255

VD TXT 3

LT DOC 7

THO DAT 8

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

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

CHNG 11: H THNG QUN L NHP/XUT


IV. TM TT
I/O l mt phn quan trng v khng th thiu c ca h iu hnh, nhng thng khng c quan tm ng mc. Trong bi ny, chng ta kho st phn cng I/O, mi lin h gia thit b I/O vi b kim sot thit b. Sau chng ta kho st bn cp ca phn mm I/O: th tc ngt, iu khin thit b, phn mm c lp thit b v nhng th vin I/O trong mi trng ngi dng. iu khin thit b qun l tt c nhng m t chi tit ca mt hoc nhiu thit b. Phn mm c lp thit b xy dng cc vng m v nh v, y l nhng vic chung cho nhiu thit b.

Cu hi kim tra kin thc


1. T chc ca h thng qun l I/O nh th no ? 2. C bao nhiu loi thit b I/O ? Vi mi loi cho v d c th. 3. Vai tr ca b iu khin thit b l g ? 4. C ch hot ng DMA nh th no ? 5. C th thc hin I/O m khng s dng iu khin thit b khng? Ti sao? 6. Nu vai tr ca phn mm c lp thit b.

Cu hi trc nghim
1. H thng qun l I/O ca h iu hnh l : a. Mt c ch trn mi thit b tin hc c. Bn phm b. Mt phn ca h iu hnh d. My in 2. H thng qun l I/O ca mt h iu hnh bao gm : a. Phn cng I/O v phn mm I/O c. Kim sot ngt b. DMA d. a, b, c u sai. 3. DMA l vit tt ca : a. Direct Management Access c. Direct Memory Access b. Direct Memory Application d. Direct Mainboard Access 4. Phn mm c lp thit b : a. Do Microsoft vit ra c. L mt phn ca h thng qun l I/O b. L mt phn ca trnh bin dch d. a, b, c u sai.

CHNG 12: GII THIU MT S H THNG I/O


Cu hi kim tra kin thc
1. So snh cc thut ton c a. 2. La chn cc thu ton c a nh th no ? 3. Nguyn nhn cc li khi truy xut a v cch khc phc ? 4. RAM disks l g ?

5. V sao c c ch Interleave ? 6. c im ca phn cng terminal. 7. Terminal nh x b nh dng lm g ? 8. Vai tr ca ng h.

Bi tp
Gi s a c 2 side, mi side c 1024 track, mi track c 32 sector. Tc xoay ca a l 6000 vng/pht. Thi gian di chuyn gia cc track l 100ms. Gi s thi gian c v chuyn d liu l khng ng k. Cho bit truy xut tt c sector logic sau phi tn bao lu : 34, 16, 120, 14, 86, 200, 79, 300, 8, 500, 170, 450, 1000, 380, 800 Bit : Sector = Seclog / SecTrk + 1 Side = (Seclog/SecTrk) / SideNo Track = (Seclog/(Sectrk *SideNo)) Vi Seclog l sector logic, SideNo l s side, Sectrk l s sector trn 1 track

CHNG 13: BO V V AN TON H THNG


VI. TM TT
Cc i tng trong h thng ( c th l phn cng nh CPU, b nh chnh ; hay phn mm nh tp tin, chng trnh) cn phi c bo v khi s s dng sai tri. iu ny c th thc hin c bng cch t cc i tng vo nhng min bo v thch hp vi cc quyn truy xut c nh ngha trn . Quyn truy xut trn mt i tng l thao tc cphp thc hin trn i tng . Min bo v l tp cc quyn truy xut trn mt s cc i tng. Mi tin trnh s hot ng trong mt min bo v ti mt thi im. Ma trn quyn truy xut l m hnh tng qut cho bi ton bo v h thng. Ma trn ny c th c ci t nh mt mng, cc danh sch quyn truy xut hoc cc danh sch tim nng. M hnh bo v ng cho php tin trnh c th chuyn i min bo v trong thi gian x l. C th t chc m hnh bo v ng nu xem cc min bo v v bn thn ma trn quyn truy xut cng l cc i tng trong h thng. An ton h thng khng ch quan tm n cc nguy c ni b h thng, m phi i ph vi c cc nguy c t mi trng ngoi. Vn quan trng nht trong an ton h thng l kim nh danh tnh ca ngi dng xc nh ng cc quyn tng ng ca h. Phng php thng dng nht lm iu ny l kim tra password. Ngoi ra h thng cn phi i ph v cc tc hi ca nhng s tn cng c t pha nhng chng trnh su b , virus, cc loi khe h trong chng trnh... Nhn chung khng th t c mc an ton h thng 100%, nhng c th p dng cc bin php hn ch ti a cc nguy c ph hoi h thng.

Cng c bi hc
Cc cu hi cn tr li c sau bi hc ny : 1. Cc khi nim : quyn truy xut, min bo v, ma trn quyn truy xut 2. Cc c ch bo v : ACL, Capalities 3. Cc chin lc an ton h thng :kim nh danh tnh.

Bi tp
Bi 1. Kh nng hn ch truy xut da trn nguyn l need-to-know c th gip chng li loi chng trnh ph hoi no ? Bi 2. Xt 4 tin trnh sau, mi tin trnh hot ng trong mt min bo v khc nhau c m t trong ma trn quyn truy xut di y. Trong min bo v no tin trnh khng th c tp tin F1 ( m khng c s gip ca cc tin trnh khc) ? FF1 Ownerer Readad* DD1 DD2 Switchch DD3 DD4 Controlol -

DD1 DD2 DD3 DD4

Bi 3. Gi s tin trnh A ang hot ng trong min bo v D , thao tc no A c php thc hin trong cc c ch bo v di y : a)S dng danh sch quyn truy xut (access list system), thm mt phn t vo danh sch quyn truy xut ca mt i tng s hu bi D b)S dng danh sch tim nng (capability list system), thm mt phn t vo danh sch tim nng ca D Bi 4. Gi s mt lp thc hnh UNIX c t chc nh sau : Tt c sinh vin trong lp thuc v mt nhm thc hnh ca lp . Gio vin hng dn thc hnh khng thuc v nhm thc hnh, nhng li s hu cc tp tin trong th mc ca nhm. Nh vy, quyn truy xut ca gio vin hng dn trn cc tp tin ny l quyn s hu, trong khi cc sinh vin nhn c quyn truy xut nh l thnh vin ca nhm. Xt chin lc bo v sau : lp c gi l CLASS; bao gm 2 sinh vin A v B. C khng phi l sinh vin thuc lp CLASS. Gio vin hng dn l GVHD. Mi sinh vin c mt tp tin ring lu bi tp gi l HW, ch c sinh vin c quyn c, ghi. GVHD c mt tp tin lu kt qa nh gi thc hnh l GRADES, ch c GVHD c quyn c, ghi. GVHD c quyn c ghi hai tp tin cng SYLLABUS , v bi tp thc hnh ASSIGNMENT ; tt c sinh vin ca lp c quyn c ASSIGNMENT. Tt c mi ngi u c quyn c SYLLABUS. a) M t chin lc bo v ny bng ma trn quyn truy xut. b) M t chin lc bo v ny bng tp cc danh sch tim nng cho mi ngi dng . c) M t chin lc bo v ny bng tp cc danh sch quyn truy xut cho mi tp tin d) M t cch thc UNIX cho php thc hin chin lc ny.

You might also like