课程实验报告
课程名称 姓名 实验名称 实 验 目 的 及 要 求 实 验 环 境 实 验 内 容 计算机操作系统 班级 实验日期 学号 实验成绩 实验3 进程并发与同步 1、 加深对进程概念的理解,区分进程并发执行与串行执行; 2、 掌握进程并发执行的原理,理解进程并发执行的特点; 3、了解fork( )系统调用的返回值,掌握用fork()创建进程的方法;熟悉wait、exit等系统调用; 4、能利用相应的系统调用实现进程树与进程间的同步。 操作系统:linux Unbuntu 11、10 实验工具:Vmware 1、编写一C语言程序,实现在程序运行时通过系统调用fork( )创建两个子进程,使父、子三进程并发执行,父亲进程执行时屏幕显示“I am father”,儿子进程执行时屏幕显示“I am son”,女儿进程执行时屏幕显示“I am daughter”。 要求多次连续反复运行这个程序,观察屏幕显示结果的顺序,直至出现不一样的情况为止。要求有运行结果截图与结果分析 2、连续4个fork()的进程家族树,family1-1、c程序清单如下: #include 写出相应的程序代码并分析程序运行结果。 1、 编写一C语言程序,实现在程序运行时通过系统调用fork( )创建两个子进算 程,使父、子三进程并发执行,父亲进程执行时屏幕显示“I am father”,儿法 子进程执行时屏幕显示“I am son”,女儿进程执行时屏幕显示“I am 描 daughter”。并且反复的测试,观察每一次的执行的顺序有什么不同 述 2、 修改程序1,在父、子进程中分别使用wait、exit等系统调用“实现”其同及 步推进,父进程必须等待儿子进程与女儿进程结束,才可以输出消息。 实 4、创建一个子进程,并给它加载程序,其功能就是调用键盘命令“ls -l”,已知验 该键盘命令的路径与文件名为:/bin/ls。父进程创建子进程,并加载、/child2程序。 步 骤 调 试 过 程 及 实 验 结 果 操作系统实验报告三 1、实现在程序运行时通过系统调用fork( )创建两个子进程,使父、子三进程并总 结 发执行,父亲进程执行时屏幕显示“I am father”,儿子进程执行时屏幕显示“I am am daughter”。这一点需要注意。返回结果时, son”,女儿进程执行时屏幕显示“I 由于每一次的不确定性,所以 要想得到比较具有说服性的,就必须经过多次的测试。 2、连续4个fork()的进程家族树在进行实验的时候可能会出现进程输出信息一直一样的情况,需要多次执行输出才有可能会瞧到输出结果不一样的情况 操作系统实验报告三 附 Child、C 录 #include while ((p1=fork())==-1); if (p1==0) printf(\"I am son、\\n\"); else { while ((p2=fork())==-1); if (p2==0) printf(\"I am daughter、\\n\"); else printf(\"I am father、\\n\"); } return 0; } 进程同步 #include 因篇幅问题不能全部显示,请点此查看更多更全内容