作业调度算法[先来先服务算法,短作业算法].docVIP

作业调度算法[先来先服务算法,短作业算法].doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
..WORD完美格式.. ..专业知识编辑整理.. 《操作系统》实验报告 题目:作业调度算法 班级:网络工程 姓名:朱锦涛 学号:一、实验目的 用代码实现页面调度算法,即先来先服务(FCFS)调度算法 、短作业优先算法、高响应比优先调度算法。通过代码的具体实现,加深对算法的核心的理解。 二、实验原理 1.先来先服务(FCFS)调度算法 FCFS是最简单的调度算法,该算法既可用于作业调度,也可用于进程调度。当在作业调度中采用该算法时,系统将按照作业到达的先后次序来进行调度,或者说它是优先考虑在系统中等待时间最长的作业,而不管该作业所需执行的时间的长短,从后备作业队列中选择几个最先进入该队列的作业,将它们调入内存,为它们分配资源和创建进程。然后把它放入就绪队列。 2.短作业优先算法 SJF算法是以作业的长短来计算优先级,作业越短,其优先级越高。作业的长短是以作业所要求的运行时间来衡量的。SJF算法可以分别用于作业和进程调度。在把短作业优先调度算法用于作业调度时,它将从外存的作业后备队列中选择若干个估计运行时间最短的作业,优先将它们调入内存。 3、高响应比优先调度算法 高响应比优先调度算法则是既考虑了作业的等待时间,又考虑了作业的运行时间的算法,因此既照顾了短作业,又不致使长作业等待的时间过长,从而改善了处理机调度的性能。 如果我们引入一个动态优先级,即优先级是可以改变的令它随等待的时间的延长而增加,这将使长作业的优先级在等待期间不断地增加,等到足够的时间后,必然有机会获得处理机。该优先级的变化规律可以描述为: 优先权 = (等待时间 + 要求服务时间)/要求服务时间 三、实验内容 源程序: #includestdio.h #includestdlib.h #includetime.h struct work { int id; int arrive_time; int work_time; int wait; float priority; }; typedef struct sjf_work { struct work s_work; //数据域 struct sjf_work * pNext; //指针域 }NODE,*PNODE; void FCFS(); void SJF(); void showmenu(); bool Is_empty(PNODE pHead); int cnt_work(PNODE pHead); PNODE do_work(PNODE pHead,int *w_finish_time,int i); void show(int *w_finish_time,int i,PNODE q,int *w_rel_time); void HRRN(); PNODE priorit(PNODE pHead); void do_work_1(PNODE pHead,int *w_finish_time,int i); int main() { int choice; //设置选择数 showmenu(); //显示菜单 scanf(%d,choice); while(choice != 0) //选择算法 { switch(choice) { case 1 : printf(您选择的是先来先服务算法:\n); FCFS(); break; case 2 : printf(您选择的是短作业优先算法:\n); SJF(); break; case 3 : printf(您选择的是高响应比优先调度算法\n); HRRN(); break; default: printf(请重新选择!); break; } printf(\n); printf(下面是菜单,请继续,或者按‘0’退出); showmenu(); scanf(%d,choice); } printf(感谢您使用本系统,再见!); return 0; } void FCFS() { int j,k; int w_rel_time[5]; int w_finish_time[5]; float rel_time = 0; struct work temp; int i; struct work w[5]; sra

文档评论(0)

文档分享 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档