多进程同步程序应该如何实现?

mastking 2003-06-22 03:39:43
最近在做操作系统课程设计,一些问题求解:)
题目如下:在Linux环境下用进程控制系统调用实现进程的创建、同步与终止
P1--P6进程如下图:
P1
|
----------------
| | |
P2 P3 |
| | P4
-------- |
| |
P5 |
| |
------------
|
P6

知道进程间通讯能使用:管道、消息队列、共享内存、信号灯
在这个题目应该使用哪种方法?信号灯?具体应该如何操作?

...全文
41 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
mastking 2003-06-22
  • 打赏
  • 举报
回复
/*
*这是我写的一段代码....
*进程同步问题
*已创建子进程,没有实现同步
*搞不清楚信号灯该如何处理?等下去图书馆泡泡先...还请大家多多指教:P
*/

#include <stdio.h>
void p1()
{
execl("/home/mast/px", "px", "1", 0); //px为一测试程序
exit(1);
}

void p2()
{
execl("/home/mast/px", "px","2", 0);
exit(1);
}

void p3()
{
execl("/home/mast/px", "px","3", 0);
exit(1);
}

void p4()
{
execl("/home/mast/px", "px","4", 0);
exit(1);
}

void p5()
{
execl("/home/mast/px", "px","5", 0);
exit(1);
}

void p6()
{
execl("/home/mast/px", "px","6", 0);
exit(1);
}


main()
{
int i;
for(i = 1; i <= 6; i++)
{
if (fork()==0)
{
switch(i)
{
case 1:p1();break;
case 2:p2();break;
case 3:p3();break;
case 4:p4();break;
case 5:p5();break;
case 6:p6();break;
}
}
}
}

23,120

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧