本文共 949 字,大约阅读时间需要 3 分钟。
FCFS(first come first served):先来先服务,根据到达时间依次执行。
SJF(short job first):根据作业的运行时间从小到大依次执行。
HRRN(highest response ratio next):根据响应比从大到小依次执行,响应比动态计算。
周转时间 = 完成时间 - 到达时间
带权周转时间 = 周转时间 / 运行时间
响应比 = (运行时间+已经等待时间) / 运行时间 = 1+已经等待时间 / 运行时间【响应比可能表达方法不同,但是意义是一样的。】
目录
一、实验目的
目的:了解并掌握作业调度的功能,熟悉并掌握各种作业调度算法。
任务:模拟实现先来先服务调度算法(FCFS)或者短作业优先调度算法(SJF)。
二、实验内容
(1)实验内容
模拟实现SJF调度。
设置作业体:作业名,作业的到达时间,服务时间,作业状态(W——等待,R——运行,F——完成),作业间的链接指针;
作业初始化:由用户输入作业名、服务时间、到达时间进行初始化,同时,初始化作业的状态为W。
显示函数:在作业调度前、调度中和调度后进行显示。
排序函数:对等待状态的作业按照调度算法排序(不同的调度算法排序方式不同),注意考虑到达时间。
调度函数:每次从等待队列队首调度已到达的适合的作业执行,状态变化。当服务结束时,状态变为F。
删除函数:撤销状态为F的作业。
(2)实验要求
①测试数据可以随即输入或从文件中读入;
②必须要考虑到作业的到达时间;
③最终能够计算每一个作业的周转时间、带权周转时间。
三、实验代码
1
将程序打包为exe文件
codeblocks下 写程序,先要建立一个工程。写好程序后,选择Build(构建),在工程目录里面就有个Debug或者Release的文件夹,里面就是打包好的exe文件。
四、实验结果
输入作业的个数,然后分别输入进程的名称、到达时间、服务时间,对程序进行测试。
测试样例1
测试样例2
五、实验总结
通过此次实验,对进程的常用算法有了更深的理解,知道了FCFS/SJF进程调度算法的实现过程和程序编写。对作业的完成时间、周转时间、带权周转时间等计算掌握地更加熟练。实验中,将理论和实践相结合,对操作系统的学习更加深入。
转载地址:https://blog.csdn.net/weixin_44949135/article/details/116242551 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!