西电计算机操作系统课程设计pintospro3.docx

西电计算机操作系统课程设计pintospro3.docx

西安电子科技大学 操作系统课程设计 (2016年度) 实 验 报 告 告 TOC \o 1-5 \h \z 实验名称: Priority-Scheduling--Task 2 班 级: 姓 名: 学 号: 、实验内容 解决优先级反转的问题,在高优先级和低优先级之间竞争锁的问题。 二、 分析及设计 使用多重优先级捐赠,解决优先级反转的问题。 1、 一个线程获得锁,如果获得这个锁的线程比自己低就提高它的优先级,如果这个锁也是 被锁着,那就递归捐赠优先级,在线程释放掉锁之后,恢复未捐赠的优先级。 2、 在释放掉锁的时候,若优先级改变可以发生抢占。 3、 将信号量的等待队列实现为优先队列。 4、 将condition的等待队列实现为优先队列。 5、 一个线程被多个线程捐赠,保持当前优先级为捐赠优先级中最大值。 6、 在对一个线程设置优先级时,如果处于被捐赠状态,对 original_priority 进行设置,如 果设置的优先级大于当前的优先级,改变当前的优先级,否则在捐赠完成时恢复 original_priority 。 7、 在释放锁对一个锁优先级有改变的时候应考虑其余被捐赠优先级和当前优先级。 三、 详细实现 1、修改thread数据结构(thread.h ) int base_priority: int base_priority: H Base

文档评论(0)

1亿VIP精品文档

相关文档