操作系统上实验报告3 联系客服

发布时间 : 星期一 文章操作系统上实验报告3更新完毕开始阅读70d9b10283c4bb4cf7ecd1ac

操作系统实验三报告

实验题目:

进程管理及进程通信

实验环境:

虚拟机Linux操作系统

实验目的:

1.利用Linux提供的系统调用设计程序,加深对进程概念的理解。 2.体会系统进程调度的方法和效果。

3.了解进程之间的通信方式以及各种通信方式的使用。

实验内容:

例程1:

利用fork()创建子进程 #include #include #include main() { int i; if (fork()) i=wait(0);

/*父进程执行的程序段*/ /* 等待子进程结束*/

printf(\

printf(\} else{

printf(\sleep(10);

/*子进程执行的程序段*/ exit(1);

/*向父进程发出结束信号*/ } }

运行结果:

思考:子进程是如何产生的? 又是如何结束的?子进程被创建后它的运行环境是怎 样建立的?

答:子进程是通过函数fork()创建的,通过exit()函数自我结束的,子进程被创建后核心将为其分配一个进程表项和进程标识符,检查同时运行的进程数目,并且拷贝进程表项的数据,由子进程继承父进程的所有文件。

例程2:

循环调用fork()创建多个子进程 #include #include #include main() { int i,j;

printf(“My pid is %d, my father’s pid is %d\\n”,getpid() ,getppid());

for(i=0; i<3; i++) if(fork()==0)

printf(“%d pid=%d ppid=%d\\n”, i,getpid(),getppid()); else

{ j=wait(0);

Printf(“ %d:The chile %d is finished.\\n” ,getpid(),j); } }

运行结果:

思考:画出进程的家族树。子进程的运行环境是怎样建立的?反复运行此程序 看会有什么情况?解释一下。 答:21440 21441 21445 21447 21442 21444 21446 21443 子进程的运行环境是由将其创建的父进程而建立的,反复运行程序会发现每个进程标识号在不断改变,这是因为同一时间有许多进程在被创建。