第三章处理机调度与死锁--处理机调度

一、处理机调度的基本概念
作业进入系统驻留在外存的后备队列上,再至调入内存运行完毕,可能要经历下述三级调度。

高级调度(High Scheduling)

又称作业调度或长程调度(Long-Term Scheduling),接纳调度(Admission Scheduling)
主要在早期批处理阶段,处理在外存上的作业。
决定外存后备队列中的哪些作业调入内存;
为它们创建进程、分配必要的资源;
将新创建的进程排在就绪队列上,准备执行。

  • 管理的方面比较多。
    作业调度决定的细节
    在每次执行作业调度时,都须作出两个决定:
    接纳多少作业——取决于多道程序度。应根据系统的规模和运行速度等情况综合考虑。
    接纳哪些作业——取决于采用的调度算法。如先来先服务,短作业优先等
    *** 系统运行并不一定存在高级调度**
    批处理系统:作业进入系统后先驻留外存,故需要有作业调度。
    分时系统:为及时响应,作业由终端直接送入内存,故不需作业调度。
    实时系统中,通常也不需作业调度。

中级调度(Intermediate-Level Scheduling)

又称交换调度或中程调度(Medium-Term Scheduling)
引入目的:提高内存利用率和系统吞吐量。根据条件将一些进程调出或再调入内存。

低级调度(Low Level Scheduling)

也称为进程调度、微观调度或短程调度(Short-Term Scheduling)
决定内存就绪队列中的哪个进程获得处理机,进行分配工作。是最基本的一种调度,在三种基本OS中都有。
进程调度方式
1)非抢占方式(Non-preemptive Mode)
一旦处理机分配给某进程,该进程一直执行。决不允许其他进程抢占已分配运行进程的处理机。
2)抢占方式(Preemptive Mode)
允许调度程序根据某种原则,暂停某个正在执行的进程,将处理机重新分配给另一进程
进程调度方式比较

三种调度的频率和复杂度
进程调度:运行频率最高,算法不能太复杂,以免占用太多的CPU时间。分时系统通常10~100ms便进行一次。
作业调度:一个作业运行完毕退出系统时即触发重新调度一个新作业入内存,周期较长,大约几分钟一次。因而也允许作业调度算法花费较多的时间。
中级调度:运行频率基本上介于上述两种调度之间。
三种调度方式比较

**

二、常用调度算法

**
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
**

三、实时调度

**
什么是实时系统?
1.指系统能够在限定的响应时间内提供所需水平的服务。
2.指计算的正确性不仅取决于程序的逻辑正确性,也取决于结果产生的时间,如果系统的时间约束条件得不到满足,将会发生系统出错。
实现实时调度的基本条件
1)提供必要的信息
为了实现实时调度,系统应向调度程序提供有关任务的下述信息:
就绪时间。该任务成为就绪状态的时间。
开始截止时间、完成截止时间。
处理时间。从开始执行到完成所需时间。
资源要求。任务执行时所需的一组资源。
优先级。根据任务性质赋予不同优先级。
2)系统处理能力足够强
处理能力不足可能会出现某些实时任务不能得到及时处理,导致难以预料的后果。
3)采用抢占式调度机制
4)具有快速切换机制

  1. 实时调度算法的分类
    根据实时任务的性质
    硬实时调度算法
    软实时调度算法;
    根据调度时间不同
    静态调度算法
    动态调度算法。
    按调度方式
    非抢占调度算法
    抢占调度算法;
    多处理机环境下
    集中式调度
    分布式调度
    1)非抢占调度算法
    该算法较简单,用于一些小型实时系统或要求不太严格的实时系统中,又可分为:
    非抢占式轮转调度算法。常用于工业生产的群控系统中,要求不太严格。
    非抢占式优先调度算法。要求相对严格,根据任务的优先级安排等待位置。可用于有一定要求的实时控制系统中。(精心设置可获得百ms级的响应时间)
    2)抢占式调度算法
    较严格的实时系统中(t约为数十ms),选择采用抢占式优先权调度算法。根据抢占发生时间可分为:
    基于时钟:某高优先级任务到达后并不立即抢占,而等下一个时钟中断时抢占。
    立即抢占:一旦出现外部中断,只要当前任务未处于临界区,就立即抢占处理机。
    3. 常用的几种实时调度算法

    目前有许多实时调度算法,在常用的算法中简单介绍两种实时调度算法:
    最早截止时间优先EDF(Earliest Deadline First)算法
    根据任务的开始截止时间来确定任务的优先级。截止时间越早,其优先级越高。
    系统保持一个实时任务就绪队列
    队列按各任务截止时间的早晚排序
    调度程序总是选择就绪队列中的第一个任务,分配处理机使之投入运行。
    新任务产生时,是否等当前程序执行完:
    抢占式/非抢占式
    可能会使作业错过,但可适用于软实时系统

最低松弛度优先LLF(Least Laxity First)算法
根据任务紧急(或松弛)的程度,来确定任务的优先级。任务的紧急程度越高(松弛度值越小),优先级就越高。
松弛度= 截止完成时间 – 还需执行时间 - 当前时间
可理解为当前时刻到开始截止时刻间的差距,随着时间的推进,这个差值逐渐变小,任务越来越紧迫。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/AudienceT/article/details/83958679