操作系统的线性地址

来源:互联网 发布:电信网络制式频段 编辑:程序博客网 时间:2024/05/20 04:15

 

线性地址(Linearaddress),也叫做逻辑地址(virtualaddress) 32位系统中,它的寻址空间是从0x00000000-0xffffffff,也就是常说的4G

 

PAE分页机制

Physical address extension,指的是在32位系统中,处理器的管脚数目从32个增加到36个,这样,寻址空间就扩大到了64G,完全可以满足现有的需求。

 

Paging Unit 分页单元,它能够把线性地址转换成物理地址。在编程中,经常可以遇到pagefault这样的错误,其实,这个错误就是从pagingunit从抛出来的。

 

Page: 页,线性地址被分成固定长度为单位的组,这就是页。通常,页大小是4K

此外,页既指一组线性地址,也指包含在这组地址中的数据。

 

Segmentation Unit 分段单元,是一个硬件电路,可以把一个逻辑地址转换成线性地址。

 

Paging Unit:分页单元,是一个硬件电路,可以把线性地址转换成一个物理地址。属于MMUmemory management unit)的范畴。

 

Page Frame: 页框,分页单元(page unit)把系统中所有的RAM分成固定长度的页框。

 

Pagepage frame的区别:

Page是一个数据块,而page frame是一个物理存储单元。因此,一个页可以任何页框中。

 

Page directory:页目录表,是一种转换表,用于线性地址到物理地址转换的第一步。

Page table:页表,是一种转换表,用于线性地址到物理地址转换的第二步。

 

32位线性地址:page directory(10 bit),page table(10 bit), offset(12 bit)

 

Cr寄存器

 

 

<=====================================================>

Linux系统中的分页机制:四级分页模型

  1. page global directory:页全局目录
  2. page upper directory 页上级目录
  3. page middle directory:页中间目录
  4. page table 页表

 

Linux进程页表

1. 0x00000000 ~ 0xbfffffff:进程处于用户态和内核态都可以寻址

2. 0xc0000000 ~ 0xffffffff:内核态的进程才能可以寻址

 

 

原创粉丝点击