



全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
处理器调度1 内容选择一个调度算法,实现处理器调度。2 目的在采用多道程序设计的系统中,往往有若干个进程同时处于就绪状态。当就绪状态进程个数大于处理器数时,就必须依照某种策略来决定那些进程优先占有处理器。本题目模拟在单处理器情况下处理器器调度,帮助学生加深了解处理器调度的工作。3 设计思路设计一个结构体数组,来存放个进程的名称,要求运行时间,优先级和当前状态,把优先级最高的进程放在队列的首位,执行一次,就将队列首位的进程的运行时间减一,优先级减一,再重新排序,直到所有进程的运行时间为零。4 程序代码如下:#include#includeint count=5;int head=0;int time=1;int start=1;typedef struct process /定义进程结构,包含信息进程名,进程要求运行的时间,优先及和状态 char pname; int ptime; int prior; char apper;jin;/定义一个结构体变量void creat(jin a)/创建进程队列 int i; jin *q; int k; for(i=0;i5;i+) q=(jin*)malloc(sizeof(jin); ai=*q; printf(please input the %d processs info:n,i); printf(run time and prior are:n); scanf(%d %d,&ai.ptime,&ai.prior); if(i=0) ai.pname=a;/将五个进程命名为a,b,c,d,e. else if(i=1) ai.pname=b; else if(i=2) ai.pname=c; else if(i=3) ai.pname=d; else ai.pname=e; ai.apper=R; for(k=0;k5;k+) /输出所有进程信息printf(%c(%d,%d,%c)n,ak.pname,ak.ptime,ak.prior,ak.apper); void paixu(jin a)/对所有进程按优先及由大至小排序int k; jin temp;int i,j; for(j=0;jcount;j+)for(i=0;icount-1;i+)if(ai.priorai+1.prior) temp=ai; ai=ai+1; ai+1=temp; printf(after order:n); for(k=0;kcount;k+) printf(%c(%d,%d,%c)n,ak.pname,ak.ptime,ak.prior,ak.apper);void run(jin a)/运行进程,操作:使优先数减一,要求运行时间减一int k,i=1;ahead.ptime-; ahead.prior-;printf(run %d times and ,time); time+;if(ahead.ptime=0) & (count=1)start=0; printf(every jin is End:n);if(ahead.ptime=0)&(count!=1) printf(jin %c is End:n,ahead.pname);ahead.apper=E; /输出所有进程信息 printf(%c(%d,%d,%c)n,ahead.pname,ahead.ptime,ahead.prior,ahead.apper); for(k=0;kcount-1;k+) ak=ak+1; count-; main() struct process jin5; creat(jin);/调用创建进程队列函数 paixu(jin);/调用排序函数 while(1)/当标志为1时,运行并排序 run(jin);/运行程序 paixu(jin);/排序程序 if(start=0)/标志为0则跳出 break; 5 程序运行结果:rootlocalhost root# gcc 1.c rootlocalhost root# ./a.out please input the 0 processs infor: run time and prior are: 2 1 please input the 1 processs infor: run time and prior are: 3 5 please input the 2 processs infor: run time and prior are: 1 3 please input the 3 processs infor: run time and prior are: 2 4 please input the 4 processs infor: run time and prior are: 4 2 a(2,1,R) b(3,5,R) c(1,3,R) d(2,4,R) e(4,2,R) after order: b(3,5,R) d(2,4,R) c(1,3,R) e(4,2,R) a(2,1,R) run 1 times and after paixu: b(2,4,R) d(2,4,R) c(1,3,R) e(4,2,R) a(2,1,R) run 2 times and after paixu: d(2,4,R) b(1,3,R) c(1,3,R) e(4,2,R) a(2,1,R) run 3 times and after paixu: d(1,3,R) b(1,3,R) c(1,3,R) e(4,2,R) a(2,1,R) run 4 times and jin d is End: d(0,2,E) after paixu: b(1,3,R) c(1,3,R) e(4,2,R) a(2,1,R) run 5 times and jin b is End: b(0,2,E) after paixu: c(1,3,R) e(4,2,R) a(2,1,R) run 6 times and jin c is End: c(0,2,E) after paixu: e(4,2,R) a(2,1,R) run 7 times and after paixu: e(3,1,R) a(2,1,R) run 8 times and after paixu: a(2,1,R) e(2,0,R) run 9 times and after paixu: a(1,0,R) e(2,0,R) run 10 times and jin a is E: a(0,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年新能源行业新能源与智慧医疗融合发展研究报告
- 昌吉公务员考试题及答案
- 硅芯制备工上岗考核试卷及答案
- 2024-2025学年高中数学 第3章 数系的扩充与复数的引入章末综合提升(教师用书)说课稿 新人教A版选修2-2
- 微特电机在高端音频设备中的节能效果分析报告
- 智慧农业气象服务站创新创业项目商业计划书
- 建筑行业方案设计
- 消防系统安全性能分析报告
- 平台数据处理效果评估分析报告
- 护士考试题库及答案下载
- 小儿心律失常的护理讲课件
- 校园各社团管理制度
- 校园短视频管理制度
- 2024年贵州省威宁彝族回族苗族自治县卫生局公开招聘试题带答案
- 2025年上海市中考数学试卷真题及解析答案
- 车辆抵押贷款逾期贷款清收合同
- 餐饮服务(双语)课件任务3中餐服务的形式与特点
- 铁总关于建设项目技术交底管理办法(2024版)
- 房款首付赠与协议书
- 肌骨超声在康复科的应用
- 垃圾分类房租赁合同协议
评论
0/150
提交评论