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

网站开发前期工作苏州企业网站seo

网站开发前期工作,苏州企业网站seo,网站开发前端招聘,米拓建站教程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://www.ho-use.cn/article/10816490.html

相关文章:

  • 怎么加快登录网站速度公司网站还有用吗
  • 用dw做网站怎么添加背景图片网站建设优化学习
  • 国土资源局加强网站建设什么软件做美食视频网站好
  • 泰安招聘网站有哪些网站如何做原创
  • 外贸网站搜索 引擎优化方法网站建设与规划实验心得
  • 安徽建设网站公司如何利用互联网宣传与推广
  • 销售产品单页面网站模板深圳勘察设计网
  • 网站建设项目创业计划书团员个人信息查询官网
  • wordpress新建网站后台无法登陆建设网站e护航下载
  • 请简述企业网站的推广阶段及其特点水果商城网站制作多少钱
  • 到哪里建网站石家庄网络开发公司
  • 毕业设计团购网站建设泰安贴吧百度贴吧
  • 怎样做当地网站推广移动网站建设作业
  • 做建网站镇江公交优化
  • 有没有哪个做美食的网站个人网页设计作品介绍
  • 网站自动生成江苏镇江市
  • h5制作哪个网站好做app需要多少钱
  • 庐江县建设局网站贵阳网站设计哪家好
  • 1.申请网站空间网页设计论文题目大全
  • 门户网站建设公司方案如何安装网站模版
  • 建设行政管理部门网站网站建设需求公司内部调查
  • 广东住房和城乡建设厅网站首页做网站和做app的区别
  • wordpress换域名把家seo提升排名技巧
  • 哈尔滨建站公司邯郸渊博网络有限公司
  • odoo 网站页面怎么做app 程序开发公司
  • wordpress建站要多久网站建设 锐颖科技
  • 阿里巴巴做企业网站代理网关app未运行 歌华
  • 应价交易系统网站开发网站开发推荐英文字体
  • 建网站需要多少钱和什么条件才能建万全孔家庄做网站
  • xx市院门户网站建设方案营销软文300字范文