32位系统 2级页表详解

进程页表两级结构:页目录和页表页

   进程页表的基本结构仅适合于小进程地址空间,在大地址空间下,该结构发生了变化。大虚址空间下的内存进程页表结构采用页表页和页目录。

   32位意味着虚址空间可达4GB

   虚址空间计算方法:32位的编址为232,232=210*210*210*22=4GB

1k=1024b

1m=1024K

1g=1024M

   若虚址空间为2GB,在页长4KB时共有

2G=1024K*1024K*2

    (2*1024*1024KB/4KB)= 219页  

   若每页的物理页号用4B表示则该进程页表本身占

     219*4B = 210*29*22B = 210*210*2B = 2MB

   该进程页表占用的空间为

      (219*4B)/4KB =(219*4B)/(4*210B)= 512页

1)算一算: 32位计算机进程页表多大?

2)由于进程页表大但是空,故对进程页表采取动态分配、动态伸缩的策略

   即:进程建立时并不马上分配完整的进程页表空间,当用到某页时(缺页中断或分配页时)才将该页的物理页号放入页表。显然页表中的逻辑页号不连续,页表中每行同时要存放物理页号和逻辑页号。

   页表页:页表本身的空间分配也是以页为单位。一个进程页表的不同页表页之间不一定连续。

3)由于页表所占的巨大内存空间和其大部分内容在大部分时间内未使用,故进程页表也被列入页淘汰的范围。

   即:进程页表的某些页可能被淘汰到盘交换区中。

4)页目录:由于进程页表的多个页之间不再连续,因此页表页本身也需要地址索引,这种地址索引称为页目录。

   页目录中存放着进程页表的所有页表页的地址。

    采用由页表页和页目录共同构成的二级页表机制来实现进程页表,Intel CPU对二级页表提供了硬件支持。

5)二级页表结构及其地址映射

   每个虚址分为三个部分

       页目录号+虚页号+页内位移

6)多级页表结构

    对于更大的虚址空间,采用二级进程页表结构可能不够,需要三级甚至更多级页表结构,图3.27给出了三级页表结构及地址映射过程。

7)多级表页结构本质

    由于页表的不连续存放,导致对物理页进行地址索引,这就是进程页表,而进程页表又是不连续导致对进程页表页进行地址索引,这就是页目录。

   页目录是页表页的索引,页表页是进程物理空间本身的索引

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
(1) 由于每个页面大小为64Byte,因此每个页面的偏移量需要6位二进制位来表示。操作系统的物理地址和逻辑地址寻址空间为64KB,即2^16Byte,因此需要16位二进制位来表示。因为采用页表的分页管理方式,所以可以将16位逻辑地址分为两部分,一部分用于访问一页表,另一部分用于访问二级页表。因此,一页表需要10位二进制位来表示,而二级页表需要6位二进制位来表示。每个页表项需要记录页面的物理地址,因此每个页表项需要占用6位二进制位。因此,一页表二级页表的大小均为2^10个和2^6个,页表占用的存储空间大小为2^10*6bit=60Byte和2^6*6bit=24Byte。 (2) 一页表二级页表逻辑地址结构图如下: 一页表逻辑地址结构图: |--------10位--------|--------6位--------| | 一页表索引 | 页内偏移量 | 二级页表逻辑地址结构图: |--------10位--------|--------6位--------| | 一页表索引 | 二级页表索引 | 页内偏移量 | 一页表项包含了指向二级页表的指针,而二级页表项包含了页面的物理地址。 (3) TLB(Translation Lookaside Buffer)是一种高速缓存,用于存储最近访问过的页表项,以加快操作系统对内存的访问速度。当操作系统需要访问某个页面时,首先会检查TLB中是否已经存在该页面的页表项。如果存在,操作系统就可以直接从TLB中获取该页表项,而不需要访问内存中的页表。这样可以大大减少访问内存的次数,从而提高了操作系统对内存的访问速度。如果TLB中不存在该页表项,操作系统就需要访问内存中的页表来获取页面的物理地址。在访问完毕后,操作系统会将该页表项加载到TLB中,以便下次访问时直接从TLB中获取。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值