第一题

image-20240412082127356

(1)进程整个的地址空间为 $2^{32}$ 字节,一页有 $2^{22}$ 字节

(2)

第一级页表的起始基地址:

  • 根据页表项宇地址空间是线性映射的,0x80000000对应0x80000000 >> 12个页表项
  • 由于一个页表项占4B空间,偏移为0x80000000 >> 12 * 4,即0x200000
  • 起始基地址为0x80200000

通过逻辑地址0x80200000读出第一级页表所在的物理页框号(0x80200800存入数据为0x80200000该起始基地址,绕了两圈又回来了)

注:根据线性映射,每个虚拟地址都存在于某个页表内,可能是页目录项所在页表还是页表项所在页表。但是每个虚拟地址存在其对应的物理地址的条件是其对应的每一级页表都存在相应的的物理页表可供查询。

(3)

0x0访问缺失

0x00803004

  • 页目录项的物理地址:0x1008
  • 页表项的物理地址:0x500c
  • 获取的物理地址:0x20004

0x00402001

  • 页目录项的物理地址:0x1004
  • 页表项的物理地址:0x1008
  • 获取的物理地址:0x5001

注:根据实际物理页表的基地址加上偏移量寻找表项或者物理地址

(4)

逻辑地址:0x00c01028

第二题

image-20240412102225232

image-20240412102254942

一个地址对应一字节(8位),每个页表项大小是4字节,四字节对齐

大尾端符合直观读取数据

Load [0x00001022]

  • 页目录项的物理地址:0x0020_0000
  • 地址数据:0x0010_0007,有效位为1
  • 页表项的物理地址:0x0010_0004
  • 地址数据:0x0000_4067,有效位为1,读写位为1
  • 物理地址:0x0000_4022
  • 读入数据:20

Store [0x00C07222]

  • 页目录项的物理地址:0x0020_000C
  • 地址数据:0x0010_3007,有效位为1
  • 页表项的物理地址:0x0010_301C
  • 地址数据:0xEEFF_0001,有效位为1,读写位为0
  • 物理地址:0xEEFF_0222
  • Error

Store[0x00C005BF]

  • 页目录项的物理地址:0x0020_000C
  • 地址数据:0x0010_3007,有效位为1
  • 页表项的物理地址:0x0010_3014
  • 地址数据:0x6677_8899,有效位为1,读写位为0
  • 物理地址:0x6677_85BF
  • Error

Load [0x00003013]

  • 页目录项的物理地址:0x0020_0000
  • 地址数据:0x0010_0007,有效位为1
  • 页表项的物理地址:0x0010_000C
  • 地址数据:0x0000_4007,有效位为1,读写位为1
  • 物理地址:0x0000_4013
  • 读入数据:19

Load [0xFF80078F]

  • 页目录项的物理地址:0x0020_0FF8
  • 地址数据:0x001F_E007,有效位为1
  • 页表项的物理地址:0x001F_E000
  • 地址数据:0x0415_0000,有效位为0,读写位为0
  • Error

Load [0xFFFFF005]

  • 页目录项的物理地址:0x0020_0FFF
  • 越界
  • Error