操作系统进程通信实验

操作系统进程通信实验实验题目:进程通信实验实验学时:12 实验日期:2019.5.2-2019.5.23实验目的:通过Linux系统中管道通信机制,加深对于进程通信概念的理解,观察和体验并发进程间的通信和协作的效果,练习利用无名管道进行进程通信的编程和调试技术。硬件环境:window软件环境:VWareUbuntu16.04实验步骤与内容1)实验说明:管道pipe是进…

大家好,欢迎来到IT知识分享网。

实验题目

: 进程通信实验

实验学时:

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

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

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/12922.html

(0)

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信