下载此文档

操作系统实验三.doc


文档分类:IT计算机 | 页数:约13页 举报非法文档有奖
1/13
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/13 下载此文档
文档列表 文档介绍
青岛理工大学
课程实验报告
课程名称
操作系统
班级
软件114
实验日期
2013/10/24
姓名
李晓菲
学号
201107286
实验成绩
实验名称
实验3 进程并发与同步







1、加深对进程概念的理解,区分进程并发执行与串行执行;
2、掌握进程并发执行的原理,理解进程并发执行的特点;
3、了解fork( )系统调用的返回值,掌握用fork()创建进程的方法;熟悉wait、exit等系统调用;
4、能利用相应的系统调用实现进程树与进程间的同步




Windows;
Virtual Box;
Ubuntu ;
Vi编辑器;
GCC编译器;
Geany IDE;




1、编写一C语言程序,实现在程序运行时通过系统调用fork( )创建两个子进程,使父、子三进程并发执行,父亲进程执行时屏幕显示“I am father”,儿子进程执行时屏幕显示“I am son”,女儿进程执行时屏幕显示“I am daughter”。
要求多次连续反复运行这个程序,观察屏幕显示结果的顺序,直至出现不一样的情况为止。要求有运行结果截图与结果分析
2、连续4个fork()的进程家族树,family1-:
#include <>
main()
{
fork();
fork();
fork();
fork();
printf(“A\n”);
}
请根据程序运行结果,画出进程家族树,并分析原因。
3、修改程序1,在父、子进程中分别使用wait、exit等系统调用“实现”其同步推进,父进程必须等待儿子进程与女儿进程结束,才可以输出消息。写出相应的同步控制,并分析运行结果。
4、创建一个子进程,并给它加载程序,其功能是调用键盘命令“ls -l”,已知该键盘命令的路径与文件名为:/bin/ls。父进程创建子进程,并加载./child2程序。写出相应的程序代码并分析程序运行结果。









1、
创建子进程系统调用:fork()
格式
int fork( );
返回值
=0
创建成功,从子进程返回
>0
创建成功,从父进程返回,其值为子进程的PID号
=-1
创建失败
int p1,p2;
while((p1=fork())==-1);
利用它来判断
2、进程家族树:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
父进程创建了4个子进程,子进程复制父进程的数据段和代码段,共输出4次,所以有16个A。
,加上wait()函数。
用wait()等待子进程结束后,父进程才开始结束。
wait(0);
printf("I am father\n");
exit(0);
:实验三,再创建child2程序,然后在/bin/ls程序中对child2程序加载。,调用child2,输出,,输出文件夹里含有多少文件









1、
文件代码:
运行后:(只弄出4中)
不确定是否有六种
2、
运行代码:
运行后:
3、
文件代码:
运行后两种结果
4、
先建文件夹
接着建3个文件
将三个文件复制到文件夹实验三()里:
添加代码:
(注意文件夹的位置)
将这三个程序移到桌面实验三文件夹,才能运行。
运行后:


(对实验结果进行分析,问题回答,实验心得体会及改进意见)
1、该程序多次运行后,输出的结果可能会是:父儿女、父女儿、儿父女、儿女父、女父儿、女儿父随机结果中的6种任意一种,但只运行出4中,不知道原因。每次运行后都会产生父子3个进程,所以会有3条语句输出。其中系统提示符显示会跟随在父进程输出语句之后。
2、进程家族树:
父进程创建了4个子进程,子进程复制父进程的数据段和代码段,共输出4次,所以有16个A。
,加上wait()函数。
用wait()等待子进程结束后,父进程才开始结束。
wait(0);
printf("I am father\n");
exit(0);
,文件夹在桌面才能运行,并且文件路径不能简写,要写全

execl("/home/lixiaofei/桌面/

操作系统实验三 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数13
  • 收藏数0 收藏
  • 顶次数0
  • 上传人分享精品
  • 文件大小9.77 MB
  • 时间2017-09-01