【Linux】进程间通信的有关基础概念

这篇具有很好参考价值的文章主要介绍了【Linux】进程间通信的有关基础概念。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在以前我们使用多进程时,我们一般都是让父子进程分别执行各自的代码,进程之间几乎没有通信,但是实际过程中,进程间的通信是十分重要的的一件事情,一个复杂的程序一般都是有多个进程相互通信,协调进行来完成工作的。

本章我们并不讲解进程通信的具体技术,我们先讲解进程间通信的有关基础概念进行,方便我们在后面学习进程间通信时有更深刻的理解。

一、进程间通信目的

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

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

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

  • 进程控制:有些进程希望完全控制另一个进程的执行(如Debug进程),此时控制进程希望能够拦截另一个进程的所有陷入和异常,并能够及时知道它的状态改变。

二、进程间通信分类

  • 管道
    • 匿名管道pipe
    • 命名管道
  • System V IPC
    • System V 消息队列
    • System V 共享内存
    • System V 信号量
  • POSIX IPC
    • 消息队列
    • 共享内存
    • 信号量
    • 互斥量
    • 条件变量
    • 读写锁

三、进程通信的要求

我们知道:进程是具有独立性的,进程的数据是不能相互干扰的,如果我们要让他们进行通信无疑增加了通信的成本。

要让两个不同的进程,进行通信,前提条件肯定是:先让两个进程,看到同一份“资源”。并且这份资源不能属于任何一个进程,否则就会影响进程的独立性!当然如果多个进程无法看到同一份资源它们就无法进行进程间的通信。

任何进程通信手段:
a、想办法,先让不同的进程,看到同一份资源
b、让一方写入,一方读取,完成通信过程,至于,通信目的与后续工作,要结合具体场景

【Linux】进程间通信的有关基础概念

四、进程间通信的有关概念


我们把所有进程都能看到的资源称为公共资源,例如操作系统给我们提供公共资源来让两个进程进行进程间通信,但是在通信的过程中可能会有各种问题,比如:进程A进行写入,进程B进行读取,当进程A还没有写完,进程B就进行读取,那么进程B读取的数据可能就不是进程A想要给进程B的消息,这时就要有相应的概念和技术出现去解决这些问题。


  1. 互斥:任何一个时刻,都只允许一个执行流在进行共享资源的访问。(针对进程的概念)
    (例如上面的进程A和进程B如果是互斥的,读写结果不一致的问题就得到了解决)

  2. 临界资源:我们把任何一个时刻,都只允许一个执行流在进行访问的共享资源,叫做临界资源。 (针对资源的概念)

  3. 临界区: 临界资源也是共享资源,通过访问共享资源能够使两个进程进行进程间的通信,共享资源的访问是要通过代码访问的,因此凡是访问临界资源的代码所组成的区域,叫做临界区。

【Linux】进程间通信的有关基础概念文章来源地址https://www.toymoban.com/news/detail-475507.html

  1. 原子性:不会被任何调度机制打断的操作,该操作只有两态,要么完成,要么未完成。

    (例如上面的进程A进行写入一条消息时,不能只写了半条消息就退出了,要么进程A就不写,要写就一下写完)

到了这里,关于【Linux】进程间通信的有关基础概念的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【进程相关概念】面试常见问题,进程状态,进程优先级,并行与并发,进程通信等

    前言: 大家好,我是 良辰丫 ,今天我们来认识一下 进程 的相关概念,当接触到进程,也就意味着我们进入了javaEE的学习阶段,这篇文章主要带大家去学习一些面试题,帮助大家更好的去学习并熟悉进程,跟着我的步伐一起进入学习吧!!!💞💞💞 🧑个人主页:良辰针不戳 📖所属专栏

    2023年04月08日
    浏览(83)
  • 【Linux笔记】Linux进程概念与进程状态

    进程的概念: 进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配的基本单位,是操作系统结构的基础。在早期面向进程设计的计算机结构中,进程是程序的基本执行实体;在当代面向线程设计的计算机结构中,进程是线程的容器。程序

    2024年02月06日
    浏览(48)
  • 【Linux进程篇】进程概念(1)

    作者:爱写代码的刚子 时间:2023.7.30 前言:操作系统和软硬件的关系就相当于管理者和被管理者的关系,管理者并不需要见到被管理者,通过执行者拿到对应数据,通过对数据的管理来达到管理的目的。==对软硬件的管理最后一定会变成对某种数据结构的增删查改。==本篇博

    2024年02月14日
    浏览(51)
  • 【Linux】进程概念与进程状态

    在通常的计算机书籍或者课本中对进程概念的描述是这样的 – 进程就是被加载到内存中的程序,或者被运行起来的程序就叫做进程 ;这样说的原因如下: 首先,从 【Linux】计算机的软硬件体系结构 中我们知道,为了提高计算机的整体效率,在数据层面,CPU 不会直接和外设

    2024年02月02日
    浏览(45)
  • 【LInux】进程概念II -- 描述进程

    Halo,这里是Ppeua。平时主要更新C语言,C++,数据结构算法…感兴趣就关注我吧!你定不会失望。 在初学阶段,我们对进程这个词仅在书上看见过,大多不太理解这个究竟是什么意思? 回顾我们之前所讲,如何去管理一件事物: 先描述再组织 .同样的 操作系统想要对进程进行管理也

    2024年02月07日
    浏览(40)
  • 【Linux】进程学习(1)---理解进程概念

    数学家冯·诺依曼提出了计算机制造的三个基本原则,即采用二进制逻辑、程序存储执行以及计算机由五个部分组成(运算器、控制器、存储器、输入设备、输出设备),这套理论被称为冯·诺依曼体系结构。我们常见的计算机,如笔记本。我们不常见的计算机,如服务器,大

    2023年04月25日
    浏览(58)
  • 【Linux】进程周边001之进程概念

    👀 樊梓慕: 个人主页  🎥 个人专栏: 《C语言》《数据结构》《蓝桥杯试题》《LeetCode刷题笔记》《实训项目》《C++》《Linux》 🌝 每一个不曾起舞的日子,都是对生命的辜负 目录 前言 1.基本概念 2.描述进程-PCB 2.1task_struct-Linux中的PCB 2.2task_struct内容分类(成员) 3.查看进

    2024年02月05日
    浏览(43)
  • 【Linux之进程间通信】04.Linux进程间的信号通信

      【Linux之进程间通信】 项目代码获取: https://gitee.com/chenshao777/linux-processes.git (麻烦点个免费的Star哦,您的Star就是我的写作动力!) 04.Linux进程间的信号通信 【目录】   一、进程间信号发送方式   二、进程间信号接收方式   三、进程间信号处理方式 一、进程间信号发

    2024年02月06日
    浏览(44)
  • 【Linux从入门到放弃】进程概念、查看进程、创建进程

    🧑‍💻作者: @情话0.0 📝专栏:《Linux从入门到放弃》 👦个人简介:一名双非编程菜鸟,在这里分享自己的编程学习笔记,欢迎大家的指正与点赞,谢谢!   那在还没有学习进程之前,就问大家,操作系统是怎么管理进行进程管理的呢?很简单,先把进程描述起来,再

    2024年02月12日
    浏览(43)
  • 【linux】进程概念详述

    输入设备: 键盘、磁盘、网卡、显卡、写字板、摄像头等 输出设备: 显示器、磁盘、网卡、显卡等 存储器: 内存 运算器和控制器: CPU 我们可以看到输入设备和输出设备并不是完全独立的。比如我们以前的文件操作是 从磁盘中读取 为什么能直接把外设的数据加载到CPU中?

    2023年04月21日
    浏览(23)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包