微软OneNote客户预览版学习工具下载(暂未上线):教学好帮手
571
2022-05-29
分页机制
*它是80X86内存管理机制的第二部分,它在分段的基础上完成虚拟(逻辑)地址到物理地址转换的过程
*通过设置控制寄存器CR0的PG位启用分页机制
(PG=0,禁用;PG=1,启用)
固定页面大小:4K(4GB线性地址空间划分为2^20个页面)
页表结构
页表: 用于描述分页转换功能的表,存放于物理地址空间
*可以看为简单的2^20物理地址数组
每个页表项位32位(20位存放页面的物理基地址,12位可用于存放注入页面是否存在等的属性信息)
两级页表结构:
页表含有2^20个表项,每项4字节
*第一级页表称为页目录(Page direction):存放在1页4K页面中,表项指向相应的二级表
线性地址的最高10位(位31-22)用作一级表中的索引值来选择2^10个二级表之一
*第二级表称为页表(page table):长度也是一个页面(4K),每个表项含有相关页面的20位物理基地址
使用线性地址中间10位(21-12)作为索引值项,低12位是偏移量,两个部分组合在一起可以得到分页转换过程的输出值
*CR3寄存器指定页目录表的基地址
不存在的页表:
*页目录中每个表项有一个存在属性(present),指定对应的二级页表是否存在
*存在属性还可以用于虚拟内存中存放二级页表
页表项格式:
*P-位0(Present):用于指明表项对地址转换是否有效
P=1有效,P=0无效(会产生异常,除P位外,31-1位操作系统可以用来存放储存在硬盘上的页面的序号)
*R/W-位1(Read/Write):如果为1,表示页面可以读写或执行,如果为0,页面只读或可执行(对其映射的所有页面起作用)
如果为0处理器运行在超级用户特权级(0,1,2)
*U/S-位2(User/Supervisor):是用户/超级用户标志
如果为1,则运行现在任何特权级的程序都可以访问该页面
如果为0,则页面只能在 超级用户特权级(0,1,2)的程序上访问
*A-位5(Accessed):已访问标志
当处理器访问页表映射的页面时,置为1;当处理器访问页目录表项映射的任何页面,置为1
*D-位6(Dirty):页面已被修改标志
当处理器对一个页面执行写操作时,则会设置对应页表项的D标志(处理器不会修改页目录项中的D标志)
*AVL:该字段保留专供程序使用,处理器不会修改这几位
$虚拟内存:A和D标志可以用于实现虚拟存储技术
Linux 单片机
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。