当前位置:   article > 正文

操作系统习题 进程树 运行结果_pp1=wait(&pp1)

pp1=wait(&pp1)
  1. #include <stdio.h>
  2. #include<sys/types.h>
  3. #include<unistd.h>
  4. #include<stdlib.h>
  5. #include<wait.h>
  6. int main()
  7. { int p1,p2,p3,p4,p5,pp1,pp2;
  8. printf("程序开始执行");
  9. if ((p1 = fork())== 0){
  10. printf("进程proc1执行");
  11. exit(1);
  12. } else
  13. if ((p2=fork())== 0){
  14. printf("进程proc2执行");
  15. exit(1);
  16. }
  17. pp1 =wait(&pp1); /*等待,直到子进程终止*/
  18. pp2 =wait(&pp2); /*等待,直到子进程终止*/
  19. if ((p3=fork())== 0){
  20. printf("进程proc3执行");
  21. } else
  22. if((p4=fork())== 0){
  23. printf("进程proc4执行");
  24. } else
  25. if((p5=fork())== 0){
  26. printf("进程proc4执行");
  27. exit(1);
  28. }
  29. printf("整个程序终止");
  30. exit(0);
  31. }

试回答如下问题: 

(1)画出描述子进程执行先后次序的进程流图。(各进程分别用其对应的函数名或包含其进程号的符号名标识)

(2)这个程序执行时最多可能有几个进程同时存在?同时存在的进程数最多时分别是哪几个进程?

(3)程序执行时,“整个程序终止”被输出几次?分别是哪些进程输出的?

 

Linux Centos 实际运行结果

分析代码可得最多可能存在4个进程  即  Main proc3 proc4 proc5

由运行结果可以看出,“整个程序终止”被输出3次,分别由Main proc3 proc4 输出

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/210365
推荐阅读
相关标签
  

闽ICP备14008679号