没有合适的资源?快使用搜索试试~ 我知道了~
《操作系统》实验讲义三.pdf
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 198 浏览量
2022-12-22
19:40:29
上传
评论
收藏 170KB PDF 举报
温馨提示
![preview](https://dl-preview.csdnimg.cn/87330008/0001-0aed42ce784e1894a3572d743820307e_thumbnail.jpeg)
![preview-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/scale.ab9e0183.png)
试读
4页
《操作系统》实验讲义三.pdf
资源推荐
资源详情
资源评论
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![7z](https://img-home.csdnimg.cn/images/20210720083312.png)
![](https://csdnimg.cn/release/download_crawler_static/87330008/bg1.jpg)
《操作系统》实验讲义
1
实验三 进程间通信
一.实验目的
1.掌握利用管道机制实现进程间的通信的方法
2.掌握利用消息缓冲队列机制实现进程间的通信的方法
3.掌握利用共享存储区机制实现进程间的通信的方法
4.加深对上述三种通信机制的理解。
二.实验工具与设备
已安装 Linux 操作系统的计算机。
三.实验预备内容
阅读 Linux 系统的 msg.c、sem.c 和 shm.c 等源代码文件,熟悉 Linux 的三种通信机制。
四.实验内容
1.掌握实现进程间通信的系统调用的功能和方法
进程通信,是指进程之间交换信息。从这个意义上讲,进程之间的同步、互斥也是一种信息交
换,也是一种通信。但是,这里所说的“通信”是指进程之间交换较多的信息这样一种情况,特别是
在由数据相关和有合作关系的进程之间,这种信息交换是十分必要和数量较大的。
进程间通信是协调解决多个进程之间的约束关系,实现进程共同进展的关键技术,是多道系统
中控制进程并发执行必不可少的机制。
(1)进程的通信方式:
a. 直接通信是指信息直接传递给接收方,如管道。在发送时,指定接收方的地址或标识,也可
以指定多个接收方或广播式地址, send(Receiver, message)。在接收时,允许接收来自任意发
送方的消息,并在读出消息的同时获取发送方的地址, receive(Sender,message)。
b. 间接通信:借助于收发双方进程之外的共享数据结构作为通信中转,如消息队列。这种数据
结构称为缓冲区或信箱。通常收方和发方的数目可以是任意的。
(2)进程间通信的类型:
a. 共享存储器系统:基于共享数据结构的通信方式:只能传递状态和整数值(控制信息),包括
进程互斥和同步所采用的信号量机制。速度快,但传送信息量小,编程复杂,属于低级通信;
基于共享存储区的通信方式:能够传送任意数量的数据,属于高级通信。
b. 消息传递系统:在消息传递系统中,进程间的数据交换以消息为单位,用户直接利用系统提
供的一组通信命令(原语)来实现通信。
c. 管道通信:管道是一条在进程间以字节流方式传送的通信通道。它由 OS 核心的缓冲区(通
常几十 KB)来实现,是单向的;在实质上,是一个有 OS 维护的特殊共享文件,常用于命
令行所指定的输入输出重定向和管道命令。在使用管道前要建立相应的管道,然后才可使用。
(3)Linux 管道
a. 通过 pipe 系统调用创建无名管道,得到两个文件描述符,分别用于写和读。
– int pipe(int fd[2]); //头文件 unistd.h,返回值:0(成功),-1(发生错误)
– 文件描述符 fd[0]为读端,fd[1]为写端
– 通过系统调用 write 和 read 进行管道的写和读
– 进程间双向通信,通常需要两个管道
资源评论
![avatar-default](https://csdnimg.cn/release/downloadcmsfe/public/img/lazyLogo2.1882d7f4.png)
![avatar](https://profile-avatar.csdnimg.cn/5aae13958c82419c9c42cd3306ea6ab6_qq_43934844.jpg!1)
是空空呀
- 粉丝: 178
- 资源: 3万+
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![voice](https://csdnimg.cn/release/downloadcmsfe/public/img/voice.245cc511.png)
![center-task](https://csdnimg.cn/release/downloadcmsfe/public/img/center-task.c2eda91a.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![dialog-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/green-success.6a4acb44.png)