操作系统课程设计报告优先级捐赠Priority-Scheduling-Task-2_第1页
操作系统课程设计报告优先级捐赠Priority-Scheduling-Task-2_第2页
操作系统课程设计报告优先级捐赠Priority-Scheduling-Task-2_第3页
操作系统课程设计报告优先级捐赠Priority-Scheduling-Task-2_第4页
操作系统课程设计报告优先级捐赠Priority-Scheduling-Task-2_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

西安电子科技大学操作系统课程设计(2016年度)实验报告实验名称:Priority-Scheduling-Task2班级:1403018姓名:张可心学号/p>

一、实验内容操作系统中存在优先级反转问题——当一个高优先级线程通过信号量机制访问共享资源时,该信号量已被一低优先级任务占有,而这个低优先级任务在访问共享资源时,可能又被其他一些中等优先级任务抢先,因此造成高优先级任务被许多低优先级任务阻塞,实时性难以保证。我们的任务是:解决由锁(Lock)造成的优先级反转问题,解决策略是优先级捐赠。二、分析及设计优先级继承(Priorityinheritance)简单捐赠如图所示:简单捐赠三个线程的执行顺序是:H—>M—>L。执行过程如下:首先H,M等待时间发生,处于挂起状态,L运行,持有锁A,M等待的时间发生,就绪,抢占CPU;H等待的时间发生,就绪,抢占CPU,并等待锁A;由于A已被L获得,H挂起,并将优先级捐赠给L,L的优先级提升,开始运行,并释放所A,同时恢复原始优先级,H被唤醒,运行,然后M运行,L运行。递归捐赠首先在文件thread.h中的structthread的结构体中添加三个变量在文件thread.h中添加结构体structdthread然后在文件thread.c的init_thread()函数中添加初始化代码4、在thread_set_priority()函数中添加代码在synch.c文件的lock_acquire()函数中添加代码然后在lock_release()函数中添加代码添加中有一个thread_prisort()函数,定义在thread.c文件中四、实验结果在修改完成后,调用makecheck命令对../threads子目录进行任务检查,结果满足题目要求。五、心得体会本次实验内容为优先级反转问题,我采用了课设指导中要求的优先级继承算法(即优先级捐赠算法)。在实验过程中,遇到了很多课堂上没有提到过的问题,解决后感到获益匪浅。参考文献[1

温馨提示

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

评论

0/150

提交评论