2.1-2-进程的状态与转换
进程是 程序的一次执行。在这个执行过程中,有时进程正在被CPU处理,有时又需要等到CPU服务。可见,进程的状态是会有各种变化。为了方便对各个进程的管理,操作系统需要将进程合理地划分为几种状态。
进程的三种基本状态:
运行态(runing)——占有CPU,并在CPU上运行
就绪态(ready)——已经具备运行条件,但由于没有空闲CPU,而暂时不能运行(进程已经拥有了除了处理机之外所有需要的资源,一旦获得处理机,即可立即进入运行态开始运行。即万事俱备,只欠CPU)
阻塞态(waiting/blocked,又称等待态)——因等待某一事件而暂时不能运行(如:等待操作系统分配打印机、等待读磁盘操作的结果。CPU是计算机中最昂贵的部件,为了提高CPU的利用率,需要先将其他进程需要的资源分配到位,才能得到CPU的服务)
注意:单核处理机环境下,每一时刻最多只有一个进程处于运行态(双核环境下可以同时有两个进程处于运行态)
进程的状态——另外两种状态
创建态(New,又称:新建态)——进程正在被创建,操作系统为进程分配资源,初始化PCB
终止态(Termineted,又称:结束态)——进程正在从系统中撤销,操作系统会回收进程拥有的资源、撤销PCB
进程状态的转换
运行态到终止态原因——进程运行结束,或运行过程中遇到不可修复的错误
运行态到阻塞态是一种进程自身做出的主动行为
阻塞态到就绪态不是进程自身能控制的,是一种被动行为
注意:不能由阻塞态直接转换为运行态,也不能由就绪态直接转换为阻塞态,因为进入阻塞态是进程主动请求的,必然需要进程在运行时才能发出这种请求