2021年10月操作系统概率自考真题这个物理地址是怎么计算的?

就是第三问,这个十六进制的计算我没看懂啊,页框大小是十进制的吗?怎么给他加起来等于这个啊?

第1个回答  2023-03-11
逻辑地址中的前10位是页号,后12位是页内偏移量。将逻辑地址0x00402269转换成二进制,得到:0000 0000 0100 0000 0010 0010 0110 1001
前10位是页号,即:
0000 0000 01
页内偏移量为后12位,即:
0000 0010 0010 0110 1001
因为该系统采用两级页表的分页存储,所以需要通过两个页表来转换逻辑地址为物理地址。
第一级页表的每个表项大小为4字节(32位),其中高20位存放的是二级页表的起始地址,低12位存放的是标志位。
假设第一级页表的基地址为0x00001000,那么第一级页表的第8个表项的内容为0x00001200,表示二级页表的起始地址为0x00001200。因此,逻辑地址中前10位为页号,需要在第一级页表中找到对应的表项,并从中读取二级页表的起始地址。
第二级页表的每个表项大小为4字节(32位),其中高20位存放的是物理页帧号,低12位存放的是标志位。
假设二级页表的基地址为0x00001200,那么二级页表的第6个表项的内容为0x00003456,表示逻辑页号为0x00000106的页映射到物理页帧号为0x00003456的物理页帧。因此,需要从二级页表中读取相应的物理页帧号,并将物理页帧号与页内偏移量组合成物理地址。
页内偏移量为:0000 0010 0010 0110 1001
转换成十进制为:553。
因此,该逻辑地址所对应的物理地址为:
0x00003456 * 4 + 553 = 0x0000D58D
因为主存按字节编址,所以物理地址需要乘以4。
相似回答