![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
6.S081 Lab
BBAslayer
这个作者很懒,什么都没留下…
展开
-
2021 MIT6.S081 Lab: page table
2021的Lab3在设计上相比2020精简了许多内容,很快就做完了,第三个assignment的边界检查没做也能过就懒得做了原创 2022-08-03 11:50:32 · 557 阅读 · 0 评论 -
6.S081 Lab11: Network
Lab11比想象中的简单,因为hint太详细了基本等于伪代码,不动脑子跟着写都可以,需要注意的是宏注意不要写错了,debug找起来还是挺费眼的。至此6.S081的Lab全部完成,完结撒花!https。原创 2022-07-21 15:14:34 · 197 阅读 · 0 评论 -
6.S081 Lab10: mmap
总结下来就是不要想着一步到位,先把最重要的部分写出来,写完一个小模块就可以去跑测试,参数合法性可以在跑测试时慢慢添加。https。原创 2022-07-21 09:13:47 · 386 阅读 · 0 评论 -
6.S081 Lab9: file system
fs部分源码给我看麻了,网上的思路也不尽相同,任务2基本是毛来的,以后再说罢。原创 2022-07-19 16:42:26 · 303 阅读 · 0 评论 -
6.S081 Lab8: locks
两个作业都是通过修改数据结构、将粗粒度锁替换为细粒度锁,降低锁争用,增加并行度。原创 2022-07-15 15:00:19 · 188 阅读 · 0 评论 -
6.S081 Lab6: Copy-on-Write FOrk for xv6
在kernel/riscv.h中增加字段:修改kernel/vm.c中的uvmcopy函数:在kernel/defs.h中声明函数walk:更改kernel/trap.c中的usertrap函数,定义handle_cow_fault函数,在kernel/def.h中增加函数声明:修改kernel/kalloc.c,增加引用计数功能,更改kalloc、kfree、freerange函数:在kernel/def.h中增加函数inc_ref定义:更改kernel/v原创 2022-07-13 19:14:41 · 171 阅读 · 0 评论 -
MIT6.S081 Lab5: xv6 lazy page allocation
Eliminate allocation from sbrk()更改kernel/sysproc.c中的sys_sbrk函数:uint64sys_sbrk(void){ int addr; int n; if(argint(0, &n) < 0) return -1; addr = myproc()->sz; /* if(growproc(n) < 0) return -1; */ myp原创 2022-05-31 11:56:42 · 173 阅读 · 0 评论 -
MIT6.S081 Lab4: Trap
RISC-V assembly(easy)a0-a7. a2无函数调用位于0x630ra中是0x00输出为 He110 World,如果是大段存储,i应该为0x726c64,57616不需要改Backtrace(moderate)在kernel/defs.h中添加函数声明void backtrace(void)在kernel/riscv.h中添加以下字段:// get frame pointerstatic inline uint64r_fp(){原创 2022-05-24 16:48:29 · 404 阅读 · 0 评论 -
MIT6.S081 Lab3: page tables
MIT 6.S081 Lab3: page tables原创 2022-05-16 11:12:18 · 197 阅读 · 0 评论