32位系统 2级页表详解
来源:互联网 发布:数据分析前景 知乎 编辑:程序博客网 时间:2024/05/18 02:26
进程页表两级结构:页目录和页表页
进程页表的基本结构仅适合于小进程地址空间,在大地址空间下,该结构发生了变化。大虚址空间下的内存进程页表结构采用页表页和页目录。
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)多级表页结构本质
由于页表的不连续存放,导致对物理页进行地址索引,这就是进程页表,而进程页表又是不连续导致对进程页表页进行地址索引,这就是页目录。
页目录是页表页的索引,页表页是进程物理空间本身的索引
- 32位系统 2级页表详解
- 32位系统支持多大内存 Windows32位/64位系统最大支持内存详解
- Ubuntu 11.04 32位系统下 SRILM 的配置详解
- 详解为什么32位系统只能用4G内存.
- 详解为什么32位系统只能用4G内存
- 32位系统硬盘安装32/64位win7/win8(图文详解)
- 32位系统,64位系统概念
- 64位 win8系统 Matplotlib 安装详解
- 详解如何安装64位win7系统
- 32位系统寻址
- 32位和64位系统
- 32位与64位系统
- 64位系统运行32位程序
- 32位PE安装64位系统
- 32位系统安装64位虚拟机
- Eclipse 32位,64位 系统安装
- 64位系统编译32位程序
- Ubuntu64位系统运行32位程序
- 提高程序的可读性以及可维护性
- vs2010+matlab2009引擎
- oracle 数据库判断指定表中是否有指定列
- 影像播放与画面处理
- HMAC-MD5算法原理及实现
- 32位系统 2级页表详解
- 多继承——成员访问冲突
- 第九周实验报告3
- VISTA、Win Server 2008、Win7 等系统音频系统底层API
- Android3.1打开系统设置页面的正确方法
- java的这一特点怎么理解??
- Android游戏开发起步(译文)
- 线程状态转换
- sizeof不是函数,而是C/C++中的一个操作符(operator)