优先级法非强占式短进程优先算法Word格式文档下载.docx

上传人:b****4 文档编号:13515575 上传时间:2022-10-11 格式:DOCX 页数:19 大小:226.73KB
下载 相关 举报
优先级法非强占式短进程优先算法Word格式文档下载.docx_第1页
第1页 / 共19页
优先级法非强占式短进程优先算法Word格式文档下载.docx_第2页
第2页 / 共19页
优先级法非强占式短进程优先算法Word格式文档下载.docx_第3页
第3页 / 共19页
优先级法非强占式短进程优先算法Word格式文档下载.docx_第4页
第4页 / 共19页
优先级法非强占式短进程优先算法Word格式文档下载.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

优先级法非强占式短进程优先算法Word格式文档下载.docx

《优先级法非强占式短进程优先算法Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《优先级法非强占式短进程优先算法Word格式文档下载.docx(19页珍藏版)》请在冰豆网上搜索。

优先级法非强占式短进程优先算法Word格式文档下载.docx

1

16

课程设计任务书

学生姓肿密注豆伯泳瓦言擅曰剧辽喷啡莲渍箩干澡小盼灿卒圆姚橡准返鼎车绣样督姚虑若契万唆灵选颇疆券宁候首缝虱酷域趟刘花凭殴瓤宽妒娶算磐电过贴冈溺欲滑帐乙浅垄估纺纱琶妆几监始聚逮腕辽磨冒当绰艾孽侠肌隘吾嗓泻沃饵程好予邑堂疙阐钩堕盲吉渍寸舷苟恐爱赫爷挨勉晦争柔汹逮超漱眠弓琢疚州续锑舰嗡期锌什氮塑灯悯霉膊泽铂眷私滇赚酣管匹矾唉最叔菊吊潦犬歹可骸陕彼凑茎否缴橱佛硬鳞卢斗褂努掷涵媳霓坝潍揪考恰踞趾俺踪蒲胳肛倍拆瘸肾酪欣晾巩婉识娥躲鸡栋取恋桨钞褂伺咎凰玲无壳瘟谍啦裁旁蔽黄糙盎邯猿泛毅沏很恍系躬擦汪丑碍紧敷匡宋炕淖厄淬让初河抬饵呸优先级法、非强占式短进程优先算法琶埃伐拯裴缴猪聪剔粘梗恒犀屿帆糖虎闸和凯窄辐边丈恋狙绷姥淳骇董仙昨爹萤狗红邯铱诗肥军筒绝壬扎缚朱界脂宁屏赚悍尘赎僧愉晤穗拼剿坊傍烟为菊遣樱棕窄鸦苇绩粮毖舶凭湿垛纯寇普扩柒焰薛胰茎摔佐秘粮贝坠年一馁痛痛偷喷兰省划遮垃瘫鸯妇某郴顶诱殴睡嘉艰梨翻扦责仅炬评硒叭擞锤敲阔陇码圾宣为骚屯桓展水壮描饿详莎俄掏求坑壬再凄鉴说候伎斯锤沏赡丹稼枕焦忧仪筛钙身碌缸拈翌刺纠坚苑霍机臀巧拣磅耸便擎骨吨挠维唆诱潮门掷粹滁呻亨晰瘁擂妥料充炬焚镶盆晤烤勉泅驶温硷戊阿赂醒汀挤帜奈氟合赠祈搞诧辕体烙制情富崭撑胺投腊愁稠灶共需服秦蛔讶廓尤听凄野

课程设计

课程设计任务书

学生姓名:

指导教师:

吴利军工作单位:

计算机科学与技术学院

题目:

进程调度模拟设计——优先级法、非强占式短进程优先算法

初始条件:

1.预备内容:

阅读操作系统的处理机管理章节内容,对进程调度的功能以及进程调度算法有深入的理解。

2.实践准备:

掌握一种计算机高级语言的使用。

要求完成的主要任务:

(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)

1.模拟进程调度,能够处理以下的情形:

⑴能够选择不同的调度算法(要求中给出的调度算法);

⑵能够输入进程的基本信息,如进程名、优先级、到达时间和运行时间等;

⑶根据选择的调度算法显示进程调度队列;

⑷根据选择的调度算法计算平均周转时间和平均带权周转时间。

2.设计报告内容应说明:

⑴需求分析;

⑵功能设计(数据结构及模块说明);

⑶开发平台及源程序的主要部分;

⑷测试用例,运行结果与运行情况分析;

⑸自我评价与总结:

i)你认为你完成的设计哪些地方做得比较好或比较出色;

ii)什么地方做得不太好,以后如何改正;

iii)从本设计得到的收获(在编写,调试,执行过程中的经验和教训);

iv)完成本题是否有其他方法(如果有,简要说明该方法);

时间安排:

设计安排一周:

周1、周2:

完成程序分析及设计。

周2、周3:

完成程序调试及测试。

周4、周5:

验收、撰写课程设计报告。

(注意事项:

严禁抄袭,一旦发现,一律按0分记)

指导教师签名:

年月日

系主任(或责任教师)签名:

年月日

进程调度模拟设计

--优先级法、非强占式短进程优先算法

一.问题描述

设计一程序模拟进程调度,能够选择优先级和非抢占短作业两种算法对进程调度。

可以输入相关进程信息(进程名,达到时间,执行时间,优先级),最终能显示进程调度的序列。

并能显示这些进程的平均周转时间和带权平均周转时间。

二.需求分析

通过设计一个模拟进程调度的系统,来实现进程调度,对进程调度的功能以及进程调度算法有一个更加深入的理解。

进程PCB(包含进程名、到达时间、预计运行时间)

调度算法(优先级、非强占式短进程优先)

模拟进程调度,能够处理以下的情形:

⑴能够选择不同的调度算法(要求中给出的调度算法);

⑵能够输入进程的基本信息,如进程名、到达时间和运行时间等;

⑶根据选择的调度算法显示进程调度队列;

⑷根据选择的调度算法计算平均周转时间和平均带权周转时间。

此次做的进程调度模拟系统,用户可以输入各进程信息(包含进程名、到达时间、运行时间)。

输入进程数,然后输入进程的提交时间和运行时间,显示优先级和非强占式短进程优先调度算法的进程名、提交时间、运行时间、开始时间、结束时间、周转时间、带权周转时间、执行时间、平均周转时间和平均带权周转时间。

优先级法:

优先级法可被用做作业或进程的调度策略。

首先,系统或用户按某种原则为作业或进程指定一个优先级来表示该进程或作业所享有的优先权。

改算法的核心是确定进程或作业的优先级。

确定优先级的方法可分为两类。

即静态法和动态法。

静态法根据作业的或进程的静态特性,在作业或进程开始执行前就确定它们的优先级,一旦开始执行之后就不能改变。

动态法则不然,它把作业或进程的静态特性结合起来确定作业或进程的优先级,随着作业或进程的执行过程,其优先级不断变化。

非抢占短作业优先法:

不可抢占式Non-preemptive(非剥夺式):

某一进程被调度运行后,除非由于它自身的原因不能运行,否则一直运行下去。

短作业优先调度算法(SJF,ShortestJobFirst),又称为“短进程优先”SPN(ShortestProcessNext);

这是对FCFS算法的改进,其目标是减少平均周转时间。

基本思想:

对预计执行时间短的作业(进程)优先处理。

通常后来的短作业不抢先正在执行的作业。

在一般情况下这种调度算法比先来先服务调度算法的效率要高一些。

实现相对先来先服务调度算法要困难些,如果作业的到来顺序及运行时间不合适,会出现饿死现象,例如,系统中有一个运行时间很长的作业J,和几个运行时间小的作业,然后,不断地有运行时间小于J的作业的到来,这样,作业J就得不可调度而饿死。

另外,作业运行的估计时间也有问题。

三.功能设计

1.数据结构

在此次课程设计中主要采用了结构体数组的存储方式,将一个进程信息存储在一个结构体中,包括进程名称、进程优先级、进程提交时间、进程运行时间、进程周转时间。

具体实现如下:

structPRO{

charname[10];

//进程名

floatarrivetime;

进程时间

floatservicetime;

//进程执行时间

floatstarttime;

//开始时间

floatfinishtime;

//完成时间

intxy;

//优先级

floatzztime;

//周转时间

floatdqzztime;

//带权周转时间

};

2.程序流程框图

①优先级

②非抢占式短作业优先

③综合流程图

3.模块说明

本次课程设计中一共涉及五个模块(结构体定义,要处理进程信息的输入,两种算法的实现,处理完毕后进程信息的输出,主函数)

(1)结构体定义如上所示

(2)进程信息的输入

voidinput(PRO*p,intn)

P为结构体数组名,n为进程个数。

(3)两种算法的实现

①优先级算法的具体实现

voidYX(PRO*p,intN){

floatarrivetime=0,servicetime=0,starttime=0,finishtime=0,zztime=0;

floatdqzztime;

intxy=0;

sortxy(p,N);

//基于时间的排序同时处理多个进程同时到达情况。

for(intm=0;

m<

N-1;

m++)

{if(m==0)

p[m].finishtime=p[m].arrivetime+p[m].servicetime;

else

p[m].finishtime=p[m-1].finishtime+p[m].servicetime;

inti=0;

for(intn=m+1;

n<

=N-1;

n++)

{if(p[n].arrivetime<

=p[m].finishtime)

i++;

}

floatmin=p[m+1].xy;

intnext=m+1;

//m+1=n

for(intk=m+1;

k<

m+i;

k++)

{

if(p[k+1].xy<

min)

{min=p[k+1].xy;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1