当前位置: 首页 > news >正文

阿里云主机做网站网络架构 书籍

阿里云主机做网站,网络架构 书籍,网站改版 收录,MEZZANINE wordpress目录 各类方法的对比队列事件组信号量互斥量任务通知 各类方法的本质 使用全局变量可以实现通信,但是使用全局变量会有一些缺陷。 那我们怎么保证通信的正确性呢??? 我们需要引入很多互斥的方法。除了互斥之外,还需要高…

目录

  • 各类方法的对比
    • 队列
    • 事件组
    • 信号量
    • 互斥量
    • 任务通知
  • 各类方法的本质


使用全局变量可以实现通信,但是使用全局变量会有一些缺陷。
那我们怎么保证通信的正确性呢???
我们需要引入很多互斥的方法。除了互斥之外,还需要高效率!!!

  • 互斥+阻塞和唤醒

各类方法的对比

能实现同步、互斥的内核方法有:任务通知(task notification)、队列(queue)、事件组(event group)、信号量(semaphoe)、互斥量(mutex)。

它们都有类似的操作方法:获取/释放、阻塞/唤醒、超时。比如:

  • 任务A获取资源,用完后任务A释放资源
  • 任务A获取不到资源则阻塞,任务B释放资源并把任务A唤醒
  • 任务A获取不到资源则阻塞,并定个闹钟;A要么超时返回,要么在这段时间内因为任务B释放资源而被唤醒。

这些内核对象五花八门,记不住怎么办?我也记不住,通过对比的方法来区分它们。

  • 能否传信息?还是只能传递状态?
  • 为众生(所有任务都可以使用)?只为你(只能指定任务使用)?
  • 我生产,你们消费?
  • 我上锁,只能由我开锁
内核对象生产者消费者数据/状态说明
队列ALLALL数据:若干个数据 谁都可以往队列里扔数据, 谁都可以从队列里读数据用来传递数据, 发送者、接收者无限制, 一个数据只能唤醒一个接收者
事件组ALLALL多个位:或、与 谁都可以设置(生产)多个位, 谁都可以等待某个位、若干个位用来传递事件, 可以是N个事件, 发送者、接受者无限制, 可以唤醒多个接收者:像广播
信号量ALLALL数量:0~n 谁都可以增加一个数量, 谁都可消耗一个数量用来维持资源的个数, 生产者、消费者无限制, 1个资源只能唤醒1个接收者
任务通知ALL只有我数据、状态都可以传输, 使用任务通知时, 必须指定接受者N对1的关系: 发送者无限制, 接收者只能是这个任务
互斥量只能A开锁A上锁位:0、1 我上锁:1变为0, 只能由我开锁:0变为1就像一个空厕所, 谁使用谁上锁, 也只能由他开锁

使用图形对比如下:

  • 队列:
    • 里面可以放任意数据,可以放多个数据
    • 任务、ISR都可以放入数据;任务、ISR都可以从中读出数据
  • 事件组:
    • 一个事件用一bit表示,1表示事件发生了,0表示事件没发生
    • 可以用来表示事件、事件的组合发生了,不能传递数据
    • 有广播效果:事件或事件的组合发生了,等待它的多个任务都会被唤醒
  • 信号量:
    • 核心是"计数值"
    • 任务、ISR释放信号量时让计数值加1
    • 任务、ISR获得信号量时,让计数值减1
  • 任务通知:
    • 核心是任务的TCB里的数值
    • 会被覆盖
    • 发通知给谁?必须指定接收任务
    • 只能由接收任务本身获取该通知
  • 互斥量:
    • 数值只有0或1
    • 谁获得互斥量,就必须由谁释放同一个互斥量

队列

队列就是一个传送带,就是一个流水线,先进先出

在这里插入图片描述

事件组

事件组就是事件的组合

在这里插入图片描述
左边我做完了某些事情,我把某一位设置为1,右边可以等待某一个事件,也可以等待某几个事件,还可以若干个事件中的某一个事件!

信号量

在这里插入图片描述

信号量里面保存计数值,假设左边生产饺子,每生产一个饺子,这个计数值就加1,右边拿走一个饺子,计数值就减一。

互斥量

在这里插入图片描述

信号量里保存到是各种计数值,如果计数值是0或1,那么这个信号量就变成了一个互斥量,就是同一时间只能一个人使用厕所。
使用互斥量会产生优先级反转的问题,于是它就提出了优先级继承这些方法来解决这些问题。

任务通知

任务通知是多对一的关系

在这里插入图片描述

各类方法的本质

这节课只是概述……

学习视频:【FreeRTOS入门与工程实践 --由浅入深带你学习FreeRTOS(FreeRTOS教程 基于STM32,以实际项目为导向)】 【精准空降到 00:03】 https://www.bilibili.com/video/BV1Jw411i7Fz/?p=27&share_source=copy_web&vd_source=8af85e60c2df9af1f0fd23935753a933&t=3
传送门

http://www.yayakq.cn/news/483536/

相关文章:

  • 怎么用2013做网站在凡科网申请的网站设置网页访问密码
  • 在郑州做网站wordpress首页布局怎么修改
  • 网站兼容问题重庆网红打卡点有哪些地方
  • 蓬安网站建设内购券网站开发
  • 网站的收费窗口怎么做图文广告公司取名
  • 成都铁路局贵阳建设指挥部网站WordPress做老用户管理
  • 生成手机网站全球设计网分站
  • 企业网站优化之如何做需求分析潮州外贸网站建设
  • 青岛哪家做网站的公司北京工商注册app下载
  • 汕头网站建设技术外包vr全景网站开发
  • 我有云服务器如何建站网站上不去原因
  • 南宁制作网站的公司flash 好的网站
  • 深圳网站建设开发竞价账户托管公司
  • 专门做评测的网站wordpress jupiter
  • 网站安全性设计菜谱网站 源码
  • 未来中森网站建设无锡有哪些软件开发的公司
  • 兰州网站建设公深圳龙岗有什么好玩的地方
  • 哪些网站做任务可以赚钱的phpmysql网站开发视频
  • 网站违规词处罚做网站的网站建设周期与进度安排
  • asp.net 建立网站公司网站建设计入什么科目
  • 那些做网站的那些软件都叫啥培训机构招生7个方法
  • 一学一做动漫视频网站焕识品牌设计
  • 新的网站建设技术方案wordpress注册发送验证码
  • 建设户外腰包网站个人网站域名备案
  • 清华紫光是可以做网站的吗深圳做网站seo
  • 做网站到底能不能赚钱网站色调红黑
  • 支付公司网站建设费怎么入账百度网络营销app
  • 郑州做网站远辰什么是网站结构优化
  • 移动端网站建设 新闻动态动易网站风格免费下载
  • 怎么做阿里巴巴官网站示范建设验收网站