首页 > 其他分享 >20_信号量

20_信号量

时间:2023-09-19 12:35:46浏览次数:30  
标签:osOK 优先级 信号量 互斥 任务 printf 20

信号量

信号量&互斥量: 创建、获取、释放、删除

信号量用于同步,任务间或者任务和中断间同步;

互斥量用于互锁,用于保护同时只能有一个任务访问的资源,为资源上一把锁。

二值信号量:同步

计数信号量:资源使用统计

互斥量:互斥信号量其实就是一个拥有优先级继承的二值信号量递归互

斥:互斥中嵌套互斥

优先级反转,由于高优先级任务在等低优先级任务释放信号量的过程中,低优先级被中优先级任务抢夺CPU,最终导致中优先级任务比高优先级任务先运行,也就是优先级翻转而互斥信号量就可以将这个影响降到最低,当高优先级任务发现需要信号量被低级信号量占用需要等待时,就将低优先级任务变成和自己同级优先级,就不至于在等待的过程中被中优先级抢夺CPU。

osSemaphore 信息量

image-20230917182342554

add后默认添加

image-20230917183421678

image-20230917183437848

if(osSemaphoreWait(myBinarySem01Handle, osWaitForever) == osOK)
{
	printf("get Binary\n");
}


osSemaphoreRelease(myBinarySem01Handle);

osMutex 互斥量

image-20230917184012473

image-20230917184041624

if(osSemaphoreRelease(myCountingSem01Handle) == osOK)
{
	int count = osSemaphoreGetCount(myCountingSem01Handle);
	printf("release Counting %d\n", count);
}


if(osSemaphoreWait(myCountingSem01Handle, osWaitForever) == osOK)
{
			
}

osMutex 递归

image-20230917204101602

if(osMutexWait(myMutex01Handle, osWaitForever) == osOK)
{
	printf("get Mutex\n");
	osMutexRelease(myMutex01Handle);
}


osMutexRelease(myMutex01Handle);	

标签:osOK,优先级,信号量,互斥,任务,printf,20
From: https://www.cnblogs.com/mzx233/p/17714297.html

相关文章

  • 3步体验在DAYU200开发板上完成OpenHarmony对接华为云IoT
    本文分享自华为云社区《DAYU200+OpenHarmony3.1.1对接华为云IOT【华为云IoT+鸿蒙】》,作者:DS小龙哥。一、前言OpenHarmony3.1.1是一个开源的智能终端操作系统,主要用于智能家居、智能手机、平板电脑、智能穿戴设备等智能终端设备。是一个分布式操作系统,支持多种硬件平台和多种编程......
  • BD202301 公园
    BD202301公园T和F走到一个汇合点一起走到N设汇合点为X则要TX和FX和XN的最短距离BFST、F、N到每个点的最短距离遍历每一个点去寻找X取答案最小值ans=min(ans,TX*te+FX*fe+XN*(te+fe-s))#include<bits/stdc++.h>usingnamespacestd;usingll=long......
  • [BCB]E2089 Identifier 'ReadPragram' cannot have a type qualifier
    这些天一直在改程序,今天突然冒出来如下错误:[C++Error]Unit1.cpp(4114):E2089Identifier'ReadPragram'cannothaveatypequalifier[C++Error]Unit1.cpp(6751):E2089Identifier'Button1Click'cannothaveatypequalifier[C++Error]Unit1.cpp(8593):E2139D......
  • Learn Git in 30 days——第 20 天:修正 commit 过的版本历史记录 Part 2
    写的非常好的一个Git系列文章,强烈推荐原文链接:https://github.com/doggy8088/Learn-Git-in-30-days/tree/master/zh-cn在版本控制过程中,还有个常见的状況,那就是当执行了多个版本之后,才发现前面有几个版本改错了,例如你不小心把测试中的代码也给commit进去,导致目前这个版本发......
  • 【漏洞复现】Openfire身份认证绕过漏洞到RCE(CVE-2023-32315)
    1、简介Openfire是一个基于XMPP协议的即时通讯服务器,也称之为即时通讯平台。在即时通讯中往往因为需要保存一些状态或者数据所以不能采用点对点通讯,而是需要搭建服务器来转发。Openfire的管理页面包含5个菜单选项,分别是服务器基本信息配置选项、用户组管理选项、会话管理选项、分......
  • 【2023-09-18】混乱出新序
    20:00巨大的建筑,总是一木一石叠起来的,我们何妨做这一木一石呢?我时常做些零碎,就是为此。                                                 ——XX周五下午,我收到了气象......
  • 【2023.09.17】拥抱自己的黑暗面
    主动说出自己不好的一面,是否是一件坏事呢?我思考这个问题最近有在尝试和别人说出自己不好的一面,我在寻找自己的缺点在哥们看来这再正常不过了,甚至觉得我太过坦诚但是在异性眼里看来,这样子的交流,是不好的或许在与异性交往的时候,大家只要戴上面具,只要展示出自己最好的一面就足够......
  • 2023年9月上海/杭州/广州/深圳DAMA-CDGA/CDGP数据治理认证报名
    DAMA认证为数据管理专业人士提供职业目标晋升规划,彰显了职业发展里程碑及发展阶梯定义,帮助数据管理从业人士获得企业数字化转型战略下的必备职业能力,促进开展工作实践应用及实际问题解决,形成企业所需的新数字经济下的核心职业竞争能力。DAMA是数据管理方面的认证,帮助数据从业者提升......
  • 2023年9月上海/杭州/深圳NPDP产品经理国际认证报名
    产品经理国际资格认证NPDP是新产品开发方面的认证,集理论、方法与实践为一体的全方位的知识体系,为公司组织层级进行规划、决策、执行提供良好的方法体系支撑。  【认证机构】 产品开发与管理协会(PDMA)成立于1979年,是全球范围内产品开发与管理专业人士最杰出的倡导者,协助个人、企业......
  • 2023年9月上海/杭州/深圳CSPM-3国标项目管理中级认证报名
    CSPM-3中级项目管理专业人员评价,是中国标准化协会(全国项目管理标准化技术委员会秘书处),面向社会开展项目管理专业人员能力的等级证书。旨在构建多层次从业人员培养培训体系,建立健全人才职业能力评价和激励机制的要求,培养我国项目管理领域复合型人才。  【证书含金量】 ·竞聘优先......