如何解决这个C / Linux练习?

时间:2014-02-14 17:52:27

标签: c linux

我还没有清楚地了解下面的C / Linux练习:

练习:

考虑以下依赖图,它表示程序的4个任务之间的依赖关系:

enter image description here

我们想要创建4个并行执行的进程(S1到S4),以便自动化上面的依赖图。每个过程Si将基于下面的模型1:

enter image description here

提出解决方案并明确证明其合理性。

如果有人理解这个练习,请随时解释。谢谢你的帮助!

1 个答案:

答案 0 :(得分:2)

您的代码问题在于使用它时必须将它们放在循环中,这样您就可以不断检查先前的任务是否已完成。所以你在测试中浪费时间往往是错误的。

最好使用信号量来同步这些进程:如果信号量计数为0,则线程将被挂起并在上一个任务完成时自动再次唤醒。

例如,对于过程P2,您可以使用:

sem_wait(sem_1)
T2
sem_post(sem_2)