MIT6.s081_cow
# Implement copy-on-write fork
大意是子进程和父进程共享物理内存,只有需要对共享页写操作时再分配新的自己的物理页。
根据提示,为了区分当前页面是否是 copy-on-write 页面,在 riscv.h 中设置 PTE 保留的第 8 位作为标志。
#define PTE_C (1L << 8) // copy-on-write修改 kalloc.c 如下:
int ref[PHYSTOP/PGSIZE+1];// 物理页面的引用计数//...voidfreerange(void *pa_start, void *pa_end)//...
more...


