优先级法、非强占式短进程优先算法(共14页).doc





《优先级法、非强占式短进程优先算法(共14页).doc》由会员分享,可在线阅读,更多相关《优先级法、非强占式短进程优先算法(共14页).doc(14页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上学 号: 课 程 设 计题 目进程调度模拟设计优先级法、非强占式短进程优先算法学 院计算机专 业班 级姓 名指导教师 吴利军2013年1月16日课程设计任务书学生姓名: 指导教师: 吴利军 工作单位: 计算机科学与技术学院 题 目: 进程调度模拟设计优先级法、非强占式短进程优先算法初始条件:1预备内容:阅读操作系统的处理机管理章节内容,对进程调度的功能以及进程调度算法有深入的理解。2实践准备:掌握一种计算机高级语言的使用。要求完成的主要任务: (包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)1模拟进程调度,能够处理以下的情形: 能够选择不同的调度算法(要求
2、中给出的调度算法); 能够输入进程的基本信息,如进程名、优先级、到达时间和运行时间等; 根据选择的调度算法显示进程调度队列; 根据选择的调度算法计算平均周转时间和平均带权周转时间。2设计报告内容应说明: 需求分析; 功能设计(数据结构及模块说明); 开发平台及源程序的主要部分; 测试用例,运行结果与运行情况分析; 自我评价与总结:i)你认为你完成的设计哪些地方做得比较好或比较出色;ii)什么地方做得不太好,以后如何改正;iii)从本设计得到的收获(在编写,调试,执行过程中的经验和教训);iv)完成本题是否有其他方法(如果有,简要说明该方法);时间安排:设计安排一周:周1、周2:完成程序分析及设
3、计。周2、周3:完成程序调试及测试。周4、周5:验收、撰写课程设计报告。(注意事项:严禁抄袭,一旦发现,一律按0分记)指导教师签名: 年 月 日系主任(或责任教师)签名: 年 月 日 进程调度模拟设计 -优先级法、非强占式短进程优先算法一问题描述 设计一程序模拟进程调度,能够选择优先级和非抢占短作业两种算法对进程调度。可以输入相关进程信息(进程名,达到时间,执行时间,优先级),最终能显示进程调度的序列。并能显示这些进程的平均周转时间和带权平均周转时间。二需求分析 通过设计一个模拟进程调度的系统,来实现进程调度,对进程调度的功能以及进程调度算法有一个更加深入的理解。 进程PCB(包含进程名、到达
4、时间、预计运行时间) 调度算法(优先级、非强占式短进程优先) 模拟进程调度,能够处理以下的情形: 能够选择不同的调度算法(要求中给出的调度算法); 能够输入进程的基本信息,如进程名、到达时间和运行时间等; 根据选择的调度算法显示进程调度队列; 根据选择的调度算法计算平均周转时间和平均带权周转时间。 此次做的进程调度模拟系统,用户可以输入各进程信息(包含进程名、到达时间、运行时间)。输入进程数,然后输入进程的提交时间和运行时间,显示优先级和非强占式短进程优先调度算法的进程名、提交时间、运行时间、开始时间、结束时间、周转时间、带权周转时间、执行时间、平均周转时间和平均带权周转时间。 优先级法: 优
5、先级法可被用做作业或进程的调度策略。首先,系统或用户按某种原则为作业或进程指定一个优先级来表示该进程或作业所享有的优先权。改算法的核心是确定进程或作业的优先级。 确定优先级的方法可分为两类。即静态法和动态法。 静态法根据作业的或进程的静态特性,在作业或进程开始执行前就确定它们的优先级,一旦开始执行之后就不能改变。动态法则不然,它把作业或进程的静态特性结合起来确定作业或进程的优先级,随着作业或进程的执行过程,其优先级不断变化。 非抢占短作业优先法: 不可抢占式 Non-preemptive(非剥夺式):某一进程被调度运行后,除非由于它自身的原因不能运行,否则一直运行下去。 短作业优先调度算法(S
6、JF, Shortest Job First),又称为“短进程优先”SPN(Shortest Process Next);这是对FCFS算法的改进,其目标是减少平均周转时间。基本思想:对预计执行时间短的作业(进程)优先处理。通常后来的短作业不抢先正在执行的作业。在一般情况下这种调度算法比先来先服务调度算法的效率要高一些。实现相对先来先服务调度算法要困难些,如果作业的到来顺序及运行时间不合适,会出现饿死现象,例如,系统中有一个运行时间很长的作业J,和几个运行时间小的作业,然后,不断地有运行时间小于J的作业的到来,这样,作业J就得不可调度而饿死。另外,作业运行的估计时间也有问题。三功能设计 1.数
7、据结构 在此次课程设计中主要采用了结构体数组的存储方式,将一个进程信息存储在一个结构体中,包括进程名称、进程优先级、进程提交时间、进程运行时间、进程周转时间。具体实现如下:struct PROchar name10;/进程名float arrivetime;进程时间float servicetime;/进程执行时间float starttime;/开始时间float finishtime;/完成时间int xy; /优先级float zztime;/周转时间float dqzztime;/带权周转时间; 2.程序流程框图 优先级 非抢占式短作业优先 综合流程图 3.模块说明 本次课程设计中一共
8、涉及五个模块(结构体定义,要处理进程信息的输入,两种算法的实现,处理完毕后进程信息的输出,主函数) (1)结构体定义如上所示 (2)进程信息的输入 void input(PRO *p,int n) P为结构体数组名,n为进程个数。 (3)两种算法的实现 优先级算法的具体实现 void YX(PRO *p,int N)float arrivetime=0,servicetime=0,starttime=0,finishtime=0,zztime=0;float dqzztime;int xy=0;sortxy(p,N);/基于时间的排序同时处理多个进程同时到达情况。 for(int m=0;mN
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 优先级 强占 进程 优先 算法 14

限制150内