- 15
- 0
- 约1.4千字
- 约 14页
- 2016-11-25 发布于湖北
- 举报
单击此处编辑母版标题样式 嵌入式操作系统实验 实验3 天花板协议 什么是优先级反转 优先级反转解决办法 本实验内容 优先级反转 高优先级任务需要等待低优先级任务释放资源,而低优先级任务又正在等待中等优先级任务,这种现象就被称为优先级反转 。 嵌入式操作系统实验 实验3 天花板协议 什么是优先级反转 优先级反转解决办法 本实验内容 优先级反转解决办法 优先级继承协议(priority inheritance protocol) 优先级天花板协议(priority ceiling protocol) 优先级继承协议基本思想 当一个任务阻塞了一个或多个高优先级任务时,该任务将不使用其原来的优先级,而使用被该任务所阻塞的所有任务的最高优先级作为其执行临界区的优先级。 当该任务退出临界区时,又恢复到其最初的优先级。 优先级天花板协议 每个信号量有个优先级天花板,应大于所有使用该信号量的任务的最高优先级。 任务A申请共享资源S S是否被占用 任务A获得共享资源S S被任务B占用,任务A被挂起 Priority(B)Priority( A)? 提升B的优先级到天花板 B释放资源s并恢复原来的优先级 等待队列中优先级最高的任务获得s ...... ...... 任务A继续执行 ...... N Y N Y 优先级天花板的主要思想 用互斥型信号量可以解决 OSMutexCreat() OSMutexDel() OSMutexPend() OSMutexPost() OSMutexAccept() OSMutexQuery() 嵌入式操作系统实验 实验3 天花板协议 什么是优先级反转 优先级反转解决办法 本实验内容 本实验内容 参看实验指导书的实验三 创建三个任务的优先级为12、11、10, TASK0 TASK1 TASK2。 3个应用任务竞争同一互斥资源 mutex; 创建mutex时,同时定义它的优先级天花板为8; void Task (void *pdata) { …… for (;;) { /* 无限循环 */ …… OSMutexPend(mutex, 0, err); /*申请资源*/ OSTimeDlyHMSM(0, 0, 0, 200); /*保持资源*/ OSMutexPost(mutex); /*释放资源*/ OSTimeDlyHMSM(0, 0, 0, (3-id)*150); /*延时*/ …… } } 三个任务使用同样的代码 嵌入式操作系统实验 实验1 多任务的基本管理 什么是优先级反转 本实验内容 实验要求 实验要求 调试代码,运行结果截图 通过分析程序结果,说明什么时候抬升了天花板。 利用互斥信号量改写实验2的程序,将改写代码以及运行结果截图写在实验报告扩展部分 * * * * * 单击此处编辑母版标题样式 * * * * *
原创力文档

文档评论(0)