进程间通信的几种方式

进程通信是指进程之间的信息交换

通信类型

  1. 共享存储器系统
    1. 基于共享数据结构的通信方式 (仅适用于传递相对少量的数据,通信效率低,属于低级通信)
    2. 基于共享存储区的通信方式
  2. 管道通信系统 管道是指用于连接一个读进程和一个写进程以实现它们之间通信的一个共享文件(pipe文件) 管道机制需要提供一下几点的协调能力
    1. 互斥,即当一个进程正在对pipe执行读/写操作时,其它进程必须等待
    2. 同步,当一个进程将一定数量的数据写入,然后就去睡眠等待,直到读进程将数据取走,再去唤醒。读进程与之类似
    3. 确定对方是否存在
  3. 消息传递系统
    1. 直接通信方式 发送进程利用OS所提供的发送原语直接把消息发给目标进程
    2. 间接通信方式 发送和接收进程都通过共享实体(邮箱)的方式进行消息的发送和接收
  4. 客户机服务器系统
    1. 套接字 -- 通信标识型的数据结构是进程通信和网络通信的基本构件
      1. 基于文件型的 (当通信进程都在同一台服务器中)其原理类似于管道
      2. 基于网络型的(非对称方式通信,发送者需要提供接收者命名。通信双方的进程运行在不同主机环境下被分配了一对套接字,一个属于发送进程,一个属于接收进程)
    2. 远程过程调用和远程方法调用 详见: https://baike.baidu.com/item/远程过程调用协议/6893245?fr=aladdin

注:本文参考操作系统课本,只是一些概念性的知识。 如需转载请注明出处:https://www.cnblogs.com/zhuchenglin/p/9522192.html

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏SAP最佳业务实践

SAP最佳业务实践:ETO–报价处理(232)-17比较项目版本和实际数据

image.png CN41比较项目版本和实际数据 项目版本是项目某个特定时刻的快照,可以作为一个文档。另外它还可以与实际数据进行比较。这一步,项目版本数据与项...

3678
来自专栏电脑高手

如何通过路由器来控制上网

这种共享上网的方法一般如下:(光纤)电话线--语音分离器--(光纤猫)ADSL猫--宽带路由器-交换机-集线器-电脑

44513
来自专栏安恒网络空间安全讲武堂

翻译 | Linux利用动态链接共享对象库提权

Linux利用动态链接共享对象库提权 RPATH和弱文件权限会导致系统的损害。Linux应用程序可以利用动态链接的共享对象库(我们从现在开始称它们为共享库)来提...

2235
来自专栏腾讯云Elasticsearch Service

Elasticsearch跨集群数据迁移之离线迁移

用户在腾讯云上自建的ES集群或者在其它云厂商购买的ES集群,如果要迁移至腾讯云ES,用户可以根据自己的业务需要选择适合自己的迁移方案。如果业务可以停服或者可以暂...

2.3K8
来自专栏mukekeheart的iOS之旅

Mac OS Sierra如何打开任何来源

  我们知道在Mac升级到最新的Mac OS Sierra系统之后,随之而来的是第三方应用都无法打开,提示的是无法打开或扔进废纸篓。而在之前的版本系统中,我们知...

3755
来自专栏张善友的专栏

ASP.NET 2.0 中 Web 事件

ASP.NET 2.0 还提供了全功能的应用程序监视和健康监视。这个系统是由一个完全可扩展事件模型和一个能将事件发送到多种接收器的事件引擎组成的。举例来说,您可...

2057
来自专栏Jackson0714

无法获得锁 /var/lib/dpkg/lock - open (11: 资源临时不可用)

42914
来自专栏令仔很忙

手把手教你---进程资源分配

Markdown编辑器用的还不是太熟,表格中插入图片这事还没学会,纠结着在Word中总结了下,然后截个图放在下面供大家参考:

2291
来自专栏Java学习网

http错误码对照表

http错误码对照表 2xx 成功 200 正常;请求已完成。 201 正常;紧接 POST 命令。 202 正常;已接受用于处理,但处理尚未完成。...

2147
来自专栏散尽浮华

Linux下squid代理缓存服务环境部署

代理服务器英文全称是Proxy Server,其功能就是代理网络用户去取得网络信息。 Squid是一个缓存Internet 数据的软件,其接收用户的下载申请,并...

30010

扫码关注云+社区