计算机操作系统-第十八天

2023-12-17 23:34:10

目录

进程调度时机

补充知识?

进程调度的方式

非剥夺调度方式

剥夺调度方式

进程的切换与过程

本节思维导图


进程调度时机

进程调度(低级调度),即按照某种算法从就绪队列中选择一个进程为其分配处理机。

共有两种需要进行进程调度与切换的情况:

  1. 当前运行的进程主动放弃处理机,比如:进程正常终止、进程主动请求阻塞等
  2. 当前运行的进程被动放弃处理机,比如:分给进程的时间片用完、有更紧急的事需要处理等

共有三种不能进行进程调度与切换的情况:

  1. 在处理中断过程中(中断处理过程复杂,与硬件密切相关,很难做到在中断处理过程中进行进程切换)
  2. 进程在操作系统内核程序临界区中)(进程在普通临界区中是可以进行调度、切换的)
  3. 在原子操作过程中(原语)(原子操作不可中断,要一气呵成)

注意事项:

1、进程在操作系统内核程序临界区中不能进行调度与切换

2、进程处于临界区不等于处于内核程序临界区

补充知识?

临界资源:一个时间段内只允许一个进程使用的资源,各进程需要互斥地访问临界资源

临界区:访问临界资源地那段代码

内核程序临界区一般是用来访问某种内核数据结构地(比如进程地就绪队列)

实例:当进程处于内核程序临界区,且该临界区是要用来访问就绪队列时,在访问时会将该就绪队列(临界资源)上锁,当进程还没有退出内核程序临界区时,该队列就不会解锁,如果此时进行进程调度,而进程调度需要访问就绪队列为队列中的进程分配资源,但此时就绪队列被锁住,故无法顺利的进行进程调度了

结论:内核程序临界区访问的临界资源(比如就绪队列)如果不尽快释放的话,极有可能影响到操作系统内核的其他管理工作,因此在访问内核程序临界区期间不能进行调度与切换

实例:当进程处于普通资源的临界区比如打印机资源时,在打印机完成打印之前,进程一直处于临界区内,临界资源不会解锁,但打印机又是慢速设备,此时如果一直不允许进程调度的话就会导致CPU一直空闲

结论:?普通临界区访问的临界资源不会直接影响操作系统内核的管理工作,因此在访问普通临界区时可以进行调度与切换

进程调度的方式

非剥夺调度方式

概念:又称非抢占方式,即只允许进程主动放弃处理机,在运行过程中即便有更紧迫的任务达到,当前进程依然会继续使用处理机,直到该进程终止或主动要求进入阻塞态

特点:实现简单,系统开销小但是无法即使处理紧急任务,适合于早期的批处理系统

剥夺调度方式

概念:又称抢占方式,当一个进程正在处理机上执行是,如果有一个更重要或更紧迫的进程需要使用处理机,则立即暂停正在执行的进程,将处理机分配给更重要紧迫的进程

特点:可以优先处理更紧急的进程,也可以实现让各进程按时间片轮流执行的功能(利用时钟中断)适合于分时操作系统、实时操作系统

进程的切换与过程

“侠义的进程调度”与“进程切换”的区别:

1、侠义的进程调度指的是从就绪队列中选中一个要运行的进程(该进程可以是刚刚被暂停执行的进程,也可能是另一个进程,后者就需要进程切换)

2、广义的进程调度包含了选择一个进程和进程切换两个步骤:

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

????????????????对原来运行进程各种数据的保存

????????????????对新进程各种数据的恢复

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

本节思维导图

~over~

文章来源:https://blog.csdn.net/m0_73975164/article/details/135051228
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。