操作系统实验报告
操作系统实验报告
实验3-1: Linux进程的创建与父子进程同步
1. 实验目的
(1)熟悉在C语言源程序中使用Linux所提供的系统调用界面的方法;
(2)掌握Linux中进程的创建方法以及调度执行情况,理解进程与程序的区别;
(3)使用系统调用wait()和exit(),实现父子进程同步;
(4)了解Linux提供的C编译器gcc的调用;
(5)进一步掌握vi的使用。
2. 实验内容
(1)父进程创建子进程,返回后父子进程都分别循环输出字符串“I am parent.”或“I am child.”5次,每输出一次后使用sleep(1)延时1秒,然后再进入下一次循环,如下所示。将该源程序链接后执行,观察并分析运行结果。
父进程返回后执行:
子进程返回后执行:
(2)进程家族树
在源程序中连续使用4个fork(),而不是用if()进行返回值的判段,在4个fork()语言后面输出字符“A”。观察并分析该程序编译连接执行后的输出结果。
(3)父子同步进程
修改第(1)题的程序,使用exit()和wait()实现父子进程同步,其同步方式为父进程等待子进程的同步,即:子进程先循环输出5次,然后父进程再循环输出5次.观察是否有不同的结果出现。
3. 实验思考
(1) 观察运行结果,分析结果产生的原因。