动态优先权的进程调度算法模拟

上传人:lis****210 文档编号:127994426 上传时间:2022-07-31 格式:DOCX 页数:32 大小:16.58KB
收藏 版权申诉 举报 下载
动态优先权的进程调度算法模拟_第1页
第1页 / 共32页
动态优先权的进程调度算法模拟_第2页
第2页 / 共32页
动态优先权的进程调度算法模拟_第3页
第3页 / 共32页
资源描述:

《动态优先权的进程调度算法模拟》由会员分享,可在线阅读,更多相关《动态优先权的进程调度算法模拟(32页珍藏版)》请在装配图网上搜索。

1、动态优先权的进程调度算法模拟华北科技学院计算机系综合性实验实验报告课程名称计算机操作系统实验学期2010至2011学年第2学期学生所 在系部基础部年级2008级专业班级信息与计算科学学生姓名范玉文学号 200809014212任课教师杜杏菁实验成绩计算机系制华北科技学院计算机系综合性实验报告操作系统课程综合性实验报告开课实验室:第六实验室2011年6月15日进程调度算法程序设计实验题目一、实验目的通过对进程调度算法的模拟,进一步理解进程的基本概念,加深对进程运行状 态和进程调度过程、调度算法的理解。二、设备与环境1. 硬件设备:PC机一台2. 软件环境:安装Windows操作系统或者Linux

2、操作系统,并安装相关的程序 开发环境,如C C+Java等编程语言环境。三、实验内容(1) 用C语言(或其它语言,如Java)实现对N个进程采用某种进程调度算法(如 动态优先权调度)的调度。(2) 每个用来标识进程的进程控制块PCB可用结构来描述,包括以下字段:, 进程标识数ID。,进程优先数PRIORITY,并规定优先数越大的进程,其优先权越高。,进程已占用CPU时间CPUTIMEO,进程还需占用的CPU时间ALLTIME。当进程运行完毕时,ALLTIME变为0。, 进程的阻塞时间STARTBLOCK,表示当进程再运行STARTBLOCK个时间片后,进程将 进入阻塞状态。,进程被阻塞的时间B

3、LOCKTIME,表示已阻塞的进程再等待BLOCKTIME个时间 片后,将转换成就绪状态。,进程状态STATE。,队列指针NEXT,用来将PCB排成队列。(3) 优先数改变的原则:,进程在就绪队列中呆一个时间片,优先数增加1。,进程每运行一个时间片,优先数减3。(4) 为了清楚地观察每个进程的调度过程,程序应将每个时间片内的进程的情 况显示出来,包括正在运行的进程,处于就绪队列中的进程和处于阻塞队列中的进 程。(5) 分析程序运行的结果,谈一下自己的认识。第1页华北科技学院计算机系综合性实验报告四、实验结果及分析1. 实验设计说明2. 实验代码#include #define N 5void

4、init();void print();int getRunning();void sort();int run(int time);enum STATEReady,Run,Block,RunOut;struct PROCESS(int ID;int Priority;int Cputime;int Alltime;int Startblock;int Blocktime;enum STATE State;ProcessN;int READYN;/存储就绪队列int BLOCKN;/存储阻塞队列intRUNOUTN2;/存储运行完的进程和相应的时间片数int main()(int Time=0

5、;init();printf(Time:%dn,Time);sort();print();while(1)(Time+;getchar();/要从键盘上得到一个字符才继续运行,以此实现键盘控制逐步进行的目的printf(Time:%dn,Time);if(run(Time)break;return 0;void init()/无问题了第2页华北科技学院计算机系综合性实验报告int i;for(i=0;i=0)printf(tRUNNING PROG: %dn”,getRunning();printf(tREADY_QUEUE:);for(i=0;i=0)printf(-%d,ProcessRE

6、ADYi.ID);else( break;printf(ntBLOCK_QUEUE:);for(i=0;i=0)printf(-%d,ProcessBLOCKi.ID);else(break;第3页华北科技学院计算机系综合性实验报告printf(n=n);printf(IDt);for(i=0;iN;+i)(printf(t%d,Processi.ID);printf(nPRIORITY);for(i=0;iN;+i)(printf(t%d,Processi.Priority);printf(nCPUTIMEt);for(i=0;iN;+i)(printf(t%d,Processi.Cputi

7、me);printf(nALLTIMEt);for(i=0;iN;+i)(printf(t%d,Processi.Alltime);printf(nSTARTBLOCK);for(i=0;iN;+i)(printf(t%d,Processi.Startblock);printf(nBLOCKTIME);for(i=0;iN;+i)(printf(t%d,Processi.Blocktime);printf(nSTATEt);for(i=0;iN;+i)(switch(Processi.State)(case 0:printf(tReady);break;case 1:printf(tRun);

8、if(Processi.Alltime=0)(Processi.State二RunOut;else Processi.State二Ready;break;第4页华北科技学院计算机系综合性实验报告case 2:printf(tBlock);break;case 3:printf(tRunOut);break;printf(n);printf(tRUNOUT LIST:);for(i=0;i=0)printf(-%d(%d),ProcessRUNOUTi0.ID,RUNOUTi1);else(printf(n);break;printf(n);int getRunning()(int i;for(

9、i=0;iN;+i)/找出正在运行的进程(if(Processi.State=Run)return i;for(i=0;iN;+i)/如果没有正在运行的进程则找出马上就要阻塞的进程(if(Processi.Startblock=0)return i;return -1;void sort()/作用是排序,找出就绪队列和阻塞队列分别放入READY口 ,BLOCK(int i,j,k;for(i=0;iN;+i)(READYi=-1;BLOCKi=-1;for(i=0;iN;+i)/找出了 READYQUEUE 按权从大到小放在 READY中(if(Processi.State=Ready|Pro

10、cessi.State=Run)(if(Processi.Alltime=0)continue;第5页华北科技学院计算机系综合性实验报告for(j=0;jN;+j)(if(READYj0)(READYj=i;break;else if(Processi.Priorityj;-k)(READYk=READYk-1;READYj=i;break;else if(Processi.State=Block)/找出阻塞队列放入 BLOCK中(for(j=0;jN;+j)(if(BLOCKj=ProcessBLOCKj.Blocktime)( continue; (for(k=N-1;kj;-k)(BLO

11、CKk=BLOCKk-1;BLOCKj=i;break;int run(int time)(第6页华北科技学院计算机系综合性实验报告int i,runNum;/run 的次数runNum=READY0;if(runNum0&BLOCK0=0)(ProcessrunNum.Priority-=3;ProcessrunNum.Alltime-=1;ProcessrunNum.Cputime+=1;ProcessrunNum.State二Run;for(i=0;iN;+i)/对别的进程进行修改(if(i!=runNum)(if(Processi.State=Ready)(Processi.Prior

12、ity+=1;else if(Processi.State=Block)(Processi.Blocktime-=1;if(Processi.Blocktime=0)(Processi.State=Ready;if(ProcessrunNum.Alltime=0)(for(i=0;iN;+i)(if(RUNOUTi0=0)第7页华北科技学院计算机系综合性实验报告(ProcessrunNum.Startblock-=1;if(ProcessrunNum.Startblock=0)(ProcessrunNum.State二Block;else if(BLOCK0=0)(for(i=0;i1-2-3

13、-0-4BLOCK_QUEUE:= ID 0 1 2 3 4PRIORITY 10 35 31 30 1 CPUTIME 0 1 0 0 0 ALLTIME 3 2 6 3 4 STARTBLOCK 2-1 -1 -1 -1 BLOCKTIME 3 0 0 0 0 STATE Ready Run Ready Ready ReadyRUNOUT LIST:Time:2RUNNING PROG: 1READY_QUEUE:-1-2-3-0-4BLOCK_QUEUE:= ID 0 1 2 3 4PRIORITY 11 32 32 31 2 CPUTIME 0 2 0 0 0 ALLTIME 3 1

14、6 3 4 STARTBLOCK 2-1 -1 -1 -1 BLOCKTIME 3 0 0 0 0 STATE Ready Run Ready Ready ReadyRUNOUT LIST:RUNNING PROG: 1READY_QUEUE:-2-3-0-4第9页华北科技学院计算机系综合性实验报告BLOCK_QUEUE:= ID 0 1 2 3 4PRIORITY 12 29 33 32 3 CPUTIME 0 3 0 0 0 ALLTIME 3 0 6 3 4 STARTBLOCK 2-1 -1 -1 -1 BLOCKTIME 3 0 0 0 0 STATE Ready Run Ready

15、 Ready ReadyRUNOUT LIST:-1(3)Time:4RUNNING PROG: 2READY_QUEUE:-3-2-0-4BLOCK_QUEUE:= ID 0 1 2 3 4PRIORITY 13 29 30 33 4 CPUTIME 0 3 1 0 0 ALLTIME 3 0 5 3 4 STARTBLOCK 2-1 -1 -1 -1 BLOCKTIME 3 0 0 0 0 STATE Ready RunOut Run Ready ReadyRUNOUT LIST:-1(3)Time:5RUNNING PROG: 3READY_QUEUE:-2-3-0-4BLOCK_QUE

16、UE:= ID 0 1 2 3 4PRIORITY 14 29 31 30 5华北科技学院计算机系综合性实验报告CPUTIME 0 3 1 1 0 ALLTIME 3 0 5 24 STARTBLOCK 2 -1 -1 -1 -1 BLOCKTIME 3 0 0 0 0 STATE Ready RunOut ReadyRun ReadyRUNOUT LIST:-1(3)Time:6RUNNING PROG: 2READY_QUEUE:-3-2-0-4BLOCK_QUEUE:= ID 0 1 2 3 4PRIORITY 15 29 28 31 6 CPUTIME 0 3 2 1 0 ALLTIM

17、E 3 0 4 2 4 STARTBLOCK 2-1 -1 -1 -1 BLOCKTIME 3 0 0 0 0 STATE Ready RunOut Run Ready ReadyRUNOUT LIST:-1(3)Time:7RUNNING PROG: 3READY_QUEUE:-2-3-0-4BLOCK_QUEUE:= ID 0 1 2 3 4PRIORITY 16 29 29 28 7 CPUTIME 0 3 2 2 0 ALLTIME 3 0 4 1 4 STARTBLOCK 2-1 -1 -1 -1 BLOCKTIME 3 0 0 0 0第11页华北科技学院计算机系综合性实验报告 ST

18、ATE Ready RunOut Ready RunReadyRUNOUT LIST:-1(3)RUNNING PROG: 2READY_QUEUE:-3-2-0-4BLOCK_QUEUE:= ID 0 1 2 3 4PRIORITY 17 29 26 29 8 CPUTIME 0 3 3 2 0 ALLTIME 3 0 3 1 4 STARTBLOCK 2-1 -1 -1 -1 BLOCKTIME 3 0 0 0 0 STATE Ready RunOut Run Ready ReadyRUNOUT LIST:-1(3)Time:9RUNNING PROG: 3READY_QUEUE:-2-0

19、-4BLOCK_QUEUE:= ID 0 1 2 3 4PRIORITY 18 29 27 26 9 CPUTIME 0 3 3 3 0 ALLTIME 3 0 3 0 4 STARTBLOCK 2-1 -1 -1 -1 BLOCKTIME 3 0 0 0 0 STATE Ready RunOut Ready Run ReadyRUNOUT LIST:-1(3)-3(9)Time:10RUNNING PROG: 2第12页华北科技学院计算机系综合性实验报告READY_QUEUE:-2-0-4BLOCK_QUEUE:= ID 0 1 2 3 4PRIORITY 19 29 24 26 10 CP

20、UTIME 0 3 4 3 0 ALLTIME 3 0 2 0 4 STARTBLOCK 2-1 -1 -1 -1 BLOCKTIME 3 0 0 0 0 STATE Ready RunOut Run RunOut ReadyRUNOUT LIST:-1(3)-3(9)Time:11RUNNING PROG: 2READY_QUEUE:-2-0-4BLOCK_QUEUE:= ID 0 1 2 3 4PRIORITY 20 29 21 26 11 CPUTIME 0 3 5 3 0 ALLTIME 3 0 1 0 4 STARTBLOCK 2-1 -1 -1 -1 BLOCKTIME 3 0 0

21、 0 0 STATE Ready RunOut Run RunOut ReadyRUNOUT LIST:-1(3)-3(9)Time:12RUNNING PROG: 2READY_QUEUE:-0-4BLOCK_QUEUE:= ID 0 1 2 3 4第13页华北科技学院计算机系综合性实验报告PRIORITY 21 29 18 26 12 CPUTIME 03 6 3 0 ALLTIME 3 0 0 0 4 STARTBLOCK 2 -1 -1 -1 -1 BLOCKTIME 3 0 0 0 0STATE Ready RunOut Run RunOut ReadyRUNOUT LIST:-1(

22、3)-3(9)-2(12)Time:13RUNNING PROG: 0READY_QUEUE:-0-4BLOCK_QUEUE:PRIORITY 18 29 18 26 13 CPUTIME 1 3 6 3 0 ALLTIME 2 0 0 0 4 STARTBLOCK 1-1 -1 -1 -1 BLOCKTIME 3 0 0 0 0 STATE Run RunOut RunOut RunOut ReadyRUNOUT LIST:-1(3)-3(9)-2(12)Time:14RUNNING PROG: 0READY_QUEUE:-4BLOCK_QUEUE:-0= ID 0 1 2 3 4PRIOR

23、ITY 15 29 18 26 14 CPUTIME 2 3 6 3 0 ALLTIME 1 0 0 0 4 STARTBLOCK 0 -1 -1 -1 -1第14页华北科技学院计算机系综合性实验报告BLOCKTIME 3 0 0 0 0 STATE BlockRunOut RunOut RunOut ReadyRUNOUT LIST:-1(3)-3(9)-2(12)Time:15RUNNING PROG: 4READY_QUEUE:-4BLOCK_QUEUE:-0= ID 0 1 2 3 4PRIORITY 15 29 18 26 11 CPUTIME 2 3 6 3 1 ALLTIME 1

24、 0 0 0 3 STARTBLOCK 0-1 -1 -1 -1 BLOCKTIME 2 0 0 0 0 STATE Block RunOut RunOut RunOut RunRUNOUT LIST:-1(3)-3(9)-2(12)RUNNING PROG: 4READY_QUEUE:-4BLOCK_QUEUE:-0= ID 0 1 2 3 4PRIORITY 15 29 18 26 8 CPUTIME 2 3 6 3 2 ALLTIME 1 0 0 0 2 STARTBLOCK 0-1 -1 -1 -1 BLOCKTIME 1 0 0 0 0 STATE Block RunOut RunO

25、ut RunOut RunRUNOUT LIST:-1(3)-3(9)-2(12)Time:17第15页华北科技学院计算机系综合性实验报告RUNNING PROG: 4READY_QUEUE:-0-4BLOCK_QUEUE:= ID 0 1 2 3 4PRIORITY 15 29 18 26 5 CPUTIME 2 3 6 3 3 ALLTIME 1 0 0 0 1 STARTBLOCK 0-1 -1 -1 -1 BLOCKTIME 0 0 0 0 0 STATE Ready RunOut RunOut RunOut RunRUNOUT LIST:-1(3)-3(9)-2(12)Time:18

26、RUNNING PROG: 0READY_QUEUE:-4BLOCK_QUEUE:= ID 0 1 2 3 4PRIORITY 12 29 18 26 6 CPUTIME 3 3 6 3 3 ALLTIME 0 0 0 0 1 STARTBLOCK 0 -1 -1 -1 -1 BLOCKTIME 0 0 0 0 0 STATE Run RunOut RunOut RunOut ReadyRUNOUT LIST:-1(3)-3(9)-2(12)-0(18) Time:19RUNNING PROG: 4READY_QUEUE:BLOCK_QUEUE:第16页华北科技学院计算机系综合性实验报告ID

27、0 1 2 3 4 PRIORITY 12 29 18 263 CPUTIME 3 3 6 3 4 ALLTIME 0 0 0 0 0 STARTBLOCK 0 -1 -1 -1 -1 BLOCKTIME0 0 0 0 0 STATE RunOut RunOut RunOut RunOut RunRUNOUT LIST:-1(3)-3(9)-2(12)-0(18)-4(19) Time:20Every process is OVER!Press any key to continue4. 实验结果分析该程序采用动态优先权进行进程的调度,初始化一定的初始值,然后每按一下 回车执行一步,实现了逐步进行的要求。5. 实验心得本次综合作业让我再一次锻炼了 C语言的运用和进程调度的模拟设计,虽然时 间较紧,最近也比较忙,但还是抽出了时间把它完成了,总的来说,收获还是很大的。评定项目A B C D评定项目A B C D评师教价第17页华北科技学院计算机系综合性实验报告算法正确界面美观布局合理程序结构合操作熟练语法、语义正解析完整确实验结果正文字流畅确报告规范 题解正确 其他:评价教师签名:年月曰第18页

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!