动态高优先权优先.docx

动态高优先权优先.docx

ID:52684351

大小:673.85 KB

页数:7页

时间:2020-03-29

动态高优先权优先.docx_第1页
动态高优先权优先.docx_第2页
动态高优先权优先.docx_第3页
动态高优先权优先.docx_第4页
动态高优先权优先.docx_第5页
资源描述:

《动态高优先权优先.docx》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、《操作系统》课程实验报告实验名称:动态高优先权优先调度班级:****************学号:*************姓名:**************指导老师:***************成绩:一、实验目的:1.测试数据可以随即输入或从文件中读入。2.必须要考虑到作业的到达时间3.最终能够计算每一个作业的周转时间。。二、实验内容:模拟实现动态高优先权优先(若数值越大优先权越高,每运行一个时间单位优先权-n,若数值越小优先权越高,没运行一个时间单位优先权+n),具体如下:设置作业体:作业名,作业的到达时间,服务时间,初始优先权,作业状态(W——等待,R——运行,

2、F——完成),作业间的链接指针作业初始化:由用户输入作业名、服务时间、初始优先权进行初始化,同时,初始化作业的状态为W。显示函数:在作业调度前、调度中和调度后进行显示。排序函数:对就绪状态的作业按照优先权排序。优先权相同时进入等待队列时间早的作业在前。注意考虑到达时间调度函数:每次从等待队列队首调度优先权最高的作业执行,状态变化。并在执行一个时间单位后优先权变化,服务时间变化,状态变化。当服务时间为0时,状态变为F。删除函数:撤销状态为F的作业。三、实验代码#include#include#includetype

3、defstructPCB2{charname[10];//进程名intruntime;//要求运行时间intfrist;//定义优先数charzhuangtai;//定义状态,R为就绪,F为完成};structPCB2PCBcontrol[4];//定义进程控制块数组voidyouxian()//构造优先函数{inti,n;printf("请输入进程的个数:");scanf("%d",&n);printf("请输入进程的名字、优先权、运行时间");printf("");for(i=0;i

4、);scanf("%s%d%d",&PCBcontrol[i].name,&PCBcontrol[i].frist,&PCBcontrol[i].runtime);PCBcontrol[i].zhuangtai='R';//进程初始状态均为就绪getchar();//等待回车进入下一次运行}}intmax_frist_process()//确定最大优先级进程子程序{intmax=-10;//max为最大优先数,初始化为-10inti,key;for(i=0;i<5;i++){if(PCBcontrol[i].zhuangtai=='r')//r表示正在运行return-

5、1;//返回-1elseif(max

6、前状态");printf("*****************************************");for(i=0;i<5;i++)//依次显示每个进程的名、优先数、要求运行时间和状态{printf("%st%dt%dt%st",&PCBcontrol[i].name,PCBcontrol[i].frist,PCBcontrol[i].runtime,&PCBcontrol[i].zhuangtai);}printf("请按回车键进行查看");}voidrun()//进程运行子程序{inti,j;intt=0;//t为运行次数fo

7、r(j=0;j<5;j++){t+=PCBcontrol[j].runtime;}//运行次数即为各个进程运行时间之和printf("进程没运行前,当前的状态是:");show();//调用show()子程序显示运行前PCB的情况getchar();//等待回车进入下一次运行for(j=0;j

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。