存储管理幻灯片

上传人:爱****1 文档编号:927260 上传时间:2017-05-22 格式:PPT 页数:135 大小:1.46MB
返回 下载 相关 举报
存储管理幻灯片_第1页
第1页 / 共135页
存储管理幻灯片_第2页
第2页 / 共135页
存储管理幻灯片_第3页
第3页 / 共135页
存储管理幻灯片_第4页
第4页 / 共135页
存储管理幻灯片_第5页
第5页 / 共135页
点击查看更多>>
资源描述

《存储管理幻灯片》由会员分享,可在线阅读,更多相关《存储管理幻灯片(135页珍藏版)》请在金锄头文库上搜索。

1、西安理工大学高科学院李杨Emai:,第六章 存储管理,6.1 存储管理的基本概念6.2 单道程序下的存储管理 6.3 分区存储管理6.4 分页存储管理6.5 分段存储管理6.6 段页式存储管理6.7 虚拟存储器的实现,6.1 存储管理的基本概念,存储器是计算机系统的重要资源之一。因为任何程序和数据以及各种控制用的数据结构都必须占用一定的存储空间,因此,存储管理直接影响系统性能。 存储器由内存(primary storage)和外存(secondary storage)组成。本章讨论的主要是内存管理问题。,6.1.1 存储管理的对象和目标,存储管理主要针对主存储器中用户区域进行管理,同时,也包括

2、对辅存储器的管理。,操作系统核心,用户区域,快速缓存Data CacheTLB(Translation Lookaside Buffer,变换索引缓冲区 )内存:DRAM, SDRAM等外存:软盘、硬盘、光盘、磁带等,存储层次结构,存储管理的目的,充分利用内存,为多道程序并发执行提供存储基础尽可能方便用户使用自动装入用户程序用户程序中不必考虑硬件细节系统能够解决程序空间比实际内存空间大的问题,6.1.2 存储管理的基本功能, 存储分配和回收:按照一定的算法把某一空闲的主存区分配给作业或进程以及回收系统或用户释放的空间。 地址变换:将程序地址空间中使用的逻辑地址变换成主存中的地址的过程程序加载(

3、装入)时的重定位技术可执行文件生成中的链接技术进程运行时硬件和软件的地址变换技术和机构 存储共享和保护:保证用户程序(或进程映象)共享主存中的数据,并且在各自的存储区域内操作,互不干扰。代码和数据共享地址空间访问权限(读、写、执行) 存储器扩充:使用户程序的大小和结构不受主存容量和结构的限制。由应用程序控制:覆盖;由OS控制:交换(整个进程空间),虚拟存储的请求调入和预调入(部分进程空间),6.1.3 存储分配方式, 直接分配方式:程序员在编写程序时,或编译程序对源程序进行编译时,所用的就是实际的存储地址。 前提:事先确定一个作业在主存中的位置; 缺点:存储空间的利用率不高,对用户使用不方便。

4、 静态分配:在作业装入内存时才确定它们在内存中的位置,并在其整个运行期间不能在内存中移动,也不能再申请内存空间。 前提:一个作业装入内存时必须分配其要求的全部存储量,并且退出前不释放; 缺点:在多道程序系统中不能有效地共享存储器资源。 动态分配:在作业装入内存时才确定它们在内存中的位置,但在其整个运行期间可以再申请内存空间,也可在内存中移动。一个作业已占有的存储区不再需要时,可以归还给系统。,所谓存储分配,主要是讨论和解决多道作业之间共享主存的存储空间的问题。需要解决的问题:When,How,或是把一个作业的全部或是部分信息分配在主存中。 解决存储分配的问题,有三种方式:,目前绝大多数系统都采

5、用的是静态或动态存储分配方式分析用户程序的主要处理阶段:编辑:形成源文件编译:形成目标模块链接:由多个目标模块或程序库生成可执行文件装入:构造PCB,形成进程(使用物理地址)运行:建立的进程在CPU在执行装入阶段:程序必须装到内存才能运行,这需要装入程序根据内存的使用情况和分配策略,将上述装入模块放入分到的内存中。这时,可能要进行地址映射(重定位),6.1.4 地址重定位, 直接分配方式:程序员在编写程序时,或编译程序对源程序进行编译时,所用的就是实际的存储地址。 前提:事先确定一个作业在主存中的位置; 缺点:存储空间的利用率不高,对用户使用不方便。 静态分配:在作业装入内存时才确定它们在内存

6、中的位置,并在其整个运行期间不能在内存中移动,也不能再申请内存空间。 前提:一个作业装入内存时必须分配其要求的全部存储量,并且退出前不释放; 缺点:在多道程序系统中不能有效地共享存储器资源。 动态分配:在作业装入内存时才确定它们在内存中的位置,但在其整个运行期间可以再申请内存空间,也可在内存中移动。一个作业已占有的存储区不再需要时,可以归还给系统。,所谓存储分配,主要是讨论和解决多道作业之间共享主存的存储空间的问题。需要解决的问题:When,How,或是把一个作业的全部或是部分信息分配在主存中。 解决存储分配的问题,有三种方式:,6.1.4 地址重定位,逻辑地址(相对地址,虚地址):用户的程序

7、经过汇编或编译后形成目标代码,目标代码通常采用相对地址的形式。其首地址为0,其余指令中的地址都相对于首地址来编址。不能用逻辑地址在内存中读取信息。物理地址(绝对地址,实地址):内存中存储单元的地址。物理地址可直接寻址。地址映射:将用户程序中的逻辑地址转换为运行时由机器直接寻址的物理地址。当程序装入内存时, 操作系统要为该程序分配一个合适的内存空间,由于程序的逻辑地址与分配到内存物理地址不一致, 而CPU执行指令时,是按物理地址进行的,所以要进行地址转换。,内存的物理组织,物理地址: 把内存分成若干个大小相等的存储单元,每个单元给一个编号,这个编号称为内存地址(物理地址、绝对地址、实地址),存储

8、单元占8位,称作字节(byte)。物理地址空间: 物理地址的集合称为物理地址空间(主存地址空间),它是一个一维的线性空间。,程序的逻辑结构,程序地址:用户编程序时所用的地址(或称逻辑地址 、虚地址 ),基本单位可与内存的基本单位相同,也可以不相同。 程序地址空间(逻辑地址空间、虚地址空间):用户的程序地址的集合称为逻辑地址空间,它的编址总是从0开始的,可以是一维线性空间,也可以是多维空间。,重定位(地址映射):在可执行文件装入时需要解决可执行文件中地址(指令和数据)和内存地址的对应。由操作系统中的装入程序loader来完成。,重定位的概念,重定位方法:地址映射的功能就是要建立虚实地址的对应关系

9、,实现地址映射有三种方式:绝对装入:编程或编译时确定地址映射关系可重定位装入(静态地址映射):程序执行前,装入内存时一次性链接装入程序。动态装入(动态地址映射):处理机每次访问主存时,有动态地址变换机构(硬件)自动执行。,绝对装入,绝对装入:编程或编译时确定地址映射关系 编程时确定虚实地址的关系是指在用机器指令编程时,程序员直接按物理内存地址编程,这种程序在系统中是不能做任何移动的,否则就会出错。,优点:装入过程简单。缺点:过于依赖于硬件结构,不适于多道程序系统。,静态装入,静态地址映射:在程序装入内存时完成从逻辑地址到物理地址的转换的。 在一些早期的系统中都有一个装入程序(加载程序),它负责

10、将用户程序装入系统,并将用户程序中使用的访问内存的逻辑地址转换成物理地址。如下图所示。,优点:实现简单,不要硬件的支持。 缺点:一个程序通常需要占用连续的内存空间,程序装入内存后不能移动。不易实现共享。,动态装入,动态地址映射:动态地址映射是在程序执行时由系统硬件完成从逻辑地址到物理地址的转换的。,系统中设置了重定位寄存器:由操作系统用特权指令来设置,比较灵活。动态地址映射是在执行时完成的,程序中不执行的程序就不做地址映射的工作,这样节省了CPU的时间 。实现动态地址映射必须有硬件的支持。现代计算机系统中都采用动态地址映射技术。,覆盖(overlay),引入:其目标是在较小的可用内存中运行较大

11、的程序。常用于多道程序系统,与分区存储管理配合使用。原理:一个程序的几个代码段或数据段,按照时间先后来占用公共的内存空间。将程序的必要部分(常用功能)的代码和数据常驻内存;可选部分(不常用功能)在其他程序模块中实现,平时存放在外存中(覆盖文件),在需要用到时才装入到内存;不存在调用关系的模块不必同时装入到内存,从而可以相互覆盖。(即不同时用的模块可共用一个分区),6.1.5 覆盖与交换技术,注:另一种覆盖方法:(100K)A(20K)占一个分区:20K;B(50K)、D(20K)和E(40K)共用一个分区:50K;F(30K)和C(30K)共用一个分区:30K;,交换(swapping),引入

12、:多个程序并发执行,可以将暂时不能执行的程序或就绪状态的进程送到外存中,从而获得空闲内存空间来装入新程序。交换单位为整个进程的地址空间。常用于多道程序系统或小型分时系统中,与分区存储管理配合使用。又称作对换或滚进/滚出(roll-in/roll-out);程序暂时不能执行的可能原因:处于阻塞状态,低优先级(确保高优先级程序执行);原理:暂停执行内存中的进程,将整个进程的地址空间保存到外存的交换区中(换出swap out),而将外存中由阻塞变为就绪的进程的地址空间读入到内存中,并将该进程送到就绪队列(换入swap in)。,交换与覆盖区别: 交换不需要程序员给出程序段之间的覆盖结构,而 覆盖要求

13、明确给出程序段之间的覆盖结构。 交换是进程之间或作业之间进行,而覆盖主要在同 一作业内来进程内进行内。同时覆盖程序段与被覆 盖程序段之间是无关的。,6.2 单道程序环境下的存储管理,单用户连续存储管理又称单分区模式,适用于单用户情况,任何时刻主存储器中最多只有一道程序主存空间划分为系统区和用户区地址转换与存储保护:地址转换:物理地址 = 界限地址 + 逻辑地址多采用静态重定位,采用栅栏寄存器进行存储保护动态重定位,采用定位寄存器进行存储保护单用户连续存储管理的缺点:同单道程序的缺点,系统利用率低,6.3 分区存储管理,分区存储管理是满足多道程序设计的最简单的一种存储管理方法,它允许多个用户程序

14、同时存在系统内存中,即共享内存空间。,原理:把内存分为一些大小相等或不等的分区(partition),除操作系统占用一个分区外,其余分区用来存放每个进程的程序和数据。特点:适用于多道程序系统和分时系统支持多个程序并发执行难以进行内存分区的共享。问题:可能存在内碎片和外碎片。内碎片:占用分区之内未被利用的空间外碎片:占用分区之间难以利用的空闲分区(通常是小空闲分区)。,按分区的时机,分区管理可以分为:固定分区法:作业执行前把内存固定地划分区域;动态分区法:在作业的处理过程中划分区域。,6.3.1 固定分区法,原理:分区大小可以不相等 分区大小相等:适合于多个相同程序的并发执行。 分区大小不等:多

15、个小分区、适量的中等分区、少量的大分区。根据程序的大小,分配当前空闲的、适当大小的分区。分区个数不变,大小不变内存分配管理数据结构:分区说明表(分区号、分区大小、起始地址、 分区状态)由内存分配程序检索分区说明表,找到符合要求的分区。,固定分区(大小相同),固定分区(多种大小),固定式分区内存分配示意图(a)固定式分区说明表(b),固定分区分配操作(分配算法流程),存储保护与重定位(地址转换)每个分区(一道程序)对应一对界地址寄存器:上/下限寄存器。采用静态重定位方式,即由链接/装入程序完成。优缺点优点:简单,要求的硬件支持少;缺点:存在大的碎片,主存利用率低。,存储保护类型界限保护(上界寄存器/下界寄存器或基址寄存器/限长寄存器):所有访问地址必须在上下界之间;每个进程都有自己独立的进程空间,如果一个进程在运行时所产生的地址在其地址空间之外,则发生地址越界。当程序要访问某个内存单元时,由硬件检查是否允许,如果允许则执行,否则产生地址越界中断,由操作系统进行相应处理。,上下界保护,下界寄存器:存放程序装入内存后的开始地址(首址) 上界寄存器: 存放程序装入内存后的末地址 判别式:下界寄存器 物理地址 上界寄存器,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > 教育/培训/课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号