1.进程的5种基本状态
在进程的运行过程中,由于多个进程在并发执行时共享系统资源,致使它们在运行过程中呈现间断性的运行规律,所以进程在其生命周期内可能具有多种状态。
(1)就绪(Ready)状态:指进程已处于准备好的运行状态,即进程获得了除处理机外的一切所需资源,一旦得到处理机,便可立即运行。系统中处于就绪状态的进程可能有多个,通常将它们排成一个队列,称为就绪队列。
(2)执行(Running)状态:这是指进程已获得CPU,其程序正在执行的状态。在单处理机环境下,每个时刻最多只有一个进程处于运行态。
(3)阻塞(Block)状态:这是指正在执行的进程由于发生某事件(如I/O请求、申请缓冲区失败等)暂时无法继续执行时的状态,亦即进程的执行受到阻塞。即使处理机空闲,该进程也不能运行。
(4)创建状态:进程正在被创建,尚未转到就绪态。创建进程通常需要多个步骤:首先申请一个空白的PCB,并向PCB中填写一些控制和管理进程的信息;然后由系统为该进程分配运行时所必需的资源;最后把该进程转入就绪态。
引入创建状态是为了保证进程的调度必须在创建工作完成后进行,以确保对进程控制块操作的完整性。
(5)终止状态:进程的终止也要通过两个步骤:首先,是等待操作系统进行善后处理,最后将其PCB清零,并将PCB空间返还系统。
当一个进程到达了自然结束点,或是出现了无法克服的错误,或是被操作系统所终结,或是被其他有终止权的进程所终结,它将进入终止状态。进入终止态的进程以后不能再执行,但在操作系统中依然保留一个记录,其中保存状态码和一些计时统计数据,供其他进程收集。一旦其他进程完成了对其信息的提取之后,操作系统将删除该进程,即将其PCB清零,并将该空白PCB返还系统。
注意区别就绪态和等待态:就绪态是指进程仅缺少处理机,只要获得处理机资源就立即运行;而等待态是指进程需要其他资源(除了处理机)或等待某一事件。
2.进程状态的相互转换
进程并非固定处于某一状态,其状态会随着自身的推进和外界条件的变化而发生变化。通常,可以用一个进程状态变化图来说明系统中每个进程可能具备的状态以及这些状态发生转换的可能原因。
进程的五种基本状态及转换
一个进程从运行状态变成阻塞状态是主动的行为,而从阻塞状态变成就绪状态是被动的行为,需要其他相关进程的协助。
进程状态的转换并非都是可逆的,一个具体的进程在任何一个指定的时刻必须且只能处于一种状态。
无
登录后开始许愿
加油