版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、人佛山科学技术学院实验报告课程名称操作系统原理实验项目实验二-进程调度实验讲义专业班级_姓名学号指导教师 成绩 日期一、实验目的通过对进程调度算法的模拟,进一步理解进程的基本概念,加深对进程运行状态和进程调度过程、调度算 法的理解。(1)掌握时间片轮换的进程调度算法;(2)掌握带优先级的进程调度算法;(3)选用面向对象的编程方法。二、实验内容;(1)用C语言(或其它语言,如Java)实现对N个进程采用动态优先调度算法的调度。(2)每个用来标识进程的进程控制块PCB可用结构来描述,包括以下字段:进程标识数ID。进程优先数PRIORITY,并规定优先数越大的进程,其优先权越高。进程已占用CPU时间
2、CPUTIME。进程还需占用的CPU时间ALLTIMEo当进程运行完毕时,ALLTIME变为0。进程的阻塞时间STARTBLOCK,表示当进程再运行STARTBLOCK个时间片后,进程将进入阻塞状态。进程被阻塞的时间BLOCKTIME,表示已阻塞的进程再等待BLOCKTIME个时间片后,将转换成就绪状态。进程状态STATE o队列指针NEXT,用来将PCB排成队列。(3)优先数改变的原则:可以采用以下方法的任一种:(a)进程在就绪队列中呆一个时间片,优先数增加1o进程每运行一个时间片,优先数减3o(b)进程在就绪队列中呆一个时间片,优先数增加3o进程每运行一个时间片,优先数除以2。(4)为了清
3、楚地观察每个进程的调度过程,程序应将每个时间片内的进程的情况显示出来,包括正在运行 的进程,处于就绪队列中的进程和处于阻塞队列中的进程。(5)用户可以干预进程的运行状态,程序应该设置可以让用户中断的入口,并可以通过以下命令查看,修 改,终止进程。A)create随机创建进程,进程的优先级与所需要的时间片随机决定;B)ps查看当前进程状态C)sleep命令将进程挂起D)kill命令杀死进程E)quit命令退出(5)分析程序运行的结果,谈一下自己的认识。三、实验原理;无论是在批处理系统还是分时系统中,用户进程数一般都多于处理机数、这将导致它们互相争夺处理机。 另外,系统进程也同样需要使用处理机。这
4、就要求进程调度程序按一定的策略,动态地把处理机分配给处于就 绪队列中的某一个进程,以使之执行。根据进程的五个特征:(1)动态性;(2)并发性;(3)异步性;(4)独立性;(5)结构性及三种基本状态的转换, 了解各进程对资源的共享和竞争。进程并发执行时,由于资源共享,带来各进程之间的相互制约。为了反映这 些制约关系和资源共享关系,在创建一个进程时,应首先创建其PCB,然后才能根据PCB中信息对进程实施 有效的管理和控制。当一个进程完成其功能之后,系统则最后释放PCB,进程也随之消亡。最简单最直观的进程调度策略是基于优先级的调度,多数实时系统采用基于优先级的调度,每个进程根据它重 要程度的不同被赋
5、予不同的优先级,调度器在每次调度时,总选择优先级最高的进程开始执行四、实验步骤;随机生成几个处在就绪队列的进程;在就绪队列中选择优先权最高的进程;每运行一个时间片后更新运行进程、就绪队列和阻塞队列的状态,判断是否需要进行变换;可动态添加、删除进程;完成所有进程操作。五、程序源代码及注释实验2进程调度return:void Destrortjuue(Queii *Q)( rtile(Q-front) (Q-raaT=Q-frDnt-MEXT;Q-frojit=Q-*43* :return :Pct创廷尹晦机和蚂化若运程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:队列牛剂隐指定id夫素nt DeQueue (Queue 点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;避程标识3ft ID.int PRIORITY:建程伐完轰PRXR1TY.尹姓定任先桑巷大时住涅.苴杭先姣巷尊.int. CPUTIME ;方注程已吕.号 CPU 的间CPUTI3E.int ALLTIME ; 甦理还需M用的CPU的同 ALLTZME.当W程运气充举时,ALLTW交为6 int STAETELXK;/走程的恒言时间 STARIELCCK.表示当W巷再运行STARTELXK个时间片后,W巷君走入 隈塞
8、状态.int ELCCKTIME;的打间 ELO-CKri3E.表示已匾氢的遂程再与待玖火KTIME个时间片后.骂哭 性或垃空状恋int. STATESTATE. 0 代表致行.1 代表爰活.2代表区室 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*的总个敛PCE t.enp_PCE;PCB bast:展款绝队列中选务的毂伐逐程QNode如昌兴机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程到致竖底列二/); f (QBL 0:E- q_nu3=0:printfCFSg队刿中尚无七程皿);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 从匾戛成列奘珍京度渔队列中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,食话设豆 STARTELOCKt e np_PCE-ELOCM DIEz 0:tQnp_PCE-STATE=l:/标记为我建队列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):从盐绻队列中洗多景尊和次杭骸.设豆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 (款活队列T尚无法蜜jT):*sturn:)if(Q_RE ADE- q_nxi3=l)a-KEST-pcb-SrASrBLO:K=a-NErr-pcV-ALiri炷;/立果盐绪冽中只宥二个注蚤 则设豆为乩
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程状态函苏void Change 0 对家给做到中每个炬程到既是芍给耒*a;a=_EEAC,x-frQt-:EXT ;.mt teap_id1;for(;a! =NULL; a=a-:EXTif(b5t.ID!-l)V7对运行送程老行场改best. CPUTDE;坡丸 CPU时间if (a-DCbALLTIME=O) (bGSt. ALLT3E-;逢程总时
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当首适行注建需法入晅塞队刿对匿塞鼠列中信息灵改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 (当部冠总个釜: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关 2dn,a-pc-b-STARTEbOCT; a-pcb-BLO:KT3fE; a-pcb-ST ATE);printprintf (EE室队列仪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 ./正在运行的遂忌景作函袤void Pro.RLNO (if (b&st. ZD=1)“Mtf T当查无可孰行的W程k/):return ;)pr intf (当t?时间片大运咛淀遑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迳个数:m: pro_nuai:f or (int i=3; iID=i:t enp_P*CE-PRIORITY=r-and 0 英9 慝机设迓t enp_PCB-XPUT 3(E=0;tenp-PCB-ALLT3E=randO %4-l;tWH_PB-STHnELXK
23、=。;/开始为 0;拿貌 绝队列中炭含优完校底次高位先杖比皎童空t enp.PCB-BLCCCT DCE=O:tenp_PCB-STATE=l;EnQueue (*S_READYf tenp项CB):rtile(Dro_niEi!=0j Sst.Est_S ec&nd_S tart 0 :/ J设五款樊氐列中 曼高伉形权魇次高伉完权菌5t a-t ti=fePrint ();Select.Fxon.READY0列中艺孝与:伉生彰尹生咛相关崇作Pm.R贝():正在运W渲程壕作改戋哥自注程状态Print E。的走入就绪叭列Print#*林* * 革w琮理w、*理琮普球*、a );FTlDtf /*
24、1-原机创近善冠(U萸让*;2.查等当前善程意忘-*):if .stTtnr .对m韭 Ew二MionZ:; =0;/束死遂程rrintf (rt 5.骷咎杀花是卷(kiW *4.命咨iB出(S t -1 ,家工);i f .?-S-ueuG :q_EAnY. C1idoeb2); rzzntfC 三鼠发蜷队列中二一隆pziDtf (r*-5.不执蚱择作(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 ()庙机bLeeif Cs txecu (chooEElL SeLectio口 3_. =0)J/由t ecip_F CE- XIPUT MfcO;t ecip_F CE- AJ_LTrMfcra=nd 0 实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);六、实验结果分析1、运行结果如下当前时间片内运行进程IP PIBORITV CPUTIftE ILLUME: STARIBLOCK BLOCKTIKE STATE 35132 iflLLIJME3:挡忌个数次POKIH CPOTinE80STftKIBLMJH B1OCJHI1HE 8TBIE36 i土查看当前进程忱割畔1也命号退出-1怛塞队列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. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年广告设计及制作分包合同
- 内容审核算法优化
- 福建省福州福清市2024-2025学年八年级上学期期中考试物理试题
- 2024年度版权购买合同明确购买价格和权益分配
- 2024年临时工程分包商采购合同
- (2024版)城市供水项目特许经营合同
- 2024年度某科技有限公司与某汽车制造商关于新能源汽车零部件采购的合同
- 批处理模型优化
- 视觉注意力图像
- 疫苗稳定性分析
- 科普类公园设计方案
- 小学英语就业能力展示
- 心肌病和心肌炎课件
- 《艾滋病毒》课件
- 平阳港区西湾作业区防浪导流堤工程海域使用论证报告书
- 管道保温计算公式
- 录音行业的就业生涯发展报告
- 报废汽车拆解工艺流程
- 生化报告解读
- 胃癌科普讲座课件
- 熔炼车间工安全培训
评论
0/150
提交评论