上海大学操作系统2复习资料资料
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
存储管理的主要功能:
●地址转换(逻辑地址转为物理地址
●存储器的分配和回收
●存储保护
●存储扩充
地址转换(重定位)
逻辑地址—>物理地址;多道程序中编译程序不可能预支经编译后所得到的目标模块应放在内存何处,不能用绝对装入,要用可重定位装入。
●静态转换:在装入时对目标程序中指令和数据地址进行修改
●动态转换
⏹地址转换推迟到真正执行时
⏹静态的不允许程序运行时在内存中移动位置,动态的可以
分配方式
⏹连续分配
⏹单一连续分配
◆单个程序独占
⏹固定分区分配
◆划分分区:分区大小相等、不等
◆内存分配:按大小排序,分区使用表
◆优点:能在内存中装入多道程序
◆缺点:存储空间浪费
⏹动态分区分配
◆数据结构:空闲分区表;空闲分区链
◆动态分区分配算法:
●顺序搜索算法(用于不太大的系统)
⏹首次适应:空闲分区地址递增,从链首开始寻找,满足要求后切割
◆优点:优先利用低址,保留高址大空闲区,为以后到达的大作业
分配大的内存空间创造了条件
◆缺点:低址部分被不断划分,留下许多难以利用的、很小的空闲
分区
⏹循环首次适应:空闲分区地址递增,从上次找到的下个空闲分区开始
◆优点:避免低址部分留下太多空闲分区
◆缺点:缺乏大的空闲分区
⏹最佳适应:空闲分区大小递增,找到的第一个
◆优点:避免大材小用
◆缺点:每次切割剩下的都是最小的,会留下难以利用的碎片
⏹最坏适应:找最大的一个空闲分区
◆优点:使剩下的空间不会太小,产生碎片的可能性最小,对中小
作业有利
◆缺点:缺乏大的空闲分区
●索引搜索算法(大中型系统)
⏹快速适应:每一类相同容量的分区,单独设一个链表,查找时先去索
引表,然后去链表取下第一块即可(可将其理解为一个菜单)
◆优点:提高搜索速度
◆缺点:分区归还主存时较为复杂;分配空闲分区时是以进程为单
位的,一个分区只属于一个进程,存在浪费(以空间换空间)
⏹伙伴系统:内容看书吧
◆时间性能:劣于快速适应,优于顺序搜索
◆空间性能:劣于顺序搜索优于快速适应
⏹哈希算法
◆直接根据分区大小利用哈希函数计算
◆分配内存:m.size-u.size<=size
◆回收内存:回收区与前后空闲分区的邻接情况
⏹动态可重定位分区分配
◆比动态分区增加了紧凑功能
◆地址变换在程序执行期间随着对每条指令或数据的访问自动进行(动态地址转
换)
●离散分配方式
⏹分页存储管理:将用户程序的地址空间分为若干固定大小的区域(页)
◆页面:进程的逻辑地址空间分为若干页
◆物理块:内存的物理地址空间分为若干块
◆若干页装入多个可以不相邻的物理块
◆最后一页经常装不满,形成的碎片为“页内碎片”
◆页面太小
●减小内存碎片,内存利用率提高
●每个进程占用页面过多,页表过长,占用大量内存
●降低页面换进换出的效率
◆页面太大
●减少页表长度,提高换进换出效率
●页内碎片增大
◆页面适中大小:2的幂,通常为1kb-8kb
◆逻辑地址形式:
●页号+位移量/页内地址(一维)
◆页表:实现从页号到物理块号的地址映射
●进程的各个页离散的存储在内存的任一物理块中
●为了找到每个页面对应的物理块
●
◆地址转换机构
●硬件(一个页表项用一个寄存器)实现的动态地址转换机构
●存储保护:页表长度寄存器
⏹执行检索前,先将页号与页表长度进行比较,若页号大于等于页表长
度,则表示本次访问的地址已超越进程的地址空间。这一错误被系
统发现,产生越界中断
⏹若未发生越界错误,则将页表始址与页号*页表项长度相加,得到该
表项在页表中的位置
●快表
⏹在地址变换机构中增设一个具有并行查询能力的特殊高速缓冲寄存
器(快表)
⏹快表不命中时要访问两次内存
◆一次访问内存中的页表,找到物理块,将块号与页内偏移量W
(即页内地址)拼接以形成物理地址
◆第二次从第一次得到的地址中获得所需要的数据
⏹分段存储管理:把用户地址空间分为大小不同的若干段
◆为了满足用户(程序员)在编程和使用(信息共享、信息保护、动态增长、动
态链接)上的要求,支持以模块为单位进行
◆逻辑地址形式:段号+段内地址(二维,既包含一部分地址空间,又标识了逻
辑关系)
◆数据结构
●段表(记录该段在内存中的起始地址和段的长度)
⏹段表可放在寄存器(提高地址转换速度)或内存(更常见)中
●地址转换
⏹段表寄存器(存放段表始址和段表长度),硬件实现的动态地址转换
●存储保护
⏹进行地址变换时,系统将逻辑地址中的段号S与段表长度TL进行比
较,若S>TL则段号太大,访问越界,产生越界中断信号
⏹
⏹段页式管理
◆既有分段系统的易于实现、分段可共享、易于保护、动态链接等优点,也能像
分页系统那样,很好的解决内存的外部碎片问题
◆先将用户程序分成若干段,再把每个段分成若干页,并为每个段赋予一个段名
◆逻辑地址:段号+段内页号+页内地址(二维)
◆数据结构:每个进程一张段表(页表地址和页表长度),每个段一张页表,位
视图
◆地址转换:硬件(段表寄存器)实现的动态地址转换机构,访问3次内存
◆第一次访问内存中的段表,得到页表始址;第二次访问内存中的页表,去
除该页所在的物理块号,并将该号与页内地址一起形成指令或数据的物理