操作系统存储管理.ppt
文本预览下载声明
第三章 存储管理 3.1 存储概述 3.2 分区存储管理 3.3 段式存储管理 3.4 页式存储管理 3.5 段页式存储管理 3.6 覆盖和交换技术 3.7 虚拟存储 3.1 存储概述 3.1.1 存储组织 3.1.2 存储管理的目的 3.1.3 存储管理的功能 3.1.4 重定位 3.1.5 链接 3.1.1 存储组织 存储器的功能是保存数据,存储器的发展方向是高速、大容量和小体积 内存在访问速度方面的发展:DRAM、SDRAM、SRAM等; 硬盘技术在大容量方面的发展:接口标准、存储密度等; 存储组织是指在存储技术和CPU寻址技术许可的范围内组织合理的存储结构 其依据是访问速度匹配关系、容量要求和价格。 “寄存器-内存-外存”结构 “寄存器-缓存-内存-外存”结构; 微机中的存储层次组织 快速缓存: Data Cache TLB(Translation Lookaside Buffer) 内存:DRAM, SDRAM等; 外存:软盘、硬盘、光盘、磁带等; 3.1.2 存储管理的目的 充分利用内存,为多道程序并发执行提供存储基础 尽可能方便用户使用 自动装入用户程序 用户程序中不必考虑硬件细节 系统能够解决程序空间比实际内存空间大的问题 程序在执行时可以动态伸缩 内存存取速度快 存储保护与安全 共享与通信 了解有关资源的使用状况 实现的性能和代价 3.1.3 存储管理的功能(1) 存储分配和回收:分配和回收算法及相应的数据结构 记录内存的使用情况 ——设置相应的内存分配表,(内存分配回收的依据) 内存空间划分问题? 静态或动态,等长或不等长 3.1.3 存储管理的功能(2) 存储共享:两或多个进程共用内存中相同区域 目的: 节省内存空间,提高内存利用率 实现进程通信(数据共享) 共享内容: 代码共享,要求代码为纯代码 数据共享 存储保护 设置地址空间访问权限(读、写、执行),避免各道程序间相互干扰 通常由硬件完成保护功能,由软件辅助实现 存储保护的过程 防止地址越界 当程序要访问某个内存单元时,由硬件检查是否允许,如果允许则执行,否则产生地址越界中断,由操作系统进行相应处理 一般由硬件提供一对寄存器: 基址寄存器:存放起始地址 限长寄存器:存放长度 防止操作越权 即读写保护 代码段只读,数据段可读和写 3.1.3 存储管理的功能(3) 内存扩充: 用户在编制程序时,不应该受内存容量限制,所以要采用一定技术来“扩充”内存的容量,使用户得到比实际内存容量大的多的内存空间 具体实现是在硬件支持下,软硬件相互协作,将内存和外存结合起来统一使用 实现技术 由应用程序控制:覆盖; 由OS控制:交换(整个进程空间),虚拟存储的请求调入和预调入(部分进程空间) 3.1.3 存储管理的功能(4) 地址变换:(又称地址重定位、地址映射) 可执行文件生成中的链接技术 程序加载(装入)时的重定位技术 进程运行时硬件和软件的地址变换技术和机构 逻辑地址(相对地址,虚地址) 物理地址(绝对地址,实地址) 地址映射 3.1.4 重定位(地址映射) 重定位:在可执行文件装入时需要解决可执行文件中地址(指令和数据)和内存地址的对应。由操作系统中的装入程序loader来完成 程序在成为进程前的准备工作 编辑:形成源文件(符号地址) 编译:形成目标模块(模块内符号地址解析) 链接:由多个目标模块或程序库生成可执行文件(模块间符号地址解析) 装入:构造PCB,形成进程(使用物理地址) 重定位方法: 绝对装入 可重定位装入 动态装入 1. 逻辑地址、物理地址和地址映射 逻辑地址(相对地址,虚地址):用户的程序经过汇编或编译后形成目标代码,目标代码通常采用相对地址的形式 其首地址为0,其余指令中的地址都相对于首地址来编址 不能用逻辑地址在内存中读取信息 物理地址(绝对地址,实地址):内存中存储单元的地址。物理地址可直接寻址 地址映射:将用户程序中的逻辑地址转换为运行时由机器直接寻址的物理地址。 当程序装入内存时, 操作系统要为该程序分配一个合适的内存空间,由于程序的逻辑地址与分配到内存物理地址不一致,所以要进行地址转换 逻辑地址、物理地址和地址映射 地址映射过程 2. 绝对装入(absolute loading) 优点:装入过程简单。 缺点:过于依赖于硬件结构,不适于多道程序系统。 3. 可重定位装入(relocatable loading) 优点:不需硬件支持,可以装入有限多道程序(如MS DOS中的TSRTerminate/Stay Resident)。 缺点:一个程序通常需要占用连续的内存空间,程序装入内存后不能移动。不易实现共享。 可执行文件在内存中的重定位 4. 动态装入(dynamic run-time loading) 优点: OS可以将一个程序
显示全部