双语:Interprocess Communication 进程通信
when one process creates a new process, the identity of the newly created process is passed to the parent.
当一个进程创建一个新的进程,这个新进程的id传给父母进程。
父母进程可能结束他的孩子进程的原因:
• The child has exceeded its usage of some of the resources that it has been allocated.
孩子进程超额使用它被分配到的资源。
• The task assigned to the child is no longer required.
不再需要分配给孩子进程的任务
• The parent is exiting
父母进程结束
Any process that does not share data with any other process is independent.
任何没有和其他进程共享数据的进程都是独立的
Any process that shares data with other processes is a cooperating process.
任何和其他进程共享数据的进程都是合作进程。
进程需要合作的原因:
• Information sharing.
信息共享
• Computation speedup. Notice that such a speedup can be achieved only if the computer has multiple processing cores.
提高运行速度。注意这样的提示只能在多核环境中实现。
• Modularity.
模块化运行。互不影响其他进程,线程。
• Convenience.
便利。一个用户也会运行多个任务
There are two fundamental models of interprocess communication: shared memory and message passing.
有两个主要的进程间通信的模式:共享内存和信息传递。
In the shared-memory model, a region of memory that is shared by cooperating processes is established.
在共享内存模式中,会确立一个区域的内存被合作进程共享。
Processes can then exchange information by reading and writing data to the shared region.
进程可以通过读取该区域内存交换信息。
In the message-passing model, communication takes place by means of messages exchanged between the cooperating processes.
在信息传递模式,通信任务由合作进程间交换信息完成的。
Message passing is useful for exchanging smaller amounts of data, because no conflicts need be avoided.
在交换小量数据的时候信息传递比较有效,因为不会发生数冲突。
Shared memory can be faster than message passing, since message-passing systems are typically implemented using system calls and thus require the more time-consuming task of kernel intervention.
共享数据模式会比信息传递模式要快,因为信息传递模式需要通过系统调用,就需要kernel干涉,要求更多的时间消耗任务。
In shared-memory systems, system calls are required only to establish shared memory regions.
在数据共享系统中,系统调用只在建立共享数据区域的时候需要。
Once shared memory is established, all accesses are treated as routine memory accesses, and no assistance from the kernel is required.
一旦共享数据建立起来,所有的访问都只是被认为是一般的内存访问,不需要kernel的协助。
Recent research on systems with several processing cores indicates that message passing provides better performance than shared memory on such systems.
最近的研究表明在多核系统环境中,信息传递比共享数据模式提供了更好的性能。
Shared memory suffers from cache coherency issues, which arise because shared data migrate among the several caches.
共享数据模式有缓冲一致性的麻烦,因为数据共享区域会跨多个缓冲。
双语:Interprocess Communication 进程通信的更多相关文章
- WPF 进程间通讯----inter-process communication
进程间通讯--inter-process communication 进程间相互通讯的方法有很多,如用web services,xml 等互相读取, 网络的可以使用socket 等. 2个WinFo ...
- linux 之进程间通信-------------InterProcess Communication
进程间通信至少可以通过传送打开文件来实现,不同的进程通过一个或多个文件来传递信息,事实上,在很多应用系统里,都使用了这种方法.但一般说来,进程间 通信(IPC:InterProcess Communi ...
- Linux下进程通信之管道
每个进程各自有不同的用户地址空间,任何一个进程的全局变量在另一个进程中都看不到,所以进程之间要交换数据必须通过内核,在内核中开辟一块缓冲区,进程1把数据从用户空间拷到内核缓冲区,进程2再从内核缓冲区把 ...
- 【朝花夕拾】Android性能篇之(七)Android跨进程通信篇
前言 只要是面试高级工程师岗位,Android跨进程通信就是最受面试官青睐的知识点之一.Android系统的运行由大量相互独立的进程相互协助来完成的,所以Android进程间通信问题,是做好Andro ...
- 进程间通信IPC (InterProcess Communication)
一.进程间通信的概念 每个进程各自有不同的用户地址空间,任何一个进程的全局变量在另一个进程中都看不到,所以进程之间要交换数据必须通过内核,在内核中开辟一块缓冲区,进程1把数据从用户空间拷到内核缓冲区, ...
- linux 进程通信之 管道和FIFO
进程间通信:IPC概念 IPC:Interprocess Communication,通过内核提供的缓冲区进行数据交换的机制. IPC通信的方式: pipe:管道(最简单) fifo:有名管道 mma ...
- android跨进程通信(IPC)——AIDL
转载请标明出处: http://blog.csdn.net/sinat_15877283/article/details/51026711: 本文出自: [温利东的博客] 近期在看 @任玉刚 大神编写 ...
- 【APUE】Chapter15 Interprocess Communication
15.1 Introduction 这部分太多概念我不了解.只看懂了最后一段,进程间通信(IPC)内容被组织成了三个部分: (1)classical IPC : pipes, FIFOs, messa ...
- java多线程上篇(三) -- 进程通信和线程死锁简单介绍
进程通信指的是进程间的信息交换 ,IPC(Inter-Process Communication,进程间通信) 进程通信就相当于一种工作方式.沟通形式,进程通信主要指的就是操作系统提供的进程通信工具( ...
随机推荐
- 美团开源Graver框架:用“雕刻”诠释iOS端UI界面的高效渲染
Graver 是一款高效的 UI 渲染框架,它以更低的资源消耗来构建十分流畅的 UI 界面.Graver 独创性的采用了基于绘制的视觉元素分解方式来构建界面,得益于此,该框架能让 UI 渲染过程变得更 ...
- 有多少种JVM
https://en.wikipedia.org/wiki/Comparison_of_Java_virtual_machines 在这个类别下,主流选择有:(按流行程度递减) HotSpot VM ...
- 网络设备Web登录检测工具device-phamer
网络设备Web登录检测工具device-phamer 为了便于管理和维护,大部分网络都提供了Web管理接口.Kali Linux提供了一款专用检测工具device-phamer.该工具可以批量检测 ...
- Git的一些常用命令
一:Git是什么? Git是目前世界上最先进的分布式版本控制系统. 简单的说就是托管代码的便于多人开发的管理系统. 二.Git的一些命令,我详细的说一下 我是基于github给大家说一下git的一些常 ...
- UVA.11427.Expect the Expected(期望)
题目链接 \(Description\) https://blog.csdn.net/Yukizzz/article/details/52084528 \(Solution\) 首先每一天之间是独立的 ...
- UVALive 6906 Cluster Analysis 并查集
Cluster Analysis 题目连接: https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemi ...
- 解决Windows x86网易云音乐不能将音乐下载到SD卡的BUG
由于我个人最常用的电脑是Surface pro4 256G版本,装了不少生产力空间还挺吃紧的,音乐之类的必然都存单独的SD卡里.用UWP版本的网易云音乐倒是没问题,最近问题来了,UWP版本的网易云音乐 ...
- Unity中Web.Config文件的配置与调用
在上一篇文章“Unit简单依赖注入”我们可以实现构造对象和被依赖对象之间的 松耦合,使我们的抽象层(Player)能够保持稳定,但是在并没有把客户类和Player类之间彻底解耦,即当我们不想使用MP3 ...
- ftp通用类1
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.N ...
- oracle 11g wm_concat 、 listagg 函数的使用(合并数据)
方法一 wn_concat() 函数 1.把以下图中Name一样的数据合并为一条,而且NO的值要这样显示如 C.1,C.2 2.实现这种效果的操作如下,先把Name的值进行分组(group by),再 ...