文档介绍:第五课存储器管理(Memory Management)
教学目的:
存储器是计算机系统的重要组成部分,虽然内存容量在不断扩大,但内存仍是宝贵资源,如何提高主存储器利用率,并扩充大主存,对主存信息实现有效保护是存储器管理主要任务,也是各种不同存储管理方法的目标。“瓶颈”问题。
2001年9月20日9时23分
计算机操作系统
教学要求:
熟悉存储管理目的和功能,掌握地址重定位的概念。
熟悉单一连续分配、固定分区分配、动态分区分配实现原理;掌握可变式分区分配的数据结构和分配回收算法,掌握动态重定位分区分配实现原理和分配算法。
熟悉覆盖与交换的概念。
熟练掌握分页存储管理原理,熟练掌握基本的地址变换机构和具有快表的地址变换机构,了解两级页表机制。
掌握分段存储管理原理和分段地址变换机构,掌握分页和分段比较,熟悉分页和分段的共享,掌握段页式存储管理原理和地址变换机构。
2001年9月20日9时23分
计算机操作系统
存储管理概述
存储管理目的和功能:
1。主存储器(内存)的分配和回收
内存分配的主要任务是为每一道程序分配内存空间,使它们“各得其所”。使程序员无须关心存储分配问题,由OS完成。
2。存储保护
内存保护的任务是确保每道程序都在自己的内存空间运行,互不干扰。程序与OS也互不干扰。
3。地址映射:一个应用程序经编译后----若干个目标程序—链接形成可装入程序。逻辑地址----物理地址。
4。内存扩充
内存扩充的任务是从逻辑上来扩充内存容量,使用户认为系统所拥有的内存空间远比其实际的内存空间(硬件RAM)大的多。请求调入和置换功能。
提高主存储器的利用率,减少不可用的存储空间(称为“零头),允许多道程序动态共享主存。
2001年9月20日9时23分
计算机操作系统
一个用户源程序变为一个可在内存中执行的程序要做:
1)编译用户源代码—>几个目标模块/程序。
2)链接由链接程序把目标模块+它们所需库函数—>可装入模块。
3)装入由装入程序把装入模块—>内存。
例:一个PASCAL源程序。
程序的装入
装入模块
内存
OS
用户区
2001年9月20日9时23分
计算机操作系统
例:一个可执行程序 ,直接输入ball/play即可,装入程序内存运行(涉及到内存分配问题)。
一次装入静态分配问题(一次性地把进程所需资源分配给它)。
部分装入动态分配问题
绝对装入
可重定位装入
运行时装入
一、绝对装入方式(适应于单用户系统)汇编8088中启动各个段。
由编程人员指定位置装入内存/或编译程序对源程序编译时,所用的是实际存储地址。若是多用户,必须默契,实际工作中不可能。所以多用户系统不采用该方式。
2001年9月20日9时23分
计算机操作系统
二、可重定位装入
在装入时才确定对进程/作业的内存分配,需采用下述两个技术手段:
1)把逻辑地址与物理地址分开;
2)对逻辑地址采用地址重定位;
两个概念:地址空间和存储空间。
1、地址空间
在源程序中,是通过符号名来访问子程序和数据的,我们把程序中符号名的集合称为“名字空间”。汇编语言源程序经过汇编,或者高级语言源程序经过编译,得到的目标程序是以“0”作为参考地址的模块。然后多个目标模块由连接程序连接成一个具有统一地址的装配模块,以便最后装入内存中执行。我们把目标模块中的地址称为相对地址(或称为“逻辑地址”),而把相对地址的集合称为“相对地址空间”或简称为“地址空间”。
2、存储空间主存中一系列存储信息的物理单元的集合。这些单元的编号成为物理地址或绝对地址。
2001年9月20日9时23分
计算机操作系统
3、什么是地址重定位?
装配模块虽然具有统一的地址空间,但是仍是以“0”作为参考地址,即是浮动的。要把它装入内存执行,就要确定装入内存的实际物理地址,并修改程序中与地址有关的代码,这一过程称为地址重定位。即从逻辑地址物理地址
相对地址绝对地址
程序的名字空间、地址空间和存储空间之间的关系如图所示:
汇编/编译地址重定位
连接装入
名字空间地址空间存储空间
(相对地址/逻辑地址空间)(绝对地址/物理地址空间)
符号
源程序
相对目标程序(装配模块)
绝对目标程序
2001年9月20日9时23分
计算机操作系统
4、地址重定位类型
地址重定位完成把相对地址转换成内存中的绝对地址,这个过程称为地址映射(map)。按照重定位的时机,可分为静态重定位和动态重定位。
1)静态重定位
静态地址映射是在程序装入内存时