进程的 概念、 组成、特征

进程:【概念】【进程标识符】【进程状态】 简单讲解了什么是进程、什么是PCB。介绍了进程标识符和如何查看进程标识符,最后列举出了Linux下的进程状态有哪些。 阅读详情

进程

进程的 概念、 组成、特征

graph LR;
进程 --> 概念 --> 理解进程与程序的区别
进程 --> 组成 --> 一个进程由那些部分构成
进程 --> 特征 --> 进程有那些重要的特点

进程的概念

程序: 是静态的, 就是个存放在磁盘里的可执行文件, 就是一系列的指令集合。

进程(Process) : 是动态的, 是程序的一次执行过程

同一个程序多次执行会对应多个进程

PCB

当进程被创建时, 操作系统会为该进程分配一个唯一的、 不重复的“ 身份证号 ” —— PID(Process ID, 进程ID)

操作系统要记录 PID、 进程所属 用户ID(UID),基本的进程描述信息, 可以让操作系统区分各个进程

还要记录给进程分配了哪些资源(如: 分配了多少内存、 正在使用哪些I/O设备、 正在使用哪些文件),可用于实现操作系统对资源的管理

还要记录进程的运行情况(如: CPU使用时间、 磁盘使用情况、 网络流量使用情况等),可用于实现操作系统对 进程的控制、 调度

这些信息都被保存在一个数据结构PCB ( Process Control Block ) 中, 即进程控制块

操作系统需要对各个并发运行的进程进行管理, 但凡管理时所需要的信息, 都会被放在PCB中

PCB是进程存在的唯一标志, 当进程被创建时, 操作系统为其创建PCB, 当进程结束时, 会回收其PCB

操作系统对进程进行管理工作所需的信息都存在PCB中

graph LR;
进程控制块_PCB___ --> 进程描述信息 --> 进程标识符PID
进程描述信息 --> 用户标识符UID

进程控制块_PCB___ --> 进程控制和管理信息 --> CPU\磁盘\流量使用情况统计
进程控制和管理信息 --> 进程当前状态:就绪态/阻塞态/运行态

进程控制块_PCB___ --> 资源分配清单
资源分配清单 --> 正在使用那些文件
资源分配清单 --> 正在使用那些内存区域
资源分配清单 --> 正在使用那些IO设备

进程控制块_PCB___ --> 处理机相关信息 --> 如PSW/PC等各种寄存器的值_用于实现进程切换_

程序段、 数据段

PCB 是给操作系统用的

程序段、 数据段是给进程自己用的

graph LR;
进程的组成 --> PCB --> 进程描述信息
PCB --> 进程控制和管理信息
PCB --> 资源分配清单
PCB --> 处理机相关信息

进程的组成 --> 程序段 --> 程序代码_指令序列_
进程的组成 --> 数据段 --> 运行过程中产生的各种数据_如:程序中定义的变量_

一个进程实体(进程映像) 由PCB、 程序段、 数据段组成

进程是动态的, 进程实体(进程映像) 是静态的

进程实体反应了进程在某一时刻的状态(如: x++后, x=2)

程序段、 数据段、 PCB三部分组成了进程实体(进程映像)

引入进程实体的概念后, 可把进程定义为:

​ 进程是进程实体的运行过程, 是系统进行资源分配和调度的一个独立单位。 一个进程被“ 调度 ” , 就是指操作系统决定让这个进程上CPU运行

注意: PCB是进程存在的唯一标志!

进程的特征

动态性是进程最基本的特征

异步性会导致并发程序执行结果的不确定性。

程序是静态的, 进程是动态的, 相比于程序, 进程拥有以下特征:

graph LR;
进程的特征 --> 动态性 --> 进程是程序一次执行过程,是动态生成/变化/灭亡
进程的特征 --> 并发性 --> 内存中有多个进程实体,各进程可并发执行
进程的特征 --> 独立性 --> 进程是独立运行/独立获取资源/独立接受调度的基本单位
进程的特征 --> 异步性 --> 各进程按各自独立的/不可预知的速度向前推进
进程的特征 --> 结构性 --> 执行过

进程组织

在一个系统中, 通常有数十、 数百乃至数千个PCB。 为了能对他们加以有效的管理, 应该用适当的方式 把这些PCB组织起来

链接方式

执行指针 指向当前处于运行态(执行态) 的进程

单CPU计算机中, 同一时刻只会有一个进程处于运行态

就绪队列指针 指向当前处于就绪态的进程

杜塞队列指针 指向当前处于阻塞态的进程,很多操作系统还会根据阻塞原因不同, 再分为多个阻塞队列

通常会把优先级高的进程放在队头

graph LR;
执行指针 --> PCB1
就绪队列指针 --> PCB2 --> PCB4
杜塞队列指针 --> PCB5 --> PCB3
索引方式:
graph LR;
执行指针 --> PCB1
就绪队列指针 --> 就绪索引表 --> PCB2 
就绪索引表 --> PCB4
杜塞队列指针 --> 堵塞索引表 --> PCB5 
堵塞索引表 --> PCB3
graph LR;
进程的组织方式 --> 链接方式
链接方式 --> 按照进程状态将PCB分为多个队列
链接方式 --> 操作系统持有指向各个队列的指针

进程的组织方式 --> 索引方式
索引方式 --> 根据进程状态的不同,建立几张索引表
索引方式 --> 操作系统持有指向各个索引表的指针

进程的状态与转换

三种基本状态:运行态、就绪态、堵塞态

graph LR;
进程的状态与转换 --> 状态    --> 运行态
状态    --> 就绪态
状态    --> 堵塞态
状态    --> 创建态
状态    --> 终止态

进程的状态与转换 --> 状态间的转换 --> 就绪态to运行态
状态间的转换 --> 运行态to就绪态
状态间的转换 --> 运行态to堵塞态
状态间的转换 --> 阻塞态to就绪态

进程的状态与转换 --> 进程的组织方式_各个进程PCB的组织方式

进程的状态——创建态、 就绪态

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

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

进程的状态——运行态

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

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

在获得所需资源之前, 进程无法再往下执行

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

进程的状态——阻塞态

当等待的事件发生时, 进程从“阻塞态” 回到 “就绪态”

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

进程的状态——终止态

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

进程状态的转换

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

进程的状态

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

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

graph LR;
三种基本状态 --> 运行态_Running
运行态_Running --> 占有CPU,并在CPU上运行

三种基本状态 --> 就绪态_Ready
就绪态_Ready --> 已经具备运行条件,但由于没有空闲CPU,而暂时不能运行

三种基本状态 --> 阻塞态_Waiting/Blocked_反称:等待态
阻塞态_Waiting/Blocked_反称:等待态 --> 因等待某一事件而暂时不能运行
graph LR;
另外两种状态 --> 创建态_new_又称新建态
创建态_new_又称新建态 --> 进程正在被创建,操作系统为进程分配资源\初始化PCB

另外两种状态 --> 终止态_Terminated_又称结束态
终止态_Terminated_又称结束态 --> 进程正在从系统中撒销,操作系统会回收进程拥有的资源\撤销PCB

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

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

进程的组织

graph LR;
进程的组织方式 --> 链接方式
链接方式 --> 按照进程状态将PCB分为多个队列
链接方式 --> 操作系统持有指向各个队列的指针

进程的组织方式 --> 索引方式
索引方式 --> 根据进程状态的不同,建立几张索引表
索引方式 --> 操作系统持有指向各个索引表的指针

进程的状态——三种基本状态

进程是程序的一次执行。在这个执行过程中,有时进程正在被CPU处理,有时又需要等待CPU服务,可见进程的状态是会有各种变化。为了方便对各个进程的管理,操作系统需要将进程合理地划分为几种状态

进程的三种基本状态:

graph LR;
三种基本状态 --> 运行态_Running
运行态_Running --> 占有CPU,并在CPU上运行

三种基本状态 --> 就绪态_Rsy
就绪态_Rsy --> 已经具备运行条件,但由于没有空闲CPU,而暂时不能运行

三种基本状态 --> 阻塞态_Waiting/Blocked_又称:等待态
阻塞态_Waiting/Blocked_又称:等待态 --> 因等待某一事件而暂时不能运行

注意:单核处理机环境下,每一时刻最多只有一个进程处于运行

进程已经拥有了除处理机之外所时刻有需要的资源,一旦获得处理机,即可立即进入运行态开始运行,即: 万事俱备, 只欠CPU

如:等待操作系统分配打印机、等待读磁盘操作的结果。CPU是最昂贵的部件, 为了提高CPU的利用率, 需要先将其他进程需要的资源分配到位, 才能得到CPU的服务

进程的状态——另外两种状态

进程运行结束(或者由于bug导致进程无法继续执行下去, 比如数组越界错误) , 需要撤销进程。

操作系统需要完成创建进程。 操作系统为该进程分配所需的内存空间等系统资源, 并为其创建、初始化PCB(如: 为进程分配 PID)

graph LR

另外俩种状态 --> 创建态_New_新建态_
创建态_New_新建态_ --> 进程正在被创建,操作系统为进程分配资源,初始化PCB

另外俩种状态 --> 终止态_Terminated_结束态_
终止态_Terminated_结束态_ --> 进程正在从系统中撤销,操作系统会回收进程拥有的资源,撤销PCB
graph LR
进程的状态 --> 运行态
进程的状态 --> 就绪态
进程的状态 --> 阻塞态
进程的状态 --> 创建态
进程的状态 --> 终止态

进程控制

进程控制的主要功能是对系统中的所有进程实施有效的管理, 它具有创建新进程、 撤销已有进程、 实现进程状态转换等功能。

进程控制就是要实现进程状态转换

graph LR

创建态 --> 就绪态 
就绪态 --> 运行态
运行态 --> 就绪态
运行态 --> 终止态
运行态 --> 阻塞态 
阻塞态 --> 就绪态
保姆级教程:手把手教你从ENSEMBL官网下载GRCh38/GRCh37的GTF注释文件(附网址规律总结) 本文提供从ENSEMBL官网下载GRCh38/GRCh37的GTF注释文件的详细教程,包括路径解析、版本号确定和下载命令示例。特别解析了GRCh37的特殊存储结构,并分享批量下载、文件校验等高级技巧,帮助生物信息学研究者高效获取基因组注释文件。 阅读详情

相关推荐

Figma汉化教程

Figma汉化教程

cc蒲公英的博客 1万+

进程概念(详细版)

超全的进程概念总结

xbhinsterest11的博客 3644

VMware ubuntu虚拟机(或Centos7)与主机共享文件夹

系统环境 Windows 10 Vmware Workstation 15 Pro Ubuntu 20.04.1 LTS centos7 1.Ubuntu配置共享文件 1.1安装VMware-tools 更新最新VMware-tools组件 编辑->首选项->更新->立即下载所有组件 安装VMware-tools 虚拟机->安装VMware-tools 安装后ubuntu会加载一个虚拟光驱,解压文件,在解压的文件目录下执行以下命令进行安装 sudo vmware-instal

weixin_38924500的博客 2160

什么是进程?什么是线程?

什么是进程?什么是线程?介绍了基于Linux系统下,进程与线程的定义与组成、资源、开销、通信、创建与销毁及其优缺点,接着对进程与线程进行主要区别的总结,最后介绍了实际应用的场景

janet110617的博客 3046

IEC61850规约客户端软件开发实战(第六章)

IEC 61850标准中的GOOSE(Generic Object Oriented Substation Event,面向通用对象的变电站事件)功能是变电站自动化系统的核心通信机制,主要用于实现智能电子设备(IED)间高可靠性、低延时的实时信号传输。本章简述其核心功能与技术特点。

半青年的博客 1780

PCIE总线及其PCIE SWITCH的使用

PCIe总线与PCI最大的区别在工作原理上,PCIe是采用点到点的串行方式进行传输的,被称为“串行PCI”,由于采用了串行方式传输使得其工作频率可以达到2.5Ghz,大大增加了传输速率,同时采用全双工的通信方式,使得其传输速度提高了一倍,每一个PCIe总线设备与外部通信时有四根数据总线,分别有两个RX和TX,两根用于发送,两根由于接收。PCIe switch中文翻译为PCIe开关或PCIe交换机,主要作用将PCIe设备互联,PCIe switch芯片与其设备的通信协议都是PCIe;

zxm8513优快云博客 4736

进程相关概念(一文搞懂)

操作系统入门级知识,进程相关

日常记录,挨打要立正! 9614

C#解析基恩士(KEYENCE)PLC数据:KV协议通信与实时监控实现

KV协议是基恩士PLC使用的一种专用通信协议,通常用于与上位机进行数据交换。KV协议通过RS-232C、RS-485、Ethernet等接口与上位机通信,支持多种数据类型的读写,包括但不限于位、字、双字、浮点数等。简洁易用:KV协议的通信格式简单,易于实现。支持多种数据类型:支持位数据、字数据、定长字符串等。高效实时性:能够提供较高的实时数据交换性能,适合实时监控应用。本文介绍了如何通过C#与基恩士KV系列PLC进行通信,实现数据的解析和实时监控功能。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1810

进程的四个特征

1、并发性:指多个进程实体同存于内存中,且在一段时间内同时运行。并发性是进程的重要特征,同时也成为操作系统的重要特征。 2、动态性:进程的实质是进程实体的一次执行过程,因此,动态性是进程最基本的特征。 3、独立性:进程实体是一个独立运行、独立分配资源和独立接受调度的基本单位。 4、异步性:指进程按各自独立的、不可预知的速度向前推进,或者说实体按异步方式运行 ...

we_opkn的博客 1万+

Qt c++ llama.cpp 运行 LLaMA-3-8B 中文对话机器人(多模态输入)

助手:

寒寒豆豆软件公司的博客 223

Cadence PSpice 模型1:基于自带库新建二极管的PSpice模型图文教程

使用Cadence PSpice进行电路图的仿真时,难免会遇到软件自带库中没有合适的元器件的情况,这就需要设计师自己新建元器件模型,本文详细介绍使用PSpice软件修改自带库的元器件模型的参数以得到自己需要的PSpice模型库的方法。

fydar的博客 4413

操作系统(七)进程的概念、组成、特征

2.1.1 进程的概念、组成、特征 2.1.1.1 进程的概念 在第一章的是时候我们曾经提到过进程的概念,要想理解进程,首先要了解程序的概念。 程序:静态的,存放在磁盘里的可执行文件,是一系列指令的集合。如QQ.exe等 进程(progress):动态的,是程序的一次执行过程,一个程序可以产生多个进程。 既然一个程序可以产生多个进程,那么操作系统是如何区分这些看似相同...

qq_40608137的博客 2005

华为OD机试真题 C 实现【水库蓄水问题】【2022.11 Q4 新题】

给定一个长度为 n 的整数数组height。数组的元素表示山的高度,选择两个元素作为水库的边界,求蓄水量的最大值并输出蓄水量最大时的边界下标(蓄水量相同时输出下标较近的)。

MISAYAONE的博客 1万+

进程的概念、组成、特征

补充说明进程与线程的区别:线程是进程内的执行单元,共享进程资源,切换开销更小。进程状态转换:包括新建(New)、就绪(Ready)、运行(Running)、阻塞(Blocked)、终止(Terminated)等状态。程序是怎样运行的?(见下图)

2302_79330072的博客 1314

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

操作系统进程的概念、组成和特征

详解进程的概念、组成、特征以及进程实体的概念

2301_76197086的博客 302

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

彻底理解-进程的 概念、 组成、特征

在进程运行的过程中, 可能会请求等待某个事件的发生(如等待某种系统资源的分配, 或者等待其他进程的响应)。在这个事件发生之前, 进程无法继续往下执行, 此时操作系统会让这个进程下CPU, 并让它进入“阻塞态”当CPU空闲时, 又会选择另一个“” , 操作系统会让该进程下CPU,并回收内存空间等资源, 最后还要回收该进程的PCB。为了对同一个状态下的各个进程进行统一的管理,操作系统会将各个进程的PCB组织起来。, 当进程被创建时, 操作系统为其创建PCB, 当进程结束时, 会回收其PCB。

实力派,无需多言! 948

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

操作系统 ---- 进程的概念、组成、特征

来自百度:狭义定义:进程是正在运行的程序的实例(an instance of a computer program that is being executed)。广义定义:进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。它是操作系统动态执行的基本单元,在传统的操作系统中,进程既是基本的。

xinxin的博客 1759

进程的概念、组成、特征、组织

进程的概念、组成、特征、组织

weixin_51405802的博客 395

操作系统第二章 进程的概念,组成,特征

期末复习自已用来复习用的

2201_75880772的博客 937

进程的概念 组成 特征

程序和进程的关系PCB程序控制块 进程的组成 同时挂三个qq号 pcb和数据段不同 但是程序段是相同的 都是qq程序

m0_48362854的博客 100

进程的概念、特征和组成

为什么要引入进程?在多道程序环境下,允许多个程序并发执行,此时它们将失去封闭性,并具有间断性及不可再现性的特征。为此引入进程的概念,以便更好地描述和控制程序的并发执行,实现操作系统的并发性和共享性。

2301_77918491的博客 441

2.1_1_进程的概念、组成、特征

程序运行的过程就是CPU执行一条条机器指令的过程。

m0_74396523的博客 104

操作系统--进程的 概念、 组成、特征

fill:#333;color:#333;color:#333;fill:none;进程概念理解进程与程序的区别组成一个进程由那些部分构成特征进程有那些重要的特点。

实力派,无需多言! 739

操作系统——4.操作系统之进程的概念组成特征思维导向图

操作系统之进程的概念组成特征 思维导向图:

钟灵毓秀的博客 896

进程的概念、组成、特征—简单易懂

程序和进程的区别:程序是静态的可执行文件,进程是程序的动态执行过程。进程由PCB(进程控制块)、程序段和数据段组成,其中PCB是进程存在的唯一标志,由操作系统管理。一个程序可对应多个进程(如同时运行多个QQ),这些进程共享程序段但拥有独立的PCB和数据段。进程是系统资源分配和调度的基本单位,具有动态性、并发性等特征,其异步性可能导致并发程序执行结果不确定。

热爱数据库的小胖 415

26考研——进程与线程_进程_进程的概念和特征 & 进程的组成(2)

26考研408操作系统——进程与线程,持续更新ing

主攻整理408、专升本资料~ 884
上一篇: 操作系统的运行机制
下一篇: Typora+PicGo+Gitee+node.js实现图片上传功能
onnx
博客等级 码龄5年 1万+粉丝 416原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

onnx

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值