首页 > 系统相关 >内存分页机制

内存分页机制

时间:2022-11-29 22:44:17浏览次数:48  
标签:分页 物理地址 地址 内存 机制 页表

引言:

操作系统和硬件是相互依赖和发展起来的。

程序需要分段,操作系统提供分页。

在保护模式下,段描述符GDT是内存段的身份证。GDTR寄存器保存了GDT的起始地址。通过选择子去拿到段基址,GDT段描述符中的内存段不一定都在内存中,其中一位做标记做标记位。灵活的做内存的换入换出。

如果内存太小以至于不能容下一个进程?用户能够忍受整个段换入换出的IO时延?碎片太多怎么处理?

最本质原因是:连续的线性地址对应连续的物理地址。

=======》怎么处理?

我们要解除这种对应,然后建立新的映射。

 

分页机制

在未开启分页机制时,物理地址就由段基地址+偏移地址给出。

开启分页机制后,段基址+偏移地址给出的只是虚地址。分页机制负责完成虚地址到物理地址的映射。

cr3 寄存器保存了页目录的物理地址。 cr0 寄存器有负责打开分页机制的控制位。

一个段对应一个页表。如果一个页表对应了所有的物理页框,则会造成页表项过大的情况--4MB。

为了解决这个问题==》

出现了多级页表的思考。(来源于生活中翻书时,目录的章和具体页的抽象)

具体映射:虚地址的高10位  * 4(每一项4个字节)+页目录的起始地址(cr3中有保存)得到第一级物理地址。

读取该物理地址,用虚地址的中间10位 * 4 + 该物理地址 得到分配的物理页地址,页框地址,加上后十二位偏移地址得到最后的物理地址。

 

页表项和页目录项都是4个字节,但是他们对应的单位都是4kb,所以只需要记录20位即可,留下12位做其他属性。

物理页框和虚地址的映射可以不线性连续。

 

标签:分页,物理地址,地址,内存,机制,页表
From: https://www.cnblogs.com/wuyun--wy/p/16935669.html

相关文章

  • python接口自动化44- requests 库使用 hook 机制
    前言requests是Hooks即钩子方法,用于在某个框架固定的某个流程执行是捎带执行(钩上)某个自定义的方法。requests库只支持一个response的钩子,即在响应返回时可以捎带执......
  • 内存图
    ......
  • 0 工作方式和内存管理
    0工作方式及内存管理0.0工作方式什么是Java程序?如何进行提交?Java程序是由一组类所组成的,其中有一个类会带有启动用的main()方法。因此程序员必须要编写一或多个类并......
  • 操作系统 内存空间的扩充(虚拟内存)
    覆盖与交换 1.覆盖与交换覆盖,交换,虚拟存储技术常用于实现内存空间的扩充 1.1覆盖技术覆盖技术的思想:将程序分为多个段,常用的段常驻内存,不常用的段在需要的时......
  • JMM(java内存模型)
                                println方法中加了synchronized关键字,保证了可见性与原子性。     ......
  • Python之垃圾回收机制
    什么是垃圾回收    当为一个变量分配数据的时候,python会在内存中分配一部分空间,用户储存此数据,但内存空间总是有限的,如果一直占用内存空间,内存迟早会溢出,所以,程序中需......
  • 内存磁盘告警练习
    #!/usr/bin/bashmem_used=`free-m|grep'^Mem:'|awk'{print$3}'`mem_total=`free-m|grep'^Mem:'|awk'{print$2}'`#free-m以MB显示mem_percent=$((m......
  • Bootstrap_组件_导航条&分页条和Bootstrap_插件_轮播图
    Bootstrap_组件_导航条&分页条:组件: 导航条:导航条是在您的应用或网站中作为导航页头的响应式基础组件。它们在移动设备上可以折叠(并且可开可关),且在视口(viewpor......
  • Android - DataBinding源码解读(内存消耗和双向绑定原理分析)
    目录​​一代码Demo​​​​二解析​​​​2.1 关键的ActivityMainBindingImp()​​​​2.2 ​​​​2.3​​​​三总结​​​​3.1内存消耗的三个地方:​​​​3.2 ......
  • Android:性能优化工具之内存泄露-LeakCanary
    目录​​一简介​​​​二使用​​​​三进阶用法​​​​四hprof分析复杂内存泄露问题​​​​五使用小结​​​​六使用踩坑​​​​6.1权限​​​​6.2 NullPoi......