双语: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.
共享数据模式有缓冲一致性的麻烦,因为数据共享区域会跨多个缓冲。