下载此文档

实验6时间片轮转调度.docx


文档分类:论文 | 页数:约6页 举报非法文档有奖
1/6
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/6 下载此文档
文档列表 文档介绍
华北电力大学
实验报告
|
|
实验名称时间片轮转调度
课程名称计算机操作系统
专业班级:软件1002 学生姓名:赵策
学 号:201009020228 成 绩:
指导教师:宋亚奇 实验日期:
实验目的及要求
调试EOd函数的第395行添加一个断点。
3) 按F5继续执行,激活虚拟机窗口,可看到第0个新建的线程正在执行。
4) 在虚拟机窗口中按下一次空格键,EOS会在之前添加的断点处中断。
5) 在“监视”窗口中查看就绪位图的值为1000000000000000100000001,说明此时在 优先级为24的就绪队列中存在就绪线程。在“监视”窗口中添加表达式 “ListGetCount(&PspReadyListHeads[24]) ”,其值为 1,说明优先级为 24 的就绪队列 中只有一个就绪线程。扫描就绪位图后获得的最高优先级的值
HighestPriority也就应 该是24。
6) 按F10单步调试一次,执行的语句会将当前正在执行的第0个新建的线程,放入 优先级为8的就绪队列的队首。“监视”窗口中显示的优先级为8的就绪队列中的线程 数量就会增加1,变为20。
7) 继续按F10单步调试,直到在第444行中断执行,注意观察线程调度执行的每一 个步骤。此时,正在执行的第0个新建的线程已经进入了 “就绪”状态,让出了 CPU。 线程调度程序接下来的工作就是选择优先级最高的非空就绪队列的队首线程作为当前运 行线程,也就是让优先级为24的线程在CPU上执行。
8) 按F10单步调试一次,当前线程PspCurrentThread指向了优先级为24的线程。 可以在"快速监视”窗口中查看表达式“*PspCurrentThread”的值,注意线程控制块中 StartAddr 域的值为 IopConsoleDispatchThread 函数(在文件 io/ 中定义), 说明这个优先级为24的线程是控制台派遣线程。
9) 继续按F10单步调试,直到在PspSelectNextThread函数返回前(第465行)中 断执行,注意观察线程调度执行的每一个步骤。此时,优先级为24的线程已经进入了“运 行”状态,在中断返回后,就可以开始执行了。在“监视”窗口中,就绪位图的值变为 100000001,优先级为24的就绪队列中线程的数量变为0,就绪位图和就绪队列都是在 刚刚被调用过的PspUnreadyThread函数内更新的。
10) 删除所有断点后结束调试。

a) 要求:修改ps/(第337行),在其中实现时 间片轮转调度算法。
b) 测试:
1) 代码修改完毕后,按F7生成EOS内核项目。
2) 按F5启动调试。
3) 在EOS控制台中输入命令“rr”后按回车。应能看到20个线程轮流执行的效果.
设计代码
VOID
PspRoundRobin(
VOID
)
(
if(NULL!二PspCurrentThread&&Running==PspCurrentThread->State)
( PspCurrentThread->RemainderTicks--;
if (0 == PspCurrent

实验6时间片轮转调度 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数6
  • 收藏数0 收藏
  • 顶次数0
  • 上传人maritime_4
  • 文件大小209 KB
  • 时间2022-06-21
最近更新