【学习笔记之操作系统原理篇】存储管理

存储管理基本概念

物理内存(即内存地址)

字节编号,从0开始,是“一维”的地址。

例题:

1.外存上存放的数据( 必须在访问前先装入内存 )。

存储管理的主要任务

如何将可用内存有效地分配给多个进程?
如何让存储容量大于可用内存的大进程得以运行?
如何保护和共享内存?

①内存的分配与回收

静态分配—次性全部载入内存,运行过程中不再变化。
动态分配先分配必需的基本空间,运行过程中动态载入。
内存分配表已使用的内存记录,未使用的内存记录。

②地址变换

静态地址重定位不需要硬件支持,不能移动,利用率低。
动态地址重定位转入后再计算物理地址,方便多模块。
内存分配表已使用的内存记录,未使用的内存记录。



例题:

1.静态重定位是在作业的( 装入过程 )中进行的。

2.动态重定位是在作业的( 执行过程 )中进行的。

3.存储分配解决多道作业地址空间的划分问题。为了实现静态和动态存储分配,需采用地址重定位,即把逻辑地址转为物理地址,静态重定位由连接装入程序实现,动态重定位由硬件地址变换机构实现。

4.采用动态重定位方式装入的作业,在执行中允许( 操作系统有条件地 )将其移动。

5.把逻辑地址转变为内存的物理地址的过程称作( 重定位 )。

6.将作业地址空间中的逻辑地址转换为内存中的物理地址的过程称为( 重定位 ) 。

7.逻辑地址转变为内存的物理地址的过程称作( 重定位或地址映射 )。
例题:

1.逻辑地址就是( 相对地址 )。

③内存信息的共享和保护

上下界保护法进程程序和数据段的起始地址和终止地
保护键法类似于读者——写者控制的方法。
Linux采用方法界限寄存器与CPU用户态和核心态旧结合的保护方式。

④内存扩充
虚拟存储

例题:

1.存储管理的目的是(方便用户和提高内存利用率。)


分区式存储管理

固定式分区(静态分区)

特点个数、大小不变
优缺点技术简单;但主存利用率不高,存在严重的内碎片
碎片明明空在这里却不能被利用

例题:

1.碎片现象的存在使得内存空间利用率( 降低 ).

可变式分区(动态分区)

特点个分区数、大小变化
数据结构已分配分区表(大小、起址)和空闲分区表(链)(大小,起址,状态)。
外碎片,拼接(内存紧凑)
例题:

1.用可重定位分区分配方式,( 解决碎片问题 )。

2.可重定位内存的分区分配目的为( 解决碎片问题 ) 。

分区分配算法

首次适应算法按空闲区首地址递增排序
循环首次适应算法按空闲区首地址递增排序
最坏适应算法按空间大小递减排序
最佳适应算法按空间大小递曾排序
快速适应算法按容量相同否分类排序
伙伴系统把内存中的所有空闲分区按照2k(1sk≤n)的大小划分。
哈希算法构建—张以空闲区大小为关键字的哈希表,该表的每一个表项记录了—个对应的空闲分区链表头指针。
例题:

1.在可变分区存储管理中,最优适应分配算法要求对空闲区表项按( 尺寸从小到大 )进行排序。

2.在动态分区式内存管理中,倾向于优先使用低地址部分空闲区的算法是(首次适用算法)。

3.在动态分区式内存管理中,能使内存空间中空闲区分布较均匀的算法是(循环首次适用算法)。

4.在动态分区式内存管理中,每次分配时把既能满足要求,又是最小的空闲区分配给进程的算法是(最佳适应算法)。

5.在((循环)首次适应算法)中,要求空闲分区按空闲区地址递增顺序链接成空闲分区链。

6.在( 最佳适应算法 )中,是按空闲区大小递增顺序形成空闲分区链。

7.在( 最坏适应算法 )中,是按空闲区大小递减的顺序形成空闲分区链。

8.分区管理方式中,当内存碎片容量大于某一作业所申请的内存容量时,(拼接后,可以为这一作业分配内存)。

9.在循环首次适应算法中,要求空闲分区按( 空闲区首地址递增 )顺序链接成空闲分区链。

10.在最佳适应算法中是按( 空闲区大小递增 )顺序形成空闲分区链。

分配内存

内存回收

例题:

1.在回收内存时可能出现四种情况,其中若释放区与插入点前一空闲分区F1相邻接,此时应( 在F1分区表项的基础上,修改大小 ) 。

2.在回收内存时可能出现四种情况,其中若释放区与插入点的后一分区F2相邻接,此时应(在F2分区表项的基础上,修改大小和始址 )。

3.在回收内存时可能出现四种情况,其中若释放区不与F1和F2相邻接,此时应( 为回收区建立一新空闲分区表项,并填上 分区的大小和始址) 。

4.在回收内存时可能出现四种情况,其中若释放区与F1和F2都相邻接,此时应( 删除F2分区表项,并在F1分区表项的基础 上修改大小 ) 。

5.在动态分区分配方案中,某一作业完成后,系统收回其主存空间,并与相邻空闲区合并,为此需修改空闲区表,造成空闲区减一的情况是(有上邻空闲区,也有下邻空闲区)。

地址变换与内存保护

动态分区可以采用拼接技术:有碎片就拼接,不够时才拼接。

分区式管理的优缺点

主要优点(1)实现了多个作业或进程对内存的共享,有助于多道程序设计,从而提高了系统的资源利用率。
(2)该方法要求的硬件支持少,管理算法简单,因而实现容易。
主要缺点(1)内存利用率仍然不高。存在着严重的碎小空闲区(碎片)不能利用的问题。解决办法:内存紧凑。
(2)作业或进程的大小受分区大小控制,除非实现内存的扩充。可采用覆盖和交换技术。
(3)难以实现各分区间的信息共享。
例题:

1.通常,采用紧缩法消除内存碎片的存储管理技术是( 可重定位分区法 )。

页式存储管理

静态页式管理

静态方法:一个进程的所有页一次性全部装入内存。

数据结构

页表对每—个进程,系统为它建立—个页表。
在这里插入图片描述
请求表在这里插入图片描述
存储页面表在这里插入图片描述
分配与回收静态分配为一次性分配

地址结构与地址变换

地址结构在这里插入图片描述
地址变换在这里插入图片描述

动态页式管理

例题:

1.在页式存储管理中,若所需页面不在内存中,则会引起( 缺页中断 )。

指令存取速度与页面大小的问题

快表
页面大小的选择:如果页面太大,页式管理就退化为分区管理,同时导致页内“碎片”过大。而页面太小,页表占用内存空间太多。—个系统的页表占用内存的空间大小与主存大小和页大小有关。

例题:

1.在请求分页存储管理方案中,若某用户空间为16个页面, 页长1KB,现有页表如下:
|页号 | 块号|
| 0 | 12 |
| 1 | 13 |
| 2 | 3 |
则逻辑地址0A1F(H)所对应的物理地址为(0E1F(H))。

注:
页长1KB 210=1k 页面长度为10位,
逻辑地址0A1F(H)转化为二进制位 0000 1010 0001 1111
(二进制10)为页号即十进制2,对应表找到块号为3,故物理地址为 0000 1110 0001 1111 (0E1F)
因为是分页存储管理,所以隐藏了页面大小等于页框大小这个条件

页式管理的优缺点

优点(1)有效地解决了内存的碎片问题,进—步可提高了处理机的利用率。
(2)动态页式存储管理只要求每个进程部分装入便可运行,实现了内存的扩充技术。
缺点(1)要求有相应的硬件支持。例如,地址变换机构,缺页中断机构和页面的淘汰等。
(2)增加了系统开销。
(3)淘汰算法选择不当有可能会严重影响系统的使用效率。
(4)虽然消除了碎片,但同时还存在页内碎片问题。
例题:

1.分页式存储管理中,地址转换工作是由( 硬件 )完成的。

淘汰算法与抖动现象

抖动现象与工作集
抖动现象:频发的调入调出,与进程数和进程的实页数有关
防止抖动现象的方法:
①是选择好的淘汰算法:以减少缺页次数。
②是扩大工作集:是指进程在某个时间段里要访问的页的集合。如果能够预知进程在某段时间的工作集,并在此之前把该集合调入内存,至该段时间终了时,再将其在下—时间段时不需要访问的哪些页换出内存,这样就会可以减少页的交换。

淘汰原因内存空闲页不足,调出暂不用页到磁盘交换区。
算法目标应使缺页率尽可能小。
最佳(Optimal)淘汰算法
基本思想不再使用或最远的将来不再使用。不能实现,但可以作为衡量标准。
先进先出淘汰算法(FIFO)
基本思想FIFO算法容易实现,但是它所依据的理由与普遍的进程运行规律不符。它只适用于CPU按线性顺序访问地址空间的进程。
最近最少使用(LRU)淘汰算法最近最久没有被使用的页
基本思想方法:(1)计时器法(2))
栈(解题方法)
(3)寄存器法:高位补一,右移,最小。
最近未使用(NUR)算法LRU近似算法
基本思想R:是否访问,M:是否修改,R=O,M=O的先淘汰。最不经常使用(NotFrequentlyUsed,NFU)算法增设一个访问寄存器,每次访问加1,淘汰值最小的。
例题:

1.在请求分页系统中,LRU算法是指( 丘期最长时间以来没被访问的页先淘汰 ) 。

2.在请求调页中可采用多种置换算法,其中LRU是( 最近最久未使用 )置换算法。

3.在下述存储管理技术中,( 请求分页) 处理不当会产生抖动。.

段式存储管理

静态段式存储管理

结构在这里插入图片描述
数据结构在这里插入图片描述
地址变换在这里插入图片描述
内存分配与释放在这里插入图片描述

动态段式存储管理

基本思想在这里插入图片描述
段表在这里插入图片描述
缺段中断处理能容纳直接调入
不能容纳合并碎片再调入
内存不足换出
也可能产生抖动现象

分段和分页的主要区别

(1)段是面向用户的,页是面向系统的。
(2)页的大小是固定的,由系统决定;段的大小不固定,由用户决定。
(3)从用户的角度看,分页系统的用户程序空间是一维连续的线性空间 ; 段的地址空间是二维的,由段名和段内相对地址组成。
(4)从管理的角度看,分页系统的二维地址是在地址变换过程中由系统的硬件机构实现的,对用户是透明的。分段系统的在地址变换过程中的二维地址是由用户提供的。因而, 页内没有地址越界问题,而段内的相对地址则存在地址越界(段长受内存实际空间大小限制)问题。

段的信息共享

页式、段式都可以共享。但段式方便。
共享:页表、段表记录相同空间。

段的静态链接与动态链接

静态链接
在这里插入图片描述

动态链接
在这里插入图片描述

段的存储管理的内存保护

①地址越界保护法
②存取控制保护法

段的存储管理的优缺点

优点(1)便于信息的共享和保护。
(2)实现了内存的扩充。
(3)便于信息的变化处理。
(4)便于实现动态链接。
缺点(1)增加了计算机成本。
(2)存在碎片问题。
(3)段的长度受内存可用空间大小的限制。
(4)与页式存储管理类似,淘汰算法选择不当,可能产生抖动现象。
例题:

1.分段管理提供(二 )维的地址结构。

2.在段式存储管理中,一个段是一个( 不定长的连续 )区域。

3.支持程序浮动的地址转换机制是( 动态重定位) 。.

其他

在这里插入图片描述
在这里插入图片描述

例题:

1.(固定分区)存储管理支持多道程序设计,算法简单,但存储碎片多。

2.(段页式管理)实现了段式、页式两种存储方式的优势互补。

3.(段页式管理)存储管理方式能使存储碎片尽可能少,而且使内存利用率较高。

4.段页式存储管理汲取了页式管理和段式管理的长处,其实现原理结合了页式和段式管理的基本思想,即(用分段的方法分配和管理用户地址空间,用分页方法来管理物理存储空间)。

5.虚拟存储技术是(补充相对地址空间的技术)。

6.虚拟存储器的最大容量是由(计算机系统的地址结构和外存空间)决定的。

7.实现虚拟存储最关键的技术是( 请求调页(段))。 8.以下支持虚拟存储器的存储管理技术是( 请求分页技术 )。 9.若一个系统内存有64MB,处理器是32位地址,则它的虚拟地址空间为( 4GB )字节。

Linux存储管理

  • 7
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IsQiya

很庆幸我的文章对您有帮助

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值