FreeRTOS递归互斥信号量(含IAR和MDK).rar

时间:2022-06-05 09:32:59
【文件属性】:

文件名称:FreeRTOS递归互斥信号量(含IAR和MDK).rar

文件大小:3.3MB

文件格式:RAR

更新时间:2022-06-05 09:32:59

FreeRTOS 10.0.1 递归互斥信号量

任务 Task1 运行的过程需要调用函数 printf,发现任务 Task3 正在调用,任务 Task1 会被挂起,等待 Task3 释放函数 printf。 在调度器的作用下,任务 Task3 得到运行,Task3 运行的过程中,由于任务 Task2 就绪,抢占了 Task3的运行。 优先级翻转问题 就出在这里了,从任务执行的现象上看,任务 Task1 需要等待 Task2 执行完毕才有机会得到执行,这个与抢占式调度正好反了,正常情 况下应该是高优先级任务抢占低优先级任务的执行,这里成了高优先级任务 Task1 等待低优先级任务 Task2 完成。 所以这种情况被称之为 优先级翻转问题。 任务 Task2 执行完毕后,任务 Task3 恢复执行,Task3 释放互斥资源后,任务 Task1 得到互斥资源,从而可以继续执行。上面就是一 个产生优先级翻转问题的现象。


网友评论