一、进程的状态
创建状态:进程正在被创建,尚未转到就绪状态。创建步骤包括:申请空白的 PCB,向 PCB 中填写一些控制和管理信息,系统向进程分配运行时所需的资源。
就绪状态:进程已处于准备运行的状态,获得了除处理机之外的一切所需资源,一旦得到处理机即可运行。
运行状态:进程正在处理机上运行。在单处理机环境下,每一时刻最多只有一个进程处于运行状态;
阻塞状态,又称等待状态:进程正在等待某一事件而暂停运行,如等待某资源为可用(不包括处理机)或等待输入/输出完成。即使处理机空闲,该进程也不能运行。
终止状态:进程正常结束、发生错误或者系统中断退出运行。系统必须首先将进程置为结束状态,再进一步处理资源释放及回收工作。
二、进程的状态切换
就绪状态 -> 运行状态: 处于就绪状态的进程被调度后,获得处理机资源(分派处理机时间片),进程由就绪状态转换为运行状态。
运行状态 -> 就绪状态: 处于运行状态的进程在时间片用完后,不得不让出处理机,进程由运行状态转换为就绪状态。此外,在可剥夺的操作系统中,当有更高优先级的进程就绪时,调度程度将正执行的进程转换为就绪状态,让更高优先级的进程执行。
运行状态 -> 阻塞状态: 当进程请求某一资源(如外设)的使用和分配或等待某一事件的发生(如I/O操作的完成)时,它就从运行状态转换为阻塞状态。进程以系统调用的形式请求操作系统提供服务,这是一种特殊的、由运行用户态程序调用操作系统内核过程的形式。
阻塞状态 -> 就绪状态: 当进程等待的事件到来时,如I/O操作结束或中断结束时,中断处理程序必须把相应进程的状态由阻塞状态转换为就绪状态。