【计算机操作系统】内存管理的概念

内存管理的概念

内存管理需要实现以下功能:

  1. 内存空间的分配与回收
  2. 内存空间的扩充
  3. 地址转换
  4. 内存保护

内存空间的分配与回收

存储管理方式随着操作系统的发展而发展,在操作系统由单道向多道发展时,存储管理方式便由单一连续分配发展为固定分区分配;为了能更好地适应不同大小的程序要求,又从固定分区分配发展到动态分区分配;为了更好地提高内存的利用率,进而从连续分配方式发展到离散分配方式一一页式存储管理

引入分段存储管理的目的,主要是为了满足用户在编程和使用方面的要求,其中某些要求是其他几种存储管理方式难以满足的

操作系统作为系统资源的管理者,当然也需要对内存进行管理,包括:

① 记录哪些内存区域已经被分配出去,哪些又还空闲

② 合理分配进程存放空间

③ 进程结束之后将进程占用的内存空间回收

内存空间的扩充

操作系统需要提供某种技术从逻辑上对内存空间进行扩充(操作系统的虚拟性)

】某游戏大小超过 60GB,按理来说这个游戏程序运行之前需要把 60GB 数据全部放入内存,然而某电脑的内存仅有 4GB ,但是这个游戏依然可以在该电脑上顺利运行,这就是利用了操作系统的虚拟性,采用虚拟技术实现(在这里了解即可,在【覆盖与交换】一文中会进一步介绍)

地址转换

为了使编程更方便,程序员写程序时应该只需要关注指令、数据的逻辑地址,而逻辑地址到物理地址的转换 (这个过程称为地址重定位)应该由操作系统负责,这样就保证了程序员写程序时不需要关注物理内存的实际情况

内存保护

内存一般来说会分为操作系统使用的内存区域,还有普通的应用程序使用的内存区域,各个用户进程都会被分配到各自的内存空间,某进程对操作系统使用的内存区域的访问和对其他进程内存区域的访问都应该被禁止(否则会导致系统不安全),该进程只能访问与之对应的内存区域

两种实现方法

  1. 在CPU中设置一对上、下限寄存器,存放用户作业在主存中的下限和上限地址,每当CPU要访问一个地址时,分别和两个寄存器的值相比,判断有无越界
  2. 采用重定位寄存器 (又称基地址寄存器 )和界地址寄存器 (又称限长寄存器 )来实现这种保护
    重定位寄存器含最小的物理地址值(起始物理地址 ),界地址寄存器含逻辑地址的最大值(最大逻辑地址
    内存管理机构动态地将逻辑地址与界地址寄存器进行比较 ,若未发生地址越界,则加上重定位寄存器的值后映射成物理地址,再送交内存单元

小结

  1. 操作系统负责内存空间的分配与回收
  2. 操作系统需要提供某种技术从逻辑上对内存空间进行扩充(实现虚拟性)
  3. 操作系统需要提供地址转换功能,负责程序的逻辑地址与物理地址的转换(三种装入方式)
  4. 操作系统需要提供内存保护功能,保证各进程在各自存储空间内运行,互不干扰

计算机操作系统】 专栏的文章 均有参考 《王道计算机考研 操作系统》 课程视频

相关推荐
电棍2331 小时前
verilog笔记
笔记·fpga开发
让我安静会1 小时前
Obsidian·Copilot 插件配置(让AI根据Obsidian笔记内容进行对话)
人工智能·笔记·copilot
世事如云有卷舒2 小时前
FreeRTOS学习笔记
笔记·学习
羊小猪~~5 小时前
MYSQL学习笔记(九):MYSQL表的“增删改查”
数据库·笔记·后端·sql·学习·mysql·考研
yuanbenshidiaos5 小时前
【数据挖掘】数据仓库
数据仓库·笔记·数据挖掘
sealaugh327 小时前
aws(学习笔记第二十九课) aws cloudfront hands on
笔记·学习·aws
FakeOccupational7 小时前
【计算社会学】 多智能体建模 ABM Agent Based Modeling 笔记
笔记
夏莉莉iy7 小时前
[MDM 2024]Spatial-Temporal Large Language Model for Traffic Prediction
人工智能·笔记·深度学习·机器学习·语言模型·自然语言处理·transformer
StickToForever8 小时前
第4章 信息系统架构(三)
经验分享·笔记·学习·职场和发展
零星_AagT8 小时前
Apache-CC6链审计笔记
java·笔记·apache·代码审计