操作系统 模拟进程调度算法

操作系统 模拟进程调度算法

ID:31345554

大小:111.50 KB

页数:13页

时间:2019-01-08

操作系统 模拟进程调度算法_第1页
操作系统 模拟进程调度算法_第2页
操作系统 模拟进程调度算法_第3页
操作系统 模拟进程调度算法_第4页
操作系统 模拟进程调度算法_第5页
资源描述:

《操作系统 模拟进程调度算法》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、实用标准文案操作系统——项目文档报告进程调度算法专业:班级:指导教师:姓名:学号:精彩文档实用标准文案一、核心算法思想1.先来先服务调度算法先来先服务调度算法是一种最简单的调度算法,该算法既可以用于作业调度,也可用于进程调度。当在作业调度中采用该算法时,每次调度都是从后备作业队列中选择一个或多个最先进入该队列的作业,将他们调入内存,为它们分配资源、创建进程,然后放入就绪队列。在进程调度中采用FCFS算法时,则每次调度是从就绪队列中选择一个最先进入该队列的进程,为之分配处理机,使之投入运行。该进程一直运行到完成或发生某事件而阻塞后才放弃处理机。FCFS算法比较有利于长作业(进程),而不利

2、于短作业(进程)。2.短作业(进程)优先调度算法短作业(进程)优先调度算法SJ(P)F,是指对短作业或短进程优先调度的算法。它们可以分别用于作业调度和进程调度。短作业优先(SJF)的调度算法是从后备队列中选择一个或若干个估计运行时间最短的作业,将它们调入内存运行。而短进程(SPF)调度算法则是从就绪队列中选出一个估计运行时间最短的进程,将处理机分配给它,使它立即执行并一直执行到完成,或发生某事件而被阻塞放弃处理机再重新调度。SJ(P)F调度算法能有效地降低作业(进程)的平均等待时间,提高系统吞吐量。该算法对长作业不利,完全未考虑作业的紧迫程度。3.高响应比优先调度算法在批处理系统中,短

3、作业优先算法是一种比较好的算法,其主要不足之处是长作业的运行得不到保证。如果我们能为每个作业引人动态优先权,并使作业的优先级随着等待时间的增加而以速率a提高,则长作业在等待一定的时间后,必然有机会分配到处理机。该优先权的变化规律可描述为:优先权=(等待时间+要求服务时间)/要求服务时间即优先权=响应时间/要求服务时间如果作业的等待时间相同,则要求服务的时间越短,其优先权越高,因而该算法有利于短作业。当要球服务的时间相同时,作业的优先权决定于其等待时间,等待时间越长,优先权越高,因而它实现的是先来先服务对于长作业,作业的优先级可以随着等待时间的增加而提高,当其等待时间足够长时,其优先级便

4、可以升到很高,从而也可获得处理机。4.时间片轮转算法在时间片轮转算法中,系统将所有的就绪进程按先来先服务的原则排成一个队列,每次调度时,把CPU分配给队首进程,并令其执行一个时间片。当执行的时间片用完时,由一个计数器发出时钟中断请求,调度程序便据此信号来停止该进程的执行,并将它送往就绪队列的末尾;然后,再把处理机分配给就绪队列中新的队首进程,同时也让它执行一个时间片。这样就可以保证就绪队列中的所有进程在一给定的时间内均能获得一时间片的处理机执行时间。换言之,系统能在给定的时间内响应所有用户的请求。二、核心算法流程图精彩文档实用标准文案1.先来先服务算法流程图开始创建进程PCB按到达时间

5、排序调用action,执行进程输出结果结束2.短进程优先算法开始获取进程信息按进程越要时间排序调用action,执行进程输出结果结束精彩文档实用标准文案3.时间片轮转算法开始获得进程信息调用时间片轮转算法在每个时间片执行程序大于0计算各进程剩余时间等于0进程结束4.髙响应比优先算法开始首先进行第一个进程计算剩余进程的响应比按优先级排序运行优先级最高的进程结束精彩文档实用标准文案四、源代码下面给出的是用C实现程序的源代码:#include#include#includetypedefstructpcb{intname;intneedt

6、ime;intarrivetime;intpri;intstate;intcputime;}plist;voidaction(plist*nowpro);voidaction(plist*nowpro){delay(1000);printf("nowisprocess%d",nowpro->name);nowpro->needtime--;if(nowpro->needtime==0){printf("theprocess%disend",nowpro->name);/*nowpro->state=1;*/printf("-----------------------------

7、n");}else{printf("process%dneedtimeis%d",nowpro->name,nowpro->needtime);printf("-----------------------------");}}voidcreatpro(intn,plist*process){intj;for(j=0;j

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。