计算机操作系统-进程(5)调度

调度

  • 基本概念

当有一堆任务要处理时,由于资源有限,很多事情没有办法同时处理。这就需要确定某种规则来决定处理这些任务的顺序,这就是调度研究的问题。

在多道程序系统中,进程的数量往往大于处理机的个数,这样不可能同时并行地处理各个进程。处理机调度,就是从就绪队列中按照一定的算法选择一个进程并将处理机分配给他运行,以实现进程的并发执行

 

  • 调度的三个层次

高级调度(作业调度)

由于内存空间有限,有时无法将用户提交的作业全部放入内存,因此就需要确定某种规则来决定将作业调入内存的顺序

高级调度是指按照一定的原则,从外存中处于后备队列的作业中挑选一个或多个作业,给他们分配内存等必要的资源,并建立相应的进程(PCB),以使他们获得竞争处理机的权利。高级调度是面向作业的

高级调度是外存与内存之间的调度。每个作业只调入一次。作业调入时会建立相应的PCB,作业调出时才撤销PCB。所以高级调度主要指的是调入的问题,因为只有调入的时机需要操作系统来决定,但调出的时机是作业运行结束后就调出

对进程状态的影响:无→创建态→就绪态

中级调度(内存调度)

引入虚拟存储技术之后,可将暂时不能运行的进程调至外存等待。等他重新具备了运行条件且内存稍有空闲时,可重新调入内存。这么做的目的是为了提高内存利用率和系统吞吐量。中级调度是面向进程的

暂时调到外存等待的进程的状态为挂起状态。值得注意的是,PCB并不会一起调到外存,而是会常驻内存。因为PCB中记录着进程数据在外存中的存放位置、进程状态等信息,是要供操作系统使用的。操作系统通过内存中的PCB来保持对各个进程的监控、管理。被挂起的进程PCB会被放到挂起队列中

中级调度,就是要决定将哪个挂起状态的进程重新调入内存。一个进程可能会被多次调出、调入内存,因此中级调度发生的频率要比高级调度更高

对进程状态的影响:挂起态→就绪态

低级调度(进程调度)

低级调度的主要任务是按照某种方法和策略从就绪队列中选取一个进程,将处理机分配给他。

进程调度是操作系统中最基本的一种调度,在一般的操作系统中都必须配置进程调度。进程调度的频率很高,一般几十毫秒一次

对进程状态的影响:就绪态→运行态

补充:进程的挂起态

暂时调到外存等待的进程状态为挂起状态(挂起态suspend)。其中挂起态又可以进一步细分为就绪挂起、阻塞挂起两种状态。由此五状态模型 → 七状态模型

注意:

“挂起”和“阻塞”的区别。两种状态都是暂时不能获得CPU的服务,但挂起态是将进程映像调到外存去了,而阻塞态下进程映像还在内存中

有的操作系统会把就绪挂起、阻塞挂起分为两个挂起队列,甚至会根据阻塞原因不同再把阻塞挂起进程进一步分为多个队列

 

  • 进程调度的时机

进程调度,即低级调度。其目的是为了进程的切换

需要进行进程调度与切换的情况

  1. 当前运行的进程主动放弃处理机
  2. 当前运行的进程被动放弃处理机

不能进行进程调度与切换的情况

  1. 处理中断的过程中
  2. 进程在操作系统内核程序临界区
  3. 在原子操作过程中

 

  • 进程调度的方式

非剥夺调度方式

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

剥夺调度方式

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

 

  • 进程的切换与过程

“狭义的进程调度”与”进程切换”的区别,以及“广义的进程调度”

  • 狭义的进程调度指的是从就绪队列中选择一个要运行的进程。这个进程可能是刚刚被暂停的进程,也可能是另一个进程。而若是后一种情况,则需要进行进程切换
  • 进程切换则是指一个进程让出处理机,由另一个进程占有处理机的过程
  • 广义的进程调度包含了选择一个进程和进程切换两个步骤

进程切换

进程切换的过程主要完成了:

  1. 对原来运行进程各种数据的保存
  2. 对新的进程各种数据的恢复,例如程序计数器、程序状态字、各种数据寄存器等处理机现场信息。这些信息一般保存在进程控制块

注意,进程切换是有代价的,因此如果过于频繁地进行进程调度、切换,必然会使得整个系统的效率降低,使系统大部分时间都花在了进程切换上,而真正用于执行进程的时间减少

 

  • 调度算法的评价指标

CPU利用率

指CPU“忙碌”的时间占总时间的比例

系统吞吐量

对于计算机来说,希望能用尽可能少的时间完成尽可能多的作业。所以系统吞吐量为单位时间内完成作业的数量

周转时间

指从作业被提交给系统开始,到作业完成位为止的这段时间间隔

等待时间

指进程/作业处于等待处理机状态时间之和,等待时间越长,用户满意度越低

响应时间

指从用户提交请求到首次产生响应所用的时间

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值