当要完成的功能比较简单时,一个进程即可胜任。
当要完成的功能比较复杂时,需要多个进程共同配合,来完成这个功能。配合,那么就进程间就需要通信。
进程间通信, Inter-Process Communication
- 数据传输
- 资源共享(不同进程使用的资源是不一样的)
- 事件通知
- 进程控制(如调试工具是一个进程,在这个进程里面去调试另一个进程)
linux 下的ipc机制
- 1、早期unix系统ipc
管道:(完成数据传输功能)
信号:(完成事件通知功能)
fifo:(完成数据传输功能) - 2、system-v ipc (unix系统的主分支)
system-v 消息队列(数据传输,控制进程)
system-v 信号量(资源共享,进程控制)
system-v 共享内存(数据传输,比 其他的ipc 的读写效率较高) - 3、socket ipc(unix系统的bsd分支,新的unix系统)
之前的通信都是一台机器内的进程间通信,但是socket ipc允许不同机器之间进行通信。 - 4、posix ipc(适用于所有的unix系统,所有的unix系统都要遵循的标准,学这个即可。IEEE指定的。统一unix系统下的操作接口)
posix消息队列
posix信号量
posix共享内存
在开发过程中,一般都会遵循这四种中的某一个标准。
- 一般都是用posix ipc。
因为它适用于所有的unix系统,所有的unix系统都要遵循的标准,学这个即可。IEEE指定的。统一unix系统下的操作接口。 - 不同类型的ipc不会混着用,一个工程里面会选择其中一种。
719

被折叠的 条评论
为什么被折叠?



