Linux页表机制分析概要1.docxVIP

  • 23
  • 0
  • 约2.53万字
  • 约 28页
  • 2017-07-23 发布于湖北
  • 举报
Linux页表机制分析概要1

12.?页表机制12.1.?引言在Linux系统中,存在以下三种地址:逻辑地址:它被包含在机器指令中用来指定一个操作数或一条指令的地址。每一个逻辑地址都由一个段(Segment)和偏移量(Offset)组成,偏移量指明了从段开始的地方到实际地址之间的距离。线性地址(虚拟地址):一个32位无符号整数,可以用来表示高达4GB的地址。线性地址通常用十六进制数字表示,值的范围为[0 0xffffffff)。物理地址:用于内存芯片级内存单元寻址。它们与从CPU的地址引脚发送到内存总线上的电信号相对应。物理地址由32位或36位无符号整数表示。内存控制单元(MMU)通过一种称为分段单元的硬件电路把一个逻辑地址转换成线性地址;称为分页单元的硬件电路把线性地址转换成一个物理地址。有些MMU 没有分页单元,或者禁止使能分页单元,比如x86的实模式,那么就只有分段单元,那么经过分段单元转换后的地址就是物理地址。有些MMU没有分段单元,大多数RISC架构的CPU就是如此,此时段基址相当于0,而代码中的偏移地址就是线性地址,所有Linux下逻辑地址和线性地址是一致的。如下图所示:图?60.?地址转换Linux中以非常有限的方式使用分段。运行在用户态的所有Linux进程都使用一对相同的段来对指令和数据寻址,它们的段基址分别是__USER_CS 和__USER_DS。与此同时,运行在内核态的

文档评论(0)

1亿VIP精品文档

相关文档