• 售前

  • 售后

热门帖子
入门百科

嵌入式及时利用体系12——任务间信息交互

[复制链接]
123457242 显示全部楼层 发表于 2022-1-17 01:22:49 |阅读模式 打印 上一主题 下一主题
任务间信息交互的动态图:

1.任务间信息交互是什么

利用体系中每一个任务都是一个独立自主的小步调。任务的典范情势如下:

从情势上看任务可以在自己的资源空间中独立运行,究竟上只有小部门任务完全独立于别的任务运行,大部门任务都是须要相互之间举行耦合,共同实现一个计划需求
这就和人类社会一样,大部门人和他身边的人都有着千丝万缕的接洽,并生存在这个关系网中,只有少少数隐士选择与众人隔离。

任务和任务之间有哪些接洽呢?我们举例分析一下:
1、按键任务检测到按键被按下后,须要关照表现任务切换表现界面。

2、传感器读取任务更新丈量数据后须要举行数据打印,此时任务须要判断打印信息任务是否被占用,假如打印信息任务未被占用则举行数据打印。

3、WIFI任务收到数据后,须要向表现任务发送数据,表现任务根据数据革新表现界面。

上面涉及到的这些都属于任务间信息交互,差别的利用体系中有着差别的任务间信息交互方式,常用的任务间信息交互分为以下3类:
   1、同步
2、互斥
3、收发消息
  2.同步

为了实现多任务之间的互助运行,须要在任务间创建一些关联让多任务之间按照先后次序实行,这种关联机制叫做同步
这种机制就像我们生存中交通红绿信号灯。汽车停在红绿信号灯路口,当红绿信号灯变成绿灯时,汽车启动并通过路口。这种举动逻辑并不是红绿信号灯亮的时间通过光电效应触发汽车的油门让汽车启动,而是由于司机看到了红绿信号灯变为绿灯,司机踩下油门启动汽车通过路口。司机看到红绿信号灯变为绿灯,随后踩下油门这一组动作就是同步

通过同步机制可以实现多个任务互助按照次序运行,利用体系中通常使用信号量实现任务同步。
比方任务A须要等候信号甲再实行一个特定利用,当信号甲为“无效”时任务A进入休眠状态,利用体系让任务B运行,假设任务A优先级高于任务B,当任务B将信号甲设置为“有效”的那一瞬间,利用体系会停息任务B运行任务A,使得任务A的特定动作得以实行。机制运行图如下:

3.互斥

一些环境下,某些资源在“同一时间”只能被一个任务使用,当这些资源被某个任务正在使用时,别的准备使用这些资源的任务,只能等候资源使用者放弃使用权后才华使用该资源,这种机制叫互斥
互斥机制就像我们在家里使用卫生间一样,天天早上一家人都起床了,某个人占用了卫生间,其他人就只能等候该使用者脱离卫生间后,才华使用卫生间。这种环境由时间会非常痛楚,以是发起各人好好学习进步收入,买个有多卫的大房子。

互斥机制应用在同一个资源被多个任务利用的环境中,互斥机制有效的办理了多个任务共享资源而产生的竞争题目,使得共享资源可以或许依次让每个任务“独享”这个共享资源。互斥机制有一个紧张的特点就是:先用先得,低优先级任务先使用时,高优先级任务盼望使用也必须等候。
比方如今有两个优先级类似的任务,利用体系接纳时间片轮询的方法调理。我们须要用这两个任务以9600的波特率输出信息,任务A输出“i love rtos”,任务B输出“i love money”。由于两个任务共享了一个串口装备出现了竞争征象,导致实际输出了“i lovi lovee monemnoeyy”这串错误的信息。
使用互斥机制就可以克制这种环境,任务A和任务B都能在它们使用共享资源的时间“独享”这个共享资源,而不被人打搅。互斥机制运行图如下:

4.收发消息

在使用同步和互斥机制时,任务只须要关注同步和互斥是否有效,而有些环境下任务不光须要有同步的结果,还要关注信息机制自己携带的数据,这时间就须要用到消息队列机制。消息队列可以实现多个任务之间的数据信息通讯。
消息队列机制就像我们正在回家的路上,老妈给你发了一个消息“家里酱油用完了,返来的时间顺道买瓶酱油”,这时间你须要按照要求先去超市买一瓶酱油,然后在回家,打酱油就如许被完成了。

消息队列机制可以让多个任务之间举行丰富的数据交互,可以让多个任务组合成一个功能丰富的体系。
比方有一个物联网装备平台同4G信号与装备通讯,收发4G数据的任务收到数据后,将数通过消息队列发送给逻辑处置惩罚任务,逻辑处置惩罚任务剖析数据后产生指令,然后在使用消息队列将指令分发给其他任务。消息队列机制运行图如下:

5.任务间信息交互机制

任务间交互为利用体系提供了多任务之间的互助机制,同步机制实现了控制多任务实行次序,互斥机制实现了多任务共享资源时不会出现恶性竞争,收发消息实现了多任务之间的数据转达。
任务间信息交互有以下3个特点:
   1、创建多任务之间的关联,包管多任务之间实现复杂的互助
2、包管利用体系运行服从,当任务须要等候信息时,利用体系会让该任务进入等候状态,并运行其他任务
3、包管利用体系实现性,当信息被当前任务设置成“有效”时,利用体系会停息当前任务,运行等候该信息的高优先级任务。
  使用一个动态图展示任务间信息交互:

   未完待续…
及时利用体系系列将连续更新
创作不易盼望朋侪们点赞,转发,品评,关注。
您的点赞,转发,品评,关注将是我连续更新的动力
作者:李巍
Github:liyinuoman2017
CSDN:liyinuo2017
本日头条:步调猿李巍


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

帖子地址: 

回复

使用道具 举报

分享
推广
火星云矿 | 预约S19Pro,享500抵1000!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

草根技术分享(草根吧)是全球知名中文IT技术交流平台,创建于2021年,包含原创博客、精品问答、职业培训、技术社区、资源下载等产品服务,提供原创、优质、完整内容的专业IT技术开发社区。
  • 官方手机版

  • 微信公众号

  • 商务合作