进程的状态和转换

简介: 注意:运行态回到就绪态有两种方式:1.运行态——阻塞态——就绪态2.运行态——就绪态(每个进程行CPU运行都是一个时间片,一个时间片的时间到了,CPU接收到时钟中断信号,该进程就会下CPU,进入就绪态)

一、进程的状态


1.创建态:进程正在被创建的阶段。此阶段,操作系统会为进程分配资源、初始化PCB。


2.就绪态:进程创建完毕即进入就绪态。此阶段,进程具备已经具备所有运行条件,但是此时CPU比较繁忙,没有空闲时间去运行该进程。


一个操作系统内存中会有很多个处于就绪态的进程,当CPU空闲时,操作系统会选择一个就绪态进程,使其上CPU上运行。


3.运行态:进程正在CPU上运行的阶段。此阶段,CPU会运行进程,执行一系列的指令。


4.阻塞态:进程运行过程中,请求等待某个事件的发生(如:等待某种系统资源的分配,等待某个进程的响应)而无法继续运行下去,下CPU等待的状态即为阻塞态。此时CPU会选择其他处于就绪态的进程上CPU运行。当阻塞态进程等待的事件发生了,该进程会变为就绪态。


例子:进程A处于运行态,CPU执行一系列指令,指令1、指令2、指令3(发出系统调用,请求使用打印机资源),而此时打印机资源正在被其他进程使用中,则进程A需要等待打印机资源的分配,进入阻塞态。此时CPU会选择就绪态进程B上CPU运行,进程B运行结束后CPU再次空闲,选择就绪态进程A运行。



5.终止态:一个进程执行exit系统调用,请求操作系统终止该进程,则进程进入中止态。处于终止态的进程,操作系统会让该进程下CPU,并回收该进程二点内存空间等资源,回收PCB。当终止进程的工作完成后,进程就彻底消失了。


二、进程状态间的转换


注意:运行态回到就绪态有两种方式:


1.运行态——阻塞态——就绪态


2.运行态——就绪态(每个进程行CPU运行都是一个时间片,一个时间片的时间到了,CPU接收到时钟中断信号,该进程就会下CPU,进入就绪态)

7f6dac6db05af593fb1d27191ad55aeb_e5289f65584a44a0a9296008024ac367.png



三、进程的组织方式 (进程PCB的组织方式)


PCB有两种组织方式:


1.链接方式


操作系统管理一系列的队列,每一个队列中都包含相应状态的进程PCB。


就绪态队列——PCB1——PCB2——PCB3——……(CPU会把优先级高的进程放在队头)


运行态队列——PCB4——PCB5——PCB6——……


阻塞态队列——PCB7——PCB8——PCB9——……(很多操作系统还会根据进程进入阻塞态的不同原因再细分不同的阻塞队列)



2.索引方式


操作系统会给不同状态的进程建立相应的索引表,每个索引表的表向会指向相应的PCB。

06df428372808010fb10d2249701393c_af8f30ce690d49b59617759bab7748cf.png

目录
相关文章
你的应用进入了中断状态,但无任何代码显示,因为所有线程之前都在执行外部代码
你的应用进入了中断状态,但无任何代码显示,因为所有线程之前都在执行外部代码
2779 0
你的应用进入了中断状态,但无任何代码显示,因为所有线程之前都在执行外部代码
|
6月前
|
运维 Python Windows
如何通过Python脚本查找并终止占用指定端口的进程
在日常的开发和运维过程中,某些端口被意外占用是一个常见的问题。这种情况可能导致服务无法启动或冲突。本文将介绍如何通过Python脚本查找并终止占用指定端口的进程,以确保系统的正常运行。
|
Java 调度
线程包括哪些状态,状态之间是如何变化的
线程包括哪些状态,状态之间是如何变化的
81 0
|
8月前
|
调度
进程有哪几种状态
进程有哪几种状态
|
NoSQL Linux 调度
Linux进程控制【创建、终止、等待】
进程创建后,需要对其进行合理管理,光靠OS是无法满足我们的需求的,此时可以运用进程控制相关知识,对进程进行手动管理,如创建进程、终止进制、等待进程等,其中等待进程可以有效解决僵尸进程问题
216 1
Linux进程控制【创建、终止、等待】
|
Linux Windows
PS 显示当前进程的状态
PS 显示当前进程的状态
138 0
|
关系型数据库 PostgreSQL
|
弹性计算 监控 大数据
集群状态显示,进程存在,但是组件状态显示未知
集群状态显示,进程存在,但是组件状态显示未知
|
Java 调度
线程各种状态转换分析
线程在它的生命周期中会处于各种不同的状态:新建、等待、就绪、运行、阻塞、死亡。
183 0
线程各种状态转换分析