![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
嵌入式软件设计
文章平均质量分 78
_Hello Spring
打工人,可付费找打工人帮你们码代码!!!
展开
-
Linux 进程间的通信(五)---共享内存通信+信号量
Linux 进程间的通信(五)—共享内存通信+信号量共享内存通信简介 共享内存可以说是最有用的进程间通信方式,也是最快的IPC形式。两个不同进程A、B共享内存的意思是,同一块物理内存被映射到进程A、B各自的进程地址空间。进程A可以即时看到进程B对共享内存中数据的更新,反之亦然。由于多个进程共享同一块内存区域,必然需要某种同步机制,互斥锁和信号量都可以. 主要有以下几个API:shmget()、shmat()、shmdt()及shmctl()。shmget()用来获得共享内存区域的ID,如果不存原创 2020-05-14 17:04:02 · 665 阅读 · 0 评论 -
Linux 进程间的通信(四)---信号量
Linux 进程间的通信(四)—信号量信号量 为了防止出现因多个程序同时访问一个共享资源而引发的一系列问题,我们需要一种方法,它可以通过生成并使用令牌来授权,在任一时刻只能有一个执行线程访问代码的临界区域。临界区域是指执行数据更新的代码需要独占式地执行。而信号量就可以提供这样的一种访问机制,让一个临界区同一时间只有一个线程在访问它,也就是说信号量是用来调协进程对共享资源的访问的。工作原理 由于信号量只能进行两种操作等待和发送信号,即P(sv)和V(sv),他们的行为是这样的: P(sv):如原创 2020-05-13 15:03:12 · 306 阅读 · 0 评论 -
Linux 进程间的通信(三)---消息队列
Linux 进程间的通信(二)—消息队列 消息队列提供了一种从一个进程向另一个进程发送一个数据块的方法。 每个数据块都被认为含有一个类型,接收进程可以独立地接收含有不同类型的数据结构。消息队列与命名管道一样,每个数据块都有一个最大长度的限制消息缓冲区结构 常用的结构是msgbuf结构。程序员可以以这个结构为模板定义自己的消息结构。在头文件<linux/msg.h>中,它的定义如下所示:struct msgbuf { long mtype; char mtext[1];};原创 2020-05-11 17:26:17 · 766 阅读 · 0 评论 -
Linux 进程间的通信(二)---共享内存通信
Linux 进程间的通信(二)—共享内存通信共享内存通信简介 共享内存可以说是最有用的进程间通信方式,也是最快的IPC形式。两个不同进程A、B共享内存的意思是,同一块物理内存被映射到进程A、B各自的进程地址空间。进程A可以即时看到进程B对共享内存中数据的更新,反之亦然。由于多个进程共享同一块内存区域,必然需要某种同步机制,互斥锁和信号量都可以. 主要有以下几个API:shmget()、shmat()、shmdt()及shmctl()。shmget()用来获得共享内存区域的ID,如果不存在指定的原创 2020-05-09 18:43:24 · 330 阅读 · 0 评论 -
Linux 进程间的通信(一)---管道通信(有名管道和无名管道)
Linux 进程间的通信(一)—管道通信(有名管道和无名管道)Linux 下进程间通信概述 进程间通信就是在不同进程之间传播或交换信息,那么不同进程之间存在着什么双方都可以访问的介质呢?每个进程各自有不同的用户地址空间,任何一个进程的全局变量在另一个进程中都看不到,所以进程之间要交换数据必须通过内核,在内核中开辟一块缓冲区,进程1把数据从用户空间拷到内核缓冲区,进程2再从内核缓冲区把数据...原创 2020-05-06 21:14:58 · 1477 阅读 · 1 评论 -
嵌入式软件设计---笔记
嵌入式软件设计—笔记1.1 引言、计算机系统由硬件系统和软件系统所组成,软件系统中最为重要的是操作系统。Linux作为操作系统管理着计算机内所有的硬件资源和软件资源,仿佛是计算机的灵魂。Linux系统基于GPL 协议发布,该协议是GNU项目所创立开放源代码的公共许可证。1.2 Linux 内核内核是操作系统的心脏,系统其他部分必须依靠内核这部分软件提供的服务,例如管理硬件设备、分配系...原创 2020-02-10 21:26:20 · 677 阅读 · 0 评论