其他分享
首页 > 其他分享> > xv6 lab3

xv6 lab3

作者:互联网

https://pdos.csail.mit.edu/6.S081/2020/labs/pgtbl.html

简述

这个lab有三个task:

  1. 写一个打印页表内容的函数
  2. 给每个进程都创建一个内核页表,这个主要的优化点是具体点,就是将用户态页表的映射也放到每个进程的内核页表中,那么从用户态传入到内核态的指针就可以直接按照内核页表解引用了
  3. 修改copyin/copyinstr两个函数,它们主要是用来从用户态拷贝数据到内核态,由于原来的内核页表没有存放用户态页表的映射,那么这两个函数就需要去查找用户页表,由于上一个task的修改,现在可以直接读取内核页表了,又由于内核页表是虚拟地址与物理地址直接映射,所有就等于是直接通过物理地址读取数据了,所以可以简化copyin/copyinstr

A kernel page table per process

有三个函数会涉及到进程用户态页表的修改:

Simplify copyin/copyinstr

标签:映射,exec,用户,xv6,lab3,内核,进程,页表
来源: https://www.cnblogs.com/mlmz/p/16089077.html