挑战408——操作系统(7)——处理机调度

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/redRnt/article/details/83211360

我们前面说过,进程状态的切换离不开处理机的调度。调度是操作系统的基本功能,几乎所有计算机资源再使用之前都要经过调度。经过进程调度,才把CPU分配给合适的进程,对于处理机而言,可分配的资源就是在处理机上运行的时间。进程调度是多道程序运行的根本。通过进程间切换CPU,操作系统才能提高计算机的效率。

调度的类型及其方式

多道程序的核心是调度,处理机的调度方式有三种,称为高级调度,中级调度,低级调度。

  • 高级调度。又称为作业调度,它决定那个程序可以进入系统中进行处理,它控制多道程序的道数,在一个通用操作系统的批处理部分,新提交的作业被发送到磁盘上,并形成一个后备队列,高级调度实际就是负责从中选择一个或者多个作业,使它们进入内存。(至于为什么是进入内存而不是到CPU,这部分内容在内存管理部分会有提及)。
  • 中级调度。又称为对换调度,引入中级调度的目的是为了提高内存的利用率和系统的吞吐量。系统将暂时不能运行的进程,调到外存等待挂起,待进程重新具备运行条件的时候,再又中级调度将其重新调入内存(具体的,在内存管理的虚拟存储器中会提到)。
  • 低级调度又称为进程调度,它决定就绪队列中哪个进程获得处理机。是最基本也是最接近CPU的调度。也是我们进程管理中学习的重点。

进程调度的方式分为两种,称为不可剥夺方式(适用于批处理的操作系统),可剥夺方式。

  • 不可剥夺方式。又称非抢占方式,这种方式一旦把处理机分配给某个进程,那么它就会一直占用这个处理机,直到运行结束或者发生异常。(也就是说在进程占用处理机期间,不允许其他进程占用处理机)
  • 可剥夺方式。又称抢占方式,这种方式允许下一个进程按照某种规则或者情况(比如优先级)抢占处理机。(常用于一些需要应付紧急系统)。

调度的时机和评价标准

引发进程调度的情况有很多种,但是在进程的退出和进程阻塞时,系统一定会进行进程间的调度。而下面的三种情况,虽然不是一定会发生,但是还是经常会发生(新进程的创建,中断的发生,时钟中断等等)。这部分内容曾经考过一道选择题,2分。

在操作系统中,调度的目标是按照可以以系统优化的方式进行分配处理机的时间,常用的评价标准为下面几个:

  1. CPU利用率。由于操作系统中价格最贵的是CPU,所以处理效率成为了衡量操作系统性能的重要指标。所以要提高CPU的利用率,可以使得CPU尽可能的处于忙的状态。其计算方式为:(CPU的使用时间 / 完成所有作业需要的总时间) X 100%
  2. 系统吞吐量。表示单位时间内所完成的作业数量。
  3. 等待时间。指进程处于等待处理机的状态之和。作为用户显然不希望自己的作业一直处于等待状态。
  4. 响应时间。用户提交请求,到系统响应(通常是系统这个时候有一个输出)的时间间隔。
  5. 周转时间指一个用户作业从被提交到完成的时间间隔。对于用户而言,当然希望周转时间越短越好(就像你玩游戏,不想它长时间停留在加载界面)。但是我们作为系统的管理者,肯定不可能做到每个作业都管理的 如此精确,因此我们更关心的是平均周转时间。如果每个作业带权,那么我们就趁称为带权的周转时间。
    计算的方法如下:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

其中(1)(5)的计算就是考试的重点,尤其是(5)更是最常用的,用来衡量处理机调度性能的标准,所以我们在这里再说说周转时间这个概念,周转时间指一个用户作业从被提交到完成的时间间隔。假设有这么一道题:
在这里插入图片描述
单道式运行,也就是一个一个来,很好,每个执行2h,又是同时到达,显然,一共花了2h x 4 = 8h,平均下来 8h/4 = 2h。嗯,为什么没有这个选项?还好没这个选项,否则你连自己哪里错了都不知道。认真思考,我们算的是平均完成时间,作业从提交到完成可不仅仅呆了完成时间那么短,我们画图看看。
在这里插入图片描述
作业从提交到完成,不仅仅经过了运行时间,还需要等待,因为前面的进程在运行,那么它就必须等待。(这类题还可以用甘特图来解决,到时候刷题再说)

猜你喜欢

转载自blog.csdn.net/redRnt/article/details/83211360
今日推荐