【操作系统】进程管理——进程的概念、组成和特征(个人笔记)

学习日期:2024.6.29

内容摘要:进程的基本概念和特征、状态和转换


进程的概念

程序与进程

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

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

比如说,电脑里的QQ应用,是一个程序 ,但我们可以同时打开三次QQ,此时打开任务管理器,会看到三个腾讯QQ"应用",这就是进程,同一个程序多次执行会对应多个进程。

进程控制块PCB

操作系统是进程的管理者,那么要如何区分这些进程?

操作系统会给每个进程分配唯一的PID(Process Identifier,进程控制符),相当于各个进程的身份证,程序一运行,系统就会自动分配给进程。进程终止后,PID会被系统回收,也可能被继续分配给新运行的程序。

操作系统要记录PID、进程所属的UID(User Identifier,用户标识符),还要记录给进程分配了哪些资源(如分配了多少内存、正在使用哪些I/O设备、网络流量使用情况等),以及进程当前的状态(就绪态、运行态、阻塞态等等)

这些信息,以及其它所有操作系统对进程进行管理工作所需的信息,都被保存在一个数据结构PCB(Process Control Block)当中,即进程控制块。

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

进程的组成

进程实体由PCB,程序段,数据段组成。

为什么不说"进程"?------因为进程是一个动态的概念,进程实体可以理解为进程在运行过程中某一瞬间的照片,反映进程在该瞬间的状态,在进程运行的过程中,进程实体是在不断变化的。

PCB是给操作系统用的,程序段和数据段是给进程自己用的。

进程是进程实体的运行过程, 是系统进行资源分配和调度的一个独立单位

一个进程被"调度",就是说操作系统决定让这个进程上CPU运行。

进程的特征

动态性:进程是程序的一次执行过程, 是动态的产生、编号、消亡的。(进程最基本的特征)

并发性:内存中有多个进程实体,各进程可以并发执行。

独立性:进程是能独立运行、独立获得资源、独立接受调度的基本单位。

异步性:各进程按各自独立的、不可预知的速度推进,可能导致运行结果的不确定性。

结构性:每个进程都会配置一个PCB。从结构上看,进程由程序段、数据段、PCB组成。

进程的状态和状态转换(重点)

创建态:进程正在被创建时的状态,此时操作系统会为进程分配资源,初始化PCB。

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

运行态:进程正在运行时的状态,CPU会执行该进程对应的程序。当CPU空闲时,操作系统就会选择一个就绪进程运行。

阻塞态:进程运行的过程中,可能会等待某个事件的发生(如等待某种系统资源的分配,或者其它进程的响应),此时操作系统会让这个进程下CPU,进程进入阻塞态。当CPU空闲时,又会选择另一个"就绪态"进程上CPU运行。

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

进程状态的转换------"丁字裤"

运行态到阻塞态是进程主动的,但是从阻塞态到就绪态不是,因为进程能决定它等待的资源什么时候才能获得。

就绪、运行、阻塞中间三个状态是基本状态,进程的整个生命周期中,大部分时间都处于这三种基本状态。单CPU状态下,同一时刻只会有一个进程处于运行态,多核CPU的情况下可能有多个进程处于运行态。在PCB中,会有一个变量state来标识当前状态。

进程的组织

链式方式

操作系统管理一系列的队列,每个队列都会管理相应状态的PCB,就绪队列的指针指向就绪队列的PCB(通常会把优先级高的放在队头),阻塞队列的指针指向处于阻塞状态的PCB,依此类推。

有的操作系统还会根据阻塞原因的不同,划分出多个阻塞队列。

索引方式

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


内容总结自王道计算机考研《操作系统》 和 人民邮电出版社《操作系统导论》

相关推荐
郑泰科技14 分钟前
mstsc 频繁断开是由svchost 策略引起的吗?
windows·笔记·负载均衡
鲨莎分不晴16 分钟前
优化的基石:深度解析“凸集”的数学美感与工程价值
笔记
小鹏linux20 分钟前
【linux】进程与服务管理命令 - chkconfig
linux·运维·服务器
开开心心就好38 分钟前
OCR识别工具可加AI接口,快捷键截图翻译便捷
java·网络·windows·随机森林·电脑·excel·推荐算法
雍凉明月夜1 小时前
深度学习网络笔记Ⅲ(注意力机制)
笔记·深度学习·神经网络·分类
DeeplyMind1 小时前
linux VMA创建场景详解
linux·mmap·vma
扛枪的书生1 小时前
Ansible 学习总结
linux
赵民勇1 小时前
cut命令详解
linux·shell
喂自己代言2 小时前
Windows 10 22H2 纯系统自带工具安全方案
windows·安全
闻道且行之2 小时前
Linux|CUDA与cuDNN下载安装全指南:默认/指定路径双方案+多CUDA环境一键切换
linux·运维·服务器