嵌入式OS入门笔记-以RTX为案例:七.RTX的进程间通讯(一)

本文介绍了嵌入式操作系统RTX中的进程间通讯机制,重点讲解了事件(Event)和互斥锁(Mutex)。事件通过设置和等待事件标志实现进程同步,而互斥锁用于保护共享资源的互斥访问。通过实例说明了事件的等待和设置以及互斥锁的使用方法。
摘要由CSDN通过智能技术生成

嵌入式OS入门笔记-以RTX为案例:七.RTX的进程间通讯(一)


上一篇笔记讲了一下RTX的三种调度机制。可以看到RTX配置下是有并发的,也就是有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行,但任一个时刻点上只有一个程序在处理机上运行的情况。实际上并行是会涉及很多问题的,好比如果只是一个人在干活那么他不需要和别人沟通就能完成这个任务,但如果多人同时在干活(或者是为了同一个目的,或者不是为了同一个目的),如果他们需要共享到一些资源,那就涉及到沟通协调的额外付出了。OS的设计也涉及类似的问题。在进一步讨论一些并发会造成的问题前,我们先介绍一下RTX是如何实现进程与进程间的通讯的。


RTX的进程间通讯主要依赖于四种机制,分别是事件(Event)互斥锁(Mutex)旗语信号量(Semaphore),和邮箱(Mailbox)。前三种机制侧重进程间的同步,邮箱则侧重进程间的数据通讯。这里先讨论事件和互斥锁,信号量和邮箱请参见下一篇


我们先考虑如下一个场景,A进程运行到一定时间后,需要等待一个外设的信号(或者别的数据),它可以选择忙绿等待(busy-waiting):


...
while(something_unfinished){}
...

当something_unfinished由真变为假时,A进程才可以跳出这个while循环。此前它一直是在忙等,CPU执行的指令很可能是NOP(一条汇编指令,什么也不做,空转)。所以实际上是浪费CPU资源。这样的做法有些时候是有必要的
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值