进程控制与进程间通信操作系统实验报告

工程大学实验报告 专业班级: 姓名: 学号: 课程名称:操作系统 实验成绩: 指导教师: 蔡敦波 实验名称:进程控制与进程间通信

一、实验目的:

1、掌握进程的概念,明确进程和程序的区别。 2、认识和了解并发执行的实质。 3、了解什么是信号。

4、熟悉LINUX系统中进程之间软中断通信的基本原理。 二、实验内容:

1、进程的创建(必做题)

编写一段程序,使用系统调用fork( )创建两个子进程,在系统中有一个父进程和两个子进程活动。让每个进程在屏幕上显示一个字符;父进程显示字符“a”,子进程分别显示字符“b” 和“c”。试观察记录屏幕上的显示结果,并分析原因。

<参考程序>

运行的结果是bca. 首先创建进程p1,向子进程返回0,输出b.又创建进程p2,向子进程返回0,输出c,同时向父进程返回子进程的pid,输出a

2、 修改已编写的程序,将每个进程的输出由单个字符改为一句话,再观察程序执行时屏幕上出现的现象,并分析其原因。(必做题) <参考程序> # include int main() { int p1, p2, i; while((p1=fork())= = -1); if(p1= =0) for(i=0;i<500;i++) printf(“child%d\\n”,i); else { while((p2=fork())= =-1); If(p2= =0)

for(i=0;i<500;i++) printf(“son%d\\n”,i); else

for(i=0;i<500;i++)

printf(“daughter%d\\n”,i); } }

运行的结果是如上图所示.

首先创建进程p1,向子进程返回0,并

for语句循环输出child +i字符串.又创建进程p2,向子进程返回0,输出字符串son+i,同时向父进程返回子进程的pid,输出字符串duaghter +i ,各打印5次。

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4