- 1、本文档共7页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
作业调度
一、试验目的
1、对作业调度的有关内容作深入的理解。
2、明白作业调度的重要任务。
3、通过编程掌握作业调度的重要算法。
二、试验内容及规定
1、对于给定的一组作业,给出其抵达时间和运行时间,例如下表所示:
作业名
A
B
C
D
E
F
抵达时间
0
2
5
5
12
15
服务时间
6
50
20
10
40
8
2、分别用先来先服务算法、短作业优先和响应比高者优先三种算法给出作业的调度次序。
3、计算每一种算法的平均周转时间及平均带权周转时间并比较不一样算法的优劣。
三、重要算法流程图
开始
开始
退出系统
响应比高者优先
短作业优先
先来先服务算法
生成调度顺序队列
计算平均周转时间
及平均带权周转时
问
结束
四、测试数据及运行成果测试数据
workA={作业名:A,抵达时间’:0,服务时间’:6}.
workB={作业名:B,抵达时间’:2,服务时间:50}workC={作业名:C,抵达时间’:5,服务时间:20}workD=(作业名:D,抵达时间:5,服务时间:10}workE={作业名:E,抵达时间’:12,服务时间’:40}
workF={作业名:F,抵达时间’:15,服务时间’:8}
运行成果
先来先服务算法
调度次序:[A,B,C,D,E,F]周转时间:74.
带权周转时间:4.
短作业优先算法
调度次序:[A,D,F,C,E,B]周转时间:44.
带权周转时间:1.
响应比高者优先算法
调度次序:[A,D,F,E,C,B]周转时间:48.
带权周转时间:1.5五、代码
#encoding=gbk
workA={作业名:A,抵达时间:0,服务时间:6,结束时间:0,周转时间:0,带权周转时间:0}
workB={作业名:B,抵达时间:2,服务时间:50}workC={作业名:C,抵达时间:5,服务时间:20}workD={作业名:D,抵达时间:5,服务时间:10}workE={作业名:E,抵达时间:12,服务时间:40}workF={作业名:F,抵达时间:15,服务时间:8}list1=[workB,workA,workC,workD,workE,workF]list2=[workB,workA,workC,workD,workE,workF]list3=[workB,workA,workC,workD,workE,workF]
#先来先服务算法deffcfs(list):
resultlist=sorted(list,key=lambdas:s[抵达时间])returnresultlist
#短作业优先算法
defsjf(list):
time=0
resultlist=[]
forworklinlist:
time+=work1[服务时间]
listdd=[]ctime=0
foriinrange(time):forwork2inlist:
ifwork2[抵达时间]=ctime:
listdd.append(work2)
iflen(listdd)!=0:
li=sorted(listdd,key=lambdas:s[服务时间])resultlist.append(li[0])
list.remove(li[0])
ctime+=li[0][服务时间]listdd=[]
returnresultlist
#响应比高者优先算法
defhrrn(list):
time=0
resultlist=[]
forworklinlist:
time+=work1[服务时间]listdd=[]
ctime=0
foriinrange(time):forwork2inlist:
ifwork2[抵达时间]=ctime:
work2[等待时间]=ctime-work2[抵达时间]listdd.append(work2)
iflen(listdd)!=0:
li=sorted(listdd,key=lambdas:(s[等待时间]+s[服务时间])/s[服务时间
])
resultlist.append(li[-1])list.remove(li[-1])
ctime+=li[-1][服务时间]listdd=[]
returnresultlist
#调度次序
defshunxu(resultlist,miaoshu):print(miaoshu)
ddsx=[]
forworkinr
您可能关注的文档
- 《第三节 动量守恒定律》(同步训练)高中物理选择性必修 第一册_粤教版_2024-2025学年.docx
- 《第三章 热力学定律》试卷及答案_高中物理选择性必修第三册_教科版_2024-2025学年.docx
- 《第十三章 原子结构》试卷及答案_高中物理选择性必修第三册_沪科版_2024-2025学年.docx
- 《第一节 电子的发现》(同步训练)高中物理选择性必修第三册_沪科版_2024-2025学年.docx
- 2025年报关员资格深度解析班精华讲义.docx
- 2025年操作系统进程调度策略性能分析报告.docx
- 2025年操作系统进程管理调度策略分析与优化实践报告.docx
- 2025年操作系统进程管理实践解析(1).docx
- 2025年操作系统进程同步互斥实验攻略与实践解析.docx
- 2025年操作系统进程同步机制与互斥策略实践解析.docx
文档评论(0)