4、基本地址变换机构

  • 页式
    • 1、页式
      • 硬件实现流程
      • 地址变化步骤
      • 问题
    • 2、页式+快表
      • 什么是快表?
      • 引入快表后地址变换步骤
      • 引入快表后的硬件实现
      • 快表无法装入完整的慢表,达到高命中率的基础原理是什么?-------->局部性原理
      • 有无快表的对比:
    • 3、两级页表
      • 单级页表存在的问题
      • 二级页表的逻辑地址结构
      • 二级页表的硬件实现(解决第一个问题)
      • 二级页表如何实现地址转换?
      • 第二个问题的解决?
      • 什么叫各级页表大小不能超过一个页面?
  • 段氏
    • 什么叫分段?
    • 如何确定进程的每个段在内存中存放的位置?--------->段表
    • 段氏硬件实现流程
    • 内存访问次数
    • 分段、分页管理的对比
  • 段页式
    • 段氏和页式的缺点
    • 如何确定进程的每个段在内存中存放的位置?--------->段表+页表
    • 段页式管理的逻辑地址结构
    • 段页氏硬件实现流程

页式

1、页式

硬件实现流程


需要进行俩次内存访问

地址变化步骤

问题

2、页式+快表

什么是快表?

快表:就是高速缓存cache访问速度快于内存,造价高于内存
所以:cache的容量小于内存,
cache和快表(TLB)的区别:TLB 中只有页表项的副本,而普通 Cache 中可能会有其他各种数据的副本

引入快表后地址变换步骤

什么叫快表和慢表同时查找?

就是在访问快表的同时也访问慢表,所以在上面的例子中可以节省一秒时间

引入快表后的硬件实现

假如:
第一次访问(0,0),检查越界后查询快表,未命中,查询页表,并将该页表项复制到快表,访问物理地址。(访问两次内存)
第二次访问(0,4),检查越界后查询快表,命中,直接访问物理地址(访问一次内存)
第三次访问(0,8),检查越界后查询快表,命中,直接访问物理地址(访问一次内存)

快表无法装入完整的慢表,达到高命中率的基础原理是什么?-------->局部性原理

有无快表的对比:

3、两级页表

单级页表存在的问题


由于段氏内存分配的一个优点就是可以进行非连续的存储,但是当我们采用页式存储的时候,逻辑地址与页表项需要建立一一对应的关系,当逻辑地址太多时,就需要一片很长的连续空间进行页表存储,这样就丧失了非连续存储的优势。因此,提出了二级页表的概念。

二级页表的逻辑地址结构

二级页表的硬件实现(解决第一个问题)

我们可以类比于一级页表,一级页表可以将一个程序分页存储到不同不连续的内存单元。那二级页表其实就是将一级页表分页存储到不同不连续的内存单元,即将一级页表再分页这样就可以解决第一个问题了

二级页表如何实现地址转换?

就是先用一级页表查到二级页表存放的位置,在从二级页表查到物理地址。相对于一级页表的方式,就是多了一步页表查询的过程。

第二个问题的解决?

见下篇博客:操作系统之内存管理:5、虚拟存储技术

什么叫各级页表大小不能超过一个页面?

其中,二级页表在没有快表时需要进行3次内存的访问才能找到实际的物理地址。n级页表需要访问n+1次。

段氏

什么叫分段?

1、当我们写一个程序时会有一个main()函数,已经一系列的子函数;那么分段的意思就是:按照完整的自身逻辑结构(比如一个函数)将一个程序划分成多个块,然后将不同的块存储到不同不连续的内存段中。(如上图所示),一个函数名就对应一个断号。
2、用户要对分段存储的程序进行数据的访问时,需要有俩个参数:第一个是段名,第二个是段内偏移量,所以称段氏的地址空间是二维的
3、段是信息的逻辑单位。分页的主要目的是更好地满足用户需求。。分段对用户是可见的,用户编程时需要显式地给出段名。

如何确定进程的每个段在内存中存放的位置?--------->段表

我们可以通过逻辑地址与段表,段表与物理地址的映射关系实现从逻辑地址到物理地址的转化

段氏硬件实现流程

首先用短号与段表寄存器对比查看是否越界;
未越界则查找段表中对应的段表项
然后段内地址与段长对比,判断是否越界
未越界则查找物理地址
假如现在要查找:(2,1024),未越界则查找到段基址:40K,在加上偏移量:1K,所以最终的物理地址为41K处

内存访问次数

分段、分页管理的对比

假如现在程序有三个段:0,1,2;第二段可共享;用段氏就很容易实现共享;若采用页式:

可能出现一页中一部分可共享,一部分不可共享的情况。

段页式

段氏和页式的缺点

如何确定进程的每个段在内存中存放的位置?--------->段表+页表


段页式和段氏中的段表存储字段不同。

段页式管理的逻辑地址结构

段页氏硬件实现流程

不使用快表时内存访问次数:每次地址转化都需要访问内存3次。

操作系统之内存管理:4、基本地址变换机构(段氏、页式、段页式)相关推荐

  1. 操作系统之内存管理:3、基本分页存储管理

    3.基本分页存储管理 思维导图 页框(页帧.内存块.物理块.物理页面)与页面(页) 如何确定进程的每个页面在内存中存放的位置?--------->页表 每个页表项多大?占几个字节?i号页表项的起 ...

  2. 操作系统之内存管理:2、内存管理的功能(内存分配回收、扩充、地址转化、存储保护)

    2.内存管理的功能 功能1:内存空间的分配与回收 连续分配管理: 方法1:单一连续分配 方法2:固定分区分配 方法3:动态分区分配 1.什么是动态分区分配? 2.系统用什么样的数据结构记录内存使用情况 ...

  3. C/C++内存分配与Linux内存管理进程所涉及到的五个数据段 .

    一. 在c中分为这几个存储区 1.栈 - 由编译器自动分配释放 2.堆 - 一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收 3.全局区(静态区),全局变量和静态变量的存储是放在一块的, ...

  4. 操作系统--03内存管理

    内存管理 第三章:内存管理(存储器管理) 3.内存保护的两种办法: 3.1 覆盖与交换 3.2 连续分配管理方式 3.3 动态分区分配算法 1.首次适应算法: 2.最佳适应算法: 3.最坏适应算法: ...

  5. 408 知识点笔记——操作系统(内存管理)

    文章目录 3 内存管理 3 内存管理 [虚拟存储器] 在程序装入时,可以只将程序的一部分装入内存,而将其余部分留在外存,就可以启动程序执行.采用连续分配方式时,会使相当一部分内存空间都处于暂时或 &q ...

  6. 操作系统之内存管理详解

    1 内存管理概念 1.1 基本原理和要求 内存管理: 操作系统对内存的划分和动态分配 内存管理的功能有: 内存空间的分配与回收 由操作系统完成主存储器空间的分配和管理,使程序员摆脱存储分配的麻烦,提高 ...

  7. 操作系统:内存管理(概念)

    对于计算机系统而言,操作系统充当着基石的作用,它是连接计算机底层硬件与上层应用软件的桥梁,控制其他程序的运行,并且管理系统相关资源,同时提供配套的系统软件支持.对于专业的程序员而言,掌握一定的操作系统 ...

  8. 操作系统内存管理_操作系统6内存管理基础

    引言 花了一段时间才把之前的笔记整理了一部分,平时太忙也没啥时间.今天开始整理内存管理部分的,内存管理部分大致分为三部分笔记,第一部分就是本篇内存管理基础,第二部分是虚拟内存,第三部分高速缓存. 一个 ...

  9. 操作系统之内存管理:1、内存管理基础知识(指令工作原理、地址转化、程序运行过程)

    1.内存管理基础知识(指令工作原理.地址转化.程序运行过程) 思维导图 什么是内存? 指令的工作原理 装入模块的三种实现 绝对装入 可重定位装入 动态重定位 程序的运行过程 链接的三种方式 思维导图 ...

最新文章

  1. 分布式加载数据训练神经网络
  2. .NET混淆器 Dotfuscator使用教程七:加强保护之改进重命名混淆
  3. 逐渐增高_健身能不能增高?真相原来是这样
  4. 【实用】C#测试web服务是否可用
  5. boost stacktrace堆栈打印
  6. 唐郑国公魏征金口“斩龙台”梦斩泾河黄龙的传说
  7. Confluence 6 恢复一个空间
  8. java 001 002_java笔记0x002:操作符
  9. 疑惑光栅投影中条纹间距和频率的关系
  10. 爱思国际获戈壁创投数百万美元Pre-A 轮融资,意做菲律宾的分众传媒...
  11. WS2812RGB灯的控制学习
  12. lisp 吴永进_采用Visual Lisp软件提高长输管道施工图设计效率
  13. KMPlayer播放m2ts 格式文件
  14. 2021中行校招面试
  15. Multi-AP Specification V2.0 中文翻译 第8章
  16. NUC-ACM/ICPC 寒假训练 简单DP A - G题
  17. 2011分区联赛模拟试题 积木分发(jzoj提高C组)
  18. 573声卡调试是什么
  19. windows web服务器性能测试工具,网站性能Web压力测试工具webbench
  20. 【C++】洛谷P1443 马的遍历

热门文章

  1. HTML5 API详解(15):History 不刷新也可以实现网页跳转
  2. oracle rac fail,Oracle RAC Load Balance , Fail Over测试
  3. 学生信,不是贪多的,而是求精的!
  4. 给大家推荐9个专业分享生信技术的公众号
  5. 高级转录组分析和R语言数据可视化课程全部转为视频课
  6. Blizzard Transitions for Mac - 动态风雪过渡效果FCPX转场
  7. linux启动大叶机制,DPDK-Suricata应用部署
  8. 虚拟化物理服务器参数,浅谈部署VMware物理系统虚拟化技术P2V(Physical to Virtual)
  9. installshield 脚本 在卸载过程执行_Linux下运行Jmeter脚本
  10. coco showanns不显示_coco奶茶加盟好不好?【5月官网最新公布】加盟费用+加盟流程...