proj7/8/9/9.1/9.2概述

    • 描述当前“合法”的虚拟内存的数据结构vma_struct和针对vma_struct的函数操作;

    为了提供超过物理内存大小的虚拟内存空间,需要把不常用的页换出到硬盘上,这样当访问到这些不存在的虚存页时,会产生缺页异常,可以把这些页再从硬盘拷贝回到内存中。proj8在proj7的基础上完成上述过程的实现,新增加的主要工作包括:

    • 为了准备swap in/out,实现通过PIO方式读写IDE格式的硬盘;
    • 增加shmem_node结构的描述,确保能够描述多个虚拟页映射到一个物理页的情况,并增加针对shmem_node的处理。

    • 扩展trap_dispatch函数,使得能够根据产生异常的地址的页表项内容和此地址对应的vma中的属性描述,正确完成对的“写时复制”处理。