已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Ucos优先级位图算法详解By lynn /liuyunjay661. ucos任务相关简介在实时操作系统中,由于系统不可能太庞大,因此任务数量也不会太大,ucos中共有64个优先级(063级,数字越小优先级越高)。因为是实时系统,所以对应每个任务就分配一个优先级。2.二进制和十进制的转换数学基础这里先介绍一个数学知识,二进制如何变为十进制,比如 十进制26,其8位二进制表示为:00011010。当十进制为063时,前两位无作用,所以只看后6位,011 010.怎么计算成十进制呢?很简答:如下所示这个过程就是,把这个十进制数,分为两个部分,高三位和低三位,这个十进制数的大小就等于高三位的十进制*8+第三位的十进制数。高三位的011=3 ,低三位的010=2.所以26=3*8+2.=(011)3; (1) OSRdyTblprio3 |= OSMapTblprio&0x07; (2)代码解释:prio3是获取优先级的高3位,prio&0x07是获取优先级的低3位。然后在通过OSMapTbl的映射分别获得了就绪表中的行和就绪表中的列,然后查询就绪算法:y = OSUnMapTblOSRdyGrp;x = OSUnMapTblOSRdyTbly;prio = (y 3= OSRdyTbl1=0000 1000 ,通过这句代码就往就绪表第一行(从OSRdyTbl1看到)第3个位置(从右往左看0000 1000,第一个为1的位,0开始。)写入1,表明该任务就绪了。这样就完成了 优先级的标定4 多个任务参与下 怎么选定最高的优先级任务此时又要加入一个表格:优先级判定表OSUnMapTbl,这个表的作用是为了节省时间,这样查表的话,耗的时间是一定的,很好的满足了实时性。下面来分析这个表的作用。1.先看最旁边的注释,说明的是该数组中对应的位置。2.解释 这个数组中内容,这些数字怎么来的。 举例:0x53 如上图所示的位置,为什么是0呢?我们把0x53变成二进制来看:0101 0011,从右往左看,第一个出现1的位 就是0位所以为0.为什么是从右往左看呢?因为高优先级的数字低,你应该懂的。例子 :有4个任务 ,优先级分别为6,10,11,17.。把上面就绪任务算法再贴一遍:前面2位不管。6对应二进制:000 110 高3位:000=0 通过OSMapTbl映射后,OSMapTblprio3= OSMapTbl0=0000 0001低3位:110=6,通过OSMapTbl映射后OSRdyTblprio3= OSRdyTbl0=0100 0000 10对应二进制:001 010 高3位:001=1 通过OSMapTbl映射后,OSMapTblprio3= OSMapTbl1=0000 0010.低3位:010=2,通过OSMapTbl映射后OSRdyTblprio3= OSRdyTbl1=0000 0100 11对应二进制:001 011 高3位:001=1 通过OSMapTbl映射后,OSMapTblprio3= OSMapTbl1=0000 0010.低3位:011=3,通过OSMapTbl映射后OSRdyTblprio3= OSRdyTbl1=0000 1000 17对应二进制:010 001 高3位:010=2 通过OSMapTbl映射后,OSMapTblprio3= OSMapTbl2=0000 0100.低3位:001=1,通过OSMapTbl映射后OSRdyTblprio3= OSRdyTbl2=0000 0010通过就绪任务算法:OSRdyGrp |= OSMapTblprio3; (1) OSRdyTblprio3 |= OSMapTblprio&0x07; (2)最后OSRdyGrp的值就是将所有的OSMapTblprio3进行位或运算:OSRdyGrp=0100 0000|0000 0010| 0000 0010|0000 0100= 0000 0111=0x07OSRdyTbl0=0100 0000OSRdyTbl1=0000 0100 |0000 1000=0000 1100 (相同的列 要或运算)OSRdyTbl2=0000 0010然后在查找优先级判定表OSUnMapTbl OSRdyGrp=0x07Y=OSUnMapTbl0x07=0.说明是最高优先级在第0组。OSRdyTbl0=0100 0000=0x40X= OSUnMapTbl0x40=6最高优先级为:prio= y*8+x=6至此,最高优先级就选出来了。然后调度此任务运行就是了,另外,删除任务就是将对应就绪列表位的置的1清零就是。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 19691-2026地理标志产品质量要求狗牯脑茶
- T/ZJSEE 0027-2024氢储能电站运行维护安全导则
- T/ISEAA 009-2024信息安全技术 网络安全等级保护区块链安全测评扩展要求
- T/CMEAS 081-2026医疗机构药品集中带量采购管理规范
- T/CASME 2090-2025陆上风力发电场土地利用效率评估规范
- T/CSHE 0004-2022水库温室气体净排放量评估技术导则
- GB/T 19866-2026焊接工艺规程及评定的一般原则
- AI在华文教育中的应用
- PHP企业面试笔试真题(含详细答案解析)
- 制鞋车间胶粘剂防毒通风方案
- GB/T 19866-2026焊接工艺规程及评定的一般原则
- GB/T 48666-2026电子病历版式文档技术要求
- 2026年体育用品设备出租行业市场深度调研报告及未来五至十年技术路径与产业化前景
- 医学生基础医学重症肌无力查房课件
- 小小科学家《生物》模拟试卷(附答案)
- 2026-2031年中国降钙素行业市场调查研究及发展前景预测报告
- 计量管理基础知识课件
- 人教版九年级上册数学《习题29.2》教学课件(新教材)
- 消能减震阻尼器安装施工方案及技术措施
- 3.4 G71指令讲解及应用
- 集中供电智能应急照明疏散指示系统施工方案
评论
0/150
提交评论