抱歉,您的浏览器无法访问本站

本页面需要浏览器支持(启用)JavaScript


了解详情 >

image-20211013083630437

状态

进程PCB中,会有一个变量state来表示进程的当前状态。

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

进程的整个生命周期中,大部分时间都处于三种基本状态。

运行态

当CPU空闲时,操作系统就会选择一个就绪进程,让它上处理机运行。

如果一个进程此时正在CPU上运行,那么这个进程处于“运行态”。CPU会执行该进程对应的程序(执行指令序列)

单CPU情况下,同一时刻只会有一个进程处于运行态,多核CPU情况下,可能有多个进程处于运行态。

就绪态

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


系统中可能会有很多个进程都处于就绪态。

阻塞态

在进程运行的过程中,可能会请求等待某个事件的发生(如等待某种系统资源的分配,或者等待其他进程的响应)。


在这个事件发生之前,进程无法继续往下执行,此时操作系统会让这个进程下CPU,并让他它进入“阻塞态”。


当CPU空闲时,又会选择另一个“就绪态”进程上CPU运行。

创建态

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

终止态

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


当终止进程的工作完成之后,这个进程就彻底消失了。

状态间的切换

就绪态 –> 运行态

进程被调度

运行态 –> 就绪态

时间片到,或CPU被其他高优先级的进程抢占

运行态 –> 阻塞态

等待系统资源分配,或等待某事件发生(主动行为)

阻塞态 –> 就绪态

资源分配到位,等待的事件发生(被动行为)

创建态 –> 就绪态

系统完成创建进程相关的工作

运行态 –> 终止态

进程运行结束,或运行过程中遇到不可修复的错误

进程状态的转换

image-20211013074353318

评论




2019-2022 覃浩的博客 鄂ICP备2021017381号-1 正在载入...

PoweredHexo
HostedGitHub & Coding
DNSDNSPod
CDN腾讯云CDN
PictureBed腾讯云CDN
ThemeVolantis