《操作系统原理》课件第五章存储管理.pptx
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《《操作系统原理》课件第五章存储管理.pptx》由用户(momomo)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统原理 操作系统原理课件第五章 存储管理 操作系统 原理 课件 第五 存储 管理
- 资源描述:
-
1、第五章第五章 存储管理(内存管理)存储管理(内存管理)5.1 存储管理功能存储管理功能5.2 分区存储管理分区存储管理5.3 覆盖和交换技术覆盖和交换技术5.4 页式管理(重点)页式管理(重点)第五章第五章 存储管理(内存管理)存储管理(内存管理)5.5 段式与段页式管理段式与段页式管理(重点)(重点)5.6 局部性原理和抖动问题局部性原理和抖动问题(重点)(重点)其中,其中,分区、页式和段式管理分区、页式和段式管理是三大存储管理方式是三大存储管理方式5.1 5.1 存储管理的主要功能存储管理的主要功能存储管理是指存储器资源(主要指内存)的管理存储管理是指存储器资源(主要指内存)的管理。1、主
2、要功能主要功能(1)虚拟地址的实现)虚拟地址的实现(2)存储器资源的组织(如内存的组织方式)存储器资源的组织(如内存的组织方式)(3)内外存数据传输的控制)内外存数据传输的控制5.1 5.1 存储管理的主要功能存储管理的主要功能1、主要功能主要功能(4)地址变换(逻辑地址与物理地址的对应关系维护)地址变换(逻辑地址与物理地址的对应关系维护)(5)内存的分配与释放算法)内存的分配与释放算法(6)虚拟存储的调度算法)虚拟存储的调度算法(7)内存数据的保护与共享)内存数据的保护与共享2 2、存储管理的主要目标、存储管理的主要目标(1)充分利用内存,为多道程序并发执行提供存储基础;)充分利用内存,为多
3、道程序并发执行提供存储基础;(2)尽可能方便用户使用、自动装入用户程序、用户程序)尽可能方便用户使用、自动装入用户程序、用户程序中不必考虑硬件细节;中不必考虑硬件细节;(3)系统能够解决程序空间比实际内存空间大的问题;)系统能够解决程序空间比实际内存空间大的问题;5.1 存储管理的主要功能存储管理的主要功能(4)程序在执行时可以动态伸缩)程序在执行时可以动态伸缩;(5)内存存取速度快,存储保护与安全)内存存取速度快,存储保护与安全;(6)共享与通信,了解有关资源的使用状况。)共享与通信,了解有关资源的使用状况。2 2、存储管理的主要目标、存储管理的主要目标5.1 5.1 存储管理的主要功能存储
4、管理的主要功能5.1.1 5.1.1 存储组织存储组织1、存储器的发展方向:高速、大容量和小体积。存储器的发展方向:高速、大容量和小体积。内存在访问速度方面的发展:内存在访问速度方面的发展:DRAM、SDRAM(synchronous dynamic random-access memory)、SRAM等;等;硬盘技术在大容量方面的发展:接口标准、存储密度等。硬盘技术在大容量方面的发展:接口标准、存储密度等。5.1.1 5.1.1 存储组织存储组织2、存储组织:指在存储技术和存储组织:指在存储技术和CPU寻址技术许可的范围内寻址技术许可的范围内组织合理的存储结构。组织合理的存储结构。其依据是访
5、问速度匹配关系、容量要求和价格;其依据是访问速度匹配关系、容量要求和价格;“寄存器寄存器-内存内存-外存外存”结构;结构;“寄存器寄存器-缓存缓存-内存内存-外存外存”结构。结构。3 3、存储层次结构存储层次结构5.1.1 5.1.1 存储组织存储组织(1)快速缓存:快速缓存:Data Cache TLB(Translation Lookaside Buffer)(2)内存:内存:DRAM,SDRAM等;等;(3)外存:硬盘、光盘、磁带等;外存:硬盘、光盘、磁带等;5.1.1 5.1.1 存储组织存储组织3、存储层次结构存储层次结构5.1.2 5.1.2 存储管理的功能存储管理的功能1 1、存
6、储分配和回收存储分配和回收 分配和回收算法及相应的数据结构:通过建表、查表、分配和回收算法及相应的数据结构:通过建表、查表、改表和回收内存使用情况,系统或用户申请内存时按选改表和回收内存使用情况,系统或用户申请内存时按选定分配算法确定分区等定分配算法确定分区等。5.1.2 5.1.2 存储管理的功能存储管理的功能2、地址变换:逻辑地址向物理地址的变换地址变换:逻辑地址向物理地址的变换(1)可执行文件生成中的链接技术;)可执行文件生成中的链接技术;(2)程序加载时的重定位技术;)程序加载时的重定位技术;(3)进程运行时硬件和软件的地址变换技术和机构;)进程运行时硬件和软件的地址变换技术和机构;5
7、.1.2 5.1.2 存储管理的功能存储管理的功能3、存储共享和保护存储共享和保护 各进程只在自己所属区域中运行,不破坏别的进程各进程只在自己所属区域中运行,不破坏别的进程以及不被破坏、代码和数据共享、地址空间访问权限以及不被破坏、代码和数据共享、地址空间访问权限(读、写、执行)(读、写、执行)5.1.2 5.1.2 存储管理的功能存储管理的功能4 4、存储器扩充(虚拟存储技术)存储器扩充(虚拟存储技术)使用虚存或自动复盖技术提供比实际内存更大的空间使用虚存或自动复盖技术提供比实际内存更大的空间5.1.2 5.1.2 存储管理的功能存储管理的功能5、存储器的逻辑组织和物理组织存储器的逻辑组织和
8、物理组织(1)由应用程序控制:覆盖;)由应用程序控制:覆盖;(2)由)由OS控制:交换(整个进程空间),虚拟存储的控制:交换(整个进程空间),虚拟存储的请求调入和预调入(部分进程空间)请求调入和预调入(部分进程空间)5.1.3 5.1.3 重定位方法(地址变换)重定位方法(地址变换)1、为什么要重定位?、为什么要重定位?(1)定义)定义(2)如何重定位?)如何重定位?(3)方式)方式 2.2.逻辑地址、物理地址和地址映射逻辑地址、物理地址和地址映射逻辑地址逻辑地址(虚地址):用户的程序经过汇编或编译后形成(虚地址):用户的程序经过汇编或编译后形成目标代码,目标代码采用逻辑地址的形式。目标代码,
9、目标代码采用逻辑地址的形式。(1)其首地址为)其首地址为0,其余指令中的地址都相对于首地址来,其余指令中的地址都相对于首地址来编址;编址;(2)不能用逻辑地址在内存中读取信息。)不能用逻辑地址在内存中读取信息。5.1.3 5.1.3 重定位方法(地址变换)重定位方法(地址变换)2.2.逻辑地址、物理地址和地址映射逻辑地址、物理地址和地址映射 物理地址物理地址(实地址):内存中存储单元的地址。物理地址(实地址):内存中存储单元的地址。物理地址可直接寻址。可直接寻址。5.1.3 5.1.3 重定位方法(地址变换)重定位方法(地址变换)2.2.逻辑地址、物理地址和地址映射逻辑地址、物理地址和地址映射
10、地址映射地址映射:将用户程序中的逻辑地址转换为运行时由机器:将用户程序中的逻辑地址转换为运行时由机器直接寻址的物理地址。直接寻址的物理地址。5.1.3 5.1.3 重定位方法(地址变换)重定位方法(地址变换)把逻辑地址转换成物理地址称为()。地址分配A地址映射B地址保护C地址越界D提交单选题1分2.2.逻辑地址、物理地址和地址映射逻辑地址、物理地址和地址映射当程序装入内存时当程序装入内存时,操作系统要为该程序分配一个合适操作系统要为该程序分配一个合适的内存空间,由于程序的逻辑地址与分配到内存物理的内存空间,由于程序的逻辑地址与分配到内存物理地址不一致地址不一致,而而CPUCPU执行指令时,是按
11、物理地址进行的,执行指令时,是按物理地址进行的,所以要进行地址转换。所以要进行地址转换。5.1.3 5.1.3 重定位方法(地址变换)重定位方法(地址变换)Load A,data13456源程序源程序Load A,2003456逻辑地址空间逻辑地址空间Load A,2003456物理地址空间物理地址空间编译链接编译链接地址映射地址映射BA1000 120010020002 2、逻辑地址、物理地址和地址映射逻辑地址、物理地址和地址映射Data1Load A,2003456逻辑地址空间逻辑地址空间物理地址空间物理地址空间001002003001100 12001300VR200BR10002.2.
12、逻辑地址、物理地址和地址映射逻辑地址、物理地址和地址映射3 3、地址变换图、地址变换图图图5.1地址变换与物理存储器地址变换与物理存储器5.1.3 5.1.3 重定位方法(地址变换)重定位方法(地址变换)4 4、虚拟空间(逻辑地址)划分、虚拟空间(逻辑地址)划分图图5.2 虚拟空间的划分虚拟空间的划分逻辑地址最大空间大小由逻辑地址最大空间大小由CPUCPU字长决定字长决定5.1.3 5.1.3 重定位方法(地址变换)重定位方法(地址变换)CPU 64CPU 64位位 虚拟地址空间虚拟地址空间 虚拟地址只使用了虚拟地址只使用了48位,使用位,使用12位位16进制表示,进制表示,48位地址长度也就
13、位地址长度也就是对应了是对应了256TB的地址空间。的地址空间。n在在Linux下有效的地址区间是从下有效的地址区间是从 0 x00000000 00000000 0 x00007FFF FFFFFFFF 还有还有 0 xFFFF8000 00000000 0 xFFFFFFFF FFFFFFFF 两个地址区间。而每个地址区间都有两个地址区间。而每个地址区间都有128TB的地址空间可以使用,所以总共是的地址空间可以使用,所以总共是256TB的可用空间。的可用空间。5 5、重定位、重定位(1 1)重定位定义重定位定义 在可执行文件装入时需要解决可执行文件中地址(指令和在可执行文件装入时需要解决可
14、执行文件中地址(指令和数据)和内存地址的对应。由操作系统中的数据)和内存地址的对应。由操作系统中的装入程序装入程序loaderloader来完成。来完成。5.1.3 5.1.3 重定位方法(地址变换)重定位方法(地址变换)把作业地址空间中使用的逻辑地址变成内存中物理地址称为()。加载A重定位B物理化C逻辑化D提交单选题1分5 5、重定位、重定位(2 2)重定位方法重定位方法 绝对装入绝对装入 可重定位装入可重定位装入 动态装入动态装入5.1.3 5.1.3 重定位方法(地址变换)重定位方法(地址变换)(2 2)重定位方法重定位方法 1)绝对装入)绝对装入(absolute loading)在可
15、执行文件指令中记录内存地址,装入时直接定位在上述在可执行文件指令中记录内存地址,装入时直接定位在上述(即文即文件中记录的地址件中记录的地址)内存地址。内存地址。优点:装入过程简单,如优点:装入过程简单,如.COM。缺点:过于依赖于硬件结构,不适于多道程序系统。缺点:过于依赖于硬件结构,不适于多道程序系统。5.1.3 5.1.3 重定位方法(地址变换)重定位方法(地址变换)(2 2)重定位方法重定位方法 2)可重定位装入)可重定位装入(静态地址重定位)静态地址重定位)在可执行文件指令中,在可执行文件指令中,列出列出各个需要重定位的地址单元各个需要重定位的地址单元和相对地址值;和相对地址值;当用户
16、程序被装入内存时,当用户程序被装入内存时,一次性一次性实现逻辑地址到物理实现逻辑地址到物理地址的地址的转换转换。5.1.3 5.1.3 重定位方法(地址变换)重定位方法(地址变换)静态重定位的时机是().程序编译时A程序链接时B程序装入时C程序运行时D提交单选题1分(2 2)重定位方法重定位方法 2)可重定位装入)可重定位装入(静态地址重定位)静态地址重定位)优点:不需硬件支持,可以装入有限多道程序(如优点:不需硬件支持,可以装入有限多道程序(如MS DOS中的中的TSR)。)。缺点:一个程序通常需要占用连续的内存空间,程序装入缺点:一个程序通常需要占用连续的内存空间,程序装入内存后不能移动,
17、不易实现共享。内存后不能移动,不易实现共享。5.1.3 5.1.3 重定位方法(地址变换)重定位方法(地址变换)jmp150100150.RelocationTable0jmp15021002150.2000可执行文件在内存中的重定位可执行文件在内存中的重定位说明:重定位表中说明:重定位表中列出列出所有修改的位置。所有修改的位置。重定位修改:重定位表中的重定位修改:重定位表中的150-绝对地绝对地2150(=2000+150)内容修改:内容内容修改:内容100(逻辑地址)变成逻辑地址)变成2100(=100+2000)。5.1.3 5.1.3 重定位方法(地址变换)重定位方法(地址变换)(2)
18、重定位方法重定位方法 3)动态装入(动态地址重定位)动态装入(动态地址重定位)在运行过程中要访问数据时再进行地址变换;在运行过程中要访问数据时再进行地址变换;硬件上需要硬件上需要一对寄存器一对寄存器的支持的支持,装入和执行时通过硬件装入和执行时通过硬件地址变换机构,完成虚拟地址到实际内存地址的变换。地址变换机构,完成虚拟地址到实际内存地址的变换。5.1.3 5.1.3 重定位方法(地址变换)重定位方法(地址变换)(2)重定位方法重定位方法 3)动态装入(动态地址重定位)动态装入(动态地址重定位)优点:优点:OS可以将一个程序分散存放于不连续的内存空间,可以将一个程序分散存放于不连续的内存空间,
19、有利用实现共享;有利用实现共享;能够支持程序执行中产生的地址引用,如指针变量。能够支持程序执行中产生的地址引用,如指针变量。5.1.3 5.1.3 重定位方法(地址变换)重定位方法(地址变换)(2)重定位方法重定位方法 3)动态装入(动态地址重定位)动态装入(动态地址重定位)缺点:需要硬件支持(通常是缺点:需要硬件支持(通常是CPU),),OS实现较复杂。实现较复杂。它是虚拟存储的基础。它是虚拟存储的基础。5.1.3 5.1.3 重定位方法(地址变换)重定位方法(地址变换)5.1.4 5.1.4 链接链接1、链接方法链接方法2、链接举例链接举例链接是指多个目标模块在执行时的链接是指多个目标模块
20、在执行时的地址空间分配和相互引用。地址空间分配和相互引用。1.静态链接静态链接(static-linking)静态链接是静态链接是在程序执行之前在程序执行之前,必须由链接装配程序把它,必须由链接装配程序把它们连接成一个可运行的目标程序。们连接成一个可运行的目标程序。(问题:浪费空间问题:浪费空间)。在目标模块中在目标模块中(.obj)记录符号地址记录符号地址(symbolic address),而在可执行文件中改写为指令直接使用的数字地址。而在可执行文件中改写为指令直接使用的数字地址。5.1.4 5.1.4 链接链接1.静态链接静态链接(static-linking)Module AModul
21、e Acall function10L-1Module BModule B0M-1function1().function1FModule AModule Acall L+F0L-1Module BModule BLL+M-1function1().function1L+F5.1.4 5.1.4 链接链接在程序执行过程中,在程序执行过程中,由于执行的需要而进行的动态链接。由于执行的需要而进行的动态链接。通常被链接的共享代码称为动态链接库通常被链接的共享代码称为动态链接库(DLL,Dynamic Link(DLL,Dynamic Link Library)Library)或共享库或共享库(sha
22、red library)(shared library)。2.2.动态链接动态链接(dynamic-linking)(dynamic-linking)5.1.4 5.1.4 链接链接程序动态链接的时刻是()。编译时A装入时B调用时C紧凑时D提交单选题1分(1)段的动态链接)段的动态链接 在程序开始运行时,只将主程序段装配好并调入内存,在程序开始运行时,只将主程序段装配好并调入内存,其它各段的装配是在主程序段的运行过程中逐步完成;其它各段的装配是在主程序段的运行过程中逐步完成;每当需要调用一个新段时,再将这个新段装配好,并与每当需要调用一个新段时,再将这个新段装配好,并与主程序段链接。主程序段链
23、接。2.2.动态链接动态链接(dynamic-linking)(dynamic-linking)5.1.4 5.1.4 链接链接(2 2)优点与缺点)优点与缺点优点:能够减少软件规模优点:能够减少软件规模缺点:如果缺少共享的动态链接库,软件无法运行。缺点:如果缺少共享的动态链接库,软件无法运行。2.动态链接动态链接(dynamic-linking)5.1.4 5.1.4 链接链接能够装入内存任何位置的代码程序必须是()。可重入的A可定位的B可动态链接的C可静态链接的D提交单选题1分5.1.5 5.1.5 内存信息的共享与保护内存信息的共享与保护1、原则、原则 共享的信息可以供多个进程使用,不共
24、享的资源只能供共享的信息可以供多个进程使用,不共享的资源只能供本进程使用。本进程使用。2、内存信息保护方法、内存信息保护方法 硬件、软件和软硬件结合。硬件、软件和软硬件结合。2 2、内存信息保护方法、内存信息保护方法(1)上下界保护法上下界保护法 常见的硬件保护法常见的硬件保护法 硬件需求硬件需求 上下界寄存器,装有被保护程序和数据段的起始和终止地址上下界寄存器,装有被保护程序和数据段的起始和终止地址5.1.5 5.1.5 内存信息的共享与保护内存信息的共享与保护2 2、内存信息保护方法、内存信息保护方法(1)上下界保护法上下界保护法 原理原理 在程序执行过程中,进程在访问内存时首先进行访址在
25、程序执行过程中,进程在访问内存时首先进行访址合法性检查,即检查经过重定位后的内存地址是否在合法性检查,即检查经过重定位后的内存地址是否在规定的地址范围之内。规定的地址范围之内。5.1.5 5.1.5 内存信息的共享与保护内存信息的共享与保护图5.4上、下界寄存器保护法5.1.5 5.1.5 内存信息的共享与保护内存信息的共享与保护2 2、内存信息保护方法、内存信息保护方法(1 1)上下界保护法上下界保护法在计算机的发展过程中,之所以提出存储保护的要求,是因为在 a 填空1 的情况下,内存中有多个程序存在,有必要防止其中某个程序的错误破坏其他程序的存储区域。存储保护可采用的方法有:把上限和下限地
展开阅读全文