操作系统实验(3)

2020-05-13 08:08

实验 4:进程间通信(IPC)

实验目的

了解IPC通信中的信号、管道、消息、共享存储区的通信原理和基本技术 掌握linux环境中构造这些通信机制的方法和步骤;

熟悉在实现通信中使用的系统调用和编程方式,以及这类程序的调试和技巧。 实验内容

1、编写一个多进程使用信号通信的程序;

2、建立一个父子进程通信管道进行通信和程序;

3、构建客户进程和服务进程使用消息进行通信的机制; 4、用共享存储区方式实现多个进程的通信。

实验原理

8. 对信号的认识。

信号是一种比较复杂的通信方式,用于通知接收进程某个事件已经发生。

可以使用系统自带的信号,用户也可以自己定义。

9. 对消息的认识。

消息队列是由消息的链表,存放在内核中并由消息队列标识符标识。

10. 对管道的认识。

管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘

关系的进程间使用。进程的亲缘关系通常是指父子进程关系。

11. 对共享内存的认识。

共享内存就是映射一段能被其他进程所访问的内存,这段共享内存由一个进程创建,但多个进程都可以访问。共享内存是最快的 IPC 方式,它是针对其他进程间通信方式运行效率低而专门设计的。它往往与其他通信机制,如:信号量配合使用,来实现进程间的同步和通信。

实验环境:

硬件环境:个人PC机电脑。软件环境:我是通过Telnet登陆一台已经安装linux操作系统的电脑进行如下实验,带编译软件GCC。

实验过程:

3. 进程间通信-信号方式的示例代码。

11 / 13

4. 进程间通信-消息方式的示例代码。

5. 进程间通信-管道方式的示例代码。

6. 进程间通信-共享内存的示例代码。

12 / 13

实验结果:

1. 信号传输的优点:

实现效率高,信号产生随机,事先不需要约定。 信号传输的缺点:

实现复杂,系统提供的信号类型有限,大多数信号需要系统权限才能使用。

2. 管道传输的优点:

所有的UNIX实现都支持, 并且在最后一个访问管道的进程终止后,管道就被完全删

除。

管道传输的缺点:

传递数据少。只能单向传输或只能在父子进程之间传输。

3. 消息传输的优点:

消息队列克服了信号传递信息少、管道只能承载无格式字节流以及缓冲区大小受限等

缺点。

消息的实现是一个多对多的关系,它允许一个或多个进程将消息发送到消息队列中,也允许一个或多个进程从消息队列中读出消息。

消息传输的缺点:

消息队列克服了信号传递信息少、管道只能承载无格式字节流以及缓冲区大小受限等缺点。

4. 共享内存的优点:

效率高,同一块内存直接映射到多个进程。因而进程可以直接读写内存,而不需要任何数据的拷贝。传输数据量大。 共享内存的缺点:

代价高,要占用大量的内存。

实验总结:

系统的学习了linux进程通信的多种方式。对进程通信有了更深一步的了解。

13 / 13


操作系统实验(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:高架特级钢箱梁驻厂监造

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: