版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、人佛山科學(xué)技術(shù)學(xué)院實(shí)驗(yàn)報(bào)告課程名稱操作系統(tǒng)原理實(shí)驗(yàn)項(xiàng)目實(shí)驗(yàn)二-進(jìn)程調(diào)度實(shí)驗(yàn)講義專業(yè)班級_姓名學(xué)號(hào)指導(dǎo)教師 成績 日期一、實(shí)驗(yàn)?zāi)康耐ㄟ^對進(jìn)程調(diào)度算法的模擬,進(jìn)一步理解進(jìn)程的基本概念,加深對進(jìn)程運(yùn)行狀態(tài)和進(jìn)程調(diào)度過程、調(diào)度算 法的理解。(1)掌握時(shí)間片輪換的進(jìn)程調(diào)度算法;(2)掌握帶優(yōu)先級的進(jìn)程調(diào)度算法;(3)選用面向?qū)ο蟮木幊谭椒?。二、?shí)驗(yàn)內(nèi)容;(1)用C語言(或其它語言,如Java)實(shí)現(xiàn)對N個(gè)進(jìn)程采用動(dòng)態(tài)優(yōu)先調(diào)度算法的調(diào)度。(2)每個(gè)用來標(biāo)識(shí)進(jìn)程的進(jìn)程控制塊PCB可用結(jié)構(gòu)來描述,包括以下字段:進(jìn)程標(biāo)識(shí)數(shù)ID。進(jìn)程優(yōu)先數(shù)PRIORITY,并規(guī)定優(yōu)先數(shù)越大的進(jìn)程,其優(yōu)先權(quán)越高。進(jìn)程已占用CPU時(shí)間
2、CPUTIME。進(jìn)程還需占用的CPU時(shí)間ALLTIMEo當(dāng)進(jìn)程運(yùn)行完畢時(shí),ALLTIME變?yōu)?。進(jìn)程的阻塞時(shí)間STARTBLOCK,表示當(dāng)進(jìn)程再運(yùn)行STARTBLOCK個(gè)時(shí)間片后,進(jìn)程將進(jìn)入阻塞狀態(tài)。進(jìn)程被阻塞的時(shí)間BLOCKTIME,表示已阻塞的進(jìn)程再等待BLOCKTIME個(gè)時(shí)間片后,將轉(zhuǎn)換成就緒狀態(tài)。進(jìn)程狀態(tài)STATE o隊(duì)列指針NEXT,用來將PCB排成隊(duì)列。(3)優(yōu)先數(shù)改變的原則:可以采用以下方法的任一種:(a)進(jìn)程在就緒隊(duì)列中呆一個(gè)時(shí)間片,優(yōu)先數(shù)增加1o進(jìn)程每運(yùn)行一個(gè)時(shí)間片,優(yōu)先數(shù)減3o(b)進(jìn)程在就緒隊(duì)列中呆一個(gè)時(shí)間片,優(yōu)先數(shù)增加3o進(jìn)程每運(yùn)行一個(gè)時(shí)間片,優(yōu)先數(shù)除以2。(4)為了清
3、楚地觀察每個(gè)進(jìn)程的調(diào)度過程,程序應(yīng)將每個(gè)時(shí)間片內(nèi)的進(jìn)程的情況顯示出來,包括正在運(yùn)行 的進(jìn)程,處于就緒隊(duì)列中的進(jìn)程和處于阻塞隊(duì)列中的進(jìn)程。(5)用戶可以干預(yù)進(jìn)程的運(yùn)行狀態(tài),程序應(yīng)該設(shè)置可以讓用戶中斷的入口,并可以通過以下命令查看,修 改,終止進(jìn)程。A)create隨機(jī)創(chuàng)建進(jìn)程,進(jìn)程的優(yōu)先級與所需要的時(shí)間片隨機(jī)決定;B)ps查看當(dāng)前進(jìn)程狀態(tài)C)sleep命令將進(jìn)程掛起D)kill命令殺死進(jìn)程E)quit命令退出(5)分析程序運(yùn)行的結(jié)果,談一下自己的認(rèn)識(shí)。三、實(shí)驗(yàn)原理;無論是在批處理系統(tǒng)還是分時(shí)系統(tǒng)中,用戶進(jìn)程數(shù)一般都多于處理機(jī)數(shù)、這將導(dǎo)致它們互相爭奪處理機(jī)。 另外,系統(tǒng)進(jìn)程也同樣需要使用處理機(jī)。這
4、就要求進(jìn)程調(diào)度程序按一定的策略,動(dòng)態(tài)地把處理機(jī)分配給處于就 緒隊(duì)列中的某一個(gè)進(jìn)程,以使之執(zhí)行。根據(jù)進(jìn)程的五個(gè)特征:(1)動(dòng)態(tài)性;(2)并發(fā)性;(3)異步性;(4)獨(dú)立性;(5)結(jié)構(gòu)性及三種基本狀態(tài)的轉(zhuǎn)換, 了解各進(jìn)程對資源的共享和競爭。進(jìn)程并發(fā)執(zhí)行時(shí),由于資源共享,帶來各進(jìn)程之間的相互制約。為了反映這 些制約關(guān)系和資源共享關(guān)系,在創(chuàng)建一個(gè)進(jìn)程時(shí),應(yīng)首先創(chuàng)建其PCB,然后才能根據(jù)PCB中信息對進(jìn)程實(shí)施 有效的管理和控制。當(dāng)一個(gè)進(jìn)程完成其功能之后,系統(tǒng)則最后釋放PCB,進(jìn)程也隨之消亡。最簡單最直觀的進(jìn)程調(diào)度策略是基于優(yōu)先級的調(diào)度,多數(shù)實(shí)時(shí)系統(tǒng)采用基于優(yōu)先級的調(diào)度,每個(gè)進(jìn)程根據(jù)它重 要程度的不同被賦
5、予不同的優(yōu)先級,調(diào)度器在每次調(diào)度時(shí),總選擇優(yōu)先級最高的進(jìn)程開始執(zhí)行四、實(shí)驗(yàn)步驟;隨機(jī)生成幾個(gè)處在就緒隊(duì)列的進(jìn)程;在就緒隊(duì)列中選擇優(yōu)先權(quán)最高的進(jìn)程;每運(yùn)行一個(gè)時(shí)間片后更新運(yùn)行進(jìn)程、就緒隊(duì)列和阻塞隊(duì)列的狀態(tài),判斷是否需要進(jìn)行變換;可動(dòng)態(tài)添加、刪除進(jìn)程;完成所有進(jìn)程操作。五、程序源代碼及注釋實(shí)驗(yàn)2進(jìn)程調(diào)度return:void Destrortjuue(Queii *Q)( rtile(Q-front) (Q-raaT=Q-frDnt-MEXT;Q-frojit=Q-*43* :return :Pct創(chuàng)廷尹晦機(jī)和螞化若運(yùn)程int Enqueue (Queue *Q; PCB *pcb) (QNode
6、 *)q&119C(sx zeof (QXodG); p-pub=pcb;if ( !d) return 0;d-ext=null:Q-rsar-NEXT=D:Q-*92TF;Q-Q_nun-:return 1:隊(duì)列牛劑隱指定id夫素nt DeQueue (Queue 點(diǎn)Q, int d) (QNode *a. *s;if (食-fMmt=Q-mar printf 3。; return 。;a=Qfront;s=a-NEXr;for(;a-XEXT!=NULL:axa-NEXT)(i f (a-EXT-pb-IB=id) 5=3-NEST;i f .5=Sxear J(Q-rear=a:a-N
7、EXT=s-NEXr; free(s);include inc lude ?includQ ?includQ inoiuastypedef struct. PCB (int ID;避程標(biāo)識(shí)3ft ID.int PRIORITY:建程伐完轟PRXR1TY.尹姓定任先桑巷大時(shí)住涅.苴杭先姣巷尊.int. CPUTIME ;方注程已呂.號(hào) CPU 的間CPUTI3E.int ALLTIME ; 甦理還需M用的CPU的同 ALLTZME.當(dāng)W程運(yùn)氣充舉時(shí),ALLTW交為6 int STAETELXK;/走程的恒言時(shí)間 STARIELCCK.表示當(dāng)W巷再運(yùn)行STARTELXK個(gè)時(shí)間片后,W巷君走入 隈塞
8、狀態(tài).int ELCCKTIME;的打間 ELO-CKri3E.表示已匾氫的遂程再與待玖火KTIME個(gè)時(shí)間片后.罵哭 性或垃空狀戀int. STATESTATE. 0 代表致行.1 代表爰活.2代表區(qū)室 PCE:typedef struct. QMode(PCB *pcb;struct QMode *NEXT;QMode;typsdsf struct. Qususmt Q_nua;QNod蠟 *frQnt;QMode *rear:Queue;int Dro_nua=O;/i*的總個(gè)斂PCE t.enp_PCE;PCB bast:展款絕隊(duì)列中選務(wù)的轂伐逐程QNode如昌興機(jī)LREADY次七BLO
9、CK:匣戛供、列void In it Queue (Suene (Q-fxont=Q-r ear= 5KoSe*! nalloc .si zeof (Jode):if ( !q-frgt) et (-1);Q- fxont-NEXT=Sq_nu3=0;:if(Q_READF- q_nus=O!return L;iMf (就免眼列中尚無說程皿二;rstuxn;父匾室中選斧匾室國間為0的矣出鼠列void SQlect.FrxiJLCa0 (QMods *a? *t$SD;*::,tsn.D=a=Q_EL4XK- front:printf (ge依袂物虹綏史宣富袂鈕R翊k*徐攻*敦攵兌維義義鈕知tn
10、);。苴nH(從匾惠&L列中法務(wù)W程到致豎底列二/); f (QBL 0:E- q_nu3=0:printfCFSg隊(duì)劌中尚無七程皿);return;for(5=tenD-NEXT;a-NEXT !=MULL: a=a-NEXT)if(3-NEXT-DC-b-BLCCKr:3E=:i( tnp=a:s=tezp-?iEXT;if (C_5L*XK-*s&r=g)Q_BLCC K-rear=*te=p:tespP*CB= (PCS *j zall-oc. size of (PCE .: : ZZ 從匾戛成列奘珍京度漁隊(duì)列中te2p_PCE-ID=5-pcb-ID;t e 2p_PCE-PRI 0
11、EZTY=s -pcl)- PRIORITY;t i 2P.PCE-XFU I != s- R 6-C PUTZ1E;t x sp_PCE-ALL T iffi= s- pcb-ALLT:lE;t i r_PST AETELOC K=m () 94 L,食話設(shè)豆 STARTELOCKt e np_PCE-ELOCM DIEz 0:tQnp_PCE-STATE=l:/標(biāo)記為我建隊(duì)列EhQiiguq (QJ?EADT tER.FCB);ts=p-NEKT=s-?EXT:Q_BLOCK*Q_nus:free front:for(s=t eno-揮EXT: a-XEXT!=NULL: 3=a-以EXT
12、)if(a-NET-peb-PRIORITYte=D-iEXr-peb-P RIORITY) teap=a;5=tenp-NIEXT;xf(*Q_REr-rear=sjQ_RE AD Y-r e ar = te=p;best. ID=s-pcb-ID;b藥 t. PR ICRITY= -pcb-PR IORITY;best. CPUTD(E=5-pcb-X:PUTIME:best. ALLTD(E=5-pcb-ALLTIME:best. STARTELaCK=5rpcb-SrARTELXK;best. EL*XKTDE=s-DCtrEL0Cn3CE;bast. STATEzs-pclrSTAT
13、E :tMj-NEXT=3- ?EXT:Q_RIADY-q_nua:free(s):從鹽綣隊(duì)列中洗多景尊和次杭骸.設(shè)豆STARTrZiEvoid Sst_Es:5t_Sscand_Start () QXods *t=3p_f irst: *tap_5GQJid *a;Xnt fa: fb: n=0;a=Q_BEADY- front;if (Q.READY- Q_nun=0 .:fNintf (款活隊(duì)列T尚無法蜜jT):*sturn:)if(Q_RE ADE- q_nxi3=l)a-KEST-pcb-SrASrBLO:K=a-NErr-pcV-ALiri炷;/立果鹽緒冽中只宥二個(gè)注蚤 則設(shè)豆為乩
14、LT*forir5t=te=p_5ec-OT3=a-ST ;a-SXTI =NULL;a=a-HEXr)(if(a-?JEXT-pcb-PRIOEin=teaD_fir5t-DC-b-PRIORITY)t &sd.PC B-STAR-TBLC*CK=be51. STARTBLOCK;t enp_s e cond=t e3p_f r st;t enp_PCE-BLCKT ZMEzbest. BLOCKTDE:tenp_f irst=a- NEXT;tenp_PCE-SrATE=l;Enqueue(Q_RE.DY. Mr_PCB);fa=tp_fixst-pcb-PRICRirY;fb=tenp_
15、5econd-pcb APRIORITY;elsewhiletf a=fbfrojit-EXT:tea.p_frst-pc b-STA.RTBLOCK=n:for(:a! SULL: a=a-NEXT a-pcb-PRIORITY-;/靈若W程狀態(tài)函蘇void Change 0 對家給做到中每個(gè)炬程到既是芍給耒*a;a=_EEAC,x-frQt-:EXT ;.mt teap_id1;for(;a! =NULL; a=a-:EXTif(b5t.ID!-l)V7對運(yùn)行送程老行場改best. CPUTDE;坡丸 CPU時(shí)間if (a-DCbALLTIME=O) (bGSt. ALLT3E-;逢程總時(shí)
16、間政少t 史 D_i dn-。ID ;:best. PRIORin=bast. PRICirY-3:Dequeue (Q.READY, 二d):best. STARTBLOCK:P*-o_nua:if (best. ALLTIME! =0) 如果的間片還沒月完if (best. STARTELXE=O 詢果對程需printfC當(dāng)首適行注建需法入晅塞隊(duì)劌對匿塞鼠列中信息靈改nr);a=?_BLCCK-front-NEXTt enp_PCE=(PCBaalloc (siz eof(PCB);for (;a!=NULL; a=a-NEXTtgp_PCE-XD=b3t.ZD;a-pcb-BLCT3ff
17、i;tenD_PCE-PRI0RITY=be5t. PRIORITY;Niirtf (更折走程信息完成切勺:t enp_PCE-X:PUTDE=be st. CPU TIME:t QD_PCE-ALLTDE=be st.ALLTIME;)t god.P CE-STAETELCa=O:劫出渥程借息函斂t GnD_PCE-ELCCKT3E=TandO *101:void Print()*5_PCE-STATE=2:QMo4e *&:Enqueue (Q_BLCK 足r_PCB):printf (二二=-D ):else 否則受入鼬給我恣。苴rtf (當(dāng)部冠總個(gè)釜:W。pxo.nuoj ;t enp
18、_PCE=(PCBaalloc (siz eof(PCB);prlutf (零給列):JREADY-unuaJ ;t enp_PCE-ID=-best. ID;a=? _RE A DY- front -NEXTtenD_PCE-PRI0RITY=be5t. PRIORITY;if(a!=NULL)t enp_PCE-X:PUTDfE=be st. CPU TIME:t enD_PCE-ALLTD!E=be st.ALLTDfE:Drintf CH) PIRORITT CFUTIME ALLTIMESTAJTEL*OCK ELCCKT3E STATErT): f-orC;a! =NTLL: a=
19、a-ME5T)(XintfC*短d2d42d%2d a-peb-ID. a-cb-JPRI-ORirY. a-peb-XPUTIUE? a-pc b-ALLTBffi:printff關(guān) 2dn,a-pc-b-STARTEbOCT; a-pcb-BLO:KT3fE; a-pcb-ST ATE);printprintf (EE室隊(duì)列儀d) n,Q_BL0*CK-q_nu2L: a=*S_5LCa-?front -NEXT;if (a!=NULL) (printfriD PIROfilTY CPUTIME ALLTUCE STAJTEL*XK ELCCKT3E STATErT):f-orC;a! =
20、NTLL: a=a-M5T)(XintfC*短d2d42d%2d a-peb-ID. a-cb-JPRI-ORirY. a-peb-XPUTIUE? a-pc b-ALLTBffi:printf C耘 d%2d:a-pcl)-STARTBLCCK. a-pcb-BLOCKTIKE. a-pcb-ST ATE); print :)printf C= ) WHWMVWMV. J ./正在運(yùn)行的遂忌景作函袤void Pro.RLNO (if (b&st. ZD=1)“Mtf T當(dāng)查無可孰行的W程k/):return ;)pr intf (當(dāng)t?時(shí)間片大運(yùn)嚀淀遑W ;printfCHS PZR-ORI
21、TY CPUTBIE ALLTZMI STARTBLOCK BLOCET:1E STATE n勺:printf *%2d 耘d -2d%2d: best. ID. -best. PRIORITY.best. CPUTIME;best. ALLTISE?;print fC%2iX2d S2d1*:bsst. STAKTELC-2S:-b5t. 5LXKTIJE: bsst. STATE?;%= =二二華眺分副綬void sain() (int a:charSelect xon 4. .S. = (create *ps *.*qut;char cho-os&l 10.;int chooseZ;be
22、st. ID1;Q_FEADY=(Quus *)zallQC (QguE);擰勘始 化就備,晅窘京列Q_ELOCK= (Queue *) aallo c(5izeof CQueue):InitQneue(QJ?EADY):InitQeue(5JL0CK:i ;pxo_n-ua=5:/rand nunbexprint f廠初始化W逕個(gè)數(shù):m: pro_nuai:f or (int i=3; iID=i:t enp_P*CE-PRIORITY=r-and 0 英9 慝機(jī)設(shè)迓t enp_PCB-XPUT 3(E=0;tenp-PCB-ALLT3E=randO %4-l;tWH_PB-STHnELXK
23、=。;/開始為 0;拿貌 絕隊(duì)列中炭含優(yōu)完校底次高位先杖比皎童空t enp.PCB-BLCCCT DCE=O:tenp_PCB-STATE=l;EnQueue (*S_READYf tenp項(xiàng)CB):rtile(Dro_niEi!=0j Sst.Est_S ec&nd_S tart 0 :/ J設(shè)五款樊氐列中 曼高伉形權(quán)魘次高伉完權(quán)菌5t a-t ti=fePrint ();Select.Fxon.READY0列中藝孝與:伉生彰尹生嚀相關(guān)崇作Pm.R貝():正在運(yùn)W渲程壕作改戔哥自注程狀態(tài)Print E。的走入就緒叭列Print#*林* * 革w琮理w、*理琮普球*、a );FTlDtf /*
24、1-原機(jī)創(chuàng)近善冠(U萸讓*;2.查等當(dāng)前善程意忘-*):if .stTtnr .對m韭 Ew二MionZ:; =0;/束死遂程rrintf (rt 5.骷咎殺花是卷(kiW *4.命咨iB出(S t -1 ,家工);i f .?-S-ueuG :q_EAnY. C1idoeb2); rzzntfC 三鼠發(fā)蜷隊(duì)列中二一隆pziDtf (r*-5.不執(zhí)蚱擇作(r.z.nE -二*5 ;室婭Hgc妣妣卻*妣妣電CH律寶京妣市菖京童n rA DbooEEiS );BLES if(BeuE-ue(q_EL ciooEe2 gntfK相已從咀言甌列中刑除nrj c;tipg2;y:M泮粗牌豐杵杵村科*杵柱
25、杵杵杵*,*);izarf .峰 W。 ScbooE el tctioZISEb&SEB2 :t. ezip_PCB-PF. I0E.17=zsn d ()廟機(jī)bLeeif Cs txecu (chooEElL SeLectio口 3_. =0)J/由t ecip_F CE- XIPUT MfcO;t ecip_F CE- AJ_LTrMfcra=nd 0 實(shí)L;p上砒M惺出程序牝);teap_F CE- 蛹 TE WF;EEltf.-J ;t eap_FC-EL0CKrLME=3;traD_PCE-STATE=l;En饑迎歪MYt ea.PCBl ;/新釗速的f flush(5t sin):
26、善程跳入就繕俄列丁 2_nuni:f EtlEXhD&EEl, SEl-iEtifinZll =口;/夸歪W程Pr=_RUN0 ;PTLEtf (所有魏*柜羌或/iT);六、實(shí)驗(yàn)結(jié)果分析1、運(yùn)行結(jié)果如下當(dāng)前時(shí)間片內(nèi)運(yùn)行進(jìn)程IP PIBORITV CPUTIftE ILLUME: STARIBLOCK BLOCKTIKE STATE 35132 iflLLIJME3:擋忌個(gè)數(shù)次POKIH CPOTinE80STftKIBLMJH B1OCJHI1HE 8TBIE36 i土查看當(dāng)前進(jìn)程忱割畔1也命號(hào)退出-1怛塞隊(duì)列0 IP FIEOEII CPIJimEfiLLIllMESIfiMBLaCJK BLOCH I MIE TAIfi662一一憑吼列3)IB PI TORI TV cron HE
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 高中數(shù)學(xué)教學(xué)中數(shù)學(xué)建模思想的實(shí)踐課題報(bào)告教學(xué)研究課題報(bào)告
- 全民健康安全無風(fēng)險(xiǎn)聲明書(3篇)
- 汽車維修企業(yè)ISO認(rèn)證指南(標(biāo)準(zhǔn)版)
- 初中體育教學(xué)中運(yùn)動(dòng)數(shù)據(jù)分析與個(gè)性化訓(xùn)練方案的課題報(bào)告教學(xué)研究課題報(bào)告
- 企業(yè)視覺形象構(gòu)建保障責(zé)任書3篇
- 工程項(xiàng)目招標(biāo)與合同管理規(guī)范
- 金融風(fēng)險(xiǎn)管理規(guī)范(標(biāo)準(zhǔn)版)
- 建設(shè)項(xiàng)目運(yùn)營維護(hù)責(zé)任承諾函(9篇)
- 市場調(diào)研與數(shù)據(jù)分析操作指南
- 財(cái)務(wù)會(huì)計(jì)核算與管理規(guī)范(標(biāo)準(zhǔn)版)
- 2026年包頭職業(yè)技術(shù)學(xué)院高職單招職業(yè)適應(yīng)性測試參考題庫帶答案解析
- 2024年安徽理工大學(xué)馬克思主義基本原理概論期末考試模擬試卷
- 2025年醫(yī)院檢驗(yàn)科主任年終述職報(bào)告
- 2025年中考跨學(xué)科案例分析模擬卷一(含解析)
- 2025-2026學(xué)年人教版(簡譜)(新教材)初中音樂七年級(上冊)期末測試卷附答案(共三套)
- 2025年大學(xué)(森林保護(hù))森林病理學(xué)期末試題及答案
- (南開中學(xué))重慶市高2026屆高三第五次質(zhì)量檢測物理試卷(含答案詳解)
- 骨質(zhì)疏松骨折課件
- 2025年水利工程質(zhì)量檢測員考試(金屬結(jié)構(gòu))經(jīng)典試題及答案
- 2025寧夏賀蘭工業(yè)園區(qū)管委會(huì)招聘40人筆試備考試題及答案解析
- 透析充分性及評估
評論
0/150
提交評論