前言
进程是程序的一次执行,在执行过程中有些进程正在被cpu处理,有时需等待CPU服务
一、进程的三种基本状态
运行态:占有CPU,并在CPU运行。
就绪态:已具备运行的条件,但由于没有空闲的CPU而暂时不能运行。
阻塞态:因等待某一事件而暂时不能运行
ps:
1.单核处理机下,每一时刻最多有一个进程处于运行态(双核环境下可同时有两个进程处于运行态)。
2.进程在就绪态下,已经拥有了除CPU之外所有需要的资源,一旦获取CPU可立即进入运行态运行。
3.阻塞态下等待的事件,如等待操作系统分配打印机,等待读磁盘操作的结果,为了提高CPU的利用率需要先将其他进程所需资源分配到位,才能得到CPU服务。
补充(另外两种状态):
1.创建态:进程正在被创建,操作系统为其分配资源,初始化PCB(进程控制块)。
2.终止态:进程正在从系统中撤销,操作系统回收其所拥有的资源,撤销PCB。
二、进程状态的转换
创建态——>就绪态:系统完成创建进程的一系列工作。(处理机 × ,其他 √)
就绪态——>运行态:进程被调度。(处理机 √,其他 √)
运行态——>就绪态:时间片到货处理机被抢占。
运行态——>终止态:进程运行结束或运行遇到不可修复的错误。
运行态——>阻塞态:进程用“系统调用”的方式申请某种资源或请求等待某个事件发生。(处理机×,其他 ×)
阻塞态——>就绪态:申请的资源被分配或等待事件发生。
ps:1.阻塞态——>就绪态不是进程自身能控制的是一种被动行为,运行态——>阻塞态是一种进程自身做出的主动行为。
2.不能由阻塞态直接转换为运行态,也不能由就绪态态直接转换为阻塞态(因为转换为阻塞态是进程自身控制的主动行为,只能在运行态下才能主动发出这种请求)