摘要: 在MIT JOS lab4的实验中,为了能够在用户态自定义处理页面错误,我们必须要知道操作的页面的属性(是否当前用户具有读写权限、是否copy on write页面),这就需要查询指向当前物理页面的页表项和目录表项获取它的属性 在之前的实验中,我们已经通过 修改 的目录表项,用此操作允许用户读取任一 阅读全文
posted @ 2019-04-18 18:21 sssaltyfish 阅读(797) 评论(1) 推荐(0) 编辑
摘要: 1. 页目录表基址(保存在CR3)为物理地址,但GDT表基址(保存在GDTR)为线性地址,为什么? A:在开启了分页后,除了 ,所有地址都要经过MMU自动进行虚拟地址到物理地址的转换,这个是无法绕过的。在进入kernel初期, 放着的还是boot时载入的gdt表的地址(这时候是物理),随后载入简易页 阅读全文
posted @ 2019-04-18 15:39 sssaltyfish 阅读(254) 评论(0) 推荐(0) 编辑
摘要: Part C:抢占式多任务处理和进程间通信(IPC) 注:根据MIT JOS的lab指导手册,以下不明确区分“环境”和“进程” 重要提醒:每次实现完系统调用,记得补充 的`syscall()`!!!!!!! 在lab4的最后一部分,我们将修改内核以支持抢占不合作环境拥有的资源并允许进程间通信 时钟中 阅读全文
posted @ 2019-04-18 14:30 sssaltyfish 阅读(268) 评论(0) 推荐(0) 编辑
摘要: Part B:fork的写时拷贝(Copy on Write Fork) 注:根据MIT JOS的lab指导手册,以下不明确区分“环境”和“进程” 重要提醒:每次实现完系统调用,记得补充 的`syscall()`!!!!!!! 如上一篇文章提及到的,Unix提供系统调用 作为创建进程的原语,它将父进 阅读全文
posted @ 2019-04-18 14:28 sssaltyfish 阅读(214) 评论(0) 推荐(0) 编辑