西电计算机操作系统课程设计pintos-pro3.doc_第1页
西电计算机操作系统课程设计pintos-pro3.doc_第2页
西电计算机操作系统课程设计pintos-pro3.doc_第3页
西电计算机操作系统课程设计pintos-pro3.doc_第4页
西电计算机操作系统课程设计pintos-pro3.doc_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

西安电子科技大学操作系统课程设计(2016年度)实验报告实验名称: Priority-Scheduling-Task 2 班 级: 姓 名: 学 号: 一、实验内容解决优先级反转的问题,在高优先级和低优先级之间竞争锁的问题。二、分析及设计使用多重优先级捐赠,解决优先级反转的问题。1、一个线程获得锁,如果获得这个锁的线程比自己低就提高它的优先级,如果这个锁也是被锁着,那就递归捐赠优先级,在线程释放掉锁之后,恢复未捐赠的优先级。2、在释放掉锁的时候,若优先级改变可以发生抢占。3、将信号量的等待队列实现为优先队列。4、将condition的等待队列实现为优先队列。5、一个线程被多个线程捐赠,保持当前优先级为捐赠优先级中最大值。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_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四、实验结果实现结果如图,priority全部完成五、心得体会在设计优先级捐赠这个任务的过程中,查过很多资料,发现虽然实现过程比较复杂,但是如果理解了操作系统的处理调度的解决优先级捐赠的具体方法,那么就是关于代码的实现的问题,所以在修改过程中也碰到很多

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论