操作系统内存管理概述

原创 2015年07月09日 14:42:00

内存管理要达到以下目的:

  • 地址保护,一个程序不能访问另一个程序地址空间
  • 地址独立:程序发出的地址【虚拟空间(程序空间)的虚拟地址(程序地址)】应与物理主存地址无关。

虚拟内存可以解决在不太增加成本的情况下扩大内存容量的目的。虚拟内存的中心思想是 将物理内存扩大到便宜、大容量的磁盘上,即将磁盘空间看作是主存空间的一部分。用户程序即可以完全存放在主存,也可以完全存放在磁盘,当然也可以部分存放在主存、部分存放在磁盘。而程序执行时,程序发出的地址到底是在主存还是在磁盘则由操作系统的 内存管理模块 负责判断,并到相应的地方进行读写操作。即虚拟内存需要提供的就是空间像磁盘那样大、速度像缓存那样高的主存储系统。而对程序地址所在位置的判断产生内存管理系统的一个中心功能。

多道编程的内存管理

在多道编程的情况下,就无法将程序总是加载到固定的地址上,必须在程序加载完毕后才能计算物理地址,也就是在程序运行时进行地址翻译,即动态地址翻译

  1. 地址翻译方式

一个程序是加载到内存里事先划分好的某片区域,而且该程序是整个加载进去。物理地址 = 虚拟地址 + 程序所在的区域的起始地址【程序所在区域的起始地址为(程序)基址】。

地址保护只需要满足:程序所在区域的起始地址 ≤ 有效地址 ≤ 程序所在区域的起始地址 + 程序长度。 设置两个端值:基址和极限,即可以起到地址翻译和地址保护的的目的。这两个端值可以由两个寄存器来存放,分别为 基址寄存器和极限寄存器。

动态地址翻译的优点:第一个是灵活,程序可以随便加载到任何地方;第二个是它是实施地址保护的“不二法门”,对每个访问地址进行检查;第三个是它使得虚拟内存的概念得以实现。

         2. 多道编程下的内存管理策略有两种:固定分区和非固定分区。

非固定分区:除了划分给操作系统的空间外,其余的内存空间是作为一个整体存在的,但一个程序需占用内存空间时,就在该片空间里面分出一个大小刚刚满足程序所需的空间;再来一个程序,再这样分出一块来。在一开始给程序分配空间时就分足够大的空间,留有一片闲置空间供程序增长用。一个程序的空间增长通常有两个来源:数据和栈。如何处理这两种空间增长的关系会对整个程序的扩展性产生影响,最简单的办法是让数据和栈往相反的方向增长。Windows内存管理为栈限制了边界,超出该边界将造成程序错误并导致程序终止。

有一个问题:操作系统如何知道应该分配多少空间给一个程序呢?还有一个方法是,给该程序换一个空间;就是当一个程序所占空间不够时,我们将其倒出来到磁盘上,再加载到一片更大的内存空间去。这种将程序倒到磁盘上,再加载进内存的管理方法就成为交换(swap)。

综述,几种基本的内存管理方法分别是,固定加载地址的内存管理(单道编程)、固定分区的内存管理、非固定分区的内存管理和交换内存管理(后三种多道编程)。其中,交换内存管理最灵活,但是存在很大问题,空间浪费,造成“外部碎片”;地址空间增长困难,程序大小受限。

为了解决交换系统存在的缺陷,出现了分页系统。分页系统的核心就是将虚拟内存空间和物理内存空间皆划分为大小相同的页面,并以页面作为内存空间的最小分配单位。


摘录整理自《计算机的心智,操作系统之哲学原理》第11章 基本内存管理

【操作系统】堆与内存管理概述

—–要说到操作系统的堆与内存的管理的话,那内容真的是海了去了,从开始的地方就能不停的扩展,但内容的重要性也是不可言喻的,本片博客着重于总结以下三点: Linux的虚拟地址空间布局 堆和栈的管理,堆和栈...
  • bitboss
  • bitboss
  • 2017年04月13日 21:00
  • 588

操作系统内存管理概述

概述存储器分为内存和外存。主存就是内存,外存也称为辅存,就是磁盘,磁带机等外部设备。主存是和CPU通过总线相连的,CPU执行指令需要从内存(即主存,后文同理)从中访问指令和数据。内存被分为了两部分,一...

操作系统内存管理读书报告

  • 2011年06月29日 12:23
  • 34KB
  • 下载

操作系统课程设计内存管理系统

  • 2014年02月22日 14:58
  • 5.63MB
  • 下载

Spark 内存管理概述

介绍Spark内存管理中涉及到的相关概念

第1节 Linux的内存管理概述

6.1 Linux的内存管理概述 Linux是为多用户多任务设计的操作系统, 所以存储资源要被多个进程有效共享;且由于程序规模的不断膨胀,要求的内存空间比从前大得多。 Linux内存管理的设计...

操作系统内存管理

  • 2016年02月14日 21:48
  • 623KB
  • 下载

操作系统内存管理

  • 2013年12月16日 14:45
  • 4KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:操作系统内存管理概述
举报原因:
原因补充:

(最多只允许输入30个字)