"实验三: 同步问题解决方案 - 进程同步与互斥实现"
#include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <sys/types.h> #include <sys/wait.h> int main() { pid_t p1, p2, p3, p4; p1 = fork(); if (p1 < 0) { fprintf(stderr, "Fork failed"); return 1; } else if (p1 == 0) { printf("I am the process P1\n"); } else { p2 = fork(); if (p2 < 0) { fprintf(stderr, "Fork failed"); return 1; } else if (p2 == 0) { p3 = fork(); if (p3 < 0) { fprintf(stderr, "Fork failed"); return 1; } else if (p3 == 0) { printf("I am the process P3\n"); } else { wait(NULL); printf("I am the process P2\n"); } } else { p4 = fork(); if (p4 < 0) { fprintf(stderr, "Fork failed"); return 1; } else if (p4 == 0) { printf("I am the process P4\n"); } else { wait(NULL); } } } return 0; } 通过以上程序代码实现了实验要求。通过 fork 的方式,产生了 4 个进程 P1,P2,P3,P4,每个进程打印输出自己的名字。其中 P1 最先执行,P2、P3 互斥执行,P4 最后执行。程序通过多次测试验证,实现了要求的同步问题。
![](https://csdnimg.cn/release/download_crawler_static/86332668/bg8.jpg)
![](https://csdnimg.cn/release/download_crawler_static/86332668/bg9.jpg)
剩余41页未读,继续阅读
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![application/pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/release/wenkucmsfe/public/img/green-success.6a4acb44.png)