操作系统实验报告实验3_1_第1页
操作系统实验报告实验3_1_第2页
操作系统实验报告实验3_1_第3页
操作系统实验报告实验3_1_第4页
操作系统实验报告实验3_1_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、操作系统实验报告实验3-1: Linux进程的创建与父子进程同步1 .实验目的(1)熟悉在C语言源程序中使用Linux所提供的系统调用界面的方法;(2)掌握Linux中进程的创建方法以及调度执行情况,理解进程与程序的区别;(3)使用系统调用wait()和exit(),实现父子进程同步;(4) 了解Linux提供的C编译器gcc的调用;(5)进一步掌握vi的使用。2 .实验内容(1)父进程创建子进程,返回后父子进程都分别循环输出字符串I"am parent. ”或amchild. "5次,每输出一次后使用 sleep(1)延时1秒,然后再进入下一次循环,如下所示。将 该源程序

2、链接后执行,观察并分析运行结果。父进程返回后执行:for(i=0;i<5;i+)printf( am parent.n ");sleep(1);子进程返回后执行:for(i=0;i<5;i+)printf( I am child.n");sleep;(2)进程家族树在源程序中连续使用4个fork(),而不是用if()进行返回值的判段,在4个fork()语言后面输出字符A”。观察并分析该程序编译连接执行后的输出结果。(3)父子同步进程修改第(1)题的程序,使用exit()和wait()实现父子进程同步,其同步方式为父进程等待子进程的同步,即:子进程先循环输出 5次

3、,然后父进程再循环输出5次观察是否有不同的结果出现。3 .实验思考(1) 观察运行结果,分析结果产生的原因。答:当一个新的进程创建后,系统就会增加一个进程参与竞争CPU,并随时可能被操作系统调度执行(2) 当程序中创建了子进程后,该程序的执行有什么特点?为什么?答:条件分支的结构清晰,实现父子进程的程序分离及父子进程双方感觉不到对方的行为;因为子进程创建后复制了父进程的堆栈和数据空间,并继承了父进程的资源权限,及父进程和子进程在各自的空间中运行同一内容的程序,所以程序会运行两次。(3) 如果连续创建多个子进程而不使用条件进行各自空间的分隔,会出现什么情况?请画出第(2)题实验的进程家族树。Fo

4、rk()Fork()Fork()Fork()Fork()Fork()Fork()Fork() Fork() Fork()Fork()Fork() Fork()Fork() Fork()如上图所示一共出现了16个A如何实现父子进程之间的父进程等待子进程的同步答:使用信号量P、V操作来实现子进程与父进程的同步,子进程终止时执行 exit()向父进程发终止信号,父进程使用wait()等待子进程的终止4 .实验代码3-1-1 :main()int p1,i;while (p1=fork()=-1);if (p1>0)for (i=0;i<5;i+)printf("I am par

5、ent.n");sleep(1);elsefor (i=0;i<5;i+)printf("I am child.n");sleep(1); 3-1-2 :#include <stdio.h>main()fork();fork();fork();fork();putchar('A'); /每个进程都要输出A 3-1-3:main()int p1,i;while (p1=fork()=-1);if (p1>0)wait(0);for (i=0;i<5;i+)printf("I am parent.n")

6、;sleep(1);elsefor (i=0;i<5;i+)printf("I am child.n");sleep(1);exit(0);5. 程序运行结果 3-1-1 : /home/gxutos/code/UntltledlI 加 parent.I 前 child*I am parent,I am child,1 am parent4I am child*I 己用 parent,I 曰副 child*I 鲍 parent*I m child*Proc&ss returned 0 (QxO) execution tine t 54048 sPress EN

7、TER to continue+ 3-1-2 :AProcess returned 65 (0x41) execution time : 0*041 8Press ENTER to continue.AAAAAAAAAAAAAAAl 3-1-3:/home/gxutosode/llntltledlI am chilcLI 自厢 child.I 捌 child.I am diildtI am child4I 洲 parent*1 mi parent.I am parent, I am parent.I am parent.Process returned 0 (0x0) execution time t 10.021 s Press ENTER to conti

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论