操作系统进程调度编程.docx

操作系统进程调度编程.docx

ID:59195759

大小:305.12 KB

页数:49页

时间:2020-09-10

操作系统进程调度编程.docx_第1页
操作系统进程调度编程.docx_第2页
操作系统进程调度编程.docx_第3页
操作系统进程调度编程.docx_第4页
操作系统进程调度编程.docx_第5页
资源描述:

《操作系统进程调度编程.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、1.实验内容编写一个单处理机下的进程调度程序,模拟操作系统对进程的调度。2.实验目的进程是操作系统中最基本、最重要的概念,进程调度又是操作系统的核心模块。本实验要求学生独立设计并实现进程调度模拟程序,以加深对进程控制块概念和各种进程调度算法的理解。3.实验要求可以随机输入若干进程,支持先来先服务、短作业优先、最短剩余时间优先、时间片轮转、动态优先级调度算法,能够输出进程的调度过程。4.程序中使用的数据结构及符号说明(1).PCB(进程控制块)1.structpcb2.{3.intid;4.intarrive;5.intrun;6.in

2、tpriority;7.inttime;8.booldone;9.};说明: 在进程控制块中记录了以下信息:数据项类型说明idint进程号pidarriveint进程到达时间runint进程运行时间priorityint进程优先级timeint进程运行的时间片donebool记录进程是否已经完成运行(2).PCB数组1.structpcbprocess[N];说明: process数组用于保存调度所涉及的进程的信息。5.各种调度算法的处理流程,重要模块的详细设计及功能和接口说明(1).预处理算法流程对应程序代码及注释1.intmain

3、()2.{3.//初始化PCB数组4.memset(process,0,sizeof(process));5.//读入调度类型6.inttype;7.scanf("%d",&type);1.//读入调度进程数据2.for(n=0;~scanf("%d/%d/%d/%d/%d",3.&process[n].id,4.&process[n].arrive,5.&process[n].run,6.&process[n].priority,7.&process[n].time);n++);8.//根据调度类型转到子程序进行调度9.switch

4、(type)10.{11.//各调度子程序:12.case1:fcfs();break;//先来先服务13.case2:sjf();break;//短作业优先14.case3:sltf();break;//最短剩余时间优先15.case4:tpt();break;//时间片轮转16.case5:dp();break;//动态优先级17.}18.return0;19.}(2).先来先服务算法逻辑流程本题中算法实际流程对应程序代码及注释1.voidfcfs()2.{3.//按到达时间、pid排序4.sort(process,process

5、+n,cmp_ar_id);5.//初始化系统时间6.inttime=0;7.//顺序遍历各进程8.for(inti=0;i

6、ss[i].priority);19.//进程运行,系统时间流逝20.time+=process[i].run;21.}22.return;23.}(3).短作业优先算法逻辑流程本题中算法实际流程对应程序代码及注释1.voidsjf()2.{3.//按运行时间、pid排序4.sort(process,process+n,cmp_run_id);5.//初始化系统时间6.inttime=0;7.//有未运行进程8.for(intm=1;m<=n;)9.{10.//找出已到达的未运行进程中,运行时间最短的进程11.intmin=INT_M

7、AX,mini=-1;12.for(inti=0;i

8、

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

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

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