2. 进程的状态 & 转换

1. 进程的状态

创建态:进程正在被创建时,它的状态是“创建态”,在这个阶段操作系统会为进程分配资源初始化 PCB

就绪态:当进程创建完成后,便进入“就绪态”,处于就绪态的进程已经具备运行条件,但由于没有空闲的 CPU,就暂时不能运行

运行态:如果一个进程此时在 CPU 上运行,那么这个进程就处于“运行态”。CPU 会执行该进程对应的程序

阻塞态:在进程运行的过程中,可能会请求等待某个事件的发生(如等待某种系统资源分配,或者等待其他进程的响应)。在这个事件发生之前,进程无法继续往下执行,此时操作系统会让这个进程下 CPU,并让它进入“阻塞态”

终止态:一个进程可以执行 exit 系统调用,请求操作系统终止该进程。此时该进程会进入“终止态”,操作系统会让该进程下 CPU,并回收内存空间等资源,最后还要回收该进程的 PCB

进程 PCB 中,会有一个变量 state 来表示进程当前状态。如:1 表示创建态、2 表示就绪态、3 表示运行态......

为了对同一个状态下的各个进程进行统一的管理,操作系统会将各个进程的 PCB 组织起来,组织方法如下:

链接方式:

索引方式:

2. 进程状态的转换

阻塞态 -> 就绪态不是进程自身能控制的,是一种被动行为

运行态 -> 阻塞态是一种进程自身做出的主动行为

不能由阻塞态直接转换为运行态,也不能由就绪态直接转换为阻塞态(因为进入阻塞态是进程主动请求的,必然需要进程在运行时才能发出这种请求)

Last updated