进程管理是计算机系统基础知识的核心考点也是架构设计中进程调度、资源分配的基础重点覆盖进程资源管理、信号量与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这就确定了两点任务间的并行、任务间的先后顺序。三、进程资源管理一进程资源进程运行过程中需占用各类资源按资源特性可分为两类可剥夺资源,不可剥夺资源可剥夺资源系统可强制收回该资源重新分配给其他进程不会导致进程故障如CPU、内存分页/分段存储中的内存块不可剥夺资源一旦分配给某进程需该进程主动释放系统无法强制收回否则会导致进程执行失败如打印机、磁带机、独占文件等。如图所示P代表进程R代表资源R方框中有几个圆球就表示有几个这种资源在上图中R1指向P1表示R1有一个资源已经分配给了P1P2指向R2表示P2还需要请求两个R2资源才能执行。阻塞节点某进程所请求的资源已经全部分配完毕无法获取所需资源该进程被阻塞了无法继续。如上图中P2。非阻塞节点某进程所请求的资源还有剩余可以分配给该进程继续运行。如上图中P1。当一个进程资源图中所有进程都是阻塞节点时即陷入死锁状态。二进程的同步互斥互斥表示一个资源在同一时间内只能由一个任务单独使用需要加锁使用完后解锁才能被其他任务使用同步表示两个任务可以同时执行只不过有速度上的差异需要速度上匹配不存在资源是否单独或共享的问题。三进程资源竞争与死锁预防进程资源竞争是导致死锁的核心原因死锁是指多个进程因相互等待对方占用的资源而陷入无法继续执行的僵局。死锁产生必要条件四大条件缺一不可互斥条件资源只能被一个进程占用不可共享请求与等待条件进程持有部分资源同时请求其他资源且不释放已持有的资源不可剥夺条件不可剥夺资源被占用后无法被系统强制收回循环等待条件多个进程形成循环依赖每个进程都在等待下一个进程占用的资源。死锁预防核心策略破坏四大条件中的任意一个即可常用策略包括破坏互斥条件对可共享资源采用共享分配方式如内存、磁盘文件破坏请求与保持条件采用“预先分配”策略进程启动前一次性申请所有所需资源申请不到则不启动破坏不可剥夺条件对可剥夺资源如CPU采用强制收回机制破坏循环等待条件对资源进行编号进程必须按编号递增顺序申请资源禁止逆序申请。四、信号量与PV操作一信号量核心定义信号量是操作系统中用于实现进程同步与互斥的核心机制本质是一个整型变量S可取值为正、负或零结合PV操作实现进程间的协调信号量的核心分类的两类互斥信号量用于实现进程间对临界资源的互斥访问初始值为1表示临界资源空闲取值范围为[-n,1]n为等待该资源的进程数同步信号量对共享资源进行访问初始值是共享资源的个数。补充说明临界资源是指同一时刻只能被一个进程占用的资源如打印机该进程释放后又可以被其他进程使用。二PV操作定义与执行逻辑PV操作是信号量的两个核心操作均为原子操作不可中断执行过程中不会被其他进程打断具体定义与执行逻辑如下1. P操作Passeren申请资源操作逻辑将信号量S的值减1S S - 1然后判断S的值若S ≥ 0表示当前进程可继续执行成功获取资源或满足同步条件若S 0表示当前进程无法获取资源或未满足同步条件将该进程阻塞放入信号量S的等待队列中。核心作用申请资源、检测同步条件若无法满足则阻塞进程。2. V操作Verhoog释放资源操作逻辑将信号量S的值加1S S 1然后判断S的值若S 0表示当前没有等待该信号量的进程释放资源后无需唤醒其他进程进程继续执行若S ≤ 0表示有进程在等待该信号量从等待队列中唤醒一个进程使其进入就绪状态当前进程继续执行。核心作用释放资源、通知同步条件满足唤醒阻塞进程。