一个进程的生命周期能够划分为一组状态,这些状态刻画了整个进程。进程状态即体现一个进程的生命状态。性能
进程状态反映进程执行过程的变化。这些变化随着进程的执行和外界条件的变化而转换。操作系统
在三态模型中,进程状态分为三个基本状态,即运行态
,就绪态
,阻塞态
code
在五态模型中,进程分为新建态
、运行态
、就绪态
、阻塞态
、终止态
生命周期
一个进程从建立而产生至撤销而消亡的整个生命期间,有时占有处理器执行,有时虽可运行但分不处处理器、有时虽有空闲处理器但因等待某个事件的发生而没法执行,这一切都说明进程和程序不相同,它是活动的且有状态变化的,这能够用一组状态加以刻画。为了便于管理进程,通常来讲,按进程在执行过程当中的不一样状况至少要定义三种不一样的进程状态:队列
(1)运行(running)态:进程占有处理器正在运行。
(2)就绪(ready)态:进程具有运行条件,等待系统分配处理器以便运行。
(3)等待(wait)态:又称为阻塞(blocked)态或睡眠(sleep)态,指进程不具有运行条件,正在等待某个事件的完成。进程
一般,一个进程在建立后将处于就绪状态。每一个进程在执行过程当中,任意时刻当且仅当处于上述三种状态之一。同时,在一个进程执行过程当中,它的状态将会发生改变。引发进程状态转换的具体缘由以下:事件
(1)运行态一一等待态:等待使用资源或某事件发生,如等待外设传输;等待人工干预。
(2)等待态一一就绪态:资源获得知足或某事件己经发生,如外设传输结束;人工干预完成。
(3)运行态一一就绪态:运行时间片到,或出现有更高优先权进程。
(4)就绪态一一运行态:CPU空闲时被调度选中一个就绪进程执行。内存
在一个实际的系统里进程的状态及其转换比上节叙述的复杂一些,例如,引入专门的新建态(new)
和终止态(exit )
。资源
引入新建态和终止态对于进程管理来讲是很是有用的。新建态对应于进程刚刚被建立的状态,建立一个进程要经过两个步骤同步
必须指出的是,操做系统有时将根据系统性能或主存容量的限制推迟新建态进程的提交
相似地,进程的终止也要经过两个步骤
当一个进程到达了天然结束点,或是出现了没法克服的错误,或是被操做系统所终结,或是被其余有终止权的进程所终结,它将进入终止态。进入终止态的进程之后再也不执行,但依然保留在操做系统中等待善后。一旦其余进程完成了对终止态进程的信息抽取以后,操做系统将删除该进程。引发进程状态转换的具体缘由以下:
(1)NULL一一新建态:执行一个程序,建立一个子进程。
(2)新建态一一就绪态:当操做系统完成了进程建立的必要操做,而且当前系统的性能和内存的容量均容许。
(3)运行态一一终止态:当‘个进程到达了天然结束点,或是出现了没法克服的错误,或是被操做系统所终结,或是被其余有终止权的进程所终结。
(4)终止态一一NULL:完成善后操做。
(5)就绪态一一终止态:未在状态转换图中显示,但某些操做系统容许父进程终结子进程。
(6)等待态一一终止态:未在状态转换图中显示,但某些操做系统容许父进程终结子进程。
进程的阻塞是指使一个进程让出处理器,去等待一个事件,如等待资源、等待I/O完成、等待一个事件发
等,一般进程本身调用阻塞原语阻塞本身,因此,是进程自主行为
,是一个同步事件`。当一个等待事件结束会产生一个中断,从而,激活操做系统,在系统的控制之下将被阻塞的进程唤醒,如I/O操做结束、某个资源可用或期待事件出现。进程的阻塞和唤醒显然是由进程切换来完成。
一个进程完成了特定的土做或出现了严重的异常后,操做系统则收回它占有的地址空间
和进程控制块
,此时就说撤销了一个进程。进程撤销能够分正常和非正常撤销
前者如分时系统中的注消和批处理系统中的撤离做业步,后者如进程运行过程当中出现错误与异常。
当出现了引发挂起的事件时系统或进程利用挂起原语把指定进程或处于阻塞状态的进程挂起。其执行过程大体以下:检查要被挂起进程的状态
被挂起进程PCB的很是驻部分要交换到磁盘对换区
当系统资源尤为是内存资源充裕或进程请求激活指定进程时,系统或有关进程会调用激活原语把指定进程激活,该原语所作的主要土做是:把进程PCB很是驻部分调进内存,而后修改它的状态
并分别排入相应队列中