操作系统实验报告 作业调度.pdf

上传人:灯火****19 文档编号:137207654 上传时间:2020-07-06 格式:PDF 页数:5 大小:213.71KB
返回 下载 相关 举报
操作系统实验报告 作业调度.pdf_第1页
第1页 / 共5页
操作系统实验报告 作业调度.pdf_第2页
第2页 / 共5页
操作系统实验报告 作业调度.pdf_第3页
第3页 / 共5页
操作系统实验报告 作业调度.pdf_第4页
第4页 / 共5页
操作系统实验报告 作业调度.pdf_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《操作系统实验报告 作业调度.pdf》由会员分享,可在线阅读,更多相关《操作系统实验报告 作业调度.pdf(5页珍藏版)》请在金锄头文库上搜索。

1、作业调度作业调度 120511504120511504 一、实验目的 1、对作业调度的相关内容作进一步的理解。 2、明白作业调度的主要任务。 3、通过编程掌握作业调度的主要算法。 二、实验内容及要求 1、对于给定的一组作业, 给出其到达时间和运行时间,例如下 表所示: 2、分别用先来先服务算法、短作业优先和响应比高者优先三种 算法给出作业的调度顺序。 3、计算每一种算法的平均周转时间及平均带权周转时间并比较 不同算法的优劣。 三、程序中使用的数据结构及符号说明 进程结构体进程结构体 作业名作业名:A,到达时间到达时间:0,服务时间服务时间:6,结束时间结束时间:0,周转时间周转时间:0,带权带

2、权 周转时间周转时间:0 作业名ABCDEF 到达时间02551215 服务时间6502010408 四、主要算法流程图 五、测试数据及运行结果 测试数据 workA=作业名作业名:A,到达时间到达时间:0,服务时间服务时间:6 workB=作业名作业名:B,到达时间到达时间:2,服务时间服务时间:50 workC=作业名作业名:C,到达时间到达时间:5,服务时间服务时间:20 workD=作业名作业名:D,到达时间到达时间:5,服务时间服务时间:10 workE=作业名作业名:E,到达时间到达时间:12,服务时间服务时间:40 workF=作业名作业名:F,到达时间到达时间:15,服务时间服

3、务时间:8 运行结果 先来先服务算法先来先服务算法 调度顺序调度顺序:A, B, C, D, E, F 周转时间周转时间:74.1666666667 带权周转时间带权周转时间:4.83333333333 短作业优先算法短作业优先算法 调度顺序调度顺序:A, D, F, C, E, B 周转时间周转时间:44.8333333333 带权周转时间带权周转时间:1.16666666667 响应比高者优先算法响应比高者优先算法 调度顺序调度顺序:A, D, F, E, C, B 周转时间周转时间:48.1666666667 带权周转时间带权周转时间:1.5 六、实验体会或对改进实验的建议 七、源代码

4、#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,wo

5、rkC,workD,workE,workF list2=workB,workA,workC,workD,workE,workF list3=workB,workA,workC,workD,workE,workF #先来先服务算法先来先服务算法 def fcfs(list): resultlist = sorted(list, key=lambda s: s到达时间到达时间) return resultlist #短作业优先算法短作业优先算法 def sjf(list): time=0 resultlist= for work1 in list: time+=work1服务时间服务时间 list

6、dd= ctime=0 for i in range(time): for work2 in list: if work2到达时间到达时间=ctime: listdd.append(work2) if len(listdd)!=0: li = sorted(listdd, key=lambda s: s服务时间服务时间) resultlist.append(li0) list.remove(li0) ctime+=li0服务时间服务时间 listdd= return resultlist #响应比高者优先算法响应比高者优先算法 def hrrn(list): time=0 resultlist

7、= for work1 in list: time+=work1服务时间服务时间 listdd= ctime=0 for i in range(time): for work2 in list: if work2到达时间到达时间=ctime: work2等待时间等待时间=ctime-work2到达时间到达时间 listdd.append(work2) if len(listdd)!=0: li = sorted(listdd, key=lambda s: (s等待时间等待时间+s服务时服务时 间间)/s服务时间服务时间) resultlist.append(li-1) list.remove(

8、li-1) ctime+=li-1服务时间服务时间 listdd= return resultlist #调度顺序调度顺序 def shunxu(resultlist,miaoshu): print(miaoshu) ddsx= for work in resultlist: for d,x in work.items(): if d.decode(gb2312)=u作业名作业名: ddsx.append(x) #print d.decode(gb2312)+:+str(x) print(u调度顺序调度顺序:+str(ddsx) turnaroundTime(resultlist) #平均周转

9、时间及平均带权周转时间平均周转时间及平均带权周转时间 def turnaroundTime(resultlist): time=0 for work in resultlist: work结束时间结束时间=work服务时间服务时间+time time=work结束时间结束时间 work周转时间周转时间=work结束时间结束时间-work到达时间到达时间 work带权周转时间带权周转时间=work周转时间周转时间 / work服务时间服务时间 zzsj=0 dqzzsj=0 for work in resultlist: zzsj+=work周转时间周转时间 dqzzsj+=work带权周转时间带权周转时间 print(周转时间周转时间:+str(zzsj*1.0/len(resultlist) print(带权周转时间带权周转时间:+str(dqzzsj*1.0/len(resultlist) print() shunxu(fcfs(list1),先来先服务算法先来先服务算法) shunxu(sjf(list2),短作业优先算法短作业优先算法) shunxu(hrrn(list3),响应比高者优先算法响应比高者优先算法)

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 总结/报告

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号