网络操作系统作业.docVIP

  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文档。上传文档
查看更多
《网络操作系统》 课 程 设 计 报 告 书 题 目: 学 号: 学生姓名: 指导教师: 2009 年 月 日 一、作业调度算法的模拟 先来先服务(FCFS)算法、短作业优先(SJF)算法、高响应比(HRN)算法和高优先权优先算法是作业调度中经常采用的,通过上述算法的模拟加深对作业控制快JCB的理解和作业调度过程的实现技巧。 要求: 1.用C语言或C++语言实现对N个作业分别采用FCFS、SJF、HRN和高优先权优先等算法进行调度。 2.每个用来标识作业的作业控制快JCB用结构来描述,包括以下字段: (1)作业标识数ID (2)作业运行所需要时间requesttime(运行时间) (3)作业实际运行时间runtime ( 周转时间 ) (4)作业优先权priority,并规定优先权越大的作业,其优先权越高 (5)作业紧迫程度quick,并规定紧迫程度越高的作业,其数值越大 注:以上字段并非每种作业调度算法都使用,仅仅出于方便编程。 3.假设在调度前,系统中有10个作业,它们的初始状态如下: ID 1 2 3 4 5 6 7 8 9 10 requesttime 983 118 949 559 493 722 120 986 253 807 priority 47 91 96 27 72 61 64 42 15 72 quick 1 2 1 5 5 3 3 1 5 5 4.设计思想 (1)HRN算法采用下式计算响应比: (2)高优先权优先算法采用下述公式计算优先权 实验代码: #include stdafx.h #include iostream.h int count; float currentTime; struct time{ char name;//作业名字 bool state;//作业状态,是否处理 float arriveTime;//作业到达时间 float runTime;//作业运行时间 float finishTime;//作业完成时间 float ti;//作业周转时间 float wi;//作业带权周转时间 }; void Input(time *p) { for(int i = 0; i count; i++) { float arriveTime, runTime; char name; cout 作业名:; cin name; p[i].name = name; cout 到达时:; cin arriveTime; p[i].arriveTime = arriveTime; cout 运行时间:; cin runTime; p[i].runTime = runTime; p[i].state = false; } } void Sort(time *p) { for(int i = 0; i count; i++) { for(int j = 0; j i; j++) { if (p[i].arriveTime = p[j].arriveTime) { time temp; temp = p[i]; p[i] = p[j]; p[j] = temp; } } } } void Print(time *p) { float t = 0, w = 0; for(int i = 0; i count; i++) { t += p[i].ti; w += p[i].wi; cout p[i].name ; } cout 平均周转时间: t / count 平均带权周转时间: w / count endl; } /////////////// //先来先服务 ////////////// void FCFS(time *p) { Sort(p); for(int i = 0; i count; i++) { p[i].state = true; if (i == 0) { p[i].finishTime = p[i].arriveTime + p[i].runTime; } else { p[i].finishTime = p[i - 1].finishTime + p[i].runTime;//上一个作业完成时间+自己 作业的运行时间 } p

文档评论(0)

187****5045 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档