操作系统原理短作业优先算法报告附源代码_第1页
操作系统原理短作业优先算法报告附源代码_第2页
操作系统原理短作业优先算法报告附源代码_第3页
操作系统原理短作业优先算法报告附源代码_第4页
操作系统原理短作业优先算法报告附源代码_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

中国地质大学(北京)操作系统原理实习报告实习题目: 1、 2、 实习人员: 学号 姓名(组长) 学号 姓名 中国地质大学(北京) 课程名称:操作系统原理 成绩: 一、题目分析在批处理系统中,短作业优先算法是一种比较好的算法,其主要的不足之处是长作业的运行得不到保证。于是我们想到了一种办法解决这个问题,就是引用动态优先权、并使作业的优先级随着等待时间的增加而以速率a提高,长作业在等待一定的时间后,必然有机会分配到处理机,这样长作业也得到了运行。设计并实现一个采用高响应比算法的进程调度演示程序,响应比 R 定义如下:RWT/T1W/T 其中 T 为该作业估计需要的执行时间, 为作业在后备状态队列中的等待时 W间。 每当要进行作业调度时,系统计算每个作业的响应比,选择其中 R最大者投入执行。这样,即使是长作业,随着它等待时间的增加,W/T 也就随着增加,也就有机会获得调度执行。 这种算法是介于 FCFS 和 SJF 之间的一种折中算法。由于长作业也有机会投入运行,在同一时间内处理的作业数显然要少于SJF 法,从而采用 HRRN 方式时其吞吐量将小于采用 SJF 法时的吞吐量。另外,由于每次调度前要计算响应比,系统开销也要相应增加。二、数据结构结构体数组pathk 实现对进程响应比的计算 Pathmax 实现对进程响应比的排序 Pathii 实现程序的各阶段运行状况的输出三、算法流程图程序设计流程图开始读取进程判断进程是否进入内存对响应比排序高的进程先运行等待结束是是高响应比函数执行过程流程图开 始 当前作业为依编号找到的第一个还未执行的作业 当前作业是最后一个作业 当前作业和下一个还没执行的作业比较 当前作业在上次作业被执行完之前到达 同时到达 当前作业取较早达到且响应比较高的一个 当前作业取较早到达的一个 当前作业取相应比较高的一个 返回这一次要执行的作业四、重难点分析计算每一个进程的动态优先权,需要在每执行一个进程之后计算一遍未执行进程的优先权,从中选出优先权最高的一个执行。五、运行测试(截图)六、分工编码 :实验报告: 七、总结本次演算实验主要对最高响应比算法的理解和对进程调度的功能以及进程调度算法有了深入的理解。在这次的课程设计中,计算每一个进程的动态优先权,需要在每执行一个进程之后计算一遍未执行进程的优先权,从中选出优先权最高的一个执行,因为疏忽导致了响应比的计算错误,从而加大了完成代码的时间量。对于这次出现的这个问题,使我有了对程序设计的严谨性,课本基础知识的理解程度上有了更深刻的认识,也让我明白到了基础知识的重要性。完成此次课程实际之后,我对进程调度模拟设计的各种算法有了更进一步的理解,在编写程序中所遇到的问题让我有了对操作系统有了迫切要更深层次的掌握,并且感受到操作系统这门课程实在是很重要的一门课程。通过本次实验对用高响应比算法的优先调度算法有了更深入的理解和掌握,进一步巩固和复习操作系统的基础知识,更进一步的了解了结构化模块化程序设计的方法,提高了调试程序的技巧。八、附件:源代码#include #include #include #define MAXN 1500using namespace std;struct node bool vis;/是否已执行 char name;/进程名称 int come;/到达时间 int ser;/服务时间 int st;/开始时间 int end;/结束时间 int zhouzhuan;/周转时间 double right, youxianji;/带全周转时间,动态优先权, pathMAXN;int main() int n; int ansMAXN; cout n; cout 请依次输入每个进程的名字、到达时间、服务时间: endl; for(int i = 0; i e pathi.ser; pathi.vis = false; double sum = 0; int inde = 0; int now = 0; for(int i = 0; i n; +i) int j; for(j = 0; j now & pathj.vis = false) break; double MAX = -9999; int max; for(int k = 0; k j; +k) if(pathk.vis = false) pathk.youxianji = (now - e + pathk.ser)/(1.0 * pathk.ser); if(MAX pathk.youxianji) MAX = pathk.youxianji; max = k; pathmax.st = now; now += pathmax.ser; pathmax.end = now; pathmax.zhouzhuan = (pathmax.end - e); pathmax.right = (pathmax.zhouzhuan*1.0/ pathmax.ser); ansinde+ = max; pathmax.vis = true; cout 进程 开始时间 结束时间 周转时间 带权周转时间 endl; for(int i = 0; i n; +i) sum += pathi.right; cou

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论