进程调度

#进程调度的时机


  • 调度的概念里的低级调度,就是按照某种算法从就绪队列中选择一个进程为其分配处理机
  • #需要进行进程调度的情况:
  • 当进程主动放弃处理机:1.进程正常终止 2.运行过程中发生异常终止 3.进程主动请求阻塞
  • 当进程被动放弃处理机:1.分配给进程的时间片用完 2.更紧急的事要处理 3.优先级更高的进程进入就绪队列
  • #不能进行进程调度的情况:
  • 1.在处理中断的过程中
  • 2.进程在操作系统内核程序临界区
  • 3.在原子操作过程中(执行原语)
  • #进程调度的方式


    #非剥夺调度方式

  • 又称非抢占方式,只允许进程主动放弃处理机,即使更紧迫的任务到达,当前进程依然会继续使用处理机,直到进程主动终止或者要求进入阻塞
  • 优点:实现简单,系统开销小,适合早期批处理系统
  • #剥夺调度方式

  • 当一个进程正在处理机上执行时,如果有一个更重要或更紧迫的进程需要使用处理机,则立即暂停当前进程,并将处理机分配给更重要更紧迫的那个进程。
  • 优点:可以优先处理更紧急的进程,也可以实现让进程按照时间片轮流执行的功能,适合分时操作系统,实时操作系统
  • #进程的切换与过程


    #狭义进程调度

  • 指的是从就绪队列中选择一个要运行的进程(该进程可以是刚刚被暂停的进程,也可以是另一个进程,后一种情况就需要进程切换
  • #进程切换

  • 指的是一个进程让出处理机,由另一个进程占用处理机的过程
  • 进程切换的过程主要完成了:
  • 1.对原来运行进程的各种数据保存
  • 2.对新进程的各种数据恢复(如:程序计数器,数据状态字,各种数据寄存器等)
  • 进程切换是*有代价的*,因此过于频繁地进行进程调度,切换,必然会导致整个系统的效率降低。
  • #广义进程调度

  • 包含了*选择一个进程*和*进程切换*两个步骤