进程具备运行条件,等待系统分配处理器以便运行的状态。
当进程已分配到除CPU以外的所有必要资源后,只要再获得CPU,便可立即执行,进程这时的状态称为就绪状态。在一个系统中处于就绪状态的进程可能有多个,通常将它们排成一个队列,称为就绪队列。
又称等待态,指进程不具备运行条件,正在等待某个时间完成的状态。
也称为等待或睡眠状态,一个进程正在等待某一事件发生(例如请求I/O而等待I/O完成等)而暂时停止运行,这时即使把处理机分配给进程也无法运行,故称该进程处于阻塞状态。
引起进程状态转换的具体原因如下:
执行态→阻塞态:等待使用资源;如等待外设传输;等待人工干预。
阻塞态→就绪态:资源得到满足;如外设传输结束;人工干预完成。
执行态→就绪态:运行时间片到;出现有更高优先权进程。
就绪态→执行态:CPU 空闲时选择一个就绪进程。
五态模型在三态模型的基础上增加了创建态(new)和终止态(exit)。
为新进程分配所需要资源和建立必要的管理信息(分配PCB及其所需资源),设置该进程为就绪态,并等待被调度执行
但进程所需的资源尚不能满足,例如:内存不够用,无法将该进程设为就绪态,则此时创建工作并未完成,进程不能被直接调用,该状态就为创建态
当处于创建态的进程获取到它所需的资源后,则转为就绪态
指进程完成任务到达正常结束点,或出现无法克服的错误而异常终止,或被操作系统及有终止权的进程所终止时所处的状态。
处于终止态的进程不再被调度执行,下一步将被系统撤销,最终从系统中消失。
先等待操作系统或相关的进程进行善后处理(如抽取信息)。
然后回收占用的资源并被系统删除(将PCB清零并归还系统)。
引起进程状态转换的具体原因如下:
NULL→创建态:执行一个程序,创建一个子进程。
创建态→就绪态:当操作系统完成了进程创建的必要操作,并且当前系统的性能和虚拟内存的容量均允许。
运行态→终止态:当一个进程到达了自然结束点,或是出现了无法克服的错误,或是被操作系统所终结,或是被其他有终止权的进程所终结。
运行态→就绪态:运行时间片到;出现有更高优先权进程。
运行态→等待态:等待使用资源;如等待外设传输;等待人工干预。
就绪态→终止态:未在状态转换图中显示,但某些操作系统允许父进程终结子进程。
等待态→终止态:未在状态转换图中显示,但某些操作系统允许父进程终结子进程。
终止态→NULL:完成善后操作
引起进程挂起的原因主要有:
终端用户的请求。当终端用户在自己的程序运行期间发现有可疑问题时,希望暂停使自己的程序静止下来。亦即,使正在执行的进程暂停执行;若此时用户进程正处于就绪状态而未执行,则该进程暂不接受调度,以便用户研究其执行情况或对程序进行修改。我们把这种静止状态成为“挂起状态”。
父进程的请求。有时父进程希望挂起自己的某个子进程,以便考察和修改子进程,或者协调各子进程间的活动。
负荷调节的需要。当实时系统中的工作负荷较重,已可能影响到对实时任务的控制时,可由系统把一些不重要的进程挂起,以保证系统能正常运行。
操作系统的需要。操作系统有时希望挂起某些进程,以便检查运行中的资源使用情况或进行记账。
对换的需要。为了缓和内存紧张的情况,将内存中处于阻塞状态的进程换至外存上。
七态模型在五态模型的基础上增加了静止就绪态(ready suspend)和静止阻塞态(blocked suspend)。
引起进程状态转换的具体原因如下