进程调度

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

 

      【1】需要进行进程调度与切换的情况 (1)当前运行的进程主动放弃处理机【进程正常终止,运行进程发生异常而终止,进程主动请求阻塞】;

                     (2)当前运行的进程被动放弃处理机【分给进程的时间片用完,有更紧急的事需要处理(I/O中断),有更高优先级】

 

      【2】不能进行进程调度与切换的情况  (1)在处理中断的过程中。

                        (2) 进程在操作系统内核程序临界区中(普通临界区可以)。

                          (3)在原子操作过程中。

 

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

     临界区:访问临界资源的那段代码(不会影响系统内核的管理工作,因此在访问普通临界区是可以进行调度与切换)。

 

    内核程序临界区一般是用来访问某种内核数据结构的。其访问地临界资源(内核数据结构)如果不能尽快释放的话,极有可能影响到操作系统内核的其他管理工作。因此在访问内核程序灵界区间不能进行调度与切换。

 

进程调度的方式

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

【2】 剥夺调度方式,又称抢占方式。当一个进程正在处理机上执行时,如果有一个更重要或更紧迫的进程需要使用处理机,则理及暂停正在执行的进程,将处理及分配给更紧迫的那个进程。

进程的切换与过程

【1】“狭义的进程调度”与“进程切换”的区别:

    狭义的进程调度指的是从就绪队列中选中一个要运行的进程。(这个进程可以是刚刚被暂停执行的进程,也可以是另一个进程,后一种情况需要进程切换);

    进程切换是指一个进程让出处理机,有另一个进程占用处理机的过程。

 

【2】     广义的进程调度:包含了选择一个进程和进程切换的俩个步骤。

 

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

    (1)对原来运行进程各种数据的保存;

     (2) 对新的进程各种数据的回复

 

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

 

posted @ 2020-05-22 19:53  每天都要吃早饭  阅读(516)  评论(0编辑  收藏  举报