操作系统进程通信实验

实验题目

: 进程通信实验

实验学时:

12 实验日期: 2019.5.2-2019.5.23

实验目的:

通过 Linux 系统中管道通信机制,加深对于进程通信概念的理解,观察和体验 并发进程间的通信和协作的效果 ,练习利用无名管道进行进程通信的编程和调试 技术。

硬件环境

: window

软件环境:

VWareUbuntu16.04

实验步骤与内容

1) 实验说明

:管道pipe 是进程间通信最基本的一种机制,两个进程可以通过管道一个在管道 一端向管道发送其输出,给另一进程可以在管道的另一端从管道得到其输入.管道以 半双工方式工作,即它的数据流是单方向的.因此使用一个管道一般的规则是读管道 数据的进程关闭管道写入端,而写管道进程关闭其读出端.

2) 实验思路流程图

操作系统进程通信实验

实现实验目标采取三个进程,两套pipe来实现。子进程1, 通过pipe11和pipe12管道收到x的值,计算fx,再通过管道将计算后fx的值发给父进程。子进程2,计算fy的值,通过管道收到y的值并通过计算将fy发送给父进程。
父进程通过管道发送输入的x,y的值,并通过管道接收fx,fy的值。

代码流程

操作系统进程通信实验
操作系统进程通信实验操作系统进程通信实验
操作系统进程通信实验

遇到的问题

:再fx,fy在哪里初始化概念不清,一开始fx,fy的输出都是0;
后来将fx,fy的初始化就放在分别各自的进程中。

结论分析与体会

: 1) 结果

:我分别使用x=3 y=5 ,x=5 y=3两组数据测试,均能输出测试答案

操作系统进程通信实验操作系统进程通信实验
运行结果如上图所示,中间打印信息方便查看个进程内部的执行次序。

根据示例实验程序和独立实验程序观察和记录的调试和运行的信息,说明它们 反映出操作系统教材中讲解的进程协作和进程通信概念的哪些特征和功能?

1. 管道通信时消息传递的一种方式,所谓管道,是值用与练几个一个读进程和写进程来实现他们之间通信的一个共享文件
2. 管道机制必须提供以下三个方面的协调能力,互斥,同步和确定对方存在
3. 管道是单方向通信,要实现双方通信,必须实现两个管道。

在真实 的操作系统中它是怎样实现和反映出教材中进程通信概念的。你对于进程协作和进 程通信的概念和实现有哪些新的理解和认识?

  1. 管道机制为进程之间的协作和消息传递提供一种很好的方法
  2. 管道是半双工通信,给另一进程可以在管道的另一端从管道得到其输入.管道以 半双工方式工作,即它的数据流是单方向的.因此使用一个管道一般的规则是读管道 数据的进程关闭管道写入端,而写管道进程关闭其读出端。

管道机制的机理是什么?

  1. 管道pipe 是进程间通信最基本的一种机制,两个进程可以通过管道一个在管道 一端向管道发送其输出,给另一进程可以在管道的另一端从管道得到其输入.管道以 半双工方式工作,即它的数据流是单方向的.因此使用一个管道一般的规则是读管道 数据的进程关闭管道写入端,而写管道进程关闭其读出端. 所谓管道,是值用与练几个一个读进程和写进程来实现他们之间通信的一个共享文件

怎样利用管 道完成进程间的协作和通信?

  1. 两个进程可以通过管道一个在管道 一端向管道发送其输出,给另一进程可以在管道的另一端从管道得到其输入.管道以 半双工方式工作,即它的数据流是单方向的.因此使用一个管道一般的规则是读管道 数据的进程关闭管道写入端,而写管道进程关闭其读出端.

所有见解仅代表个人观点,不确保正确。望谅解,一起学习进步