Loading

09-处理机调度方式与指标

处理机调度的概念、层次


基本概念

调度的基本概念:当我们有一堆任务要处理,由于当前资源有限,我们就需要用某种规则决定这些任务的顺序.这就是调度研究的问题
在多道系统中,进程的数量往往是多于处理机个数的,这样不可能同时并行的处理各个进程
处理机调度,就是从就绪队列中按照一定算法选择一个进程将处理机分配给它运行,以实现进程的并发执行


三个层次


高级调度(作业调度)

高级调度(作业调度),按一定的原则从外存上处于后备队列的作业中挑选一个(或多个)作业,给他们分配内存等必要资源,并建立相应的进程(建立PCB),以使它们获得竞争处理及的权利
高级调度是外存和内存之间的调度。每个作业只调入一次,调出一次。作业调入时会建立响应的PCB,作业调出时才撤销PCB。
高级调度主要是指调入的问题


中级调度(内存调度)

中级调度(内存调度),就是要决定将哪个处于挂起状态的进程重新调入内存。
一个进程可能被多次调出、调入内存,因此中级调度的发生频率要比高级调度
引入虚拟存储技术之后,可将暂时不能运行的进程调至外存等待。等它重新具备了运行条件且内存又稍有空闲时,再重新调入内存
这么做的目的是为了提高内存利用率系统吞吐量
暂时调到外存等待的进程状态为挂起状态。值得注意的是,PCB并不会一起调到外存,而是会常驻内存。PCB会记录进程数据在外存中的存放位置,进程状态等信息,操作系统通过内存中的PCB来保持对各个进程的监控、管理。被挂起的进程PCB会被放到挂起队列


低级调度(进程调度)

低级调度(进程调度),其主要任务就是按照某种方法和策略从就绪队列中选取一个进程,将处理机分配给它。
进程调度是操作系统中最基本的一种调度,在一般的操作系统中必须配置进程调度
进程调度的的频率很高 ^9f6e38


三个调度的联系、对比

在这里插入图片描述

补充知识


进程的“挂起态”


七状态模型

暂时调到外存等待的进程状态为挂起状态
挂起又分为阻塞挂起和就绪挂起两种状态
在这里插入图片描述


进程调度的时机、切换与方式

时机


何时需要

主动放弃

  1. 当前运行的进程主动放弃处理机
    1. 进程正常终止
    2. 进程过程中发生异常而终止
    3. 进程主动请求阻塞(如等待I/O)

被迫放弃

  1. 当前运行的进程被动放弃处理及
    1. 分给进程的时间片用完
    2. 有更紧急的事情需要处理(如 I/O中断)
    3. 有更高优先级的进程进入就绪队列

何时不要

不能进行进程调度的情况

  1. 在处理中断的时候,中断处理过程复杂,与硬件密切相关,很难做到在中断处理中进行进程切换
  2. 进程在操作系统内核临界区中
    1. 临界资源:一段时间内只允许一个进程使用的资源
    2. 临界区:访问临界资源的代码
    3. 内核程序临界区:一般是用来访问某种内核数据结构的,比如进程的就绪队列(由各就绪进程的PCB组成)
  3. 原词操作过程

切换与过程

切换

  1. “狭义的进程调度”
    狭义的进程调度指的是从就绪队列中选择一个要运行的进程
  2. 进程切换是指一个进程出让处理机,让另一个进程占用处理机的过程
    广义的进程调度包含了选择一个进程和进程切换两个步骤

过程

  1. 进程切换的过程中完成了
    1. 对原来运行进程的各种数据的保存
    2. 对新进程各种数据的恢复
      注意:进程的切换是有代价的,因此如果过于频繁的进行进程调度、切换,必然会使得整个系统的效率降低。

方式


非剥夺调度方式(非抢占式)

非剥夺调度方式,又称非抢占方式。即,只允许进程主动放弃处理机。在运行过程中即便有更紧迫的任务到达,当前进程依然会继续使用处理机,直到该进程终止或主动要求进入阻塞态
特点:实现简单,系统开销小但是无法及时处理紧急任务,适合于早期的批处理系统


剥夺调度方式(抢占式)

剥夺调度方式,又称抢占方式。当一个进程正在处理机上执行时,如果有一个更重要或更紧迫的进程需要使用处理机,则立即暂停正在执行的进程,将处理机分配给更重要紧迫的那个进程
特点:可以优先处理更紧急的进程,也可实现让各进程按时间片轮流执行的功能(通过时钟中断)。适合于分时操作系统、实时操作系统


调度算法的评价指标

CPU利用率

CPU利用率:指CPU“忙碌的时间占总时间的比例”
利用率=忙碌的时间/总时间


系统吞吐量

系统吞吐量:单位时间内完成作业的数量
系统吞吐量=总共完成了多少道作业/总共花了多少时间


周转时间

周转时间:从作业提交给系统开始,到作业被完成的时间间隔
周转时间包括了四部分
1. 作业在外存后备队列等待作业调度(高级调度)的时间 [1次]
2. 进程在就绪队列上等待进程调度(低级调度)的时间 [多次]
3. 进程在CPU上执行的时间 [多次]
4. 进程等待I/O操作的时间 [多次]


周转时间、平均周转时间

周转时间=作业完成时间-作业提交时间
平均周转时间=各作业周转时间之和/作业数


带权周转时间、平均带权周转时间

带权周转时间=作业周转时间/作业实际运行的时间=(作业完成时间-作业提交时间)/作业时间运行的时间
带权周转时间>=1 越小越好
平均带权周转时间=各作业带权周转时间之和/作业数


等待时间

等待时间:指进程/作业处于等待处理机状态的时间


进程等待时间

对于进程来说,等待时间就是指进程建立后等待被服务的时间之和,在等待I/O完成的期间其实进程也是在被服务的,所以不计入 等待时间。


作业等待时间

对于作业来说,不仅要考虑建立进程后的等待时间,还要加上作业在外存后备队列中的等待的时间


响应时间

系统响应的时间

posted @ 2023-01-19 16:31  nliuc  阅读(128)  评论(0)    收藏  举报