清华OS程序员

清华大学操作系统课程 ucore Lab6 调度器 实验报告

2019-03-21  本文已影响0人  AmadeusChan

操作系统 Lab6 调度器 实验报告

课程信息所在网址:https://github.com/chyyuu/os_course_info

实验目的

实验内容

基本练习

练习0:填写已有实验

在本练习中将LAB1/2/3/4/5的实验内容移植到了LAB6的实验框架内,由于手动进行内容移植比较烦杂,因此考虑使用diff和patch工具进行自动化的移植,具体使用的命令如下所示:(对于patch工具进行合并的时候产生冲突的少部分内容,则使用*.rej, *.orig文件来手动解决冲突问题)

diff -r -u -P lab5_origin lab5 > lab5.patch
cd lab6
patch -p1 -u < ../lab5.patch

练习1:使用 Round Robin 调度算法(不需要编码)

完成练习0后,建议大家比较一下(可用kdiff3等文件比较软件)个人完成的lab5和练习0完成后的刚修改的lab6之间的区别,分析了解lab6采用RR调度算法后的执行过程。

分析

问题回答

练习2:实现 Stride Scheduling 调度算法(需要编码)

首先需要换掉RR调度器的实现,即用default_sched_stride_c覆盖default_sched.c。然后根据 此文件和后续文档对Stride度器的相关描述,完成Stride调度算法的实现。

设计实现

问题回答

实验结果

最终的实验结果符合预期,并且能够通过make grade脚本的检查,如下图所示:

result1.png result2.png

参考答案分析

接下对参考答案的实现与本实验中的实现进行比较分析:

实验中涉及的知识点列举

实验中未涉及的知识点列举

在本次实验中未涉及到的知识点列举如下:

实验代码

https://github.com/AmadeusChan/ucore_os_lab/tree/master/lab6

参考文献

上一篇 下一篇

猜你喜欢

热点阅读