09 2023 档案
摘要:LAB:cow 1.实验概述 本次实验的内容为给xv6实现一个cow功能,具体情况为,在fork时,子进程一般会立即复制父进程的内存并获取一段新的内存,但这些内存并不是会立即使用的,所谓我们要实现的功能为,在fork时,不给子进程分配内存,而是直接将子进程的pagetable和父进程映射同一段物理内
阅读全文
摘要:LAB:xv6 lazy page allocation 1.实验概述 本节的实验内容是给xv6加上一个延迟分配内存的功能,具体内容为,在用户态调用系统调用sys_bark时,只设置进程控制块中内存大小,不进行具体分配,等待用户需要使用上次调用的内存时,会产生一个pagefault,此时在中断处理程
阅读全文
摘要:1.RISC-V assembly 1.a2, a1 store 12(f(8)+1) 2.26: 45b1 li a1,12 3.0x630 4.0x30 5.He110 World; i = 0x726c6400; no 6.之前a2中保存的值 2.Backtrace 关键:怎么判断用户栈超出栈
阅读全文
摘要:lab pagetable 1、print a pagetable void vmprint_helper(pagetable_t pagetable, int depth) { static char* indent[] = { "", "..", ".. ..", ".. .. .." }; i
阅读全文
摘要:lab System calls 0、time 4 hours 1、trace // 1.在user/user.h中加上trace函数定义 int trace(int); // 2.在user/usys.pl中加上trace的entry脚本 entry("trace"); // 3.在kernel/
阅读全文
摘要:lab utilities 1、sleep // // Created by silly on 23-9-5. // #include "../kernel/types.h" #include "../kernel/stat.h" #include "../user/user.h" int main
阅读全文