Linux内核学习第7天

举报
远航 | FIBOS 发表于 2020/12/01 00:01:25 2020/12/01
【摘要】 分页机制 ​*它是80X86内存管理机制的第二部分,它在分段的基础上完成虚拟(逻辑)地址到物理地址转换的过程          *通过设置控制寄存器CR0的PG位启用分页机制                                                            (PG=0,禁用;PG=1,启用)       ...
分页机制
*它是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标志可以用于实现虚拟存储技术

                                                                      
                                                                      

文章来源: blog.csdn.net,作者:冰水比水冰,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/luoyhang003/article/details/25774781

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。