update labX finish info

This commit is contained in:
yuchen 2015-04-24 18:14:53 +08:00
parent 6684504c82
commit 3dce81e73a
9 changed files with 89 additions and 6 deletions

View File

@ -1,17 +1,21 @@
challenge1: 实现内核态与用户态之间的来回切换
===================================================
状态已完成在branch master中的labcodes_answer/lab1_result
完成人:王乃铮
challenge2: 用敲键盘实现用户模式内核模式切换
===================================================
状态已完成在branch lab1_X中的labcodes_answer/lab1_result
完成人:尹治宏 (yinzhihong12@msn.com)
challenge3: 可以在真实x86机器上用grub bootloader引导ucore kernel
===================================================
状态:已完成 在branch lab1_X中的labcodes_answer/lab1_result
完成人:王欢 (mikewang.exe@gmail.com)
challenge4: 可以在真实x86机器上通过u盘启动用grub bootloader引导ucore kernel
===================================================
状态:已完成 在branch lab1_X中的labcodes_answer/lab1_result。说明文档在
https://github.com/chyyuu/ucore_lab/blob/master/related_info/lab1/lab1-boot-with-grub2-in-udisk.md
完成人:陈渝(yuchen@tsinghua.edu.cn)

View File

@ -1,22 +1,28 @@
challenge1: buddy system伙伴系统的page分配算法
===================================================
提示参考“http://coolshell.cn/articles/10427.html
状态:
基本完成 (有bug)
https://github.com/chyyuu/ucore_lab/tree/lab2_X/labcodes_answer/lab2_result
请阅读设计报告
labx2_buddysystem.md
完成人:
黄杰 2012011272 huangjie_cpp@163.com
袁源 2012011294 thuyuany12@163.com
杜鹃 2012011354 duj09225@gmail.com
challenge2: slub分配算法任意大小的内存单元
===================================================
提示:参考 http://www.ibm.com/developerworks/cn/linux/l-cn-slub/
状态:未完成
完成人:
challenge3: 设计一种更加简单的方法,可以不用多次切换段表,修改页表内容等,就完成同样的段页式机制
===================================================
提示xv6?
状态:未完成
完成人:

View File

@ -1,15 +1,53 @@
challenge1:实现识别dirty bit的 extended clock页替换算法
状态:未完成
===================================================
状态:完成
lab3x-extend-clock-readme.md为报告里面简要描述了设计思路解释了测试用例。主要增加了extend_clock_swap.c这个类并修改了swap.c等原有的程序。
https://github.com/chyyuu/ucore_lab/tree/lab3_X/labcodes_answer/lab3_result
完成人:
黄杰 2012011272 huangjie_cpp@163.com
袁源 2012011294 thuyuany12@163.com
杜鹃 2012011354 duj09225@gmail.com
challenge2:实现工作集页替换算法
状态:未完成
===================================================
提示:
对于 工作集置换算法和缺页率置换算法,一个难点是如何精确记录页访问的时间先后顺序。我理解这是做不到的。
对于工作集置换算法,我的大致思路如下:工作集页面置换算法是全局页面置换算法。
有了工作集的定义并不意味着存在一种有效的方法能够在程序运行期间及时地计算出工作集。
作为替代,一种近似方法是基于执行时间片段统计工作集。
例如按照以前的方法我们定义工作集为前100万次内存访问所使用过的页面集合
那么现在就可以这样定义工作集即是过去100ms中的内存访问所用到的页面集合。
实际上,这样的模型很合适且更容易实现。每个进程只计算它自己的执行时间。
这里假定CPU会在访问某页后会置对应的页表项的Dirty位和Access位。时钟中断10ms产生一次。
如果一个进程在T时刻开始T+100ms的时刻使用了40ms CPU时间
对工作集而言它的时间就是40ms有大约4次中断。
一个进程从它开始执行到当前所实际使用的CPU时间总数通常称作当前实际运行时间。
通过这个近似的方法进程的工作集可以被称为在过去的40mst值实际运行时间中它所访问过的页面的集合。
问题0何时统计页是否在工作集
一定数量的时钟中断产生后,会进行统计。即会基于当前进程/线程的页表项,对页表项进行统计,
如果发现某些页表项的access bit设置为1则在全局的物理页管理的数据结构Page 结构需要扩展一下)中记录其访问时间(近似值)。
并吧access bit清零。这样就可以形成一个全局的物理页的工作集。
问题1何时开始进行工作集替换算法
(当系统内存小于一定下限 lower bound有一个内核线程会被激活
开始进行工作集置换算法查找的是Page 结构的全局页表。我觉得这样比随时把页换出去效率更高一些。
状态:未完成 有小组在做
完成人:
challenge3:实现缺页率页替换算法
===================================================
状态:未完成
完成人:
challenge4:实现LIRS页替换算法
===================================================
状态:未完成
完成人:

View File

@ -1,12 +1,20 @@
challenge1: 实现精简版内核线程管理与切换(分有中断和没中两种实现)
===================================================
要求:
(step1) 去掉页表的管理,中断,分配内存功能只保留段机制内核线程切换print功能。看看代码规模会小到什么程度。
(step2) 去掉页表的管理只保留段机制中断分配内存功能内核线程切换print功能。看看代码规模会小到什么程度。
状态:未完成
状态:基本完成
目前去掉了页表的管理和内存分配,需要分配的内存通过编译时就定义好的数组代替,没有考虑回收的问题。
但是进一步裁剪中断处理遇到了问题kdebug中包含了trap.h因为打印调试信息时需要trapframe结构。
https://github.com/chyyuu/ucore_lab/tree/lab4_X/labcodes_answer/lab4_result
完成人:
yhy13@mails.tsinghua.edu.cn
challenge2: 实现内核线程的按需分页demanding page机制
状态:未完成
===================================================
状态:未完成 有小组在询问,可能在做
完成人:

View File

@ -1,4 +1,5 @@
challenge1: 实现精简版用户进程管理与切换
===================================================
要求:
(step1) 去掉页表的管理分配内存功能只保留段机制中断内核线程切换用户进程切换print功能。看看代码规模会小到什么程度。
@ -6,9 +7,21 @@ challenge1: 实现精简版用户进程管理与切换
完成人:
challenge2: 实现用户进程的Copy on Write机制
状态:未完成
===================================================
状态:基本完成
完成了一种情况没有swap机制
output.cow是实现了COW机制的输出
output.norm是正常lab5的输出
这两份输出都添加了相应的注释,方便理解实现和验证的思路
https://github.com/chyyuu/ucore_lab/tree/lab5_X/labcodes_answer/lab5_result
完成人:
李天润 ltrthu@163.com
沈光耀 thusgy2012@gmail.com
challenge3: 实现用户线程,且内核无法“看到”用户线程(即需要在用户态完成线程切换和线程管理)
===================================================
状态:未完成
完成人:

View File

@ -1,19 +1,23 @@
challenge1: 参考Linux 的CFS实现简化的CFS调度算法(基于红黑树)
===================================================
状态:未完成
完成人:
challenge2 参考Linux2.6的O(1)调度器实现简化的O(1)调度算法
===================================================
状态:未完成
完成人:
challenge3: 实现面向Real-time系统的RM/EDF调度算法
===================================================
状态:未完成
完成人:
challenge4: 短作业优先(SJF)调度算法/高响应比优先调度算法
===================================================
状态:未完成
完成人:

View File

@ -1,8 +1,10 @@
challenge1: 实现内核级的进程/线程抢占机制
===================================================
状态:未完成
完成人:
challenge2: 参考Linux的RCU实现简化的RCU机制
===================================================
提示:
http://www.ibm.com/developerworks/cn/linux/l-rcu/
http://www.diybl.com/course/6_system/linux/Linuxjs/20081117/151814.html
@ -10,6 +12,7 @@ http://www.diybl.com/course/6_system/linux/Linuxjs/20081117/151814.html
完成人:
challenge3: 在内核中增加相应机制,能够探测死锁或破坏互斥现象
===================================================
状态:未完成
完成人:

View File

@ -1,8 +1,10 @@
challenge1 参考unix的pipe/fifo机制实现基于VFS接口的pipe/fifo机制
===================================================
状态:未完成
完成人:
challenge 支持现有文件系统之外的其他文件系统的读写
===================================================
状态:未完成
完成人:

View File

@ -1,24 +1,29 @@
challenge1:完善ucore lab smp实现扩展ticket lock机制参考linux的ticket lock实现能够在真实机器上把lab8跑起来并能看出出smp 调度和同步互斥的特点
===================================================
状态可基于田博的ucore lab smp当前实现完成大部分
完成人:
challenge2:改进并简化一个简化的CPU模拟器这个简化CPU的目的就是为了支持ucore OS的进一步简化把ucore lab8移植到此简化CPU上。
===================================================
状态已有一个简化的CPU模拟器ex一个简化的C子集编译器4c一个基于此C子集的简化的xv64c编译的xv6可以运行在ex上。ex,4c,xv6的源码都在2000行以内。
要求改进简化CPU模拟器ex使得它像一个稍微扩展一点的Y86修改C子集编译器4c,支持改进的ex把xv6改成lab1~lab8的code.体现lab1~lab8的特点。此项目比较有意思有一定的综合性给分也会偏多一些。
完成人:
challenge3:理解ucore lab基于ucore lab源码给ucore lab生成参考文档。
===================================================
状态:类似 http://pdos.csail.mit.edu/6.828/2011/xv6/xv6-rev6.pdf 和它自动生成方式
要求添加对于ucore lab的函数和重要数据结构的说明中文注释基于doxygen的格式能对函数进行分类比如memory::pmm....这样可以采用doxygen自动生成ucore lab参考文档。lab1lab8的很多注释内容应该可以复用。
完成人:
challenge4: porting ucore labs 在Intel galieo gen2开发板上(板子可到FIT楼3-124找助教要需要留下小组的个人信息)
===================================================
状态Intel galieo gen2开发板有详细的软硬件文档和linux软件且Intel galieo gen2开发板采用的是本质是intel pentium的intel Quark SoC X1000处理器。系统采用的是grub bootloader.
要求lab1~lab8可以在Intel galieo gen2开发板上跑起来。需要写出移植报告说明移植的过程等。
完成人:
challenge4: porting ucore labs 1~8在x86的笔记本电脑上,可以通过u盘启动并在grub bootloader上选择执行lab1lab8
===================================================
状态lab1已经完成了可以作为参考
要求lab1~lab8可以在x86的笔记本电脑上跑起来。需要写出移植报告说明移植的过程等。
完成人: