操作系统(十四)进程调度的时机、调度方式

2.2.2 进程调度的时机、调度方式

2.2.2.1 进程调度的时机

  进程调度(低级调度)就是按照某种算法从就绪队列中选择一个进程为其分配处理机。需要进程调度的时机有以下两种情况:当前进程主动放弃处理机,当前进程被动放弃处理机。

  当前进程主动放弃处理机:进程正常终止;运行过程中发生异常而终止;进程主动请求阻塞(如 等待I/O)

  当前进程被动放弃处理机:分给进程的时间片用完、有更紧急的事需要处理(如 I/O中断)、有更高优先级的进程进入就绪队列

  禁止进行进程调度和切换的时机有:1. 在处理中断的过程中。中断处理过程复杂,与硬件密切相关,很难做到在中断处理过程中进行进程切换。2. 进程在操作系统内核程序临界区中。3. 在原子操作过程中(原语),因为原子操作不可中断。

  需要留意的是进程在操作系统内核程序临界区中时不可以进行进程切换,但是进程在临界区的时候可以进行进程切换。这里解释一下临界区:临界区是用来访问临界资源的代码块,临界资源是在一个时间内仅允许一个进程访问的资源。内核程序临界区是指访问内核程序资源的代码。因为内核程序临界资源一般是比较重要的,如果在这里进行进程切换就可能会导致一些进程迟迟访问不到资源而等待时间过长饿死。

2.2.2.2 进程调度的方式

  抢占式:允许调度程序根据某种原则去暂停某个正在执行的进程,将已分配给该进程的处理机重新分配给另一进程。

  非抢占式:一旦把处理机分配给某进程后,不管它要运行多长时间,一直让它运行下去,决不会因为时钟中断等原因而抢占正在运行进程的处理机,也不允许其它进程抢占已经分配给它的处理机。直至该进程完成,自愿释放处理机,或发生某事件而被阻塞时,才再把处理机分配给其他进程。

发布了14 篇原创文章 · 获赞 1 · 访问量 226

猜你喜欢

转载自blog.csdn.net/qq_40608137/article/details/104652980