1 处理机调度
1.1 分级调度
1.2 作业调度
1.3 进程调度
1.4 常用调度算法
2 死锁
2.1 死锁的概念
2.2 死锁产生的必要条件
2.3 死锁的描述
2.4 死锁的解决方法
2.5 死锁的预防
2.6 死锁的避免
2.7 死锁的检测和解除
3.1 分级调度
3.1.1 作业的状态及其转换
作业在整个活动期间一共有四种状态:
- (1)提交状态
即用户向系统提交一个作业时,该作业所处的状态。 - (2)后备状态
即用户作业经输入设备(如读卡机)送入输出设备(磁盘)中存放,等待进入内存时所处的状况。此时,该作业的数据已转换成内部的机器可读的形式,并且作业请求资源等信息也交给了操作系统。 - (3)执行状态
即作业分配到所需的资源,被调入内存,并且在处理机(CPU)上执行相应的程序时所处的状况。此时该作业真正处于活动状况。 - (4)完成状态
即作业完成了计算任务,结果由打印机输出,最后由系统回收分配给它的全部资源,准备退出系统时的作业状况。
3.1.2 调度的层次
- 1.调度的层次
所谓调度就是选出待分派的作业或进程。
处理机调度的主要目的就是为了分配处理机。
在不同的操作系统中所采用的调度方式并不完全相同。有的系统中仅采用一级调度,而有的系统采用两级或三级,并且所用的调度算法也完全可能不同。
一般说来,作业从进入系统到最后完成,可能要经历三级调度:高级调度、中级调度和低级调度-
(1)高级调度:
又称作业调度或宏观调度。其主要功能是根据一定的算法,从输入的一批作业中选出若干个作业,分配必要的资源,如内存、外设等,为它建立相应的用户作业进程和为其服务的系统进程(如输入、输出进程),最后把它们的程序和数据调入内存,等待进程调度程序对其执行调度,并在作业完成后作善后处理工作,回收系统资源。
-
(2)中级调度:
又称交换调度。为了使内存中同时存放的进程数目不至于太多,有时就需要把某些进程从内存中移到外存上,以减少多道程序的数目,为此设立了中级调度。特别在采用虚拟存储技术的系统或分时系统中,往往增加中级调度这一级。
所以中级调度的功能是在内存使用情况紧张时,将一些暂时不能运行的进程从内存对换到外存上等待。当以后内存有足够的空闲空间时,再将合适的进程重新换入内存,等待进程调度。引入中级调度的主要目的是为了提高内存的利用率和系统吞吐量。
它实际上就是存储器管理中的对换功能。
-
(3)低级调度:
又称进程调度或微观调度。其主要功能是根据一定的算法将CPU分派给就绪队列中的一个进程。
执行低级调度功能的程序称作进程调度程序,由它实现CPU在进程间的切换。进程调度的运行频率很高,在分时系统中往往几十毫秒就要运行一次。
进程调度是操作系统中最基本的一种调度。在一般类型的操作系统中都必须有进程调度,而且它的策略的优劣直接影响整个系统的计能。
-
3.1.3 作业与进程的关系
3.2 作业调度
3.2.1 作业调度功能
1.作业控制块(JCB)
每个作业进入系统时由系统为其建立JCB(Job Control Block,作业控制块)。
作业存在的整个过程中,相应的JCB也存在,只有当作业退出系统时,JCB才被撤销。
JCB是一个作业存在的标志。每个JCB记录了与该作业有关的信息,而具体的内容根据作业调度的要求而定。对于不同的系统,其JCB内容也有所不同。
2. 作业调度功能
(1)确定数据结构–JCB
(2)确定调度算法
(3)分配资源
(4)善后处理
3.2.2 作业调度目标与性能衡量
-
作业调度目标:
(1)公平对待后备作业中的每一个作业。
(2)使进入内存的多个作业能均衡地使用系统中的资源。
(3)力争在单位时间内尽可能多地为作业提供服务,提高系统吞吐量。 -
性能指标:
(1)处理器利用率要高
处理器利用率一般在40%—90%
(2)周转时间要短
周转时间:从作业被提交给系统开始,到作业完成为止的这段时间间隔。
包括:作业在外存后备队列上的等待调度时间、进程在就绪队列上的等待时间、进程在CPU上执行时间、进程等待I/O操作完成时间四个部分。
平均周转时间
带权周转时间:作业周转时间T与系统为它提供服务的时间Ts之比
平均带权周转时间
(3)系统吞吐量要高
单位时间内系统完成的作业数
常用调度算法
1 先来先服务调度算法
2 短进程优先调度算法
短进程优先调度算法的特点
3 高响应比优先调度法
4 时间片轮转法
5 优先级法
3.3 进程调度
3.3.1 进程调度的功能和时机
-
进程调度的功能
按照一定的策略,动态地把处理机分配给就绪队列中某一进程,以便使之执行。
功能:
(1)记录和保持系统中多有进程的有关情况和状态特征
(2)决定分配策略
(3)完成处理机的分配(上下文切换)
(4)完成处理机的回收 -
进程调度的时机
①进程完成其任务时。
②在一次管理程序调用之后,该调用使现行程序暂时不能继续运行时。
③在一次出错陷入之后,该陷入使现行进程在出错处理时被挂起时。
④在分时系统中,当进程使用完规定的时间片,时钟中断使该进程让出处理机时。
⑤在采用可剥夺调度方式的系统中,当具有更高优先级的进程要求处理机时。
处理机分派程序的操作是非常简单的,它包括如下内容:
①从选中进程的PCB中恢复现场。
②控制转向该进程,它从刚恢复的程序计数器所指示的指令地址开始执行
- 上下文切换
进程上下文是指由正文段、数据段、硬件寄存器的内容及有关的数据结构组成的环境。
在发生进程调度时,系统必须要做上下文的切换,其切换包括以下步骤:
(1)决定上下文切换的时机
(2)保存当前执行进程的上下文
(3)使用合适的调度算法,选择一个处于就绪状态的进程
(4)装配所选进程的上下文,将CPU控制权交给所选进程
当一个进程正在运行时,有某个“重要而紧迫”的进程需要处理时,如何分配处理机。
- 非抢占方式:
- 仍然让正在执行的进程继续执行,直到该进程完成或发生某事件(如提出I/O请求)而进入“完成”或“等待”状态时,才把处理机分配给“重要而紧迫”的进程,以使之执行。
- 简单,系统开销小,适用批处理系统中。
- 抢占调度方式:
- “重要而紧迫”的进程一到,便暂停正在执行的进程,立即把处理机分配给它。这种方式称为剥夺调度方式。
- 及时响应,适用于分时和实时系统中。
- 抢占式
3.3.2 进程调度方式
3.3.3 进程调度性能评价
常用调度算法