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

德州市建设小学网站公司做网站的优势

德州市建设小学网站,公司做网站的优势,建设网站怎样通过流量赚钱,平原县网站建设1.使用互斥信号量解决信号量导致的优先级反转#xff0c; 2.使用递归互斥信号量解决互斥信号量导致的死锁。 3.高优先级主函数中多次使用同一信号量的使用#xff0c;使用递归互斥信号量#xff0c;但要注意每个信号量的使用要对应一个释放 优先级翻转问题 优先级翻转功能需… 1.使用互斥信号量解决信号量导致的优先级反转 2.使用递归互斥信号量解决互斥信号量导致的死锁。 3.高优先级主函数中多次使用同一信号量的使用使用递归互斥信号量但要注意每个信号量的使用要对应一个释放 优先级翻转问题 优先级翻转功能需求 优先级翻转功能实现 一。实验优先级翻转问题 1.优先级翻转的解释 1有三个任务一个任务L优先级最低一个任务M优先级为中间一个任务H优先级为最高。 2刚开始任务L在运行并且L占用信号量 3H任务突然开始运行抢占L任务但是由于信号量由L占有所以进入堵塞状态CPU继续运行L任务。 4M任务突然开始运行抢占M任务M任务不需要信号量所以需要等运行完毕CPU才会分配给L。 5L不需要占用临界资源后释放信号量。H任务由堵塞态变为就绪态抢占L运行H。 2.功能需求 - 新建三个任务优先级分别为中高低 - 新建二值信号量用于模拟优先级翻转 - 低优先级任务获取信号量后被中优先级打断中优先级任务执行时间较长因为低优先级任务还未释放信号量高优先级任务就无法获取信号量继续 实现方法 1.低优先级 1获取二值信号量2循环释放CPU使用权3释放二值信号量4系统延时500ms 2.高优先级业务流程 1获取二值信号量2释放二值信号量3系统延迟500ms APItaskYIELD 3.cubemx创建工程 1创建一个高优先级的任务 2建一个二值信号量 3.步骤 1低优先级 使用二值信号量与高优先级使用的二值信号量是同一个。与高优先级相比多了一个释放CPU权限的函数taskYIELD。 printf(Low Task Take sem\n);//二值信号量的使用if(xSemaphoreTake(PrBinarySemHandle,portMAX_DELAY)pdPASS){printf(Low Task is Running\n);}for(i0;i2000000;i){//释放cputaskYIELD();}//二值信号量的释放printf(Low Task Give Sem\n);xSemaphoreGive(PrBinarySemHandle);osDelay(500); 2中优先级 不做特殊处理就是直接打印 3高优先级 与低优先级一起使用一个二值信号量 printf(High Task Take sem\n);if(xSemaphoreTake(PrBinarySemHandle,portMAX_DELAY)pdPASS){printf(High Task is running\n);}xSemaphoreGive(PrBinarySemHandle);printf(High Task Give Sem\n);osDelay(500); 结果 二。互斥信号量概念及其应用《解决上述出现的问题优先级反转问题》 互斥信号量定义 FreeRTOS互斥信号量介绍 FreeRTOS互斥信号量工作原理 1.互斥信号量的定义 短暂提升低优先级的优先级让他优先完成。  任务都有一个互斥锁 2.FreeRTOS互斥信号量介绍 Mutex包括Mutex与RecursiveMutex递归信号量解决普通信号量的死锁问题 3.FreeRTOS互斥信号量工作原理 短暂提升低优先级的优先级让他优先完成。  3.递归互斥信号量解决死锁问题 多次使用foo函数会导致死锁信号量重复使用任务把自己挂起。 解决方法递归互斥信号量 三。实验互斥信号量函数应用 1.功能需求 1、修改优先级翻转实验优化代码 2、使用互斥信号量解决优先级翻转问题 2.API 1xSemaphoreCreateMutex()创建互斥信号量 2xSemaphoreGetMutexHolder()获取当前信号量任务句柄 3.cubemx创建工程 1使能互斥信号量 2创建互斥信号量 3.步骤 把优先级反转的二值信号量改为互斥信号量就可以解决优先级反转的问题 替代地方         1低优先级信号量使用与释放处         2高优先级信号量使用与释放处 1低优先级二值信号量句柄的使用与释放修改为互斥信号量的使用与释放。 修改为 2高优先级一样 结果大量时间用来运行高优先级的任务正确。  四。实验递归互斥信号量函数应用 1.死锁现象 上述的互斥信号量如果在同一个任务的主函数中运行两次互斥信号量的使用会导致任务把自身挂起即死锁。         为了解决死锁的问题使用递归互斥信号量。 2.API 1xSemaphoreCreateRecursiveMutex() 2 xSemaphoreTakeRecursive() 3xSemaphoreGiveRecursive() 3.实验验证 需求 1、模拟死锁现象 2、使用递归互斥信号量解决死锁问题 4.cubemx创建工程 1递归互斥信号量的使能 2创建递归互斥信号量 5.步骤 1.使用上述的API接口创建与释放的递归信号量接口FREERTOS的参考手册有详细讲解函数的使用不过是英文 2.使用自己创建的递归信号量 1创建出来的递归互斥信号量 2高优先级如果直接使用互斥信号量这样使用两次会导致死锁使用递归互斥信号量就会解决此类问题。 //递归互斥信号量改为自己设置的信号量printf(High Task Take sem1\n);if(xSemaphoreTakeRecursive(myRecursiveMutexHandle,portMAX_DELAY)pdPASS){printf(High Task is running1\n);}printf(High Task Take sem2\n);if(xSemaphoreTakeRecursive(myRecursiveMutexHandle,portMAX_DELAY)pdPASS){printf(High Task is running2\n);}xSemaphoreGiveRecursive(myRecursiveMutexHandle);printf(High Task Give Sem1\n);xSemaphoreGiveRecursive(myRecursiveMutexHandle);printf(High Task Give Sem2\n);osDelay(500); 3低优先级注意使用与高优先级一样的信号量 结果高优先级占用CPU比率大正确 五。互斥信号量实现原理
http://wiki.neutronadmin.com/news/286403/

相关文章:

  • 店铺的网站怎么做wordpress 登录表单
  • 盐城公司网站建设扬州住房城乡建设局网站
  • 手机怎么访问微网站工厂外包小件加工
  • 企业北京响应式网站制作wordpress文章转发
  • 网站没收录可以做排名眉山市建设局网站
  • 晋江网站建设旅行社网站策划
  • 免费在线网站建设网站模板备份
  • 芜湖网站建设优化入侵网站怎么做弹出
  • 高碑店建设局网站小辣椒网站开发
  • 小昆山网站建设网站建设php带数据库模板
  • 做网站的关键技术丽水网站seo
  • 小白怎么做网站搬家教程免费推广公司
  • 网站开发免费视频播放器中国房地产行情分析
  • 旅游网站建设计划书网站游戏网站开发设计菲律宾
  • 网站建设小说北京网站建设出名 乐云践新
  • 自己的电脑做网站可以吗公司英文
  • 做设计用图片的网站百度收录接口
  • 济宁住房和城乡建设局网站首页马达加工东莞网站建设
  • 东莞网站制作购买wordpress升级php7.1
  • 策划会展网站建设免费看电视剧的网站2021
  • 江苏建设网站公司积极推进网站建设
  • 新网站的宣传推广wordpress cms列表页
  • 济南网站建设维护公司wordpress手机管理软件
  • 做互联网小程序 和网站有没有前景百度资源搜索引擎
  • 枣庄建设路小学网站别人怎么看见我做的网站
  • 佛山网站推广优化公司公司变更名称
  • 响应式网站开发需要的条件何炅做的网站广告
  • wordpress cpu100%北京网站优化策略
  • 天门市基础建设网站吉林平安建设网站
  • 购物网站建设精英有没有帮忙做网站