Top Banner

of 32

Hệ điều hành

Jul 18, 2015

Download

Documents

Củ Hành
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript

TRNG I HC BCH KHOA

KHOA CNG NGH THNG TIN

B MN MNG V TRUYN THNG

N H IU HNH

ti:Xy dng chng trnh m phng cc gii thut nh thi cho CPU

Sinh vin Cn b hng dn

: L Phng Tin H Phc Vit : Ths Nguyn Vn Nguyn

07T2 07T1

Nng 2010

4

B mn Mng v Truyn Thng

MC LCTNG QUAN V TI CHNG 1. TNG QUAN V TI...............................................................5 1.1. BI CNH V L DO THC HIN TI................................................................5 1.2. MC TIU CA TI.......................................................................................5 CHNG 2. C S L THUYT........................................................................6 2.1. GII THIU.......................................................................................................6 2.1.1. Mc tiu lp lch.................................................................................6 2.1.2. Cc c im ca tin trnh.................................................................6 2.1.3. iu phi khng c quyn v iu phi c quyn.........................7 2.2. CC KHI NIM C BN.....................................................................................9 2.2.1. Khi nim gi CPU.............................................................................9 2.2.2. Cc trng thi ca tin trnh lin quan n gi CPU..........................9 2.2.3. Khi nim lp lch cho CPU.............................................................10 2.3. CC THUT TON LP LCH...........................................................................11 2.3.1. First Come First Served(FCFS)........................................................11 2.3.2. Round robin(RR)..............................................................................12 2.3.3. Shortest Job First(SJF)......................................................................14 2.3.4. Shortest Remain Time(SRT)............................................................14 CHNG 3. CI T THUT TON..............................................................16 3.1. M HNH CI T THUT TON.........................................................................16 3.1.1. Cu trc d liu.................................................................................16 3.1.2. Thut ton x l chung.....................................................................18 3.2. THUT TON..................................................................................................20 3.2.1. First In First Out(FIFO)....................................................................20 3.2.2. Round Robin(RR).............................................................................22 3.2.3. Shortest Job First(SRT).....................................................................24 3.2.4. Shortest Remain Time(SRT)............................................................26 CHNG 4. XY DNG CHNG TRNH DEMO.......................................28 4.1. CC MODUN CHNH.........................................................................................28 4.2. MI TRNG PHT TRIN.................................................................................28 4.3. GIAO DIN CA CHNG TRNH.........................................................................28 4.3.1. About................................................................................................28 4.3.2. Input..................................................................................................29 4.3.3. Output...............................................................................................31 4.3.4. Control..............................................................................................31 4.4. NH GI V NHN XT..................................................................................33

L Phng Tin H Phc Vit

Xy dng chng trnh m phng gii thut nh thi CPU

5

Chng 1.

TNG QUAN V TI

1.1. Bi cnh v l do thc hin tiH iu hnh l phn gn b trc tip vi phn cng v l mi trng cho cc chng trnh ng dng khc chy trn n. Vi chc nng qun l v phn phi ti nguyn mt cch hp l, ng thi gi lp mt my tnh m rng v to giao din tin li vi ngi s dng, h iu hnh l mt thnh phn then cht khng th thiu c trong mi mt h thng my tnh in t. Mt trong nhng chc nng quan trng ca h iu hnh l qun l CPU. Trong mi trng x l a chng, c th xy ra tnh hung nhiu tin trnh ng thi sn sng x l. Mc tiu ca cc h phn chia thi gian(time-sharing) l chuyn i CPU qua li gia cc tin trnh mt cch thng xuyn nhiu ngi s dng c th tng tc cng lc vi tng chng trnh trong qu trnh x l. thc hin c mc tiu ny, h iu hnh phi la chn tin trnh c x l tip theo. B iu phi s s dng mt gii thut iu phi thch hp thc hin nhim v ny. Mt thnh phn khc ca h iu hnh cng tim n trong cng tc iu phi l b iu phi(dispatcher). B phn phi s chu trch nhim chuyn i ng cnh v trao CPU cho tin trnh c chn bi b iu phi x l. V nhng li ch ln lao m gii thut iu phi CPU em li v tm hiu k hn v nguyn tc hot ng ca chng, chng em quyt nh chn ti: Xy dng chng trnh m phng cc gii thut nh thi cho CPU.

1.2. Mc tiu ca ti Tm hiu cc gii thut: First In First Out(FIFO), Round Robin(RR), Shortest Job First(SJF), Shortest Remain Time(SRT). Ch ra c u v nhc im c cc gii thut lp lch CPU. Xy dng chng trnh m phng cc gii thut tm hiu v kt qu demo.

L Phng Tin H Phc Vit

6

B mn Mng v Truyn Thng

Chng 2.

C S L THUYT

2.1. Gii thiu2.1.1. Mc tiu lp lchB iu phi khng cung cp c ch, m a ra cc quyt nh. Cc h iu hnh xy dng nhiu chin lt khc nhau thc hin vic iu phi, nhng tu chung cn t c cc mc tiu sau: S cng bng: cc tin trnh chia s CPU mt cch cng bng khng c tin trnh no phi i v hn c cp pht CPU Tnh hiu qu: H thng phi tn dng c CPU 100% thi gian Thi gian p ng hp l: cc tiu ha thi gian hi p cho cc tng tc ca ngi s dng Thi gian lu li trong h thng: cc tiu ha thi gian hon tt cc tc v x l theo l Thng lng ti a: cc i ha s cng vic c x l trong mt n v thi gian Tuy nhin thng khng th tha mn tt c cc mc tiu k trn v bn thn chng c s mu thun vi nhau m ch c th th dung ha chng mc no .

2.1.2. Cc c im ca tin trnhiu phi hot ng ca cc tin trnh l mt vn rt phc tp, i hi h iu hnh khi gii quyt phi xem xt nhiu yu t khc nhau c th t c nhng mc tiu ra. Mt s c tnh ca tin trnh cn c quan tm nh tiu chun iu phi: Tnh hng xut/ nhp ca tin trnh: Khi mt tin trnh c nhn CPU, ch yu n ch s dng CPU n khi pht sinh mt yu cu nhp xut? Hot ng ca cc tin trnh nh th thng bao gm nhiu lt s dng CPU, mi lt trong mt thi gian kh ngn.L Phng Tin H Phc Vit

Xy dng chng trnh m phng gii thut nh thi CPU

7

Tnh hng x l ca tin trnh: Khi mt tin trnh c nhn CPU, n c khuynh hng s dng CPU n khi ht thi gian dnh cho n? Hot ng ca cc tin trnh nh th thng bao gm mt s t lt s dng CPU, nhng mi lt trong mt thi gian di. Tin trnh tng tc hay x l theo l: Ngi s dng theo kiu tng tc thng yu cu c hi p tc thi i vi cc yu cu ca h, trong khi cc tin trnh ca cc tc v c x l theo l ni chung c th tr hon trong mt thi gian chp nhn c. u tin ca tin trnh: Cc tin trnh c th c phn cp theo mt s tiu chun nh gi no , mt cch hp l, cc tin trnh quan trng hn(c u tin cao hn) cn c u tin cao hn. Thi gian s dng CPU ca tin trnh: mt s quan im u tin chn nhng tin trnh s dng CPU nhiu thi gian nht v hy vng chng s cn t thowig gian nht hon tt v ri khi h thng. Tuy nhin cng c quan ddierm 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. Thi gian cn li tin trnh cn hon tt: C th gim thiu thi gian ch 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.

2.1.3. iu phi khng c quyn v iu phi c quynThut ton iu phi cn xem xt v quyt nh thi im chuyn i CPU gia cc tin trnh. H iu hnh cc th thc hin c ch iu phi theo nguyn l c quyn hoc khng c quyn: iu phi c quyn: Nguyn l iu phi c quyn cho php mt tin trnh khi nh c CPU s c quyn c chim CPU n khi hon tt x l hoc t nguyn gii phng CPU. Khi quyt nh iu phi CPU s xy ra trong cc tnh hung sau:

L Phng Tin H Phc Vit

8

B mn Mng v Truyn Thng

o Khi tin trnh chuyn t trng thi ang x l (running) sang trng thi b blocked (v d ch mt thao tc nhp xut hay ch mt tin trnh con kt thc). o Khi tin trnh kt thc. Cc gii thut c quyn thng n gin v d ci t. Tuy nhin chng thng khng thch hp vi cc h thng tng qut nhiu ngi dng, v nu cho php mt tin trnh c quyn x l bao lu ty , c ngha l tin trnh ny gi CPU mt thi gian khng xc nh, c th ngn cn nhng tin trnh cn li trong h thng c mt c hi x l. iu phi khng c quyn: Ngc vi nguyn l c quyn, iu phi theo nguyn l khng c quyn cho php tm dng hot ng ca mt tin trnh sn sng x l. Khi mt tin trnh nhn c CPU, n vn c s dng CPU n khi hon tt hoc t nguyn gii phng CPU, nhng kh c mt tin trnh khc c u tin c th dnh quyn s dng CPU ca tin trnh ban u. Nh vy l tin trnh c th b tm dng hot ng bt c lc no m khng c bo trc, tin trnh khc x l. Cc quyt nh iu phi xy ra khi: o Khi tin trnh chuyn t trng thi ang x l(running) sang trng thi b kha blocked. o Khi tin trnh chuyn t trng thi ang x l(running) sang trng thi ready(v xy ra mt ngt). o Khi tin trnh chuyn t trng thi ch (blocked) sang trng thi ready (v d mt thao tc nhp xut hon tt). o Khi tin trnh kt thc. Trong cc h thng s dng nguyn l iu phi c quyn c th xy ra tnh trng cc tc v cn thi gian x l ngn phi ch tc v x l vi thi gian rt di hon tt! Nguyn l iu phi c quyn thng ch thch hp vi cc h x l theo l.L Phng Tin H Phc Vit

Xy dng chng trnh m phng gii thut nh thi CPU

9

i vi cc h thng tng tc (time sharing), cc h thi gian thc (real time), cn phi s dng nguyn l iu phi khng c quyn cc tin trnh quan trng c c hi hi p kp thi. Tuy nhin thc hin hin iu phi theo nguyn l khng c quyn i hi nhng c ch phc tp trong vic phn nh u tin, v pht sinh thm chi ph khi chuyn i CPU qua li gia cc tin trnh.

2.2. Cc khi nim c bn2.2.1. Khi nim gi CPUCPU l mt loi ti nguyn quan trng ca my tnh. Mi tin trnh mun hot ng c u phi c s phc v ca CPU( x l, tnh ton). Thi gian m CPU phc v cho tin trnh hot ng c gi l gi CPU. Ti mi thi im nht, ch c mt tin trnh c phn phi gi CPU hot ng(thc hin cc lnh ca mnh).

2.2.2. Cc trng thi ca tin trnh lin quan n gi CPUTrong ch a chng trnh, c ba trng thi ca tin trnh lin quan mt thit n gi CPU bao gm:

Ready

Running

Waiting Sn sng(ready): l trng thi m tin trnh c phn phi y mi ti nguyn cn thit v ang ch gi CPU.

L Phng Tin H Phc Vit

10

B mn Mng v Truyn Thng

Thc hin(running): l trng thi m tin trnh c phn phi y mi ti nguyn cn thit v gi CPU. i(waiting): l trng thi tin trnh khng thc hin c v thiu mt vi iu kin no (i d liu vo/ra, i ti nguyn b sung). Khi s kin m n ch i xut hin, tin trnh s quay li trng thi sn sng. Nh vy, trong sut thi gian tn ti ca mnh, cc tin trnh s tun th theo s thc hin sau: S dng CPU Bt u i I/O S dng CPU i I/O S dng CPU Kt thc

Mt tin trnh ang trong trng thi thc hin, n c th ri khi trng thi bi mt trong ba l do: Tin trnh hon thnh cng vic, khi n tri li gi CPU v chuyn sang ch x l kt thc. Tin trnh t ngt: Khi tin trnh ch i mt s kin no , tin trnh s c chuyn sang trng th thc hin khi c xut hin s kin n ang ch. Tin trnh s dng ht gi CPU dnh cho n, khi n s c chuyn sang trng thi sn sng. Vic chuyn tin trnh sang trng thi sn sng v bn cht l thc hin vc phn phi li gi CPU.

2.2.3. Khi nim lp lch cho CPU iu khin tin trnh nhiu trng thi khc nhau, h thng thng t chc cc t trng thi(thc cht l cc khi iu khin tin trnh) ghi nhn tnh trng s dng ti nguyn v trng thi tin trnh. Cc t trng thi c t chc theo kiu hng i nh sau:

L Phng Tin H Phc Vit

Xy dng chng trnh m phng gii thut nh thi CPU

11

Read Queue

CPU

I/O Queue I/O

I/O

I/O Queue

I/O

I/O Queue

Nh vy lp lch cho CPU c ngha l t chc mt hng i cc tin trnh sn sng phn phi gi CPU cho chng da trn u tin ca cc tin trnh; sao cho hiu sut s dng CPU l ti u nht. Mi tin trnh trng thi sn sng s c gn vi mt th t u tin. Th t u tin ny c xc nh da vo cc yu t nh: thi im hnh thnh tin trnh, thi gian thc hin tin trnh, thi gian kt thc tin trnh

2.3. Cc Thut Ton Lp Lch2.3.1. First Come First Served(FCFS)Trong thut ton ny, u tin phc v tin trnh cn c vo thi im hnh thnh tin trnh. Hng i cc tin trnh c t chc theo kiu FIFO. Mi tin trnh u c phc v theo trnh t xut hin cho n khi kt thc hoc b ngt. Ready list

L Phng Tin H Phc Vit

12

B mn Mng v Truyn Thng

A

B

C

CPU

Hnh 2.3.1-1. iu phi FIFO

u im ca thut ton ny l gi CPU khng b phn phi li(khng b ngt) v chi phsi thc hin thp nht(v khng phi thay i th t u tin phc v, th t u tin l th t ca tin trnh trong hng i). Nhc im ca thut ton l thi gian trung bnh ch phc v ca cc tin trnh l nh nhau(khng k tin trnh ngn hay di), do dn ti ba im sau: Thi gian ch trung bnh s tng v hn khi h thng tip cn ti hn kh nng phc v ca mnh. Nu pht tn thi gian thc hin tin trnh tng th thi gian ch i trung bnh cng tng theo. Khi c tin trnh di, t b ngt th cc tin trnh khc phi ch i lu hn.

2.3.2. Round robin(RR)Gii thut nh thi lun phin (round-robin scheduling algorithm-RR) c thit k c bit cho h thng chia s thi gian. Tng t nh nh thi FIFO nhng s trng dng CPU c thm vo chuyn CPU gia cc qu trnh. n v thi gian nh c gi l nh mc thi gian (time quantum) hay phn thi gian (time slice) c nh ngha. nh mc thi gian thng t 10 n 100 mili giy. Hng i sn sng c xem nh mt hng i vng. B nh thi CPU di chuyn vng quanh hng i sn sng, cp pht CPU ti mi qu trnh c khong thi gian ti a bng mt nh mc thi gian. ci t nh thi RR, chng ta qun l hng i sn sng nh mt hng i FIFO ca cc qu trnh. Cc qu trnh mi c thm vo ui hng i. B nh thi CPU chn qu trnh u tin t hng i sn sng, t b m thi gian ngt sau 1 nh mc thi gian v gi ti qu trnh.L Phng Tin H Phc Vit

Xy dng chng trnh m phng gii thut nh thi CPU

13

Sau , mt trong hai trng hp s xy ra. Qu trnh c 1 chu k CPU t hn 1 nh mc thi gian. Trong trng hp ny, qu trnh s t gii phng . Sau , b nh thi biu s x l qu trnh tip theo trong hng i sn sng. Ngc li, nu chu k CPU ca qu trnh ang chy di hn 1 nh mc thi gian th m thi gian s bo v gy ra mt ngt ti h iu hnh. Chuyn i ng cnh s c thc thi v qu trnh c t tr li ti ui ca hng i sn sng. Sau , b nh thi biu CPU s chn qu trnh tip theo trong hng i sn sng. Ready List

A

B

C

A

CPU

Hnh 2.3.2-1. Round Robin

u im : - Cc qu trnh s c lun phin cho CPU x l nn thi gian ch i s t. - i vi cc qu trnh lin quan n nhp xut,IO,ngi dng th rt hiu qu. - Vic ci t khng qu phc tp Nhc im :- Thi gian ch i trung bnh di chnh sch RR thng l qu di.

- Nu thi gian nh mc cho vic x l qu ln th RR thnh FIFO - Nu thi gian qu ngn so vi thi gian x l ca mt tin trnh trong danh sch hng i th vic ch i v x l lun phin s nhiu.L Phng Tin H Phc Vit

14

B mn Mng v Truyn Thng - Qui tc l nh mc thi gian nn di hn 80% chu k CPU.

2.3.3. Shortest Job First(SJF)Mt tip cn khc i vi vic nh thi CPU l gii thut nh thi cng vic ngn nht trc (shortest-job-first-SJF). Gii thut ny gn ti mi qu trnh chiu di ca chu k CPU tip theo cho qu trnh sau . Khi CPU sn dng, n c gn ti qu trnh c chu k CPU k tip ngn nht. Nu hai qu trnh c cng chiu di chu k CPU k tip, nh thi FIFO c dng. Ch rng thut ng ph hp hn l chu k CPU k tip ngn nht (shortest next CPU burst) v nh thi c thc hin bng cch xem xt chiu di ca chu k CPU k tip ca qu trnh hn l ton b chiu di ca n. Chng ta dng thut ng SJF v hu ht mi ngi v mi sch tham kho ti nguyn l ca loi nh thi biu ny nh SJF. u im :- Gii thut c xem l ti u, thi gian ch i trung bnh gim

- Tn dng ht nng lc ca CPU Nhc im : - Ci t thut ton phc tp,tn nhiu x l cho qu trnh qun l.- Mc d SJF l ti u nhng n khng th c ci t ti cp nh thi CPU

ngn v khng c cch no bit chiu di chu k CPU tip theo.- Gii thut SJF c th trng dng hoc khng trng dng CPU, dn ti gii

thut ny c nhiu d bn khc nhau v s ti u hay khng ti u ph thuc vo trng dng CPU.

2.3.4. Shortest Remain Time(SRT)Tng t nh SJF nhng trong thut ton ny, u tin thc hin cc tin trnh da vo thi gian cn thit thc hin nt tin trnh(bng tng thi gian tr i thi gian thc hin). Nh vy, trong thut ton ny cn phi thng xuyn cp nht thngL Phng Tin H Phc Vit

Xy dng chng trnh m phng gii thut nh thi CPU

15

tin v gii gian thc hin ca tin trnh. ng thi, ch phn b li gi CPU cng phi c p dng nu khng s lm mt tnh u vic ca thut ton.

u im : - Thi gian ch i,tn ti trong h thng ca mi tin trnh u ngn - Thut ton ti u nht Nhc im : - Vic ci t thut ton kh phc tp - Cn qun l cht ch vic iu phi cc tin trnh - Qun l thi gian n ca mi tin trnh

L Phng Tin H Phc Vit

16

B mn Mng v Truyn Thng

Chng 3.

CI T THUT TON

3.1. M hnh ci t thut ton3.1.1. Cu trc d liu Tin trnh Cu trc d liu xut cho vic qu l tin trnh c xy dng thnh mt lp nhm to iu kin cho vic qun l cc tin trnh c d dng. Codeclass TIENTRINH { private: int stt; int t_den; int t_xuly; int t_cho; int finish; public: TIENTRINH(); TIENTRINH(int stt,int t_den,int t_xuly); void insert(int stt,int t_den,int t_xuly); int getT_DEN(); void setT_DEN(int a); int void int void int void int }; getT_XULY(); setT_XULY(int a); getT_CHO(); setT_CHO(int a); getFINISH(); setFINISH(int a); getSTT();

Stt : s th t ca tin trnh t_den : thi gian n ca tin trnh t_xuly : thi gian x l ca tin trnh t_cho : thi gian ch ca tin trnhL Phng Tin H Phc Vit

Xy dng chng trnh m phng gii thut nh thi CPU

17

finish : thi gian hon thnh ca tin trnh v cc hng thit lp v ly thng tin Ready List Ready list t chc theo danh sch lin kt ch cha s th t ca cc tin trnh.V vic t chc cc tin trnh vo ra trong ready list tun theo cc gii thut c dng trn danh sch lin kt. Code

struct DS { int id; DS *next; }; typedef DS* list;

Id: cha s th t tin trnh trong Ready List Input

Input c t chc theo danh sch lin kt n nhm lu gi cc gi tr khi nhp cc tin trnh v l d liu phc hi li cc tin trnh nhm trnh cc trng hp sai lnh v mt d liu khi x l. Codestruct Input { int den,xuly; Input *next; }; typedef Input* IN;

den: thi gian n ca tin trnh khi nhp liu x l: thi gian x l ca tin trnh khi nhp liu

L Phng Tin H Phc Vit

18

B mn Mng v Truyn Thng

3.1.2. Thut ton x l chungVic ci t thut ton c m phng theo cch lm vic ca CPU v tt cc thut ton con u theo m hnh thut ton ny. Tin trnh u danh sch s c u tin x l trc v n chim dng CPU ti thi im . Vic i km tho l xem xt thi gian x l cc tin trnh ht cha. Nu ht th ngha l hon thnh vic x l, ngc li th tip tc x l theo thut ton. Xong mi chu k ca CPU ( 1 quantum ) th cp nht li danh

sch loi b cc tin trnh hon thnh hay sp xp hay thm cc tin trnh mi vo

L Phng Tin H Phc Vit

Xy dng chng trnh m phng gii thut nh thi CPU

19

Begin

X l tin trnh u danh sch

ng

Kim tra danh sch rng Sai X l theo thut ton

Cp nht li danh sch

End

Hnh 3.1.2-1. S thut ton xut chung cho cc gii thut

L Phng Tin H Phc Vit

20

B mn Mng v Truyn Thng

3.2. Thut ton3.2.1. First In First Out(FIFO)Begin

Sai

ok ng xc lp quantum xc lp thot ok ng

Sai finish

Sai quantum ng ng Tg n Np tin trnh Tng thi gian ch

readyList

ng

X l tin trnh

Tng quantum

Sai xc lp thot quantum End

Hnh 3.2.1-1.Thut ton FIFO

CodeL Phng Tin H Phc Vit

Xy dng chng trnh m phng gii thut nh thi CPU

21

void FIFO() { int time=0,ok=1,i,j=0,ID; while(ok) { ID=-1; PrintRL(ready,time); listBox2->Items->Add("------------------"); for(i=0;iAdd("Time = "+time.ToString()+" : Nap tien trinh : "+(tt[j-1].getSTT()).ToString()); } // nen ton tai tt trong readylist thi lam,ko thi thoat quantum if(ready) { ID=(*ready).id; listBox2->Items->Add("Time = "+time.ToString()+" : xu ly tien trinh : "+(tt[ID].getSTT()).ToString()); if(tt[ID].getT_XULY()>0) { // tang thoi gian cho cua cac tt trong ready tangT_CHO(ready,ID); tt[ID].setT_XULY(tt[ID].getT_XULY() - 1); if(tt[ID].getT_XULY()==0) xoa(); } time++; if(tt[ID].getT_XULY()==0) { tt[ID].setFINISH(time); listBox2->Items->Add("Time = "+time.ToString()+" : hoan thanh tien trinh : "+(tt[ID].getSTT()).ToString()); break; } } else { tangT_CHO(ready,-1); time++; break; } } listBox2->Items->Add("-------Hoan thanh chu ky-------"); listBox2->Items->Add("------------------"); if(checkFinish()) ok=0; } TIME=time }

L Phng Tin H Phc Vit

22

B mn Mng v Truyn Thng

3.2.2. Round Robin(RR)Begin

Sai

ok ng xc lp quantum xc lp thot ok ng

Hon v ReadyList Sai finish

Sai quantum ng ng Tg n Np tin trnh Tng thi gian ch

readyList

ng

X l tin trnh

Tng quantum

Sai xc lp thot quantum End

Hnh 3.2.2-1.Round Robin

L Phng Tin H Phc Vit

Xy dng chng trnh m phng gii thut nh thi CPU

23

Codevoid RR() { int time=0,ok=1,i,j=0,ID,check; while(ok) { ID=-1; check=0; PrintRL(ready,time); listBox2->Items->Add("------------------"); for(i=0;iAdd("Time = "+time.ToString()+" : Nap tien trinh : "+(tt[j-1].getSTT()).ToString()); } // nen ton tai tt trong readylist thi lam,ko thi thoat quantum if(ready) { ID=(*ready).id; listBox2->Items->Add("Time = "+time.ToString()+" : xu ly tien trinh : "+(tt[ID].getSTT()).ToString()); if(tt[ID].getT_XULY()>0) { // tang thoi gian cho cua cac tt trong ready tangT_CHO(ready,ID); tt[ID].setT_XULY(tt[ID].getT_XULY() - 1); if(tt[ID].getT_XULY()==0) xoa(); } time++; if(tt[ID].getT_XULY()==0) { tt[ID].setFINISH(time); listBox2->Items->Add("Time = "+time.ToString() +" : hoan thanh tien trinh : "+(tt[ID].getSTT()).ToString()); check=1; // **** break; // **** } } else { tangT_CHO(ready,-1); time++; break; } } if(!check) hoanvi(); listBox2->Items->Add("-------Hoan thanh chu ky-------"); listBox2->Items->Add("------------------"); if(checkFinish()) ok=0; } TIME=time; }

L Phng Tin H Phc Vit

24

B mn Mng v Truyn Thng

3.2.3. Shortest Job First(SRT)Begin

Sai

ok ng xc lp thot ok ng

Sp xp ReadyList Sai finish

xc lp quantum

Sai quantum ng ng Tg n Np tin trnh Tng thi gian ch

readyList

ng

X l tin trnh

Tng quantum

Sai xc lp thot quantum End

Hnh 3.2.3-1. Shortest Job FirstL Phng Tin H Phc Vit

Xy dng chng trnh m phng gii thut nh thi CPU

25

Codevoid SJF() { int time=0,ok=1,i,j=0,ID; while(ok) { ID=-1; PrintRL(ready,time); listBox2->Items->Add("------------------"); for(i=0;iAdd("Time = "+time.ToString()+" : Nap tien trinh : "+(tt[j-1].getSTT()).ToString()); } // nen ton tai tt trong readylist thi lam,ko thi thoat quantum if(ready) { ID=(*ready).id; listBox2->Items->Add("Time = "+time.ToString()+" : xu ly tien trinh : "+(tt[ID].getSTT()).ToString()); if(tt[ID].getT_XULY()>0) { // tang thoi gian cho cua cac tt trong ready tangT_CHO(ready,ID); tt[ID].setT_XULY(tt[ID].getT_XULY() - 1); if(tt[ID].getT_XULY()==0) xoa(); } time++; if(tt[ID].getT_XULY()==0) { tt[ID].setFINISH(time); listBox2->Items->Add("Time = "+time.ToString() +" : hoan thanh tien trinh : "+(tt[ID].getSTT()).ToString()); break; } } else { tangT_CHO(ready,-1); time++; break; } } sapxep(); listBox2->Items->Add("-------Hoan thanh chu ky-------"); listBox2->Items->Add("------------------"); if(checkFinish()) ok=0; } TIME=time; }

L Phng Tin H Phc Vit

26

B mn Mng v Truyn Thng

3.2.4. Shortest Remain Time(SRT)Begin

Sai

ok ng xc lp quantum xc lp thot ok ng

Sp xp ReadyList Sai finish

quantum

Sai Tng thi gian ch Sp xp ReadyList

ng

Lu tin trnh u RL ng Tg n Np tin trnh Tng quantum

readyList

ng

tin trnh u RL Sai

ng

X l tin trnh

Sai

End

xc lp thot quantum

Hnh 3.2.4-1.Shortest Remain Time

CodeL Phng Tin H Phc Vit

Xy dng chng trnh m phng gii thut nh thi CPU

27

void SRT() { int time=0,ok=1,i,j=0,ID; while(ok) { ID=-1; PrintRL(ready,time); listBox2->Items->Add("------------------"); for(i=0;iAdd("Time = "+time.ToString()+" : Nap tien trinh : "+(tt[j-1].getSTT()).ToString()); } // nen ton tai tt trong readylist thi lam,ko thi thoat quantum if(ready) { ID=(*ready).id; sapxep(); if( ID != (*ready).id ) break; //**** listBox2->Items->Add("Time = "+time.ToString()+" : xu ly tien trinh : "+(tt[ID].getSTT()).ToString()); if(tt[ID].getT_XULY()>0) { // tang thoi gian cho cua cac tt trong ready tangT_CHO(ready,ID); tt[ID].setT_XULY(tt[ID].getT_XULY() - 1); if(tt[ID].getT_XULY()==0) xoa(); } time++; if(tt[ID].getT_XULY()==0) { tt[ID].setFINISH(time); listBox2->Items->Add("Time = "+time.ToString() +" : hoan thanh tien trinh : "+(tt[ID].getSTT()).ToString()); break; } } else { tangT_CHO(ready,-1); time++; break; } } sapxep(); listBox2->Items->Add("-------Hoan thanh chu ky-------"); listBox2->Items->Add("------------------"); if(checkFinish()) ok=0; } TIME=time; }

L Phng Tin H Phc Vit

28

B mn Mng v Truyn Thng

Chng 4.

XY DNG CHNG TRNH DEMO

4.1. Cc modun chnh Input: dng nhp d liu Nhp t file Nhp t bn phm Ouput: hin th cc tin trnh nhp Control: la chn cc gii thut First In First Out Round Robin Shortest Job First Shortest Remain Time Result About: thng ti v chng trnh Info Help Exit: thot khi chng trnh

4.2. Mi trng pht trinS dng ngn ng VC++ v giao din windows cho thao tc nhp d liu, m phng c d dng.

4.3. Giao din ca chng trnh4.3.1. About Info

L Phng Tin H Phc Vit

Xy dng chng trnh m phng gii thut nh thi CPU

29

Hnh 4.3.1-1.Hin th thng tin v n mn hc Help

Hnh 4.3.1-2.Hin th tr gip cho vic thao tc trn chng trnh

4.3.2. Input File

L Phng Tin H Phc Vit

30

B mn Mng v Truyn Thng

Hnh 4.3.2-1.Nhp d liu t file Bn phm

Hnh 4.3.2-2.Nhp d liu t bn phm

L Phng Tin H Phc Vit

Xy dng chng trnh m phng gii thut nh thi CPU

31

4.3.3. Output

Hnh 4.3.3-1.Hin th thng tin cc tin trnh nhp

4.3.4. Control FIFO

Hnh 4.3.4-1.iu khin gii thut FIFO v ty chnh quantum ty RRL Phng Tin H Phc Vit

32

B mn Mng v Truyn Thng

Hnh 4.3.4-2.Round Robin

SJF

Hnh 4.3.4-3.Shortest Job First

SRTL Phng Tin H Phc Vit

Xy dng chng trnh m phng gii thut nh thi CPU

33

Hnh 4.3.4-4.Shortest Remain Time Result

Hnh 4.3.4-5.Hin th bn so snh gia cc tin trnh v la chn gii thut ti u nht

4.4. nh gi v nhn xt Giao din chng trnh bt mt Cc modun c b tr hp l v gn gn

L Phng Tin H Phc Vit

34

B mn Mng v Truyn Thng

KT LUN Xy dng thnh cng chng trnh m phng cc gii thut nh thi CPU Qua nm bt r cc gii thut lp lch

TI LIU[1] Nguyn Kim Tun.Gio Trnh L Thuyt H iu Hnh.i hc Hu,trng i hc khoa hc,khoa cng ngh thng tin, Hu 06/2004, 217t [2] ng V Tng. Gio Trnh L Thuyt H iu Hnh.S gio dc v o to H Ni, nh xut bn H Ni 2005, 165t. [3] Trn H Thy Tin.Gio Tnh Nguyn L H iu Hnh.i hc Nng, Trng i hc Bch Khoa, Khoa Cng Ngh Thng Tin 01/04/2010. [4] http://cnx.org/content/m29955/latest/

L Phng Tin H Phc Vit