第四章存储管理4.1引言4.2连续存储空间管理4.3页式段式存储管理4.4虚拟存储管理4.1引言4.1.1存储组织4.1.2存储管理的功能4.1.3重定位方法4.1.4存储保护4.1.5存储分配的方式4.1.1存储组织存储器的功能是保存数据,存储器的发展方向是高速、大容量和小体积。•内存在访问速度方面的发展:DRAM、SDRAM、SRAM等;•硬盘技术在大容量方面的发展:接口标准、存储密度等;存储组织是指在存储技术和CPU寻址技术许可的范围内组织合理的存储结构。•其依据是访问速度匹配关系、容量要求和价格。•“寄存器-内存-外存”结构•“寄存器-缓存-内存-外存”结构存储层次结构外存(secondarystorage)DOS核心命令处理程序内存(primarystorage)快速缓存(cache)寄存器(register)高速缓存Cache:少量的、非常快速、昂贵、易变的内存RAM:若干兆字节、中等速度、中等价格、易变的磁盘:数百兆或数千兆字节、低速、价廉、不易变的由操作系统协调这些存储器的使用4.1.2存储管理的功能存储分配和回收:分配和回收算法及相应的数据结构。地址变换:存储共享和保护:•代码和数据共享•地址空间访问权限(读、写、执行)存储器扩充:存储器的逻辑组织和物理组织•由应用程序控制:覆盖•由OS控制:交换(整个进程空间),虚拟存储的请求调入和预调入(部分进程空间)4.1.3重定位方法重定位:在可执行文件装入时需要解决可执行文件中地址(指令和数据)和内存地址的对应。由操作系统中的装入程序loader来完成。程序在成为进程前的准备工作•编辑:形成源文件(符号地址)•编译:形成目标模块(模块内符号地址解析)•链接:由多个目标模块或程序库生成可执行文件(模块间符号地址解析)•装入:构造PCB,形成进程(使用物理地址)重定位方法:•绝对装入•可重定位装入1.逻辑地址、物理地址和地址映射逻辑地址(相对地址,虚地址):用户的程序经过汇编或编译后形成目标代码,目标代码通常采用相对地址的形式。•其首地址为0,其余指令中的地址都相对于首地址来编址。•不能用逻辑地址在内存中读取信息。物理地址(绝对地址,实地址):内存中存储单元的地址。物理地址可直接寻址。地址映射:将用户程序中的逻辑地址转换为运行时由机器直接寻址的物理地址。•当程序装入内存时,操作系统要为该程序分配一个合适的内存空间,由于程序的逻辑地址与分配到内存物理地址不一致,而CPU执行指令时,是按物理地址进行的,所以要进行地址转换。逻辑地址、物理地址和地址映射地址映射BA=1000LoadA2003456。。。1200物理地址空间LoadAdata1data13456源程序LoadA20034560100200编译连接逻辑地址空间2.绝对装入(absoluteloading)优点:装入过程简单。缺点:过于依赖于硬件结构,不适于多道程序系统。在可执行文件中记录内存地址,装入时直接定位在上述(即文件中记录的地址)内存地址。3.可重定位装入(relocatableloading)1)静态重定位优点:不需硬件支持,可以装入有限多道程序。缺点:一个程序通常需要占用连续的内存空间,程序装入内存后不能移动。不易实现共享。在可执行文件中,列出各个需要重定位的地址单元和相对地址值。当用户程序被装入内存时,一次性实现逻辑地址到物理地址的转换,以后不再转换(一般在装入内存时由软件完成)。即:装入时根据所定位的内存地址去修改每个重定位地址项,添加相应偏移量。转换公式:物理地址=逻辑地址+程序在内存中的首地址jmp150100150...RelocationTable0jmp15021002150...2000可执行文件在内存中的重定位说明:重定位表中列出所有修改的位置。如:重定位表的150表示相对地址150处的内容为相对地址(即100为从0起头的相对位置)。在装入时,要依据重定位后的起头位置(2000)修改相对地址。•重定位修改:重定位表中的150->绝对地址2150(=2000+150)•内容修改:内容100变成2100(=100+2000)。3.可重定位装入(relocatableloading)2)动态重定位在程序执行过程中,每当访问指令或数据时,将要访问的程序或数据的逻辑地址转换成物理地址。由于重定位过程是在程序执行期间随着指令的执行逐步完成的,故称为动态重定位。转换过程:当程序开始执行时,...