两级页表(Two-Level Page Table)
来源:互联网 发布:python数据分析实战 编辑:程序博客网 时间:2024/05/29 18:10
对于要求连续的内存空间来存放页表的问题,可利用将页表进行分页,并离散地将各个页面分别存放在不同的物理块中的办法来加以解决,同样也要为离散分配的页表再建立一张页表,称为外层页表(Outer Page Table),在每个页表项中记录了页表页面的物理块号。下面我们仍以前面的32位逻辑地址空间为例来说明。当页面大小为 4 KB时(12位),若采用一级页表结构,应具有20位的页号,即页表项应有1兆个;在采用两级页表结构时,再对页表进行分页,使每页中包含210 (即1024)个页表项,最多允许有210个页表分页;或者说,外层页表中的外层页内地址P2为10位,外层页号P1也为10位。此时的逻辑地址结构可描述如下:
由右图可以看出,在页表的每个表项中存放的是进程的某页在内存中的物理块号,如第0#页存放在1#物理块中;1#页存放在4#物理块中。而在外层页表的每个页表项中,所存放的是某页表分页的首址,如第0#页表是存放在第1011#物理块中。我们可以利用外层页表和页表这两级页表,来实现从进程的逻辑地址到内存中物理地址间的变换。
为了地址变换实现上的方便起见,在地址变换机构中同样需要增设一个外层页表寄存器,用于存放外层页表的始址,并利用逻辑地址中的外层页号,作为外层页表的索引,从中找到指定页表分页的始址,再利用P2作为指定页表分页的索引,找到指定的页表项,其中即含有该页在内存的物理块号,用该块号和页内地址d即可构成访问的内存物理地址。右图示出了两级页表时的地址变换机构。
0 0
- 两级页表(Two-Level Page Table)
- 两级页表(Two-Level Page Table)
- [数据结构与算法]两级页表(Two-Level Page Table)
- mysql page-level
- English words page two
- linux内核学习笔记【二】最终内核页表 Final kernel Page Table
- code page table
- 进程页表两级结构:页目录和页表页
- 关于80386中两级页表的问题
- 32位线性地址—两级页表
- Protection 6 ---- Page-Level Protection
- [内核文档] PAT(页面属性表Page Attribute Table)
- 关于InnoDB表的page利用率和optimize table
- 关于InnoDB表的page利用率和optimize table
- MySQL表Waiting for table level lock解决
- 【转】a simple page table
- sql update two table
- SRM675(div2) Level Two ShortestPathWithMagic
- php读取文件目录
- 订单可视化(智能制造、流程再造、企业信息化) 第一篇 缘起
- 本博客更新异常说明
- PAT-B 1020. 月饼 (25)
- CF
- 两级页表(Two-Level Page Table)
- 【题解】codeforces776G Sherlock and the Encrypted Data
- 提交文件到github的两种方法
- Java之表达式--作业一
- 论文笔记:Look and Think Twice
- 第三天 -- UIApplication单例 iOS
- Linux学习之——网络环境查看命令和网络测试命令
- [BZOJ2286][Sdoi2011消耗战] 虚树
- KL散度 kl divergence