当前位置: 代码迷 >> 综合 >> 关于 线性地址 逻辑地址 虚拟地址 物理地址 页表机制的一点杂谈
  详细解决方案

关于 线性地址 逻辑地址 虚拟地址 物理地址 页表机制的一点杂谈

热度:16   发布时间:2024-01-24 10:54:55.0

首先从其他文献摘抄几张图 表明相关的关系
在这里插入图片描述
在这里插入图片描述
其中

INTER处理器
逻辑地址(logical address)是 selector:offset 这种形式,selector 是 CS 寄存器的值,offset 是 EIP 寄存器的值。如果用 selector 去 GDT( 全局描述符表 ) 里拿到 segment base address(段基址) 然后加上 offset(段内偏移),这就得到了 linear address。我们把这个过程称作段式内存管理。

##################################################################

Intel 8086处理器分页机制
在这里插入图片描述
Linux分页机制
分页机制![在这里插入图片描述](https://img-blog.csdnimg.cn/20191012144037167.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTI4NTU1Mzk=,size_16,color_FFFFFF,t_70)

如果再把 linear address 切成四段,用前三段分别作为索引去PGD、PMD、Page Table里查表,最终就会得到一个页表项(Page Table Entry),那里面的值就是一页物理内存的起始地址,把它加上 linear address 切分之后第四段的内容(又叫页内偏移)就得到了最终的 physical address。我们把这个过程称作页式内存管理。

virtual address就是linear address的别名

引用知乎的文章链接:https://www.zhihu.com/question/29918252/answer/163114415