处理机调度之作业调度
3.1处理机调度的层次和调度算法
先行知识
- 处理机调度的主要目标
- 充分有效地利用处理机(CPU)资源
- 处理机调度的对象
- 作业、进程
- 作业与进程的关系
- 作业是任务实体,如:一次计算,一个控制过程
- 进程是执行实体,是系统分配资源的基本单位
- 一个作业由一个以上进程组成
1、处理机调度的层次
⑴高级调度(单向)
- 又称长程调度或作业调度。
- 高级调度主要用于多道批处理系统中。
⑵低级调度
- 又称为进程调度或短程调度。
- 进程调度是基本调度,所有系统都必须配备。
⑶中级调度(双向)
- 又称为内存调度。
- 主要目的是提高内存利用率和系统吞吐量。
- 中级调度实际上就是存储器管理中的对换功能。
- 可任选。
2、处理机调度算法的目标
总体目标
- ①资源利用率:为提高系统的资源利用率,应使系统中的处理机和其他所有资源都尽可能地保持忙碌状态。
- ②公平性:指应使诸进程都获得合理的CPU 时间,不会发生进程饥饿现象。
- ③平衡性:使系统中的CPU和各种外部设备都能经常处于忙碌状态,调度算法应尽可能保持系统资源使用的平衡性。
- ④策略强制执行:系统中的某些策略比如安全策略在必要的时候必须执行,即使会造成某些工作的延迟也要执行。
三种基本操作系统的目标
周转时间
- 平均周转时间:
- 带权周转时间:W=T/Ts
- 平均带权周期时间:
3.2作业与作业调度
3.2.1批处理系统中的作业及调度
1、作业和作业步
- (1)作业:作业是一个比程序更为广泛的概念,它不仅包含了通常的程序和数据,而且还应配有一份作业说明书,系统根据该说明书来对程序的运行进行控制。
- (2)作业步:作业中相对独立又相互关联的加工步骤。
2、作业控制块JCB
在作业运行期间,系统就按照JCB中的信息和作业说明书对作业进行控制。
3、作业运行的三个阶段和三种状态
- ⑴收容阶段→后备状态
- ⑵运行阶段→运行状态
- ⑶完成阶段→完成状态
4、作业调度的主要任务
按照一定的调度算法,从外存的后备队列中,选取某些作业调入内存,并为它们创建进程、分配必要的资源。
- 在每次执行作业调度时,须做出以下两个决定:
- 接纳多少个作业
取决于多道程序度,即允许多少个作业同时在内存中运行。 - 接纳哪些作业
取决于所采用的调度算法。
- 接纳多少个作业
3.2.2先来先服务和短作业优先调度算法
1.先来先服务FCFS(first-come first-served):
- 该算法按照作业到达的先后次序进行调度。
- 优点:实现简单。
- 缺点:
- 没考虑作业(进程)的优先级。
- 效率不高,只顾及作业等候时间,没考虑作业要求服务时间的长短;不利于短作业。
FCFS算法示例
下表列出了A、B、C、D四个作业分别到达系统的时间、要求服务的时间、开始执行的时间及各自的完成时间,计算出各自的周转时间和带权周转时间。
FCFS的特点
比较有利于长作业,而不利于短作业。
有利于CPU繁忙的作业,而不利于I/O繁忙的作业。
- CPU繁忙型作业:该类作业需要大量的CPU时间进行计算而很少请求I/O。如通常的科学计算。
- I/O繁忙型作业:指CPU进行处理时,需频繁的请求I/O。目前大多数事务处理都属于I/O繁忙型作业。
貌似“公平”!短作业等待时间长。
属于非抢占式!
2.短作业优先SJF(short job first):
- 该算法从队列中选出一个最短的作业进行调度。
- 优点:平均周转时间最短。
- 缺点:①对长作业不利;②必须预知作业的运行时间
SJF算法示例
注意,调度过程中,从就绪队列中选出作业的顺序是:
A ->D->B->E->C(对于最先到达的作业A先执行)
最短剩余时间优先算法SRTF(Shortest Remaining Time First)(抢占式)
如采用最短剩余时间优先算法SRTF(Shortest Remaining Time First),情况将如何变化。
SJF算法优缺点
- 算法容易实现;
- 能有效降低作业的平均等待时间;
- 忽视了作业等待时间,对长作业不利,有可能导致长作业(进程)长期不被调度(出现饥饿现象);
- 要精确知道一个作业的运行时间比较困难的。
3.23优先级调度算法和高响应比优先调度算法
1.优先级调度算法(priority-scheduling algorithm,PSA)
基于作业的紧迫程度,由外部赋予作业相应的优先级,调度算法是根据该优先级进行调度的。这样就可以保证紧迫性作业优先运行。
优先级算法示例
假定在单CPU条件下有下列要执行的作业按顺序先后到达:
① 用执行时间图描述非抢占优先级调度算法执行这些作业的情况(数值越大优先级越高)。
② 算出各作业的周转时间和带权周转时间
2.高响应比优先调度算法(Highest Response Ratio Next,HRRN)
高响应比优先调度算法既考虑了作业的等待时间,又考虑作业运行时间,因此既照顾了短作业,又不致使长作业的等待时间过长,从而改善了处理机调度的性能。
- 高响应比优先算法的实现:
由于等待时间与服务时间之和,就是系统对该作业的响应时间,故该优先级又相当于响应比RP。据此,又可表示为:
高响应比优先算法示例
- 有两个作业A和B,
- 分别在7:00和8:30到达系统,
- 它们估计的计算时间分别为0.8小时和0.1小时,
- 系统在9:00开始以高响应比优先调度算法进行调度,
- 请问在单道执行时这两道作业被选中的次序以及选中时的响应比。
- 在9:00开始调度时,两个作业的响应比如下:
- A作业的响应比=1+120/48=3.5
- B作业的响应比=1+30/6=6
- 因此,先选中作业B!
- 当作业A执行时,其响应比=1+(120+6)/48=3.625
公式深入理解
- 算法基本思想: HRRN算法在当前作业执行完时,计算剩余作业的响应比,选取响应比最高的作业投入运行。
- 举例:以下四个作业先后到达系统,按HRRN进行调度,请给出调度顺序:
- 开始只有作业1,被选中,执行时间20ms;
- 作业1执行完毕,响应比依次为1+15/15、1+10/5、1+5/10,作业3被 选中,执行时间5ms;
- 作业3执行完毕,响应比依次为1+20/15、1+10/10,作业2被选中,执行时间15ms;
- 作业2执行完毕,作业4被选中,执行时间10ms;
- 平均作业周转时间T = (20+15+35+35)/4 = 26.25
- 平均带权作业周转时间W = (20/20+15/5+35/15+35/10)/4 = 2.46
- 举例:以下四个作业先后到达系统,按HRRN进行调度,请给出调度顺序:
HRRN算法优缺点
- 既考虑作业等待时间,又考虑作业的运行时间 ;
- 既照顾短作业又不使长作业的等待时间过长 ;
- 计算响应比需要耗费时间。
处理机调度之作业调度相关推荐
- 操作系统学习笔记 第三章:处理机调度与死锁(王道考研)
本文章基于网课: 2019 王道考研 操作系统 考试复习推荐资料:操作系统复习总结 - 百度文库 (baidu.com) 需要相关电子书的可以关注我的公众号BaretH后台回复操作系统 第一章:操作系 ...
- 七、处理机调度概念、层次
一.知识总览 二.调度的基本概念 1.当有一堆任务要处理,但由于资源有限,这些事情没法同时处理.这就需要确定某种规则(时间短优先.先来先服务等)来决定这些任务的顺序,这就是"调度" ...
- 【408预推免复习】操作系统之处理机调度与死锁
[408&预推免复习]操作系统之处理机调度与死锁 文章目录 1 作业调度和进程调度 2 实时调度和死锁概述 3 预防死锁和避免死锁 1 作业调度和进程调度 什么是处理机调度? 处理机调度:如何 ...
- 操作系统(十一)处理机调度概述
在多道程序系统中,调度是指资源分配,而处理机调度则指的是对处理机这种资源的分配. 处理机调度算法是指根据处理机分配策略所规定的处理分配算法,在不同的操作系统中采用的调度方式和调度算法并不完全相同. 一 ...
- 操作系统(十三)处理机调度的概念、层次
2.2.1 处理机调度的概念.层次 目录 2.2.1 处理机调度的概念.层次 2.2.1.1 处理机调度的概念 2.2.1.2 处理机调度的三个层次 2.2.1.3 小结 2.2.1.1 处理机调度的 ...
- 操作系统--处理机调度
操作系统–处理机调度 三个层次 高级调度(作业调度):按照某种规则,从后备队列中选择合适的作业将其调入内存,并为其创建进程 中级调度(内存调度):按照某种规则,从挂起队列中选择合适的进程将其数据调回内 ...
- 操作系统:第二章 进程管理2 - 处理机调度
本文已收录至 Github(MD-Notes),若博客中有图片打不开,可以来我的 Github 仓库:https://github.com/HanquanHq/MD-Notes,涵盖了互联网大厂面试必 ...
- 王道操作系统考研笔记——2.1.6 处理机调度的概念和层次
文章目录 2.1.6 处理机调度的概念和层次 2.1.6.1 调度的基本概念 2.1.6.2 高级调度 2.1.6.3 中级调度 2.1.6.4 进程的挂起态和七状态模型 2.1.6.5 低级调度 2 ...
- 6 操作系统第二章 进程管理 处理机调度
文章目录 1 处理机调度 1.1 处理机调度概念 1.2 处理机调度三大层次 1.3 处理机三层调度的联系.对比 1.4 处理机调度小结 2 进程调度 2.1 进程调度.进程切换时机 2.2 进程调度 ...
最新文章
- 实现DataGridView和DevExpress.GridControl表头全选功能
- AUC 评价指标详解,准确率(ACC),敏感性(sensitivity),特异性(specificity)计算 Python3【TensorFlow2入门手册】
- Linux 网络编程——网络字节序(三)
- 读取excel内容转为二维list
- span里面插入文字
- mysql5.5启动报错:The server quit without updating PID file ([FAILED]localhost.localdomain.pid)....
- aiohttp/flask python后端单元测试,单元测试覆盖率测试
- (二十二)用RANSAC算法来求线性回归模型的参数
- linux程序设计大作业,LINUX/UNIX Shell编程大作业
- 最全的Vim操作快捷键
- 普元eos根据查询条件导出excel表格
- steam密码查看_如何查看和清除Steam中的先前别名
- Sublime Text 一键删除空白行的方法
- 3Dvr全景制作VR全景技术讲解-道可云
- 自媒体平台搜狗号登陆 搜狗挑战百度、头条有胜算吗?
- Android中文字加下划线的方法
- The Expressive Power of Neural Networks: A View from the Width
- MMO游戏设计一:角色行走
- 262-我的大学竞选的事迹材料
- 送外卖优先级_如何在恶劣天气让外卖小哥优先送您的订单?
热门文章
- 你的破解版CAD出现过多少问题?
- 一个比 Nginx 功能更强大的 Web 服务器
- 一款非常好用的前端Web组态工具(可视化)-Sovit2D
- 北京英克赋能医药新零售:“全渠道”运营如何打破边界?
- daysmatter安卓版_倒数日days matter下载-倒数日days 安卓版v1.0.2-PC6安卓网
- 魔百和UNT402A-0U_IPTV_S905L原厂线刷固件(当贝桌面,可救砖)
- RV蜗轮蜗杆减速机特点及价格决定的因素
- CF614A【签到题】
- 计算机电源 80plus,电源上的80PLUS指的是什么 电源上的80PLUS介绍【详解】
- Python画“一箭穿心”,简单易懂。