Advertisement

进程调度(1)

阅读量:

进程—进程调度(1)


上下文切换

进程具备被调度的特性,但需确保每个进程能够按顺序执行。由于进程在执行过程中所需的所有信息均可由其对应的PCB(task_struct)进行管理,因此在进程切换时,系统可将当前进程的运行状态信息(即快照)存储至其PCB中。这样,当下一次调度程序重新选中该进程时,即可基于之前保存的状态继续执行。同时,系统还会从目标进程的PCB中恢复其运行状态信息,从而实现调度的合理进行,这一操作过程即为上下文切换。

中断

上下文切换这一操作是在操作系统内核中实现的,对用户而言是完全不可见的,因此在进行上下文切换时,必须首先进入内核状态(通常通过时钟中断或系统调用的方式)。该过程需要依赖硬件的支持。当某个进程正在执行过程中,若发生中断事件,中断硬件 会将程序计数器、程序状态字以及可能包含的若干寄存器(这些寄存器保存了进程当前的运行状态)压入当前进程所对应的内核堆栈 中。随后,程序计数器跳转至中断服务程序 的入口地址(该地址可通过硬件向量法或软件查询法确定),并开始执行相应的中断服务程序。上述所有操作均由硬件自动完成,并在此过程中实现了一次堆栈切换(即从进程的用户堆栈 切换至其对应的内核堆栈 ,此过程由中断硬件负责)。接下来,控制权交由软件部分(即中断服务程序)处理。

全部评论 (0)

还没有任何评论哟~