计算机系统基础知识-进程管理

chengsenw 项目开发评论1阅读模式

计算机系统基础知识-进程管理

进程管理是计算机系统基础知识的核心考点,也是架构设计中进程调度、资源分配的基础,重点覆盖进程资源管理、信号量与PV操作三大模块,内容参考系统架构设计师教材第2章计算机系统基础知识。

一、进程管理基础概述

进程(Process)是操作系统进行资源分配的基本单位,是程序在计算机中的一次执行过程

(一)进程与线程的核心概念

  1. 进程:进程是操作系统分配资源的基本单位。每个进程都有自己独立的内存空间和系统资源(文件句柄、网络连接等)。进程之间的切换开销较大,独立性强,一个进程崩溃通常不会影响其他进程。
  2. 进程的组成:进程控制块PCB(唯一标志)、程序(描述进程要做什么)、数据(存放进程执行时所需数据)。
  3. 线程:线程是进程中的一个执行单元,一个进程可以包含多个线程。线程共享进程的地址空间和大部分资源,线程共享所属进程的地址空间和资源,仅拥有独立的程序计数器、寄存器集合和栈空间,线程之间的切换开销远小于进程,并发效率更高。

(二)进程三态图

进程的生命周期包含三种核心状态(就绪、运行、阻塞),各状态之间可根据系统事件相互转换,构成进程三态图,具体状态及转换逻辑如下:

计算机系统基础知识-进程管理
  • 就绪状态:进程已具备所有执行条件,等待CPU调度(分配执行时间),此时进程不占用CPU,仅等待调度机会。当进程被创建、从阻塞状态唤醒,或时间片用完后,会进入就绪状态。
  • 运行状态:进程获得CPU资源,正在执行指令,是进程的实际执行状态。当进程时间片用完,或进程主动请求资源(未获得时),会退出运行状态。
  • 阻塞状态:进程因等待某类事件(如资源分配、I/O完成、信号量触发)而无法继续执行,此时即使有CPU资源,也无法执行。当进程等待的事件发生(如获得资源、I/O完成),会被唤醒,进入就绪状态。

核心转换关系:

就绪状态 → 运行状态(CPU调度);

运行状态 → 就绪状态(时间片用完、高优先级进程抢占);

运行状态 → 阻塞状态(请求资源未获得、等待I/O等);

阻塞状态 → 就绪状态(等待事件完成、被唤醒)。

进程不能直接从就绪态转换到阻塞态

进程与程序的核心区别:程序是静态的指令集合(如.exe文件),不具备运行状态;进程是动态的执行过程,拥有自己的生命周期(创建→就绪→运行→阻塞→终止),且会占用CPU、内存等系统资源。

二、前驱图

(一)核心定义

前驱图(Precedence Graph),是一种有向无环图(DAG),用于描述进程之间的依赖关系和执行顺序。即哪些任务可以并行执行,哪些任务之间有顺序关系。

图中表示ABC可以并行执行,但是必须ABC都执行完后,才能执行D,这就确定了两点:任务间的并行、任务间的先后顺序。

三、进程资源管理

(一)进程资源

进程运行过程中需占用各类资源,按资源特性可分为两类:可剥夺资源,不可剥夺资源

  1. 可剥夺资源:系统可强制收回该资源,重新分配给其他进程,不会导致进程故障,如CPU、内存(分页/分段存储中的内存块);
  2. 不可剥夺资源:一旦分配给某进程,需该进程主动释放,系统无法强制收回,否则会导致进程执行失败,如打印机、磁带机、独占文件等。
计算机系统基础知识-进程管理

如图所示:P代表进程,R代表资源,R方框中有几个圆球就表示有几个这种资源,在上图中,R1指向P1,表示R1有一个资源已经分配给了P1,P2指向R2,表示P2还需要请求两个R2资源才能执行。

阻塞节点:某进程所请求的资源已经全部分配完毕,无法获取所需资源,该进程被阻塞了无法继续。如上图中P2。

非阻塞节点:某进程所请求的资源还有剩余,可以分配给该进程继续运行。如上图中P1。

当一个进程资源图中所有进程都是阻塞节点时,即陷入死锁状态。

(三)进程的同步互斥

互斥表示一个资源在同一时间内只能由一个任务单独使用,需要加锁,使用完后解锁才能被其他任务使用:

同步表示两个任务可以同时执行,只不过有速度上的差异,需要速度上匹配,不存在资源是否单独或共享的问题。

计算机系统基础知识-进程管理

(三)进程资源竞争与死锁预防

进程资源竞争是导致死锁的核心原因,死锁是指多个进程因相互等待对方占用的资源,而陷入无法继续执行的僵局。死锁产生必要条件(四大条件,缺一不可):

计算机系统基础知识-进程管理
  • 互斥条件:资源只能被一个进程占用,不可共享;
  • 请求与等待条件:进程持有部分资源,同时请求其他资源,且不释放已持有的资源;
  • 不可剥夺条件:不可剥夺资源被占用后,无法被系统强制收回;
  • 循环等待条件:多个进程形成循环依赖,每个进程都在等待下一个进程占用的资源。

死锁预防核心策略:破坏四大条件中的任意一个即可,常用策略包括:

  • 破坏互斥条件:对可共享资源采用共享分配方式(如内存、磁盘文件);
  • 破坏请求与保持条件:采用“预先分配”策略,进程启动前一次性申请所有所需资源,申请不到则不启动;
  • 破坏不可剥夺条件:对可剥夺资源(如CPU)采用强制收回机制;
  • 破坏循环等待条件:对资源进行编号,进程必须按编号递增顺序申请资源,禁止逆序申请。

四、信号量与PV操作

(一)信号量核心定义

信号量是操作系统中用于实现进程同步与互斥的核心机制,本质是一个整型变量S,可取值为正、负或零,结合PV操作实现进程间的协调,信号量的核心分类的两类:

  1. 互斥信号量:用于实现进程间对临界资源的互斥访问,初始值为1(表示临界资源空闲),取值范围为[-n,1](n为等待该资源的进程数);
  2. 同步信号量:对共享资源进行访问,初始值是共享资源的个数。
补充说明:临界资源是指同一时刻只能被一个进程占用的资源(如打印机),该进程释放后又可以被其他进程使用。

(二)PV操作定义与执行逻辑

PV操作是信号量的两个核心操作,均为原子操作(不可中断,执行过程中不会被其他进程打断),具体定义与执行逻辑如下:

计算机系统基础知识-进程管理

1. P操作(Passeren 申请资源)

操作逻辑:将信号量S的值减1(S = S - 1),然后判断S的值:

  • 若S ≥ 0:表示当前进程可继续执行,成功获取资源或满足同步条件;
  • 若S < 0:表示当前进程无法获取资源或未满足同步条件,将该进程阻塞,放入信号量S的等待队列中。

核心作用:申请资源、检测同步条件,若无法满足则阻塞进程。

2. V操作(Verhoog 释放资源)

操作逻辑:将信号量S的值加1(S = S + 1),然后判断S的值:

  • 若S > 0:表示当前没有等待该信号量的进程,释放资源后无需唤醒其他进程,进程继续执行;
  • 若S ≤ 0:表示有进程在等待该信号量,从等待队列中唤醒一个进程,使其进入就绪状态,当前进程继续执行。

核心作用:释放资源、通知同步条件满足,唤醒阻塞进程。

 
chengsenw
  • 本文由 chengsenw 发表于 2026年4月2日 22:54:21
  • 转载请务必保留本文链接:https://www.gewo168.com/34686.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: