Memory management 将逻辑(虚拟)地址转换为物理地址
我有以下Memory management 将逻辑(虚拟)地址转换为物理地址,memory-management,process,virtual-memory,Memory Management,Process,Virtual Memory,我有以下process1的页面表: 假设寻呼系统使用16位地址,页面大小为4k 我想把逻辑地址16000转换成物理地址 我对这个话题有点陌生,所以对我放松点: 部分解决方案:地址16000与页表中的单元格编号3相符,因此我猜 我需要使用该单元格及其存储的帧-2 我现在如何找到偏移量和物理地址 感谢您,process 1当前最多可以访问4*4k字节的虚拟内存。 通常,一个进程最多可以访问4gb的虚拟内存(取决于实现)。 现在,您给出的表将虚拟内存映射到实际物理地址(在RAM上)。页表的每个条目将
process1
的页面表:
假设寻呼系统使用16位
地址,页面大小为4k
我想把逻辑地址16000
转换成物理地址
我对这个话题有点陌生,所以对我放松点:
部分解决方案:地址16000
与页表中的单元格编号3
相符,因此我猜
我需要使用该单元格及其存储的帧-2
我现在如何找到偏移量和物理地址
感谢您,process 1当前最多可以访问4*4k字节的虚拟内存。
通常,一个进程最多可以访问4gb的虚拟内存(取决于实现)。
现在,您给出的表将虚拟内存映射到实际物理地址(在RAM上)。页表的每个条目将4k内存从虚拟空间映射到物理空间。
因此,地址16000对应于页表的第三个条目的物理地址,该条目映射到从
8192(3*4096)到12288(8192+4096)
的物理地址
在虚拟页面2中3172字节的偏移量处,即在物理页面3中3172字节的偏移量处(地址8192),您可以找到与地址16000对应的数据。对于进程进行的每个地址访问,所有这些映射都由MMU(内存管理单元)完成。
理解这个概念的好链接是
干杯:)在您的情况下,进程1当前可以访问多达4*4k字节的虚拟内存。
通常,一个进程最多可以访问4gb的虚拟内存(取决于实现)。
现在,您给出的表将虚拟内存映射到实际物理地址(在RAM上)。页表的每个条目将4k内存从虚拟空间映射到物理空间。
因此,地址16000对应于页表的第三个条目的物理地址,该条目映射到从
8192(3*4096)到12288(8192+4096)
的物理地址
在虚拟页面2中3172字节的偏移量处,即在物理页面3中3172字节的偏移量处(地址8192),您可以找到与地址16000对应的数据。对于进程进行的每个地址访问,所有这些映射都由MMU(内存管理单元)完成。
理解这个概念的好链接是 干杯:)
16000 mod 4096 = 3712(offset).