贵州大学实验报告学院:计算机学院 专业:信息安全 班级:121姓名饶永明学号1208060066实验组实验时间10.17指导老师王道书成绩实验项目名称实验二 进程的创建实验目的1、掌握进程的概念,明确进程的含义2、认识并了解并发执行的实质实验要求课堂集中授课参考程序和学生编程实现、并回答相关疑问;实验内容1、编写一段程序,使用系统调用 fork( )创建两个子进程。当此程序运行时,在系统中有一个父进程和两个子进程活动。让每一个进程在屏幕上显示一个字符:父进程显示'a',子进程分别显示字符'b'和字符'c'。试观察记录屏幕上的显示结果,并分析原因。2、修改上述程序,每一个进程循环显示一句话。子进程显示'daughter …'及'son ……',父进程显示 'parent ……',观察结果,分析原因实验数据试验程序一:#include main( ){int p1,p2;while((p1=fork( ))= = -1); /*创建子进程 p1*/if (p1= =0) putchar('b'); else { while((p2=fork( ))= = -1); /*创建子进程 p2*/if(p2= =0) putchar('c'); else putchar('a'); }}试验程序二:#include main( ){int p1,p2,i;while((p1=fork( ))= = -1); /*创建子进程 p1*/if (p1= =0) for(i=0;i<10;i++)printf("daughter %d\n",i);else{ while((p2=fork( ))= = -1); /*创建子进程 p2*/if(p2= =0) for(i=0;i<10;i++) printf("son %d\n",i);else for(i=0;i<10;i++) printf("parent %d\n",i);}}程序一结果:程序二结果:实验总结通过做这次实验让我我了解了子进程和父进程之间的调用顺序,以及调用的结果,而且通过调用 fork()可以知道存在多种情况下,子进程发生调用的变化。这根我们以前编程思维有着很大的不同,因为进程的执行顺序是任意的。此次实验让我们对系统调用进程的过程有了更深一步的了解。1、 系统是怎样创建进程的?答: 系统调用格式为 pid=fork( ),参数定义为 int fork( ),fork( )返回值意义如下:0:在子进程中,pid 变量保存的 fork( )返回值为 0,表示当前进程是子进程。>0:在父进程中,pid 变量保存的 fork( )返回值为子进程的 id 值(进程唯一标识符)。-1:创建失败。假如 fork( )调用成功,它向父进程返回子进程的 PID,并向子进程返回 0,即fork( )被调用了一次,但返回了两次。此时 OS 在内存中建立一个新进程,所建的新进程是调用 fork( )父进程(parent process)的副本,...