0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

进程间的通讯方式

嵌入式应用开发 来源:嵌入式应用开发 作者:嵌入式应用开发 2022-12-29 16:47 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

1.管道模型通讯

管道模型与软件生命周期模型——瀑布模型(Waterfall Model)很相似。所谓的瀑布模型,其实就是将整个软件开发过程分成多个阶段,往往是上一个阶段完全做完,才将输出结果交给下一个阶段。从管道的这个名称可以看出来,管道是一种单向传输数据的机制,它其实是一段缓存,里面的数据只能从一端写入,从另一端读出。如果想互相通信,我们需要创建两个管道才行。

管道又可以分为:匿名管道和命名管道。

poYBAGOtUwKAQ0zfAAA46IVlUJE936.png

一方面,我们能够看到,管道里面的内容被读取出来,打印到了终端上;另一方面,echo 那个命令正常退出了,也即交接完毕,前一个项目组就完成了使命,可以解散了。管道通信,我们可以看出,瀑布模型的开发流程效率比较低下,因为团队之间无法频繁地沟通。而且,管道的使用模式,也不适合进程间频繁的交换数据。

2.消息队列

消息队列可以理解为发邮件,每一封邮件都视为一个独立的数据单元,也就是消息体,每个消息体都是固定大小的存储块,在字节流上不连续。

poYBAGOtU0mAPppJAADVUcI8zGk703.png

3.共享内存

每个进程都有自己独立的虚拟内存空间,不同的进程的虚拟内存空间映射到不同的物理内存中去。这个进程访问 A 地址和另一个进程访问 A 地址,其实访问的是不同的物理内存地址,对于数据的增删查改互不影响。

poYBAGOtU4KAa7EAAAE7rjuHG64344.png

4.信号

信号可以在任何时候发送给某一进程,进程需要为这个信号配置信号处理函数。当某个信号发生的时候,就默认执行这个函数就可以了。这就相当于咱们运维一个系统应急手册,当遇到什么情况,做什么事情,都事先准备好,出了事情照着做就可以了。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式
    +关注

    关注

    5211

    文章

    20737

    浏览量

    338337
  • 进程
    +关注

    关注

    0

    文章

    211

    浏览量

    14568
  • 通讯方式
    +关注

    关注

    0

    文章

    9

    浏览量

    2369
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    飞凌嵌入式ElfBoard-进程的通信之信号处理pause

    pause()可以让进程暂停运行,当进程被挂起时,它不会占用 CPU 资源,直到某个信号(如 SIGINT 或 SIGTERM)被发送给该进程。1.头文件#include 2.函数原型int
    发表于 05-14 08:57

    飞凌嵌入式ElfBoard-进程的通信

    进程通信(interprocess communication,简称 IPC)是指在操作系统中,不同进程之间的数据交换和消息传递的方式。IPC提供了多种机制来实现此功能,
    发表于 05-14 08:56

    飞凌嵌入式ElfBoard-进程的通信之信号类型

    方式来表示;可靠信号相对于不可靠信号有许多的优势:⚫之前标准信号中可以让应用使用的信号只有两个,SIGUSR1和SIGUSR2,可靠信号扩大了用户应用程序自定义的范围;⚫标准信号是非实时(不可靠)信号
    发表于 05-14 08:54

    飞凌嵌入式ElfBoard-进程进程状态

    在Linux系统中,进程状态对于系统调度、资源分配和管理非常重要,因为它表示了进程当前的执行状况和资源使用情况。在Linux 系统中使用ps -aux 命令可观察到进程的当前状态,在 STAT 列中
    发表于 03-27 09:12

    飞凌嵌入式ElfBoard-进程的相关信息之父进程和子进程

    进程在创建时,创建进程是新进程的父进程,新进程是创建进程的子
    发表于 03-12 17:12

    飞凌嵌入式ElfBoard-进程之什么是进程

    在Linux系统中,有些基本命令能够查看到进程的信息。例如ps、top、pgrep、pstree等;这些命令为用户提供了查看和管理Linux进程信息的多种功能。通过合理使用这些命令,用户可以监控
    发表于 03-02 08:49

    微型LORA数传模块:六种传输方式,5KM无线通讯

    、灵活通讯模式,适配多场景需求 点对点双向透明传输:两台模块即可实现串口设备一对一通讯,数据双向透明传输,无需复杂协议转换。 主从式一对多通讯:支持主从模式组网,满足一个主设备对多个
    的头像 发表于 02-03 17:17 389次阅读

    飞凌嵌入式ElfBoard-进程之什么是进程

    进程是正在执行(已经开始执行但还没终止的)的程序实例,执行程序时,内核会将程序载入虚拟内存,为程序变量分配空间,建立内核记账(bookkeeping)数据结构,以记录与进程有关的各种信息(比如,进程
    发表于 01-26 08:42

    进程概念和特征

    进程的概念   在多道程序环境下,允许多个程序并发执行,此时它们将失去封闭性,并具有间断性及不可再现性的特征。为此引入了进程(Process)的概念,以便更好地描述和控制程序的并发执行,实现操作系统
    发表于 01-15 06:39

    进程通信

    进程通信是指进程之间的信息交换。PV操作是低级通信方式,髙级通信方式是指以较高的效率传输大量数据的通信方式。高级通信方法主要有以下三个类。
    发表于 01-15 06:16

    进程的控制

    进程控制的主要功能是对系统中的所有进程实施有效的管理,它具有创建新进程、撤销已有进程、实现进程状态转换等功能。在操作系统中,一般把
    发表于 01-15 06:05

    解析Linux的进程、线程和协程

    解决大规模问题。 线程并行处理 线程并行处理使用多个线程在同一进程内执行任务。由于线程共享相同的地址空间,因此线程之间的通信更加高效,不需要像进程那样进行进程通信(IPC)。这种
    发表于 12-22 11:00

    串行通讯与并行通讯介绍

    按数据传送的方式通讯可分为串行通讯与并行通讯,串行通讯是指设备之间通过少量数据信号线(一般是8根以下), 地线以及控制信号线,按数据位形式
    发表于 12-11 06:52

    Linux进程通信(IPC)全解析:从管道到 Socket,一篇讲透

    ,Inter-Process Communication) 。 今天我们就来系统梳理 Linux 中最常用的 6 种 IPC 方式,从原理到实例,从流程到适用场景,帮你彻底搞懂进程如何 “对话”。 一、管道
    的头像 发表于 11-14 21:38 1.3w次阅读
    Linux<b class='flag-5'>进程</b><b class='flag-5'>间</b>通信(IPC)全解析:从管道到 Socket,一篇讲透

    PLC之间跨区域通讯!无线通讯方案全解析

    。 在这种情况下,可以给PLC配备相应的无线通讯模块来实现 PLC与PLC无线通讯。 串口无线通讯模块和以太网无线通讯模块,都可以妥善地实现PLC之间的远距离数据传递与共享。 一、串口
    的头像 发表于 07-21 16:57 1113次阅读
    PLC之间跨区域<b class='flag-5'>通讯</b>!无线<b class='flag-5'>通讯</b>方案全解析