操作系统之进程的通信方式

每个进程有自己独立的地址空间,是相互独立的,一般不能互相访问.(特列:共享内存区)

进程间通信主要有:管道,系统IPC(包括消息队列,信号量,共享存储),SOCKET

管道:

  1. 管道是半双工通信(也就是数据只能在一方流动),具有固定的读端和写端
  2. 只能用于具有亲缘关系的进程(父子进程,兄弟进程)
  3. 可以把它看作文件,对它的读写可以用read write函数,但是它不属于文件系统,只存在内存中。
  4. 无名管道用于父子进程,有名管道用于兄弟进程
  5. 先进先出,尾部写数据,头部写数据

信号量:

  1. 信号量是计数器,用来控制多个进程对共享资源的访问
  2. 主要作为不同进程间以及同一进程下的线程的同步手段

消息队列:

  1. 消息队列是由消息的链表,存放在内核中,并由消息队列标识符标识。
  2. 克服管道信号传递信息少等缺点

共享内存区:

  1. 共享内存就是映射一段可以被进程公共访问的内存,这段共享内存由一个内存创建,但可以被多个进程访问,共享内存是最快的IPC。

Socket:

  1. 套解口也是一种进程间通信机制,与其他通信机制不同的是,它可用于不同及其间的进程通信。

 

猜你喜欢

转载自blog.csdn.net/weixin_40288381/article/details/81109659