操作系统——处理机调度、进程调度、调度算法的评价指标

文章目录

  • 前言
  • 一、处理机调度的概念和层次
    • 1、调度的概念
    • 2、调度的三个层次
  • 二、进程调度的时机和调度方式
    • 1、进程调度的时机
    • 2、进程调度的方式
  • 三、调度算法的评价指标
  • 总结


前言

本文的主要内容是处理机调度、进程调度、调度算法的评价指标等相关知识,包括处理机调度的概念和层次、进程调度的时机、切换与过程、调度方式以及调度算法的评价指标,其中,调度的三个层次、进程的调度方式以及调度算法的评价指标是需要好好理解并掌握的。


一、处理机调度的概念和层次

1、调度的概念

当有一堆任务要处理时,由于资源有限,这些任务没办法同时处理,这个时候就需要确定某种规则来决定处理这些任务的顺序,这就是调度所研究的问题。比如时间短的优先原则,时间相同的先到先服务。
在多道程序系统中,进程的数量往往是多于处理机的个数的,这样不可能同时并行地处理各个进程。
处理机调度就是从就绪队列中按照一定的算法选择一个进程并将处理机分配给它运行,以实现进程的并发执行。

2、调度的三个层次

调度可以分为三个层次,即高级调度(作业调度)、中级调度(内存调度)和低级调度(进程调度)。
高级调度也称作业调度,它是按一定的原则从外存上处于后备队列的作业中挑选一个或多个作业,给他们分配内存等必要资源,并建立相应的进程,以使它们获得竞争处理机的权利。
高级调度是辅存(外存)与内存之间的调度,每个作业只调入一次,调出一次,作业调入时会建立相应的PCB,作业调出时才撤销PCB。高级调度主要是指调入的问题,因为只有调入的时机需要操作系统来确定,调出的时机是作业运行结束才调出。
引入虚拟存储技术后,可将暂时不能运行的进程调至外存等待,等其重新具备了运行条件且内存有空间时,再重新调入内存。这样做的目的是为了提高内存利用率和系统吞吐量。暂时调到外存等待的进程状态为挂起状态。需要注意的是,PCB并不会随进程一起调到外存,而是会常驻内存,PCB中会记录进程数据在外存中的存放位置,进程状态等信息,操作系统通过内存中的PCB来保持对各个进程的监控和管理,被挂起的进程PCB会被放到挂起队列中。
中级调度也称内存调度,它就是要决定将哪个处于挂起状态的进程重新调入内存。一个进程可能会被多次调出、调入内存,因此中级调度发生的频率要比高级调度更高。
前面已经提到过五状态模型,这里再加入挂起态的七状态模型如下图所示。
操作系统——处理机调度、进程调度、调度算法的评价指标_第1张图片
暂时调到外存等待的进程状态称为挂起状态(Suspend),挂起态又可以进一步分为就绪挂起和阻塞挂起两种状态。
挂起和阻塞的区别:两种状态都是暂时不能获得CPU的服务,但挂起态是将进程映像调到外存去,而阻塞态下进程映像还在内存中。
低级调度也称进程调度,其主要任务是按照某种方法和策略从就绪队列中选取一个进程,并将处理机分配给它。
进程调度是操作系统中最基本的一种调度,在一般的操作系统中都必须配置进程调度,进程调度的频率很高,一般几时毫秒一次。
三层调度的联系和区别如下表所示。
操作系统——处理机调度、进程调度、调度算法的评价指标_第2张图片
对处理机调度的概念和层次简单的总结一下,如下图所示。
操作系统——处理机调度、进程调度、调度算法的评价指标_第3张图片


二、进程调度的时机和调度方式

1、进程调度的时机

需要进行进程调度与切换的情况分为当前运行的进程主动放弃处理机和当前运行的进程被动放弃处理机。
进程主动放弃处理机的情况有
①进程正常终止;
②进程运行过程中发生异常终止;
③进程主动请求阻塞(比如等待I/O)。
进程被动放弃处理机的情况有
①分给进程的时间片用完;
②有更紧急的事需要处理(如I/O中断);
③有更高优先级的进程进入就绪队列。
不能进行进程调度和切换的情况
①在处理中断的过程中。中断处理过程复杂,与硬件密切相关,很难做到在中断处理过程中进行进程切换。
②进程在操作系统内核程序临界区中。
③在原子操作过程中。因为原子操作不可中断,必须一气呵成。
下面的两道判断题一对一错,紧跟着的部分就是对于对错的解释。
进程在操作系统内核程序临界区中不能进行调度与切换。 (√)
进程处于临界区时不能进行处理机调度。(×)
临界资源:一个时间段内只允许一个进程使用的资源,各进程需要互斥的访问临界资源。
临界区:访问临界资源的那段代码。
内核程序临界区一般是用来访问某种内核数据结构的,比如进程的就绪队列,它由各就绪进程的PCB组成。
进程访问就绪队列的例子:进程在操作系统内核程序临界区访问就绪队列前先会给就绪队列上锁,如果进程还没有退出临界区就进行进程调度,而进程调度相关的程序也需要访问就绪队列,但此时就绪队列被锁住了,因此无法顺利的进行进程调度。内核程序临界区访问的临界资源如果不尽快释放的话,极有可能影响到操作系统内核的其他管理工作,因此在访问内核程序临界区期间不能进行调度与切换。
进程访问打印机的例子:在打印机打印完成之前,进程一直处于临界区内,临界资源不会解锁,但打印机又是慢速设备,此时如果一直不允许进程调度的话就会导致CPU一直空闲。普通临界区访问的临界资源不会直接影响操作系统内核的管理工作,因此在访问普通临界区时可以进行调度和切换

2、进程调度的方式

进程调度的方式分为非剥夺调度方式(非抢占方式)和剥夺调度方式(抢占方式)。
非剥夺调度方式又称为非抢占方式,只允许进程主动放弃处理机。在运行过程中即便有更紧迫的任务到达,当前进程依然会继续使用处理机,直到该进程终止或主动要求进入阻塞态。该方式实现简单,系统开销小,但是无法及时处理紧急任务,适合于早期的批处理系统
剥夺调度方式又称为抢占方式,当一个进程正在处理机上执行时,如果有一个更重要或更紧迫的进程需要使用处理机,则会立即暂停正在执行的进程,将处理机分配给更重要、更紧迫的那个进程。该方式可以优先处理更紧急的进程,也可以实现让各进程通过时钟中断按时间片轮流执行的功能,适合于分时操作系统和实时操作系统
狭义的进程调度指的是从就绪队列中选中一个要运行的进程,这个进程可以是刚刚被暂停执行的进程,也可以是另外一个进程,如果是另外一个进程就需要进程切换。
广义的进程调度包含了选择一个进程和进程切换两个步骤。
进程切换的过程主要完成的工作是:对原来运行进程各种数据的保存;对新的进程各种数据的恢复。
需要注意的是,进程的切换是有代价的,因此如果过于频繁的进行进程调度和切换,那么系统大部分的时间都花费在了进程切换上,而真正用于执行的进程时间会减少,那么必然会使整个系统的效率降低。
对进程调度的时机和调度方式简单的总结一下,如下图所示。
操作系统——处理机调度、进程调度、调度算法的评价指标_第4张图片


三、调度算法的评价指标

CPU利用率:指的是CPU“忙碌”的时间占总时间的比例。
系统吞吐量:单位时间内完成作业的数量。可以用总的完成作业的数量除以总的时间算得。
周转时间:从作业被提交给系统开始,到作业完成为止的时间间隔。
周转时间包括四个部分:作业在外存后备队列上等待作业调度的时间、进程在就绪队列上等待进程调度的时间、进程在CPU上执行的时间以及进程等待I/O操作完成的时间。在这四个部分中,作业调度只发生一次,而后面三个部分可能发生多次。
平均周转时间可以用所有作业的周转时间除以作业数求得。
对用户来说,他们更关心自己单个作业的周转时间;对操作系统来说,更关心系统的整体表现,因此关心平均周转时间。
带权周转时间可以用作业的周转时间除以作业实际运行的时间求得。带权周转时间肯定是大于等于1的,带权周转时间和周转时间都是越小越好。
对应周转时间相同的两个作业,实际运行时间长的作业在相同时间内被服务的时间更多,带权周转时间更小,用户满意度更高。对于实际运行时间相同的两个作业,周转时间短的带权周转时间更小,用户满意度更高。
平均带权周转时间可以用各作业带权周转时间之和除以作业数求得。
等待时间指进程或者作业处于等待处理机状态的时间之和,等待时间越长,用户满意度越低。
对于进程来说,等待时间就是指进程建立后等待被服务的时间之和,在等待I/O完成的期间进程也是被服务的,所以不计入等待时间。
对于作业来说,不仅要考虑建立进程后的等待时间,还要加上作业在外存后备队列中等待的时间。
响应时间指的是用户从提交请求到首次产生响应所用的时间。
对调度算法的评价指标简单的总结一下,如下图所示。
操作系统——处理机调度、进程调度、调度算法的评价指标_第5张图片


总结

以上就是操作系统——处理机调度、进程调度、调度算法的评价指标相关知识的所有内容了,要掌握调度的三个层次,即作业调度、内存调度和进程调度,熟知非剥夺调度方式和剥夺调度方式的不同,会计算调度算法的各项指标!
参考视频:
处理机调度的概念和层次
进程调度的时机、切换与过程、调度方式
调度算法的评价指标

你可能感兴趣的:(操作系统,操作系统)