软考-软件设计师:进程管理-前趋图 作者:马育民 • 2025-04-03 14:02 • 阅读:10000 需要掌握: 1. [软考-软件设计师:信号量机制、PV操作实现进程的互斥和同步](https://www.malaoshi.top/show_1GWsNyn2qpE.html "软考-软件设计师:信号量机制、PV操作实现进程的互斥和同步") # 介绍 前驱图是一种用来描述程序(或进程)之间 **先后执行顺序** 的有向无环图(简称DAG, Directed Acyclic Graph)。 前趋图由 **结点** 和 **有向边** 两部分组成: - 结点:表示一个程序、进程 - 有向边:表示结点之间的前驱关系。 # 顺序执行前驱图 [](https://www.malaoshi.top/upload/0/0/1GWsTGg8sq3.png) # 并发执行前驱图 [](https://www.malaoshi.top/upload/0/0/1GWsTA3UHbk.png) ### 总结 - 有后继就有 `V操作` 释放资源,否则后面节点 **无法申请** 到资源 - 有前驱就有 `P操作` 申请资源。如:`D操作`,申请到 `A、B、C` 的资源时,才能往下执行 - 有几个箭头就有几个信号量 - 并发的信号量初始值一般为 `0` # 前趋图 与 PV操作 ### 表达方式1 [](https://www.malaoshi.top/upload/0/0/1GWsTjg7PBM.png) ### 表达方式2 [](https://www.malaoshi.top/upload/0/0/1GWsTk6Y3qW.png) # 题1 [](https://www.malaoshi.top/upload/0/0/1GWsThiHKuB.png) A、V(S1)V(S2)、P(S1)V(S3)和V(S4) B、P(S1)V(S2)、P(S1)P(S2)和V(S1) C、V(S1)V(S2)、P(S1)P(S3)和V(S4) D、P(S1)P(S2)、V(S1)P(S3)和V(S2) A、P(S2)、V(S3)V(S5)和P(S4)P(S5) B、V(S2)、P(S3)V(S5)和V(S4)P(S5) C、P(S2)、V(S3)P(S5)和P(S4)V(S5) D、V(S2)、V(S3)P(S5)和P(S4)V(S5) ## 第一个答案:C #### 解答a填写 `P1` 只有后继,没有前驱,说明只有 `V操作`;因为有两条边,所以 `V(S1)`、`V(S2)` #### 解答b填写 `P2` 有2个前驱,前驱是 `P操作` ,是 `P(S1)`、`P(S3)` #### 解答c填写 `P2` 只有1个后继,后继是 `V操作`,是 `V(S4)` ## 第二个答案:A #### 解答d填写 `P3` 有一个前驱,前驱是 `P操作` ,是 `P(S1)` #### 解答e填写 `P3` 有2个后继,后继是 `V操作`,是 `V(S2)`、`V(S4)` #### 解答f填写 `P4` 有2个前驱,前驱是 `P操作` ,是 `P(S2)`、`P(S3)` 参考: https://blog.csdn.net/Dontla/article/details/104610211 原文出处:http://malaoshi.top/show_1GWsUPCCwEv.html