虽然Copy-on-Write原理是很显而易见的,但是在具体实现中需要处理的细节特别多,经常会在莫名其妙的地方出现错误,再加上使用gdb调试内核本身就是一件不容易的事情 ...
目录 实验总结 . 实验准备 . 引用计数 . 实现基于 cow 的 uvmcopy . 处理页面异常 amp . 各种检查 实验总结 本次实验用时约 个小时。 收获是对 Copy on Write 机制的理解更深入了。 遇到的困难包括: 懒。 中间把代码写挂了两次,经过 soha 提示,恍然大悟,原因是相同的:在子进程退出内存回收时把共享的 physical page 给回收了,经过修改已经解 ...
2019-12-26 10:38 0 1017 推荐指数:
虽然Copy-on-Write原理是很显而易见的,但是在具体实现中需要处理的细节特别多,经常会在莫名其妙的地方出现错误,再加上使用gdb调试内核本身就是一件不容易的事情 ...
代码在github上。总体来说如果理解了COW机制的话,这个实验的完成也没有很复杂。 这一个实验是要完成COW(copy on write)fork。在原始的XV6中,fork函数是通过直接对进程的地址空间完整地复制一份来实现的。但是,拷贝整个地址空间是十分耗时的,并且在很多情况下,程序立即调用 ...
前言 最近绝大多数的空闲时间都拿来锤15-445了,很久没动6.S081。前几天回头看了一下一个月前锤完的Lazy Allocation,自己写的代码几乎都不认识了.......看来总结之类的东西最好还是趁着热乎的时候写啊。 不过15-445的内容实在太多了,我只是为了锤Lab粗略的看了看课件 ...
。 xv6-riscv 默认开了 kpti(内核和用户态页表分离) ,故需要在各种系统调用头部手动 ...
(), twd2 认为可以往 xv6 中加一个 dup2 函数,我表示同意。需要进一步研究 xv6 结构,确 ...
目录 实验总结 0. 实验准备 1. file.c 2. buddy.c 实验总结 本次实验用时约两个小时,修改了 xv6 中大量恶臭代码。 测试结果: 0. 实验准备 实验指导链接 上来直接: 实验分为两个 ...
目录 实验总结 0. 实验准备 1. 代码实现 实验总结 本次实验用时约两个小时,使用了大量恶臭代码。 其他遇到的问题包括: 使用 du ...
这一部分要实现的是对多核处理器的支持,然后实现系统调用只喜欢用户应用创建新的应用,而且还要实现round-robin调度算法 Multiprocessor support jos中对CPU进行了抽 ...