操作系统--进程调度

简介

低级调度(进程调度):根据某种算法,从就绪队列中选择某些进程分配处理机资源


进程调度的时机

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

  • 当前运行的进程主动放弃处理机

    • 进程正常终止

    • 运行过程中发生异常而终止

    • 进程主动请求阻塞(如等待I/O)

  • 当前运行的进程被动放弃处理机

    • 分给进程的时间片用完

    • 有更紧急的事需要处理(如I/O中断)

    • 有更高优先级的进程进入就绪队列

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

  • 在处理中断的过程中。中断处理过程复杂,与硬件密切相关,很难做到中断处理过程中进行进程切换

  • 进程在操作系统内核程序临界区中

  • 在原子操作过程中(原语)。原子操作不可中断(如修改PCB中进程状态标志,并把PCB放到相应队列)


进程调度的方式

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

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

  • 剥夺调度方式,又称为抢占式。当一个进程正在处理机上执行时,如果有一个更紧急的进程需要使用处理机,则立即暂停正在执行的进程,将处理机分配给更紧急的那个进程

    • 可以优先处理更紧急的进程,可以实现让各个进程按时间片轮流执行的功能(通过时钟中断)。适合于分时操作系统、实时操作系统


进程切换的过程

  1. 对原来的进程各种数据的保存

  2. 对新的进程各种数据的恢复

    1. 如程序计数器、程序状态字、各种数据寄存器等处理机现场信息,这些信息一般保存在进程控制块

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

posted @ 2022-07-31 15:14  伊文小哥  阅读(169)  评论(0编辑  收藏  举报