欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 创投人物 > Linux进程间通信(一)之进程间通信介绍

Linux进程间通信(一)之进程间通信介绍

2025/5/4 15:09:02 来源:https://blog.csdn.net/lll_666666/article/details/147672008  浏览:    关键词:Linux进程间通信(一)之进程间通信介绍

文章目录

    • 进程间通信介绍
      • 1.是什么
      • 2.为什么
      • 3.怎么办?
      • 进程间通信目的
      • 进程间通信发展
      • 进程间通信分类
        • 管道
        • System V IPC
        • POSIX IPC

进程间通信介绍

1.是什么

两个或者多个进程实现数据层面的交互。

因为进程独立性的存在,导致进程通信的成本比较高。

通信是有成本的,会破坏进程的独立性。

2.为什么

  1. 基本数据(数据交给另一个进程进行处理等)

  2. 发送命令(给另一个进程发送指令等)

  3. 某种协同(多进程进行协同工作)

  4. 通知(一个进程通知另一个进程是否读取数据等)

​ ……

所以需要让进程通信起来。

3.怎么办?

  1. 进程间通信的本质:必须让不同的进程看到同一份“资源”

  2. “资源”-- 特定形式的内存空间。

  3. 这个“资源”一般由操作系统提供,

    为什么不是两个进程中的一个提供呢?

    假设一个进程提供,那么这个资源属于该进程,也是该进程独有的

    所以进程的资源不允许共享,因为会破坏进程的独立性。

  4. 我们进程访问这个空间,进行通信,本质就是访问操作系统!

    进程代表的就是用户,“资源”从创建,使用(一般),释放 – 都要通过系统调用接口!

    从底层设计,从接口设计,都要操作系统独立设计

    一般操作系统会有一个独立的通信模块 – 隶属于文件系统 – IPC通信模块

    定制标准 – 进程间通信是有标准的 – (system V – 本机通信 && posix – 网络)

  5. 基于文件级别的通信方式 – 管道

进程间通信目的

数据传输:一个进程需要将它的数据发送给另一个进程

资源共享:多个进程之间共享同样的资源。

通知事件:一个进程需要向另一个或一组进程发送消息,通知它(它们)发生了某种事件

(如进程终止时要通知父进程)。

进程控制:有些进程希望完全控制另一个进程的执行(如Debug进程),

此时控制进程希望能够拦截另一个进程的所有陷入和异常,并能够及时知道它的状态改变。

进程间通信发展

管道

System V 进程间通信

POSIX 进程间通信

进程间通信分类

管道

匿名管道pipe

命名管道

System V IPC

System V 消息队列

System V 共享内存

System V 信号量

POSIX IPC

消息队列

共享内存

信号量

互斥量

条件变量

读写锁

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词