进程之间的通信

原创 2016年08月28日 17:44:34

1.共享储存器系统

(1)基于共享数据结构的通信方式:要求诸进程公用某些数据结构,借以实现诸进程之间的信息交换。传递数据少,效率低小,属于低级通信

(2)基于共享存储区的通信方式:为了传输大量数据,在内存中划出了一块共享存储区域,诸进程可通过对该共享区的读或写交换信息,实现通信,数据的形式和位置甚至访问控制都是由进程负责的,而不是OS。属于高级通信​(通信前需向系统申请或者共享区中的一个分区附加到自己的地址空间进行读写,不需要时将其归还给共享区)

2.管道(pipe)通信系统

所谓“管道”,是指用于连接一个读进程和一个写进程以实现它们之间通信的一个文件,又名pipe文件。写进程以字符流的形式将数据送入管道,读进程则从管道中接受数据。这种形式首创于UNIX系统,能有效地传输大量数据。它具有以下三方面的协调能力:

(1)互斥:即当一个进程正在对pipe执行读、写操作时,其他进程必须等待

(2)同步:当写进程将一定量的数据时输入pipe文件时,便去睡眠等待,直到读进程取走数据后再把它唤醒。反之,当读进程读一空的pipe时,便去睡眠等待,直到写进程将数据写入管道再将其唤醒。

(3)确认对方是否存在,只有确定了对方已存在时才可以进行通信​

3.消息传递系统

在该机制中,以格式化的消息为单位,将通信封装在消息中,并利用操作系统提供的一组通信命令(原语),在进程中进行消息传递,完成进程间的数据交换。该方式隐藏了通信实现细节,其通信过程对用户透明化,降低了通信程序的复杂性和错误率,​成为了当前应用最为广泛的一类进程间通信机制。属于高级通信方式。因其实现方式的不同,又进一步分为两类:(1)直接通信方式;(2)间接通信方式

4.客户机-服务器系统

其主要实现方法分为三类:套接字、远程过程调用和远程方法调用

套接字:一个套接字就是一个通信标识类型的数据结构,包含了通信目的的地址、通信使用的端口号、通信网络的传输层协议、进程所在的网络地址,以及针对客户或服务器程序提供的不同系统调用等。分为:(1)基于文件型:在同一计算中实现,与管道通信原理差不多;(2)基于网络型:采用非对称方式通信,通信双方的进程运行在不同的主机环境下,使用一对套接字进行通信。   套接字的优点:不仅适用于同一台计算机内部的进程通信,也适用于网络环境中的不同计算机之间的通信。

版权声明:本文为博主原创文章,未经博主允许不得转载。

MFC使用CEF内核,Browser进程与Renderer进程之间的通信(***)

MFC使用CEF内核,Browser进程与Renderer进程之间的通信(***)

进程之间的数据传递

  随着我们开发的应用的日益复杂,像以往那样将所有功能坐在一个exe文件中情况越来越少,更多时候是整个应用由若干模块、甚至若干单独的exe文件组成,这就涉及到了模块或进程间的通讯交互问题,本文主要谈谈...

进程间通信方式

进程间的通信(IPC)如何实现? 1、管道( pipe )既可在程序中使用,也可在shell中使用。管道是一种半双工的通信方式,数据只能单向流动。管道的问题在于他们没有名字,只能在具有亲缘关系(父子进...
  • will130
  • will130
  • 2015年11月05日 20:09
  • 703

mysql中bigint和datetime互转,并通过navicat实现批量修改。

核心公式: --datetime转bigint select UNIX_TIMESTAMP('2011-05-31 23:59:59'); --bigint转datetime select FROM_...

中文乱码问题

一个http请求经过的几个环节: 浏览器(ie firefox)【get/post】————>Servlet服务器——————————->浏览器显示 浏览器会根据本地系统默认的字符集或者页面的设置...

各种多进程之间的通信实例

  • 2013年01月17日 16:55
  • 5.64MB
  • 下载

两个程序进程之间的通信

  • 2009年08月24日 21:21
  • 33KB
  • 下载

利用命名管道实现进程之间的通信 .........

/*   命名管道不仅可以实现 本地进程之间的通信还可以实现网络进程的通信   与油槽不同的是 管道式基于面向连接的可靠的通信 只能一对一传输 数据   我们可以通过      Creat...

进程之间通信演示代码

  • 2011年06月25日 17:01
  • 68KB
  • 下载

用匿名管道实现进程之间通信

  • 2009年11月18日 22:05
  • 4KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:进程之间的通信
举报原因:
原因补充:

(最多只允许输入30个字)