Lab pgtbl: Page tables

Posted on 2023-04-18 19:02  lyc2002  阅读(22)  评论(0编辑  收藏  举报

Speed up system calls

kernel.h/proc.h,在 struct proc 中添加 struct usyscall *usyscall

kernel.h/proc.c,在 proc_pagetable() 中添加 USYSCALL 的 PTE

kernel.h/proc.c,在 allocproc() 中为 p->usyscall 分配空间,初始化 p->usyscall->pid = p->pid

kernel.h/proc.c,在 freeproc() 中释放 p->usyscall

kernel.h/proc.c,在 proc_freepagetable() 中添加 uvmunmap(pagetable, USYSCALL, 1, 0);

Print a page table

kernel/vm.c,添加 vmprint() 函数

kernel/defs.h,声明 vmprint() 函数,供 exec() 调用

kernel/exe.c 中添加语句调用 vmprint()

Detecting which pages have been accessed

在 kernel/proc.c 中,实现 sys_pgaccess()

kernel/riscv.h,添加 PTE_A