操作系统 进程的管道通信

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

计算机操作系统实验报告

学院:计算机学院

班级:102班

姓名:杨晓武

学号:101110118

座号:28

实验日期:2013-04-15

实验二进程的管道通信

一、实验目的

1.了解什么是管道;

2.熟悉UNIX/LINUX支持的管道通信方式。

二、实验内容

编写程序实现进程的管道通信。用系统调用pipe()建立一管道,两个子进程P1和P2分别向管道各写一句话:Child 1 is sending a message!

Child 2 is sending a message!

父进程从管道中读出两个来自子进程的信息并显示。

三、实验过程

1.用pipe()建立一无名管道,定义参数filedes[2],其中

filedes[1]是写入端,filedes[0]是读出端;

2.创建两个子进程pid1和pid2,使用write()函数向管

道写入内容;

3.父进程使用read()函数读出子进程写入管道的内容。

实现代码如下:

将上述代码命名为2.c并保存到主文件夹中,打开终端,使用gcc 2.c编译生成a.out,如图:

在终端输入./a.out运行程序,输出“Child1 is sending a message!”和“Child2 is sending a message!”,如图:

四分析与体会:

通过本次试验,我掌握了linux系统中管道通信的原理,了解了管道通信的特点,掌握了linux管道的相关函数的功能

及使用方法,并了解linux管道的创建和使用,学会了如何

利用管道实现进程间的通信,对进程间通信有了更深刻的

了解和掌握。熟悉UNIX/LINUX支持的管道通信方式,并

在程序中运用了pipe(),read()和write()等系统调用。验证了lockf的加锁解锁作用,并验证了读写进程互斥。

相关文档
最新文档