![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
6.828
文章平均质量分 68
mdzzname
这个作者很懒,什么都没留下…
展开
-
6.828(2018) hw:mmap()
这个作业主要是用 unix 系统的 mmap 和 unmap 函数来实现一个任务。 在这个任务里,我们有一个非常大的数组,其容量超过了物理内存的大小,所以内存放不下。其每个元素的值应该是 其下标的平方根值。 我们的目标是使用 unix 系统的 mmap函数 和 信号处理 来进行按需计算, 即只对使用到的值进行计算。为了不超出物理内存限制,建议只使用一页内存,每当产生缺页,就将之前映射的页 unmap。 当访问不存在的数组元素时会产生缺页,内核会转移到已注册好的 handle_sigsegv 缺页处理函数执行原创 2021-02-11 11:39:05 · 239 阅读 · 0 评论 -
6.828(2018) hw: xv6 log
这个作业主要是让你熟悉xv6的文件系统中log部分。该作业共分为两个部分,第一个部分是根据代码回答一些问题,第二个部分是对现有的代码做一点点优化。 xv6 log设计分回顾 xv6 中 log 主要是为了解决崩溃恢复的问题。因为在文件系统中,很多操作涉及到磁盘上很多块的读写,在这些读写中间如果发生系统崩溃,那么磁盘上的文件系统就会陷入一种不一致的中间状态。比如。而log的设计就可以让一连串的读写成为一个原子操作,要么这一连串读写都不成功,要么都成功,而不会出现一部分成功的中间状态。 xv6 文件接口例子 这原创 2021-01-27 18:03:41 · 571 阅读 · 0 评论 -
6.828(2018) hw: big file
这个作业主要就是让你熟悉xv6的文件系统,并能做出一些修改,主要的任务是让你增加一个二级页来增加一个文件最大的大小。 准备工作 修改 Makefile中的 CPUS := 2 为 CPUS := 2,并 在后面加一行 QEMUEXTRA = -snapshot,修改这两项可以让后面的测试更快。 下载 big.c, 并在Makefile的 UPROGS 加一行 _big\,这个文件主要用来测试。 修改 param.h 的宏定义为 #define FSSIZE 20000 // size of f原创 2021-01-27 12:23:36 · 395 阅读 · 0 评论