操作系统-存储管理
4 存储管理
4.1 计算机存储体系结构
存储器是计算机体系结构的重要组成部分,其功能是保存指令和数据
存储层级结构
4.2 地址重定位
当程序被装入内存时,程序的逻辑地址被换成内存的物理地址。
动态再定位
程序在装入内存时,不修改程序的逻辑地址,程序在访问物理内存之前,载实时地将逻辑地址转换为物理地址。
优点:代码可在内存中移动,代码可不连续存放在内存
缺点:需要附加硬件支持,实现存储管理的软件算法比较复杂。
4.3 存储管理方案
分区存储管理方案
是一种连续分配存储空间的管理方案
分类:
1) 单一连续分区(一次只一个用户程序,独占整个用户区)
2) 固定分区(将内存分成固定块,存在内部碎片)
3) 可变分区(预先不分配,当作业需要装载时同系统申请内存空间,系统从其中挖出一块给作业,其大小等于作业所需内存的大小,然后将剩下的部分再作为空白块留给一次分配使用。
4.3.1分区分配算法
最先适应算法(first-fit)
将空闲块按 地址增 顺序排,从中找到第一个合适的分区分配。
优点:尽可能利用地址的空闲去,而在高地址部分保存较大的空闲去,容易 满足大作业 ,释放时相邻空闲合并。
缺点:查找总是从表头找,因此前面的空闲去往往被分割的很小,查找次数增大,会产生外部碎片,这些碎片分散在内存的各处,不能集中使用,因而降低了存储器的利用率。
下次适用算法(next-fit 循环首次适应)
分配方法:将分区的先后次序,从上次分配的分区起查找。
释放方法:通first-fit
优点:使空闲分包更均匀,提高分配查找速度。
缺点:较大的空闲分区不易保留。
最佳适应算法(best-fit)
将空闲区按 容量增排列,当要求分配一个空白分区时,由小到达进行查找,找到最合适的分配。
释放:将整个链表上搜索地址相邻的空闲去,合并后,再插入到合适的位置。
优点:分配后所剩的空白区会最小,较大的空闲去会被保留。
缺点:空白区一般不可能加好满足要求,在分配之后的剩余部分通常小到无法使用,会形成较多碎片。
最坏适应算法
分配:按空白区容量减排列
释放:同最佳
优点:分配时只需要一次就可成功,分配的算法很快
缺点:最后剩余的分区会越来越小,不会保留较大的空闲去无法运行大程序。
释放方法
相邻合并,否则插入
可再定位式分区
又称浮动分区分配,是解决碎片问题的简单而有效的方法。
思想:移动所有被分配的分区,使之成为一个连续区域,而留下较大的空白区。
4.3.2 纯页式存储管理
分区存储管理方案要求 作业存储时必须连续存放 这样当作业大于当前最大空闲区时,即使有空闲区,也不能分配,从而降低了存储空间利用率。
为了解决此问题,引出了纯页式存储管理
如果作业能够被分割成若干块,分别存放在不同的空闲中,则存储空间利用率便可得以提升。
R:2次
优点:程序可不必连续存放;没有外部碎片
缺点:程序要一次全部装入内存;依然存在 内部碎片。
4.3.3 引入段式存储
分页存储的不足
在分页存储管理中,经编译连接后得到一维地址结构,是从0开始编址的一个单一连续的逻辑地址空间,虽然操作系统可把程序划分成页面,但页面与源程序无逻辑关系,也就无法实现对源程序以模块为单位进行分配,共享和保护。
引入段式存储管理方式
1) 信息共享
2) 信息保护
3) 动态链接
4) 动态增长
按照逻辑单位进行划分,每段拥有独立的逻辑空间,在物理地址空间利用可变分区动态分配法。
1) 程序不必连续
2) 没有内部碎片
3) 便于实现共享,即允许若干个进程共享一个或多个段
缺点:
1) 作业要一次性全部装入内存
2) 存在外部碎片
段式存储于页式存储的区别
|
内容 |
页式存储 |
段式存储 |
|
划分依据 |
系统管理需要 |
用户应用需要 |
|
页/段大小 |
各页面大小相同 |
段的大小不固定 |
|
逻辑地址 |
只有一个逻辑地址空间 |
每个段一个独立的逻辑地址空间 |
|
页表/段表 |
页面较多,页表较长,查找费时 |
段较少,段表较短,查找速度快 |
|
碎片 |
存在内部碎片 |
存在外部碎片 |
|
内存共享 |
不支持 |
支持 |
|
存储扩充 |
不支持 |
不支持 |
4.3.4 段页式存储管理
4.4 虚拟存储技术
提出来源:
程序不是每一条指令都会在程序的一次运行中执行到,如:错误处理子程序、条件语句等。
程序中的指令有可能只执行一次,如:程序的初始化部分;在一段时间内,作业一般不会执行到所在程序全部指令,也不会存在绝大部分数据,执行的代码和要读取的数据往往集中在某些区域(例如一个循环里或一个数组中等等)。
原理
装入时只装入当前需要执行的某些区域,缺失时处理器通知OS将相应的区域装入内存,然后继续执行。
优点
1) 程序的大小可以突破内存容量限制,使得用户感觉到系统好像提供了一个容量极大的“主存”
2) 内存中容纳更多程序并发执行,系统效率得到提升。
4.5 虚拟页式存储技术
缺页中断---> 请求调页 ----> 页面置换
页面淘汰算法
功能:在可用页面不足时,确定内存中哪个物理页应该被淘汰
出发点:希望把未来不再使用的货短时间内较少使用的页面调出
1) 先进先出页面淘汰算法
2) 最近最少使用
3) 最近页面淘汰算法
4) 第二次机会淘汰算法
5) 页面缓冲算法
本文详细介绍了操作系统中的存储管理,包括存储器的层次结构、地址重定位技术,以及各种存储管理方案,如分区存储(固定、可变、动态再定位)和页式、段式、段页式存储管理。还探讨了虚拟存储技术的原理和优点,并提及了页面淘汰算法在虚拟页式存储中的应用。
6192

被折叠的 条评论
为什么被折叠?



