2. 进程的状态 & 转换
Last updated
Last updated
创建态:进程正在被创建时,它的状态是“创建态”,在这个阶段操作系统会为进程分配资源,初始化 PCB
就绪态:当进程创建完成后,便进入“就绪态”,处于就绪态的进程已经具备运行条件,但由于没有空闲的 CPU,就暂时不能运行
运行态:如果一个进程此时在 CPU 上运行,那么这个进程就处于“运行态”。CPU 会执行该进程对应的程序
阻塞态:在进程运行的过程中,可能会请求等待某个事件的发生(如等待某种系统资源分配,或者等待其他进程的响应)。在这个事件发生之前,进程无法继续往下执行,此时操作系统会让这个进程下 CPU,并让它进入“阻塞态”
终止态:一个进程可以执行 exit 系统调用,请求操作系统终止该进程。此时该进程会进入“终止态”,操作系统会让该进程下 CPU,并回收内存空间等资源,最后还要回收该进程的 PCB
进程 PCB 中,会有一个变量 state 来表示进程当前状态。如:1 表示创建态、2 表示就绪态、3 表示运行态......
为了对同一个状态下的各个进程进行统一的管理,操作系统会将各个进程的 PCB 组织起来,组织方法如下:
链接方式:
索引方式:
阻塞态 -> 就绪态不是进程自身能控制的,是一种被动行为
运行态 -> 阻塞态是一种进程自身做出的主动行为
不能由阻塞态直接转换为运行态,也不能由就绪态直接转换为阻塞态(因为进入阻塞态是进程主动请求的,必然需要进程在运行时才能发出这种请求)