操作系统(五)存储管理方案

考试内容:

  1. 存储管理基本概念,存储管理基本任务
  2. 分区存储管理方案
  3. 覆盖技术与交换技术
  4. 虚拟概念与虚拟存储技术
  5. 虚拟页式存储管理方案

1.存储体系

  • 外存
  • 内存
  • 高速缓存

从上到下,存储容量逐渐减少;每位存储器的成本逐渐增加;存储器存取速度逐渐增加;存储器存取时间逐渐减少。
 
 
 
2.存储器管理的主要任务
存储器管理的主要任务就是为用户作业分配主存空间,提高主存的使用效率,并从逻辑上扩充主存空间,使得主存在成本,速度和规模之间获得较好的权衡。
存储器有外存和内存组成。
内存空间分为两部分:系统区,用户区。

存储器管理的主要任务内存的分配和回收存储共享存储保护权限保护

2.1内存的分配和回收
记住每个存储区域的状态
实施分配
回收

实现方法:位示图表示法,空闲页面法,空闲块表。

内存分配的方式
静态分配
动态分配

2.2存储共享
指的是两个或者多个进程公用内存中的相同区域,使多道程序动态地共享内存,提高内存利用率。共享内容:代码共享数据共享

2.3存储保护
目的在于为多个程序共享内存提高保障,使在内存中的各个程序只能访问其自己的区域,避免各个程序间相互干扰。
存储保护的内容:地址越界保护权限保护存储键

扩充内存:用户在编程的时候,不应该受内存容量限制,要采用一定的技术“扩充”内存的容量。
采用虚拟存储技术或者其他交互技术。

 
 
 
3.地址转换
将用户程序的逻辑地址转换为运行时的物理地址的过程称为地址转换,也称为地址映射(重定位)。
静态重定位:在程序装入时,把程序中的指令地址和数据地址全部转换成绝对地址。由于地址转换工作是在程序开始执行前集中完成的,所以在程序执行过程中就无需再进行地址转换工作。
动态重定位:在程序装入时,不进行地址转换。而是直接把程序装入到分配的内存区域中。在程序执行过程中,每当执行一条指令时由硬件的地址转换机构将指令中的逻辑地址转成物理地址。

支持程序浮动的地址转换机制是动态重定位静态重定位是不能移动的。页式地址转换段式地址转换都是动态重定位的一种。

动态重定位是在作业执行过程中完成的。由系统完成。
静态重定位是在作业执行前集中一次完成的。

对于辅助存储器,可以永久的保存信息;不能被处理器直接访问;是文件的主要存储介质

 
 
 

4.固定分区
基本原理:固定分区存储管理方式是最早使用的一种可以运行多道程序的存储管理方式。它要求把作业全部装入主存,且装入一个连续的存储空间。
(1)一个作业只能装入一个分区,不能装入两个或者多个相邻的分区。一个分区只能装入一个作业,当分区大小不能满足作业的要求时,该作业暂时不能装入。
(2)通过对“分区分配表”的改写,来实现对主存空间的分配与回收。作业在执行时,不会改变存储区域,所以采用静态地址重定位方式易于实现,且系统开销小。
(3)当分区较大作业较小时,仍然会浪费很多主存空间,并且分区总数固定,限制了并发执行的作业数目。

主存空间的分配
在作业分配之前,根据主存分区的划分情况,在分区分配表中填入每个分区的起始地址(简称始址),大小,在状态栏中一律填入0,表示该分区可用。当作业装入时填入作业名。

主存空间的回收
当作业运行结束时,系统根据作业名到分区分配表中查找作业所在的分区,把该分区的状态标志置为0,表示该分区空闲,可以用来装入新的作业。

 
 
 
5.可变分区
可变分区存储管理方式又称为动态分区存储管理方式。它是根据用户作业的大小,在作业要求装入内存时,动态的划分分区,使分区的大小正好适合作业的需求。采用这种存储管理方式,分区的大小是不定的,分区的数目也是不定的。

可变分区存储管理方式必须解决三个问题
一是分区分配中所用的数据结构
二是分区的分配算法
三是分区的分配和回收

移动技术
可变分区中,内存经过一段时间的分配和回收后,会存在很小的空闲块,这些小块不足以满足程序进一步分配的要求,但是其总和却可以满足程序的分配需求,解决的办法就是碎片整理,这一技术也被称为“移动技术”。
移动技术应该注意的事项:
(1)移动会增加系统的开销
(2)移动是有条件的

5.1采用的数据结构
为了实现可变分区分配,系统中必须配置相应的数据结构,用来记录主存的使用情况,包括空闲分区的情况和已分分区的情况,为作业分配主存空间提供依据。为此,设置了两张表,即已分分区表空闲分区表

5.2主存空间的分配
分配主存时,先分配小地址,再分配大地址。空闲分区表中记录的排列也是从小地址向大地址排列的。首次分配时,只有一个空闲区。

常用的主存分配算法
最先适应分配算法(FF):它要求空闲分区表中的记录按照地址递增的顺序排列。在每次分配主存时,总是从第一条记录开始顺序查找空闲分区表,找到第一个能满足作业长度要求的空闲区,分割这个空闲区。一部分分配给作业,另一部分仍然作为空闲区。
它的特点时分配算法简单,容易产生过多的主存碎片。主存碎片是指小的不能使用的主存空间;这种算法把大的空闲区分为了小的空闲区,当有大作业要求分配时,不能满足要求,降低了系统的效率。

最优适应分配算法(BF)
它是从所有的空闲分区中挑选一个能满足作业要求的最小空闲区进行匹配。这样可以保证不去分割一个更大的空闲区,使装入大作业时比较容易得到满足。为了实现这种算法,把空闲区按照长度递增次序登记在空闲分区表中,分配时,顺序查找。
它的优点是解决了大作业的分配问题,不足是容易产生主存碎片,降低了主存空间的利用率。另外回收主存时,要按长度递增的顺序插入到空闲分区表中,增加了系统的开销(操作系统所占的系统资源和所需要的处理器的时间称为系统开销)

最坏适应分配算法(WF)
它每次分配主存时总是挑选一个最大的空闲区,分割一部分给作业使用,使得剩下的部分不至于太小,而成为主存碎片。为实现这种算法,把空闲区按照长度递减的次序登记在空闲分区表中,分配时,顺序查找。
它的有点是不会产生过多的碎片。不足是影响大作业的分配。另外回收主存时,要按长度递减的顺序插入到空闲分区表中,增加了系统开销。

下次分配算法
当接到内存申请时,查找分区说明,从上一次分配的位置开始扫描内存,选择下一个大小足够的可用块。

在可变分区存储管理中,最先适应分配算法要求对空闲区表项按照地址从小到大来排序的;最优分配算法是要求对空闲区表项按照尺寸从小到大进行排序;最差分配算法是要求对空闲区表项按照尺寸从大到小来排序的。

5.3主存空间的回收
当一个作业运行结束后,在已分分区表中找到该作业,根据该作业所占主存的始址和大小,去修改空闲分区表相应的记录。其修改情况分为四种:
(1)回收的分区前后没有相邻的空闲分区:增加一个新的分区
(2)回收的分区前面有相邻的空闲分区:空闲分区数目不变,改变大小,首地址不变。
(3)回收的分区后面有相邻的空闲分区:空闲分区数目不变,改变大小,尾地址发生改变。
(4)回收的分区前后都有相邻的空闲分区:空闲分区的个数减去1,大小改变,首地址和尾地址都改变。

在可变分区分配方案中,某一作业完成后,系统收回其主存空间,并与相邻空闲区合并,为此需要修改分区表,其中造成空闲区数目减去1的情况是有上邻空闲区,也有下邻空闲区。

分区管理的优缺点
(1)分区的长度不是预先固定的,而是按作业的实际需求来划分的。分区的个数也不是预先确定的,而是由装入的作业个数决定的。
(2)分区的大小由作业的大小决定,提高了主存的使用效率。
(3)在主存分配过程中,会产生许多主存碎片,造成主存空间的浪费。
 
 
 
6.覆盖技术
覆盖技术是指一种程序的若干程序段或者几个程序的某个部分共享某一个存储空间。覆盖技术的实现是把程序划分为若干个功能上相对独立的程序段,按照其自身的逻辑结构是那些不会同时执行的程序段共享一段内存区域。未执行的程序段先保存在磁盘上,当有关程序段的前一部分执行结束后,把后续程序段调入内存,覆盖前面的程序段。

 
 
 
7.交换技术
交换技术是把主存中暂时不能运行的进程,或者暂时不用的程序和数据,换出到外存上,把已具备运行条件的进程,或进程所需要的程序或者数据,换入到主存的技术。

交换技术需要考虑的问题:
(1)换出进程的选择
(2)选择时机的确定
(3)交换空间的分配
(4)换入进程换回内存时位置的确定

 
 
 
8.页式存储管理
在页式存储管理方式中,将用户作业的地址空间分成若干个大小相同的区域,称为页面或者页,并且为每个页从“0”开始编号;
相应地,主页空间也分成与页大小相同的若干个存储块,称为物理块或者页框,并且采用同样的方式对他们进行编号,从0开始:0,1,2,……n-1块
程序的逻辑地址由页号和页内地址组成,页号的长度决定了分页的大小,页内地址的长度决定了页面的大小。在为页面分配主存时,以块为单位将作业中的若干个页分别装入到多个不相邻的块中。作业执行时根据逻辑地址中的页号找到它所在的块号,再确定当前指令要访问的物理地址。它的地址转换属于动态重定位,由于进程的最后一页经常装不满一块,而形成不可利用的碎片,称为“页内碎片”。

8.1主存空间的分配与回收
(1)采用的数据结构,为了实现页式存储管理结构方式,系统设置了主存分配表位示图页表,记录主存空间的使用情况和每个作业的分配情况。

(2)主存空间的分配
如何给一个作业分配块?
首先要初始化位示图;然后从作业队列当中取出队首作业,计算该作业的页数;接着比较空闲块数与页数的大小;
如果空闲块数>页数,为该作业创建页表,根据位示图装入作业的每一页,修改位示图中的标记,在页表中填入页号以及对应的块号,修改位示图当中的空闲块数,并在主存分配表中填入该作业的相关记录。
如果空闲块数<页数,显示主存不足,删除该作业或者入队尾。

主存分配表,位示图,页表的作用
主存分配表用来存储页表在内存中的位置。
位示图用来存储块是否可用,以及整个块中的空闲块数
页表是用来存储块号和页号的对应关系。

(3)主存空间的回收
当一个作业执行结束,则应收回该作业所占用的主存块,根据主存分配表中的记录,取出该作业的页表。从该作业的页表中取出每一个归还的块号,计算出该块在位示图中的位置,将占用标志位置为0,最后,把归还的块数加入到空闲块数中,删除该作业的页表,并把分区分配表中该作业的记录删除。

如果一个计算机的硬盘为64G,每个块的大小为4K,如果用位示图来管理硬盘的空间,则位示图的大小为(2M)字节
块数=64G/4K=64*1024M/4K=16M。用位示图表示就要用16M个二进制来表示块的状态。16M/8=2M字节。

 
 
 
9.地址转换和快表
地址转换:两个与地址转换有关的方法:
一是,由逻辑地址计算出页号和页内地址的计算方法如下:
页号=逻辑地址/页长(商)
页内地址=逻辑地址 mod 页长(余数)
二是,由块号计算物理地址的计算方法为
物理地址=块号*块长+块内地址+用户区基址

页表:多级页表散列页表反置页表

页式管理的特点
(1)有效地解决了“碎片”多的问题。可以使程序和数据存放在不连续的主存空间,而不必像可变分区管理那样通过增加系统开销来解决主存碎片的问题。
(2)通过位示图和页表来记录主存的使用情况和每个作业的分配情况,当主存很大,并且作业也很大时,位示图和页表都有可能占用较大的存储空间。另外,它要求有相应的硬件支持,从而增加了系统成本,也增加了系统开销。例如需要地址变换机构,快表等。它仍然存在不可利用的空间,例如最后一页往往还有剩余空间。
(3)要求页的大小固定,不能随程序的大小而改变,这对程序的共享和使用造成了困难。

9.2快表
因页表在主存中,CPU在存取数据时,要访问主存两次。第一次是访问主存中的页表,从中找出该页的物理块号,将此块号与页内地址拼接成物理地址。第二次是根据上一步得到的物理地址,到主存中存取数据。这样就降低了计算机的处理速度。为了提高处理速度,可以采用快表和两级页表的方法对页式存储管理进行改进。
具有快表的地址变换
具有两级页表的地址变换

页式存储管理的快表一般存放在CACHE高速缓存中

虚拟缓存技术的物理容量也称为实际容量,当最大容量大于等于主存与硬盘容量之和时,虚拟存储器实际容量为主存与硬盘容量之和;当最大容量小于主存与硬盘容量之和时,虚拟存储器实际容量就是最大容量。虚拟存储器的运行速度接近于主存速度,而其成本却又接近于外存。可见,虚拟存储技术是一种性能非常优越的存储管理技术,可被广泛应用。

页式存储管理是建立在纯分页的基础上的,增加了请求调页功能和页面置换功能所形成的页式虚拟存储管理系统。它把作业分成大小相等的若干页,把主存分成与页大小相等的若干块;对于每个作业限定分给它的主存块数,先把作业的部分页装入主存的这些块中,在作业运行时再装入所需要的页。

页面调度策略:
调入策略:
(1)请求调页
(2)预调页
置页策略
置换策略
(1)固定分配局部置换
(2)可变分配全局置换
(3)可变分配局部置换

 
 
 
段式存储管理方式
基本原理:在段式存储管理方式中,作业的地址空间被划分为若干段,每段定义了一组逻辑信息。例如,有主程序段 MAIN 、子程序段 X 、数据段 D 及栈段 S 等。每个段都有自己的名字。为了实现简单,通常可用一个段号来代替段名,每个段都从0开始编址,并采用一段连续的地址空间。段的长度由相应的逻辑信息组的长度决定,因而各段长度不等。

整个作业的逻辑地址空间,由于分成多个段,因而是二维的,即其逻辑地址由段号和段内地址组成。

段页式存储管理
段页式存储管理方式的基本原理是段式和页式系统工作原理的组合,即先把用户程序分成若干个段,并为每个段赋予一个段名,每段可以独立地从"0"编址,再把每个段划分成大小相等的若干个页,把主存分成与页大小相同的块。每段分配与其页数相同的主存块,主存块可以连续,也可以不连续。

在分页存储管理系统中,从页号到物理块号的地址映射是通过页表实现的。
在存储管理的各个方案中,可扩充主存容量的方案是页式虚拟存储管理
系统抖动是指被调出的页面又立刻被调入所形成的频繁调入调出现象。
虚拟存储器的最大容量是由内外存容量的总和决定。
位示图可用来分页式存储管理中主存空闲块的分配和回收
可重定位内存分区分配的目的是解决碎片问题

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

旺旺的碎冰冰~

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值