第四章 存储管理
1、存储管理的基本概念
1)逻辑地址与物理地址
在具有地址变换机构的计算机中,允许程序中编排的地址和信息实际存放在内存中的地址有所不同。前者叫逻辑(相对)地址,后者叫物理(绝对)地址。
2)重定位:将逻辑地址转换为物理地址。
3)三级存储器结构
辅存<-->主存<-->高速缓存为三级存储器结构,从辅存到高速缓存,存储器容量减小,存取时间减少,速度增加,但每位存储器成本增加了。
4)虚拟存储管理
虚存是由操作系统调度,采用内外存的交换技术,各道程序在必需使用时调入内存,不用的调出内存,这样好像内存容量不受限制。
虚存的特点:
(1)虚存容量不是无限的,极端情况受内存和外存可利用的总容量限制;
(2)虚存容量还受计算机总线地址结构限制;
(3)速度和容量的“时空”矛盾,虛存量的“扩大”是以牺牲CPU工作时间以及内外存交换时间为代价的。
5)存储管理的任务和功能
任务是方便用户,提高内存资源的利用率,实现主存共享。
功能主要有主存的分配和回收、地址映射、主存扩充、内存的共享和保护技术
2、分区分配存储管理
分为固定分区、可变分区、可重定位分区、多重分区。
内存“扩充”技术:
1)交换:由操作系统做,用户不知道。
2)覆盖:由用户控制,操作系统提供覆盖机制。
内存保护技术:保护系统工作区和用户作业区,特别是如何防止系统区被破坏。方法有存储保护键、界限寄存器
3、请求页式存储管理
1)页式存储管理实现原理
基于程序在运行时不需要一开始都装入内存(局部性原理),更不应该把最近较长一段时间内不用的程序装入内存。
2)页表的作用是将逻辑页号转换为物理块号。
3)页面淘汰算法
先进先出算法(FIFO)、循环检测法、最近最少使用页面先淘汰(LRU)、最不经常使用的页面先淘汰(LFU)、最近没有使用页面先淘汰(NUR)、最优淘汰算法(OPT)等。
4)页式存储管理的优、缺点
优点:
(1)虛存量大,适合多道程序运行,用户不必担心内存不够的调度操作;
(2)内存利用率高,不常用的页面尽量不留在内存;
(3)不要求作业连续存放,有效地解决了“碎片”问题。与分区式相比,不需移动作业;与多重分区比,无零星碎片产生。
缺点:
(1)要处理页面中断、缺页中断处理等,系统开销较大;
(2)有可能产生“抖动”;
(3)地址变换机构复杂,为提高速度采用硬件实现,增加了机器成本。
4、段式、段页式存储管理
分页式存储管理系统和分段式存储管理系统的主要区别:
分页和分段有许多相似之处,比如两者都不要求作业连续存放。但在概念上两者完全不同,主要表现在以下几个方面:
1)页是信息的物理单位,分页是为了实现非连续分配,以便解决内存碎片问题,或者说分页是由于系统管理的需要。段是信息的逻辑单位,它含有一组意义相对完整的信息,分段的目的是为了更好地实现共享,满足用户的需要。
2)页的大小固定,由系统确定,将逻辑地址划分为页号和页内地址是由机器硬件实现的。而段的长度却不固定,决定于用户所编写的程序,通常由编译程序在对源程序进行编译时根据信息的性质来划分。
3)分页的作业地址空间是一维的。分段的地址空间是二维的。
段式、页式存储管理的对比表参考教材117页。
段页式存储管理特点:
1)每一段分若干页,再按页式管理,页之间不要求连续;
2)用分段方法分配管理作业,用分页方法分配管理内存;
3)兼有段式和页式管理的优点,系统复杂和开销增大,一般在大型机器上才使用。
5、例题解析
例1 采用可变分区管理存储空间时,若主存中按地址顺序依次有五个空闲区,大小分别为15K、28K、10K、226K、110K。现有五个作业J1到J5,它们所需的主存空间依次是10K、15K、102K、26K、180K。问如果采用首次适应分配算法,能否把这五个作业按J1到J5的次序全部装入主存。使用哪种分配算法装入这五个作业,可使主存的利用率最高?
解:按首次适应分配算法,不能把这五个作业全部依次装入主存。这时J1、J2装入第1、2个空闲区,J3、J4装入第4、5个空闲区,J5有180K,无法装入仅有的10K空闲区。
能使主存利用率最高的是采用最佳适应分配算法。这时,这五个空闲块分别装入作业J2、J4、J1、J5、J3。
例2 考虑一个由8个页面,每页有1024个字节组成的逻辑空间,把它装入到有32个物理块的存储器中,问:
(1)逻辑地址需要多少二进制位表示?
(2)物理地址需要多少二进制位表示?
【分析】 在分页存储管理中,逻辑地址结构如下图所示。
它由两个部分组成:前一部分表示该地址所在页面的页号p;后一部分表示页内地址(页内位移)d。页号的地址位数决定了页的多少,假设页号有20位,则地址空间中最多可容纳的页面数为2^20,即1MB个页面。页内地址位数确定了每页的大小,若页内地址为12位,则每页大小为2^12,即2KB。
同理,物理地址中块号的地址位数决定了块的数量。由于页式存储管理内存空间块的大小与页面大小相同,所以物理地址中块内地址与逻辑地址中的页内地址位数相同。
解:因为页面数为8=2^3,故需要3位二进制数表示。每页有