存储管理-操作系统-程序员面试
来源:互联网 发布:java审批流程 编辑:程序博客网 时间:2024/05/24 06:31
操作系统-存储管理
4 存储管理
4.1 计算机存储体系结构
存储器是计算机体系结构的重要组成部分,其功能是保存指令和数据
存储层级结构
4.2 地址重定位
当程序被装入内存时,程序的逻辑地址被换成内存的物理地址。
动态再定位
程序在装入内存时,不修改程序的逻辑地址,程序在访问物理内存之前,载实时地将逻辑地址转换为物理地址。
优点:代码可在内存中移动,代码可不连续存放在内存
缺点:需要附加硬件支持,实现存储管理的软件算法比较复杂。
4.3 存储管理方案
分区存储管理方案
是一种连续分配存储空间的管理方案
分类:
1) 单一连续分区(一次只一个用户程序,独占整个用户区)
2) 固定分区(将内存分成固定块,存在内部碎片)
3) 可变分区(预先不分配,当作业需要装载时同系统申请内存空间,系统从其中挖出一块给作业,其大小等于作业所需内存的大小,然后将剩下的部分再作为空白块留给一次分配使用。
4.3.1分区分配算法
最先适应算法(first-fit)
将空闲块按 地址增 顺序排,从中找到第一个合适的分区分配。
优点:尽可能利用地址的空闲去,而在高地址部分保存较大的空闲去,容易 满足大作业 ,释放时相邻空闲合并。
缺点:查找总是从表头找,因此前面的空闲去往往被分割的很小,查找次数增大,会产生外部碎片,这些碎片分散在内存的各处,不能集中使用,因而降低了存储器的利用率。
下次适用算法(next-fit 循环首次适应)
分配方法:将分区的先后次序,从上次分配的分区起查找。
释放方法:通first-fit
优点:使空闲分包更均匀,提高分配查找速度。
缺点:较大的空闲分区不易保留。
最佳适应算法(best-fit)
将空闲区按 容量增排列,当要求分配一个空白分区时,由小到达进行查找,找到最合适的分配。
释放:将整个链表上搜索地址相邻的空闲去,合并后,再插入到合适的位置。
优点:分配后所剩的空白区会最小,较大的空闲去会被保留。
缺点:空白区一般不可能加好满足要求,在分配之后的剩余部分通常小到无法使用,会形成较多碎片。
最坏适应算法
分配:按空白区容量减排列
释放:同最佳
优点:分配时只需要一次就可成功,分配的算法很快
缺点:最后剩余的分区会越来越小,不会保留较大的空闲去无法运行大程序。
释放方法
相邻合并,否则插入
可再定位式分区
又称浮动分区分配,是解决碎片问题的简单而有效的方法。
思想:移动所有被分配的分区,使之成为一个连续区域,而留下较大的空白区。
4.3.2 纯页式存储管理
分区存储管理方案要求 作业存储时必须连续存放 这样当作业大于当前最大空闲区时,即使有空闲区,也不能分配,从而降低了存储空间利用率。
为了解决此问题,引出了纯页式存储管理
如果作业能够被分割成若干块,分别存放在不同的空闲中,则存储空间利用率便可得以提升。
Q:为取一个数需几次访存?
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) 页面缓冲算法
- 存储管理-操作系统-程序员面试
- 存储管理-操作系统-程序员面试
- 面试--操作系统--进程管理
- 程序员面试-操作系统-进程
- 程序员面试-操作系统-作业
- 死锁-操作系统-程序员面试
- 设备管理-操作系统-程序员面试
- 操作系统存储管理
- 操作系统-存储管理
- 操作系统---存储管理
- 操作系统之存储管理
- 操作系统-存储管理
- 操作系统---存储管理
- 操作系统实验存储管理
- 操作系统概论-存储管理
- 操作系统基础知识--存储管理
- 操作系统学习--存储管理
- 操作系统—存储管理
- Nginx中的负载均衡
- C
- 【排序算法总结】直接插入排序
- 点的统计
- i am a student.转为student. a am i
- 存储管理-操作系统-程序员面试
- python进程池的复习
- 使用Docker搭建Struts2-048漏洞环境及Python PoC验证
- loadrunner录制有很多无关脚本应该怎样设置?
- 编译并使用boost库(win7+boost1.60+vs2013)
- 131_容器_HashTable与Properties_绝对相对类路径存储与读取
- 集训8.7
- G
- 大数据学习、一