6S081
文章平均质量分 83
flashzxi
这个作者很懒,什么都没留下…
展开
-
6s081 lab copy on write 记录
6s081 lab copy on write 记录 本实验要求实现copy on write,先来考虑我们需要干些什么 修改fork,在生成子进程时不拷贝父进程内存,而是直接将复制父进程的页表内容到子进程的页表,同时把页表项设置为不可写入且为COW页表(在riscv.h中宏定义PTE_C); 在子进程或者父进程写入内存时产生pagefault,此时检查pte项是否有PTE_C标记,若有标记则分配内存,将COW页表内存拷贝到新分配的内存,并替换页表项,修改物理内存位置以及标记位为可写非COW页; 修改co原创 2021-08-02 17:02:25 · 324 阅读 · 1 评论 -
6.S081 lab2 记录及实现
一些杂七杂八的话 本次的lab实验从lab2开始记录,lab1全部属于用户程序,难度较低,写lab2的时候我感受到了困难,决定记录一下,以后大概一周更新一个lab吧。 环境 我的linux是win上的ubuntu20.04子系统,配合vscode可以很方便的开发。vscode c++插件的函数追踪功能可以方便的让我们看到函数之间是怎么跳转的。 发生了什么 找到用户文件夹任意一个已有的系统调用,例如fork(),如果你转到定义,你会发现这些系统调用在user文件夹内只有声明,没有实现。而在kernel文件夹内原创 2021-07-10 12:13:33 · 593 阅读 · 0 评论