




免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
集美大学计算机操作系统教程课程实验报告课程名称:操作系统班级:软件14实验成绩:指导教师: 范明红姓名:实验项目名称:进程调度学号:上机实践日期:一、实验目的1、加深对进程概念及进程管理各部分内容的理解。2、熟悉进程管理中主要数据结构的设计和进程调度算法实施。二、实验内容调试并运行一个允许n 个进程并发运行的进程调度模拟系统。(可在HRN和HPF中选择一个实现。由于本实验是模拟运行,所选中进程并不实际启动运行 ,可以使用简单的输出来模拟进程的一次运行)。三、实验要求(1) 给出程序中使用的数据结构及符号说明。(2) 给出程序流程图和源程序,源程序中要有详细的注释。(3) 设置合理的参数以满足进程调度算法需求。(4) 可根据输入的内容填写PCB。并根据选中算法安排进程调度。(5) 能打印程序运行时的初值和调度运行结果,要求如下a) 每个进程用一个 PCB 表示可显示各进程控制块的初始状态;b) 输入各进程相关参数,输入完成后可显示各进程控制块的初始状态;c) 输出调度结果:能较直观地显示各进程执行顺序,占用时间等d) 计算每个作业的周转时间,带权周转时间及均值。4、 实验步骤用HRN(最高响应比优先)实现进程调度代码如下:#include#includeint n;float T1=0,T2=0;int times=0; struct jcb /作业控制块 char name10; /作业名 int reachtime; /作业到达时间 int starttime; /作业开始时间 int needtime; /作业需要运行的时间 float super; /作业的响应比 int finishtime; /作业完成时间 float cycletime; /作业周转时间 float cltime; /作业带权周转时间 char state; /作业状态 struct jcb *next; /结构体指针 *ready=NULL,*p,*q; typedef struct jcb JCB; void inital() /建立作业控制块队列,先将其排成先来先服务的模式队列 int i; printf(n输入作业数:); scanf(%d,&n); for(i=0;iname); p-reachtime=i; printf(作业默认到达时间:%d,i); printf(n输入作业要运行的时间:); scanf(%d,&p-needtime); p-state=W; p-next=NULL; if(ready=NULL) ready=q=p; else q-next=p; q=p; void disp(JCB* q) /显示作业运行后的周转时间及带权周转时间等 printf(n作业%s正在运行,估计其运行情况:n,q-name); printf(开始运行时刻:%dn,q-starttime); printf(完成时刻:%dn,q-finishtime); printf(周转时间:%fn,q-cycletime); printf(带权周转时间:%fn,q-cltime); printf(响应比:%fn,q-super); void running(JCB *p) /运行作业 if(p=ready) /先将要运行的作业从队列中分离出来 ready=p-next; p-next=NULL; else q=ready; while(q-next!=p) q=q-next; q-next=p-next; p-starttime=times; /计算作业运行后的完成时间,周转时间等等 p-state=R; p-finishtime=p-starttime+p-needtime; p-cycletime=(float)(p-finishtime-p-reachtime); p-cltime=(float)(p-cycletime/p-needtime); T1+=p-cycletime; T2+=p-cltime; disp(p); /调用disp()函数,显示作业运行情况 times+=p-needtime;p-state=F; printf(n%s has been finished!n,p-name); free(p); /释放运行后的作业 void super() /计算队列中作业的高响应比 JCB *padv; padv=ready; do if(padv-state=W&padv-reachtimesuper=(float)(times-padv-reachtime+padv-needtime)/padv-needtime; padv=padv-next; while(padv!=NULL); void final() /最后打印作业的平均周转时间,平均带权周转时间 float s,t; t=T1/n; s=T2/n; printf(nn作业已经全部完成!); printf(n%d个作业的平均周转时间是:%f,n,t); printf(n%d个作业的平均带权周转时间是%f:nnn,n,s); void hrn() /高响应比算法 JCB *min; int i,iden; inital(); for(i=0;istate=W&p-reachtimesupermin-super) min=p; p=p-next; while(p!=NULL); if(iden) i-;times+; /printf(ntime=%d:tno JCB submib.wait.,time); if(times1000) printf(nruntime is too long.error.); else running(min); /调用running()函数 final(); /调用final()函数 void main() /主函数 hr
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030中国电子广告牌行业营销风险及投资潜力剖析报告
- 房产经纪服务合同(标准版)
- 城乡供水管网水力分析
- 污水处理厂远程监控方案
- 电力接入与配电设计方案
- 2025年淮北濉溪县龙华学校教师招聘考试参考试题及答案解析
- 2025年湖南益阳桃江县选调县外教师20人备考练习试题及答案解析
- 风电机组风速与风向监测方案
- 2025年8月广东广州奥林匹克中学编外聘用制专任教师招聘1人备考练习题库及答案解析
- 2025年广西来宾市武宣县人民医院公开招聘6人(第三期)备考练习题库及答案解析
- 碳化硅项目可行性分析报告
- 2025年试验检测师之桥梁隧道工程能力检测试卷A卷附答案
- 老年共病管理中国专家共识(2023)课件
- 惠州市惠阳区水资源综合规划 修编(2020-2035 年)
- 应聘简历模板进厂
- 公司配送员工管理制度
- 工厂员工星级管理制度
- 我国汽车产业在全球价值链中的地位剖析与影响因素探究
- 衢州龙游县龙新高速公路投资有限公司招聘笔试题库2025
- 《应用语文(第3版)》技工院校语文课程全套教学课件
- 《石油钻采设备》课件
评论
0/150
提交评论