计算机操作系统——作业调度算法
文章目录
- 一、作业的基本知识
- 1.作业和作业步
- 2.作业运行的三个阶段
- 二、先来先服务(FCFS)调度算法
- 1.算法思想
- 2.算法评价
- 三、短作业优先(SJF)调度算法
- 1.算法思想
- 2.算法评价
- 四、优先级调度算法(PSA)
- 1.算法思想
- 2.算法评价
- 五、高响应比优先调度算法(HRRN)
一、作业的基本知识
1.作业和作业步
(1)作业:作业是一个比程序更为广泛的概念,包含通常的程序和数据,还有一份作业说明书。系统根据该说明书来对程序的运行进行控制。
(2)作业步:在作业运行期间,每个作业都必须经过若干个相对独立,又相互关联的顺序加工步骤才得到结果,其中的每一个加工步骤称为一个作业步。
2.作业运行的三个阶段
(1)收容阶段。操作员把用户提交的作业通过某种输入方式输入到硬盘上,再为改作业建立JCB(作业控制块),并把作业放到后备队列中。此时作业的状态称为后备状态。
(2)运行阶段。当作业被作业调度选中后,便为它分配必要的资源和建立进程,并将它放入就绪队列。一个作业从第一次进入就绪队列开始,直到它运行结束前,在此期间都处于运行状态。
(3)完成阶段。当作业运行完成,或发生异常情况而提前结束时,作业便进入完成阶段,相应的作业状态为“完成状态”。
二、先来先服务(FCFS)调度算法
1.算法思想
顾名思义,系统按照作业的先后到达顺序来进行调度。即优先考虑在系统中等待时间最长的作业,而不考虑该作业所需要执行的时间。
2.算法评价
可以明显感觉到缺点,就是如果有一个非常短的作业,如果这个短作业之前如果有一个非常长的作业的话,那么这个短作业不得不要等很长的时间。
在该算法上可以进行和其他算法进行结合,比如优先级,可以设置好几个队列,每个队列之间的优先级不同,按照优先级选择队列,每个队列里的作业按照先来先服务的调度算法选择作业。
三、短作业优先(SJF)调度算法
1.算法思想
在先来先服务的调度算法中,我们提到,一个短作业为了等待前面的长作业完成,不得不要等待很长的时间,对于短作业来说,肯定显得不太公平。
短作业优先调度算法,顾名思义,以作业的长短来当作一个作业的优先级,作业越短(作业的长短是以作业所要求的运行时间来衡量的),优先级越高,就尽量要被越早的执行完成。
2.算法评价
短作业算法弥补了先来先服务算法的缺点——短作业等待时间可能过长。但是,仍有明显的缺点:
(1)必须预知作业大概的运行时间。一般都要预估偏长,因为如果预估运行时间短的话,可能作业还没有执行完就被终止了。
(2)对长作业来说,可能会产生饥饿现象。
(3)采用SJF调度算法时,无法实现人机交互。
(4)该调度算法没有考虑作业的紧迫度,所以紧急作业可能得不到及时处理。
四、优先级调度算法(PSA)
对于先来先服务算法,作业的等待时间就是这个作业的优先级,等待时间越长,优先级越高。对于短作业优先调度算法来说,作业的长短就是作业的优先级,作业越短,优先级越高。
1.算法思想
由外部赋予作业优先级,至于根据什么来判断一个作业的优先级的高低,看情况了,比如,如果想要在短作业优先调度算法的基础上保证紧迫作业能够被优先完成的话,那么可以在作业长短的基础上再加上紧迫这一个优先级,可以将紧迫作业的优先级设置为最高优先级,那么紧迫作业就会被优先运行。
优先级调度算法是一个比较笼统的概念,至于根据什么判断作业的优先级,可以看情况。比如接下来讨论的高响应比就属于优先级调度算法,而高响应比优先调度算法中是同时根据作业的等待时间和作业的运行时间来判定一个作业的优先级的。
2.算法评价
该调度算法比较常见,而且比较灵活,可以选择多个因素来作为优先级的评判标准,可以有多个优先级,各个优先级之间又有高低之分,比如上面的假设中,作业的长短和作业的紧迫程度都可以是作业的优先级影响因素,而紧迫作业的优先级要比短作业的优先级高。
五、高响应比优先调度算法(HRRN)
在前面说的算法中,先来先服务调度算法仅仅以作业的等待时间作为优先级因素,而忽视了作业的运行时间。短作业优先算法仅仅以作业的运行时间作为优先级因素,而忽视了作业的等待时间。高响应比优先调度算法则是既考虑了作业的等待时间,又考虑了作业的运行时间。因此即照顾了短作业,而又不会造成长作业的饥饿现象。
在这里有一个动态优先级的概念,即优先级是会动态变化的。由于高响应比优先调度算法的优先级是根据作业的长短和作业的等待时间来断定的,所以一个作业的优先级肯定会根据时间而变换。该优先级的变化规律为:
优先权 = (等待时间+要求服务时间)/ 要求服务时间
由于等待时间与要求服务时间的和是系统对该作业的响应时间,所以:
优先权 = 响应时间 / 要求服务时间
由上式可以看出:
(1)如果作业的等待时间相同,那么作业要求服务时间越短,那么该作业的优先级就越高,类似于短作业优先调度算法,有利于短作业。
(2)当要求的服务时间相同时,作业的等待时间越长,那么作业的优先级越高,此时类似于先来先服务调度算法。
(3)对于长作业来说,随着时间的增长,长作业的优先级会变高,当等待时间足够长时,也会获得处理及,因此避免了短作业优先调度算法的长作业可能出现饥饿现象的缺点。
计算机操作系统——作业调度算法相关推荐
- 计算机操作系统——处理机调度算法
计算机操作系统--处理机调度算法 一.处理机调度的层次和调度算法的目标 1.处理及调度的层次 高级调度:(周期较长,大约几分钟一次) 又称为长程调度或作业调度 调度对象:作业 功能:根据算法决定将外存 ...
- 计算机操作系统作业答案,计算机操作系统作业及答案
计算机操作系统作业及答案 作业作业若页大小为,计算机地址总线为位,则页号共有多少位?逻辑地址空间最多包含多少页?逻辑地址在第几页?页内偏移是多少?若该页被装进物理块中,则物理地址是多少?解:所以页内偏 ...
- 操作系统作业调度算法c语言,操作系统课程设计报告电梯调度算法c语言实现.doc...
操作系统课程设计报告电梯调度算法c语言实现 操作系统课程设计报告电梯调度算法c语言实现 :调度 算法 电梯 课程设计 操作系统 操作系统课程设计报告 模拟操作系统课程设计 写一个简单的操作系统 篇一: ...
- 操作系统实验六:作业调度算法模拟
一.实验目的 (1)掌握周转时间.等待时间.平均周转时间等概念及其计算方法. (2)理解五种常用的进程调度算法(FCFS.SJF.HRRF.HPF.RR),区分算法之间的差异性,并用C语言模拟实现各算 ...
- 计算机操作系统——课后作业
课后作业 20220301 1.操作系统在计算机中位于( )之间. 2.操作系统是一种( ). 3.下面关于操作系统的叙述中正确的是( ). 4.在多道程序设计技术的计算机系统中,CPU( ). 5. ...
- 华南理工大学计算机操作系统课程设计大作业银行家死锁避免算法模拟,2016春操作系统大作业银行家死锁避免算法模拟.doc...
文档介绍: 2016春操作系统大作业银行家死锁避免算法模拟20160501华南理工大学"计算机操作系统"课程设计大作业计算机科学与技术专业:春2015班级:号:2015047420 ...
- 作业调度算法--高响应比优先 操作系统_处理器管理_编程题
操作系统_处理器管理_编程题 作业调度算法–高响应比优先 输入N个作业,输入每个的作业名字,到达的时间,服务的时间,根据高响应比优先算法,计算出每个作业的完成的时间,周转的时间,带权周转的时间(其中保 ...
- 作业调度算法--短作业优先 操作系统_处理器管理_编程题
操作系统_处理器管理_编程题 作业调度算法–短作业优先 输入N个作业,输入每个的作业名字,到达的时间,服务的时间,根据短作业优先算法,计算出每个作业的完成的时间,周转的时间,带权周转的时间(其中保留2 ...
- 计算机操作系统第四章作业
计算机操作系统第四章作业 1.何为静态链接?静态链接时需要解决两个什么问题? 答:静态链接是指在程序运行之前,先将各自目标模块及它们所需的库函数,链接成一个完整的装入模块,以后不再拆开的链接方式. 将 ...
最新文章
- AI 如果 “智力爆炸” ,只有普通智力的人类是蝼蚁还是宠物?
- Android自定义组件之简单组合
- Delphi 写服务程序
- java编程点滴(3)--ubuntu下jdk的配置
- 洛谷P2866 [USACO06NOV]糟糕的一天Bad Hair Day(单调栈)
- Java和操作系统交互细节
- 从PeopleEditor控件中取出多用户并更新到列表
- java 信号量 互斥锁_线程同步(互斥锁与信号量的作用与区别)
- python面向对象难学_学不下去了!?详解Python面向对象核心概念,简历没跑了
- 「每天一道面试题」对象和GC Roots引用链没连接时一定会被回收吗
- UNIX环境高级编程(第2版)第11-17章
- PDF怎么转CAD?分享两种转换方法
- 经纬度与大地坐标相互转换
- Electron点击右上角关闭按钮隐藏任务栏图标(electron类似杀毒软件的任务栏图标)
- 草稿草稿草稿22.10.9 “yuyu“ IO进程线程
- 获取设备唯一编号替代IMEI新方案
- 硅二极管温度传感器的特点
- FT232驱动安装不成功的解决方案
- centos——开机显示 give root password for maintenance
- 主生产计划(MPS)及物料需求计划(MRP)
热门文章
- Python之深入解析一行代码计算每个省面积的神器Geopandas
- Swift之深入解析“属性”的底层原理
- 【工业】工业控制博客汇总
- 【Android】Android之WiFi开发应用示例
- cmd上写的java简单代码_用cmd编辑一个超级简单的小游戏,求代码
- git url地址无效_如何同步多个 git 远程仓库
- Jfinal 对象列表返回前台json数据
- Codeforces 1491 D. Zookeeper and The Infinite Zoo (二进制处理)
- 【算法】二分图的判定
- 每天一道LeetCode-----计算一个直方图空隙的容量(如果装水能装多少)