操作系统3_作业与处理机调度
文章目录
- 操作系统3_作业与处理机调度
- 1. 作业的概念与组成
- 2. 作业的建立及状态
- 3. 处理机调度相关概念
- 3.1 调度级别
- 3.2 调度队列模型
- 3.3 选择准则
- 4. 作业调度与进程调度
- 5. 典型处理机调度算法
- 5.1 先来先服务算法FCFS
- 5.2 短作业优先算法SJF
- 5.3 优先级调度算法HPF
- 5.4 最高响应比优先调度算法HRRN
- 5.5 时间片轮转调度算法RR
- 5.6 多级反馈队列轮转法RRMF
- 6. 实时系统调度算法
- 6.1 实时调度基本条件
- 6.2 调度算法分类
- 6.3 常用实时调度算法
- 7. 死锁概念及产生原因
- 8. 死锁存在的条件
- 9. 预防死锁
- 10. 避免死锁(重点)
- 11. 检测死锁
- 12. 解除死锁
- 13. 本章重点
1. 作业的概念与组成
-
作业的概念
- 用户角度:在一次应用业务处理过程中,从输入开始到输出结束,用户要求计算机所做的有关该次业务处理的全部工作称为一个作业
- 系统角度:作业是一个比程序更广的概念,它由程序、数据和作业说明书组成
- 作业概念使用场合:
- 早期批处理系统
- 现在的大型机、巨型机系统
- 对于微机和工作站系统一般不使用作业的概念
-
作业的组成
-
程序:可以包含多个程序和多个数据集,但必须至少包含一个程序
-
数据:可有可无
-
作业说明书:
- 基本信息:用户名、作业名、使用语言名、允许的最大处理时间
- 控制信息:作业控制、操作顺序、出错处理
- 资源信息:处理时间、内存、外设类型和数量、处理机优先级、库函数和实用程序
-
2. 作业的建立及状态
-
作业建立的步骤
- 作业的输入:指将作业的程序、数据和作业说明书从输入设备输入到外存,并形成有关初始信息
- 联机输入
- 脱机输入
- 直接耦合输入
- SPOOLING系统
- 作业控制块的建立:由作业注册程序在系统中为该作业申请一个作业控制块,并填写响应的信息
- 建立时机:作业进入外存输入后
- 建立步骤:
- 申请作业控制块
- 填写作业控制块相关信息:作业名、作业估计执行时间;优先数、作业建立时间;作业说明书文件名、程序语言类型;内存要求、外设要求;作业状态以及作业在外存中的存储地址
- 作业的输入:指将作业的程序、数据和作业说明书从输入设备输入到外存,并形成有关初始信息
-
作业的状态
- 提交状态:从作业输入请求开始到JCB建立时的状态
- 后备状态:从PCB建立到被作业调度程序选中并进入内存,作业在作业等待队列中的状态
- 执行状态:作业进入内存后到执行结束
- 完成状态:作业执行结束到撤销之前作业所处的状态
-
作业与进程的关系
- 作业是用户向计算机系统提交任务的任务实体,而进程则是完成用户任务的执行实体,是向系统申请分配资源的基本单位
- 作业在没有进入执行状态时被存入外存的后备作业队列中等待调度执行,进程一旦被创建,总有相应部分放入内存
- 一个作业可由多个进程组成,且必须至少由一个进程组成,反之不成立
- 作业的概念应用范围主要局限于批处理系统中,而进程的概念则应用到几乎所有的多道程序系统中
3. 处理机调度相关概念
3.1 调度级别
-
有关作业调度
- 具体功能:
- 记录系统中各作业的状况
- 从后备作业队列中挑选一部分作业投入运行
- 为被选中作业做好执行前的准备工作
- 在作业执行结束后做善后工作
- 目标:
- 具有公平性
- 具有较高的设备利用率
- 具有较高的吞吐率
- 具有较快的响应时间
- 衡量标准:
- 批处理系统:主要考察系统的平均响应时间
- 分时系统:主要考察系统的平均响应时间
- 实时系统:主要考察系统对特定事件的响应时间
- 具体功能:
-
处理机调度级别
-
低级调度/进程调度/短程调度/微观调度
- 功能:用来决定就绪列表中的哪个进程应获得处理机
- 分类:
- 非抢占方式Non-Preemptive Mode:优点(实现简单、系统开销小,适用于大多数的批处理系统环境)和缺点(难以满足紧急任务的要求立即执行,可能造成难以预料的后果,在要求比较严格的实时系统中不宜采用这种调度方式)
- 抢占方式Preemptive Mode:原则(优先权原则、短作业/进程优先原则、时间片原则)
-
中级调度/中程调度/交换调度
- 功能:把暂时不能运行的进程调至外存上去等待,此时进程处于静止阻塞状态;当这些进程重新具备运行条件、且内存又稍有空闲时,由中级调度来决定将其重新调入内存,并修改其状态为就绪状态,挂在就绪队列上等待进程调度
- 引入目的:提高内存利用率和系统吞吐量
-
高级调度/作业调度/长程调度/接纳调度/宏观调度
- 功能:从外存中选择作业进入内存
- 考虑因素:接纳多少个作业、接纳哪些作业
-
3.2 调度队列模型
-
进程调度队列模型
-
高级和低级调度的队列模型
-
区别
具有高级、低级两种调度的调度队列模型与单一进程调度队列模型的主要区别在于如下两方面:
- 就绪队列的形式
- 设置多个阻塞队列
-
具有三级调度的调度队列模型