前趋图是一个有向无环图,记为→={(Pi,Pj)Pi完成时间先于Pj开始时间}。假设系统中进程P={}P={P1,P2,P3,P4,P5,P6,P7,P8},且进程的前趋图如下:

那么,该前趋图可记为({(P1,P2),(P1,P4),(P2,P3),(P2,P5),(P3,P4),(P3,P6),(P4,P7),(P5,P6),(P6,P8),(P7,P6)}),图中(存在着10个前驱关系,P1为初始结点,P8为终止结点)。
前趋图是用于描述进程间先后执行依赖关系的有向无环图(DAG),图中有序对(Pi,Pj)代表进程Pi必须完成后,进程Pj才能开始执行。其中入度为0的节点是初始节点,这类节点无前驱进程,会最先启动;出度为0的节点是终止节点,这类节点无后继进程,是执行流程的最终节点。前趋图常应用于操作系统的进程同步场景,通过明确依赖关系保障进程有序执行,其无环特性还可避免进程死锁问题。梳理前趋图的依赖关系时,需准确对应图中有向边,确保不遗漏、不虚构有序对。
本题考察的是前趋图(有向无环图DAG)的基本概念与读图能力。
前趋有序对(Pi,Pj)表示Pi必须先于Pj完成;初始结点入度为0,终止结点出度为0。
问题1:
A选项:包含(P1,P3)、(P3,P2)、(P5,P8)等与图不符的边,错误。
B选项:逐一对应图中的有向边:P1→P2、P1→P4、P2→P3、P2→P5、P3→P4、P3→P6、P4→P7、P5→P6、P7→P6、P6→P8,共10条,完全匹配,正确。
C选项:含(P4,P6)、(P7,P8)等图中不存在的边,且缺少(P2,P3)、(P5,P6)、(P7,P6)等,错误。
D选项:含(P1,P3)、(P2,P4)、(P3,P5)等与图不符的边,错误。
选择选项 B。
问题2:
A选项:边数表述为10条正确,但终止结点应为出度为0的结点。P2和P4都有后继(分别指向P3/P5与P7),不是终止结点,错误。
B选项:仅2个前驱关系与事实不符,且初始结点应为入度为0的结点,P6入度不为0,错误。
C选项:边数为9条不符,初始结点也不是P6,错误。
D选项:共有10条前驱关系;唯一本图入度为0的是P1,为初始结点;唯一本图出度为0的是P8,为终止结点,正确。
选择选项 D。
