我还没有清楚地了解下面的C / Linux练习:
练习:
考虑以下依赖图,它表示程序的4个任务之间的依赖关系:
我们想要创建4个并行执行的进程(S1到S4),以便自动化上面的依赖图。每个过程Si将基于下面的模型1:
提出解决方案并明确证明其合理性。
如果有人理解这个练习,请随时解释。谢谢你的帮助!
答案 0 :(得分:2)
您的代码问题在于使用它时必须将它们放在循环中,这样您就可以不断检查先前的任务是否已完成。所以你在测试中浪费时间往往是错误的。
最好使用信号量来同步这些进程:如果信号量计数为0,则线程将被挂起并在上一个任务完成时自动再次唤醒。
例如,对于过程P2,您可以使用:
sem_wait(sem_1)
T2
sem_post(sem_2)