nachos
文章平均质量分 55
ZZxiaopengyou
这个作者很懒,什么都没留下…
展开
-
nachos源码阅读 (内存管理)
前置工作machine.machine中,初始化寄存器,分配并初始化主存。如果定义了USE_TLB(使用转换检测缓冲区),分配页表缓冲,在这里只要初始化tlb=NULL寄存器个数 看一下页表项TranslationEntry 的声明machine.h中定义的枚举型错误变量thread.h中定义的枚举型线程状态变量AddrSpace::AddrSpace()创建一个地址空间来运行用户程序,地址空间有一个页表数组,对应的每个元素保存着虚拟页号,物理...原创 2022-04-30 17:11:43 · 1036 阅读 · 2 评论 -
nachos源码阅读(内存管理)-2 ReadMem()
ReadMem(int addr, int size, int *value)传入下一条指令地址,每次读取字节数,存放指令位置Translate(int virtAddr, int* physAddr, int size, bool writing) 传入虚拟地址,物理地址指针,每次读取字节数,读写权限,将虚拟地址addr翻译为物理地址,entry是虚拟机对应的页表项指针,用来保存查询记录计算下一条指令的虚拟页号和偏移量取出虚拟页取出虚拟页对应的物理页...原创 2022-04-30 18:22:20 · 2066 阅读 · 0 评论