当前位置:文档之家› 第4章存储器管理(10-5-13)详解

第4章存储器管理(10-5-13)详解


第四章 存 储 器 管 理
内存管理概述
计算机的存储体系回顾
第四章 存 储 器 管 理
CPU寄 存 器 主存
辅存
寄存器 高速缓存
主存 磁盘缓存
磁盘 可移动存储介质
图4-1 计算机系统存储层次示意
第四章 存 储 器 管 理
内存管理的目的
内存管理概述
操作系统的“方便”性
便于用户装入程序,无须了解底层细节 可实现动态的存储空间伸缩,适应不同程序的需要
1. 绝对装入方式
按模块中的地址,将程序和数据装入到内存对应 位置。程序中所使用的绝对地址,既可在编译或 汇编时给出, 也可由程序员直接赋予。
第四章 存 储 器 管 理
1、Absolute Loading Mode(ALM)
Jump k
k
Load m
m
1024 汇编/编译 1424
Jump 1424 Load 2224
内存空间的管理、分配和回收
内存空间的使用情况记录——位图、分配表、分区表 内存空间的分配与回收——定长与不定长、静态与动态
内存空间的地址映射(转换)
物理地址与逻辑地址的差别
内存空间的共享和保护
内存共享:进程与线程、中间件应用 内存保护:如何防止地址越界或操作越权?
内存空间的扩充
虚拟存储:如何使用小内存空间来运行大的程序?
第四章 存 储 器 管 理
1、静态链接
0 模块A Call B
L-1 Return
0 模块B Call C
动态重定位:在程序执行时,每当访问 指令和数据时,将要访问的指令和数据 的相对地址转换成绝对地址。
Jump k
k
Load m
m
汇编 0 Jump 400
编译
400 Load 1200
1200
1000
1000
Jump 400 400 +
装入
1400
Load 1200 1200
+
2200
作业空间
内存空间
虽然可以把程序装入到内存的任意位置,但 不允许程序在内存中移动位置。 如果程序在内存中移动,就必须对程序中的 地址进行修改才能正常运行。
动态运行时装入程序:把装入模块装入 内存时,不把程序中的地址转换成实际 的物理地址,而是在运行时才进行地址 转换。
第四章 存 储 器 管 理
3、Dynamic Run-Time Loading
2224
1024 Jump 1424
装入 1424 Load 2224
2224
绝对装入方式:在编译时,已经知道程序要驻 留在内存的位置,如地址1024开始,则编译程
序直接产生从该地址向上开展的目标代码,目 标代码中全部采用绝对地址。
第四章 存 储 器 管 理
2.重定位装入方式
ALM存在问题:多道程序环境下,编译 程序无法预先知道程序的装入位置。 重定位装入:目标模块的起始地址通常 是从0开始,其他地址也是相对于起始地 址计算的。在程序装入时,把目标程序 中的指令和数据的相对地址(有效地址)修 改成装入位置处内存的物理地址。
第四章 存 储 器 管 理
0
10 00 LOAD 1,25 00
25 00 36 5
50 00 作 业地 址 空 间
10 000 11 000 LOAD 1,25 00
12 500
36 5
15 000
内 存空 间
图 4-2 作业装入内存时的情况
第四章 存 储 器 管 理
2、Relocatable Loading Mode-RLM
存储管理概述
内存管理节或字)组成的一维连续地址空 间,用来存放当前正在运行的程序的代码或数据, 是程序中指令本身(程序计数器)所指向的存储 空间。
第四章 存 储 器 管 理
4.1 存储器的层次结构
多级存储器结构
对于通用计算机而言,存储层次至少应具有三级:最高 层为CPU寄存器,中间为主存,最底层是辅存。在较高档的 计算机中,还可以根据具体的功能分工细划为寄存器、高速 缓存、主存储器、磁盘缓存、固定磁盘、可移动存储介质等6 层。如图4-1所示,在存储层次中越往上,存储介质的访问速 度越快,价格也越高,相对存储容量也越小。其中,寄存器、 高速缓存、主存储器和磁盘缓存均属于操作系统存储管理的 管辖范畴,掉电后它们存储的信息不再存在。固定磁盘和可 移动存储介质属于设备管理的管辖范畴,它们存储的信息将 被长期保存。
运行时
第四章 存 储 器 管 理
4.2.2 程序的链接
链接的主要功能:把经汇编、编译所得到 的一组目标模块和所需的库函数目标模块 一起,装配成一个完整的装入模块。有三 种链接方法:
静态链接 装入时动态链接 运行时动态链接
第四章 存 储 器 管 理
链接需要解决两个问题:
修改相对地址:编译产生的目标模块起 始地址为0,除第一块外,其余的相对地 址全部要修改。 变换外部调用符号:把外部调用符号变 换成相对地址—形成可执行文件。
操作系统的“合理”性
合理分配内存空间,保证多道程序的顺利运行 合理保护内存空间,防止各种可能的破坏泄漏
操作系统的“有效性”
有效保持内存空间的可用性,防止对资源的浪费 有效实现“小空间大容量”,提高计算机的适应性 有效配合CPU的调度过程,实现系统运行的稳定
第四章 存 储 器 管 理
内存管理的任务
内存管理概述
第四章 存 储 器 管 理
第四章 存储器管理
4.1 存储器的层次结构 4.2 程序的装入和链接 4.3 连续分配方式 4.4 基本分页存储管理方式 4.5 基本分段存储管理方式 4.6 虚拟存储器的基本概念 4.7 请求分页存储管理方式 4.8 页面置换算法 4.9 请求分段存储管理方式
第四章 存 储 器 管 理
Jump k
k Load m
0
汇编/编译
Jump 400
400 Load 1200
1000
装入
Jump 1400
1400 Load 2200
2200
m
1200
作业空间
内存空间
静态重定位:地址变换只是在装入时一次性完成,以后不
再改变。
第四章 存 储 器 管 理
2.动态运行时装入方式
可重定位装入方式存在问题:
第四章 存 储 器 管 理
4.2 程序的装入和链接
图 4-1 对用户程序的处理步骤
第四章 存 储 器 管 理
4.2.1 程序的装入
如果程序为多个模块,则需要进行链接;单个目 标模块无须进行链接。在Unix/Linux链接有多种 方式。单模块的装入方式:
绝对装入方式
可重定位方式
第四章 存 储 器 管 理
相关主题