第三章内存管理基础

Posted 萌萌滴太阳

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第三章内存管理基础相关的知识,希望对你有一定的参考价值。

3.1.1内存的基础知识

内存概念、作用

  • 概念
    在这里插入图片描述

  • 作用
    软件一般存放在外存或辅存里,像电脑的软件一般存储在硬盘里,但是硬盘是一种慢速设备,而CPU是一种超快速设备,如果CPU要处理的数据直接从外存中存取得话,显然CPU会有大量的时间在等待外存的存取操作完成,显然对CPU是浪费的。
    所以就引入了内存,它是一种更快速的存取数据的硬件,我们把需要运行的程序,数据先放入内存中,然后CPU从内存中存取数据,这样就可以缓和CPU和外存之间存取速度的矛盾了。

内存地址

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

从写程序到程序运行

在这里插入图片描述

装入【略,详见15min7s】

  • 装入解决的问题:从逻辑地址到绝对地址的转换
    在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

链接

静态链接

在这里插入图片描述

装入时动态链接

在这里插入图片描述

运行时动态链接

在这里插入图片描述

总结

在这里插入图片描述

3.1.2 内存管理的概念(功能)

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

总结

在这里插入图片描述

3.1.3内存空间扩充的方式:覆盖与交换【虚拟存储技术后面将】

在这里插入图片描述

覆盖技术

在这里插入图片描述

在这里插入图片描述

交换技术

在这里插入图片描述

在这里插入图片描述

总结

在这里插入图片描述

内存空间的分配与回收的方式(3.1.4—3.1.11)

连续分配管理方式(3.1.4—3.1.5)

3.1.4连续分配管理方式

在这里插入图片描述

单一连续分配方式

在这里插入图片描述

固定分区分配

在这里插入图片描述

在这里插入图片描述

动态分区分配

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在进行内存分区回收的时候,回收之后发现有些内存空间是相邻的,需要把这些相邻的空间进行合并。
【具体见视频】
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

总结

在这里插入图片描述

3.1.5动态分区分配算法【略】

非连续分配方式(离散分配方式)(3.1.6-3.1.11)

基本分页存储管理(3.1.6—3.1.9)

3.1.6 基本分页存储管理的基本概念

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  • 分页存储中逻辑地址到物理地址的计算【略】
    在这里插入图片描述

在这里插入图片描述

总结

在这里插入图片描述

3.1.7 基地址变换机构【略,详见视频】

在这里插入图片描述

3.1.8 具有快表的地址变换机构

在这里插入图片描述
在这里插入图片描述

快表

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

总结

在这里插入图片描述

3.1.9两级页表

单级页表中存在的问题,如何解决

问题一

在这里插入图片描述

  • 需在内存中连续分配页框,是因为页号是连续排列的。连续分配,可以在不给页号分配存储空间的情况下,使每一个页表项和页号一一对应。
  • 为一个进程分配这么多的内存空间,显然是比较吃力的;并且,连续分配显然丧失了非连续分配方式的优点

问题二

在这里插入图片描述

解决问题一:采用两级页表

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

解决问题二:在页表项中增加一个标志位

在这里插入图片描述

在这里插入图片描述

两级(多级页表优缺点)
  • 优点:
    解决了上面两个问题
  • 缺点:
    页表基数增加,(在没有快表机构的情况下)访问一个逻辑地址的次数也增加,增大了访问时间。

在这里插入图片描述

以上是关于第三章内存管理基础的主要内容,如果未能解决你的问题,请参考以下文章

[vscode]--HTML代码片段(基础版,reactvuejquery)

(王道408考研操作系统)第三章内存管理-第二节2:请求分页管理方式

(王道408考研操作系统)第三章内存管理-第二节2:请求分页管理方式

开源|一个在 Go 语言环境中完全自主实现的第三方内存管理库

《On Java 8》中文版 第十三章 函数式编程

(王道408考研操作系统)第三章内存管理-第二节1:虚拟内存管理基本概念