Skip to content

chentaihang/xv6-2020-labs

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 

Repository files navigation

README

MIT6.S081/Fall 2020操作系统实验代码。尽量一天做一个,但是人是扛不住懒的。

每个分支是一个实验:

注:从Lock实验开始迁移到Fall 2021的实验题目和代码,因为2020的代码需要的tool chain比较老,我实在不想在新电脑上装那些老tool chain。

Lab 直链 概述
#0 Utilities utils 熟悉xv6及其提供的部分系统调用,你会利用xv6提供的系统调用开发三个程序
#1 System Calls syscall 熟悉如何提供和编写系统调用,你需要为xv6添加两个系统调用,你会了解操作系统如何处理系统调用,如何在用户态和内核态之间拷贝数据等
#2 Page Tables pgtbl 深入了解页表,开发页表相关的debug程序,修改xv6的页表逻辑以让xv6变得更好
#3 Traps traps 深入了解陷阱,你会利用时钟中断开发一个用于计算密集型任务的alarm系统调用
#5 Lazy Allocation lazy 使用虚拟内存以及陷阱技术实现内存的懒分配,以应对用户进程预先申请内存的情况
#6 Copy On Write cow 使用虚拟内存以及陷阱技术实现copy on write,让fork系统调用拥有更好的性能,更加节省内存
#7 Multithreading thread 实现用户级线程(协程),使用pthread库
#8 Lock lock xv6为了简单,很多地方使用了大内核锁设计,在极端情况下锁竞争会很激烈,这个Lab要修改内存分配器和Buffer Cache中的锁设计,降低锁竞争,提高并发度
#9 File System fs 给xv6 fs的inode添加二级间接块,支持大文件,让xv6支持符号链接功能,添加一个系统调用创建符号连接
#10 mmap mmap
#11 Network Driver net

Releases

No releases published

Packages

No packages published