实验二 进程的创建 一、实验目的 1、掌握进程的概念,明确进程的含义 2、认识并了解并发执行的实质 二、实验内容 1、编写一段程序,使用系统调用fork( )创建两个子进程。当此程序运行时,在系统中有一个父进程和两个子进程活动。让每一个进程在屏幕上显示一个字符:父进程显示'a',子进程分别显示字符'b'和字符'c'。试观察记录屏幕上的显示结果,并分析原因。 2、修改上述程序,每一个进程循环显示一句话。子进程显示'daughter …'及'son 父进程显示 'parent ……',观察结果,分析原因。 三、实验准备 (1)阅读LINUX的fork.c源码文件,分析进程的创建过程。 (2)阅读LINUX的sched.c源码文件,加深对进程管理概念的认识。 四、思考 (1) 系统是怎样创建流程? (2) 可执行文件加载时进行了哪些处理? (3) 当首次调用新创建的进程时,其入口在哪里? 五、参考程序 1、 #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'); } } 2、 #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); } } 试验验证: 本文来源:https://www.wddqw.com/doc/bd4380d3920ef12d2af90242a8956bec0975a5be.html