西电计算机操作系统课程设计pintos-pro3

西电计算机操作系统课程设计pintos-pro3

ID:8958307

大小:445.50 KB

页数:6页

时间:2018-04-13

西电计算机操作系统课程设计pintos-pro3_第1页
西电计算机操作系统课程设计pintos-pro3_第2页
西电计算机操作系统课程设计pintos-pro3_第3页
西电计算机操作系统课程设计pintos-pro3_第4页
西电计算机操作系统课程设计pintos-pro3_第5页
资源描述:

《西电计算机操作系统课程设计pintos-pro3》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、西安电子科技大学操作系统课程设计(2016年度)实验报告实验名称:Priority-Scheduling--Task2班级:姓名:学号:一、实验内容解决优先级反转的问题,在高优先级和低优先级之间竞争锁的问题。二、分析及设计使用多重优先级捐赠,解决优先级反转的问题。1、一个线程获得锁,如果获得这个锁的线程比自己低就提高它的优先级,如果这个锁也是被锁着,那就递归捐赠优先级,在线程释放掉锁之后,恢复未捐赠的优先级。2、在释放掉锁的时候,若优先级改变可以发生抢占。3、将信号量的等待队列实现为优先队列。4、将condition的等待队列实现为优先队列。5、一个线程被多

2、个线程捐赠,保持当前优先级为捐赠优先级中最大值。6、在对一个线程设置优先级时,如果处于被捐赠状态,对original_priority进行设置,如果设置的优先级大于当前的优先级,改变当前的优先级,否则在捐赠完成时恢复original_priority。7、在释放锁对一个锁优先级有改变的时候应考虑其余被捐赠优先级和当前优先级。三、详细实现1、修改thread数据结构(thread.h)2、在lock结构体中添加成员(synch.h)3、修改lock_acquire函数(synch.c)4、thread_hold_the_lock()函数的实现5、thread_

3、donate_priority()函数的实现6、锁队列排序函数lock_cmp_priority实现7、在lock_release函数加入以下语句8、thread_remove_lock实现9、thread_update_priority函数实现处理当前线程的优先级10、在init_thread中加入初始化11、修改thread_set_priority12、把condition的队列改成优先级队列,修改cond_signal函数13、比较函数的实现14、把信号量的等待队列实现为优先级队列,修改sema_up15、修改sema_down四、实验结果实现结果如

4、图,priority全部完成五、心得体会在设计优先级捐赠这个任务的过程中,查过很多资料,发现虽然实现过程比较复杂,但是如果理解了操作系统的处理调度的解决优先级捐赠的具体方法,那么就是关于代码的实现的问题,所以在修改过程中也碰到很多的问题,很多细节方面的确是感觉考虑的不是很全面,想法还是很简单,所以在查找资料对比后,才完成本次实验。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。