综合题

设有 8 个进程 M1, M2, …, M8, 它们有如图 5 所示的优先关系, 试用 P、 V 操作实现这些进程间的同步。

【正确答案】

这是进程之间的同步问题。 M2、 M3 和 M4 必须在接收到 M1 的消息后才能运行。 同理, M6 必须在 M2和 M3 之后运行, M7 必须在 M4 和 M5 之后运行, M8 必须在 M3 和 M7 之后运行。 如何保证呢?需设置相应的信号量来保证: S12、 S13、 S14 分别用来制约 M2、 M3 和 M4 的运行; S26、 S36 用来制约 M6 的运行; S47、 S57用来制约 M7 的运行; S38、 S78 用来制约 M8 的运行。 各进程的制约关系如下:

【答案解析】