当前位置:首页 > 智能硬件 > 人工智能AI
[导读] 共享内存 是被多个进程共享的一部分物理内存。共享内存是进程间共享数据的一种最快的方法,一个进程向共享内存区域写入了数据,共享这个内存区域的所有进程就可以立刻看到其中的内容 共享内

共享内存

是被多个进程共享的一部分物理内存。共享内存是进程间共享数据的一种最快的方法,一个进程向共享内存区域写入了数据,共享这个内存区域的所有进程就可以立刻看到其中的内容

共享内存实现分为两个步骤:

一、创建共享内存,使用shmget函数

二、映射共享内存,将这段创建的共享内存映射到具体的进程空间去,使用shmat函数

当一个进程不再需要共享内存时,需要把它从进程地址空间中脱离。

int shmdt ( char *shmaddr )

消息队列

unix早期通信机制之一的信号能够传送的信息量有限,管道则只能传送无格式的字节流,这无疑会给应用程序开发带来不便。消息队列(也叫做报文队列)则克服了这些缺点。

发展

消息队列就是一个消息的链表。可以把消息看作一个记录,具有特定的格式。进程可以向中按照一定的规则添加新消息;另一些进程则可以从消息队列中读走消息

目前主要有两种类型的消息队列:

POSIX消息队列以及系统V消息队列,系统V消息队列目前被大量使用

系统V消息队列是随内核持续的,只有在内核重起或者人工删除时,该消息队列才会被删除

键值

消息队列的内核持续性要求每个消息队列都在系统范围内对应唯一的键值,所以,要获得一个消息队列的描述字,必须提供该消息队列的键值

在以下两种情况下,将创建一个新的消息队列:

1、如果没有与健值key相对应的消息队列,并且 msgflg中包含了IPC_CREAT标志位。

2、key参数为IPC_PRIVATE

发送消息

include #include #include int msgsnd(int msqid,struct msgbuf*msgp,int msgsz,int msgflg

功能:向消息队列中发送一条消息

Msqid: 已打开的消息队列id

Msgp: 存放消息的结构

Msgsz: 消息数据长度

Msgflg:

发送标志,有意义的msgflg标志为IPC_NOWAIT,指明在消息队列没有足够空间容纳要发送的消息时,msgsnd是否等待

消息格式

struct msgbuf { long mtype;/*消息类型*/ char mtext[1]; /*消息数据的首地址*/ } *接收消息* #include #include #include int msgrcv(int msqid, struct msgbuf *msgp, int msgsz, long msgtyp, int msgflg)

功能:

从msqid代表的消息队列中读取一个msgtyp类型的消息,并把消息存储在msgp指向的msgbuf结构中。在成功地读取了一条消息以后,队列中的这条消息将被删除

信号量

信号量(又名:信号灯)与其他进程间通信方式不大相同,主要用途是保护临界资源。

进程可以根据它判定是否能够访问某些共享资源。除了用于访问控制外,还可用于进程同步

分类

二值信号灯:信号灯的值只能取0或1,类似于互斥锁。 但两者有不同:

信号灯强调共享资源,只要共享资源可用,其他进程同样可以修改信号灯的值;

互斥锁更强调进程,占用资源的进程使用完资源后,必须由进程本身来解锁。

计数信号灯:信号灯的值可以取任意非负值

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读

随着高通量卫星、低轨卫星组网、星地一体化通信技术快速迭代,卫星通信正式迈入超高频、大带宽、低时延的全新发展阶段。高频段(Ku、Ka波段及以上)频谱资源充足、传输速率高、抗干扰能力强,成为新一代卫星通信的核心频段。带通滤波...

关键字: 带通滤波器 卫星 通信

近日,国家市场监督管理总局(国家标准化管理委员会)发布最新一批国家标准公告,其中批准发布《星闪无线通信系统》系列国家标准(GB/T 48336.101—2026​等)。

关键字: 通信

台湾新竹 – 2026 年 10 月 1 日 –––全球半导体领导供货商新唐科技股份有限公司(Nuvoton Technology Corporation)正式推出 NuMicro® MA35D0 系列最新 LQFP12...

关键字: MPU Linux 智能网关

米尔电子 MYD-LR3576 Android V2.0.1 现已正式发布。继 V1.0.0 版本支持 Android 14 后,本次发布将系统升级至 Android 15,并围绕系统基线、板级功能和使用体验进行三重升级...

关键字: 开发板 Android 15 Linux

ARM工业网关跑软PLC,适合把“少量逻辑控制+协议转换+上云”合并到一台设备:本地用IEC 61131-3做启停/联锁/计数,外接DI/DO、RS485、CAN、以太网,再通过Modbus TCP/OPC UA/MQT...

关键字: ARM软PLC Linux 网关IO

在智能制造、工业4.0全面落地的当下,工业以太网早已取代传统现场总线,成为工业自动化、智能工厂、轨道交通、能源化工等领域的核心通信骨架。从生产线的精准启停、设备数据的实时传输,到工控系统的联动调控,每一个工业场景的有序运...

关键字: 以太网 通信 网络

数字时代,数据正在以指数级速度持续膨胀,海量的视频、业务日志、AI 训练样本、物联网感知数据汇聚成汹涌的信息洪流。大数据与人工智能业务对数据中心、高速光通信、边缘节点的传输带宽、信号稳定性、系统可靠性提出前所未有的严苛要...

关键字: 体声波 人工智能 通信

从高清直播、云端游戏到工业智能制造、远程医疗,5G早已渗透生产生活方方面面,凭借超高网速、超低时延、超大连接的优势,成为数字时代的核心基建。很多人只知晓5G速度远超4G,却很少有人了解,5G的性能飞跃并非单纯的技术迭代,...

关键字: 信道容量 通信 高网速

摩尔斯微电子的 Wi-Fi HaLow软件现已面向 Zephyr开放,Zephyr是嵌入式设备领域应用最广泛的开源实时操作系统之一

关键字: 嵌入式设备 Wi-Fi HaLow Linux

IAR嵌入式IDE新增原生Linux支持,实现桌面开发与CI开发的统一,让安全与合规要求严苛的嵌入式项目能够使用同一套经过认证的工具链

关键字: Linux Windows 嵌入式
关闭