(操作系统) 第四章:存储器管理

本文详细介绍了存储器的多级层次结构,包括寄存器、高速缓存、主存储器和辅存等,并探讨了程序装入的三种方式:绝对装入、可重定位装入和动态运行时装入。此外,还讨论了动态分区分配的算法,如首次适应、最佳适应等,以及分页和分段存储管理。动态重定位、对换技术和不同存储管理方式的优缺点也在文中有所阐述。

一、定义

存储器的层次结构

  • 1 . 存储器的多层结构

    • 存储器至少具有三级:最高层为CPU寄存器、中间为主存、最底层是辅存。
    • 较高档的计算机中可细分为:寄存器、高速缓存、主存储器、磁盘缓存、固定磁盘、可移动存储介质。
      在这里插入图片描述
  • 2 . 可执行存储器 :寄存器和主存储器被称为可执行存储器。

  • 3 . 主存储器 : 用以保存进程运行时的程序和数据

  • 4 . 寄存器 : 具有与处理器相同的速度,故对寄存器的访问速度最快,完全能与CPU协调工作。

  • 5 . 高速缓存 : 介于寄存器和存储器之间的存储器。

  • 6 . 磁盘缓存 : 由于目前磁盘的I/O速度远低于对主存的访问速度,为了缓和两者之间再速度上的不匹配,而设置了磁盘缓存。

  • 7 . 编译 : 由编译程序对用户程序进行编译,形成若干个目标模块。

  • 8 . 链接 : 由链接程序将编译后的一组模块与模块所需要的库函数链接在一起,形成一个完整的装入模块。

  • 9 . 装入 : 由装入程序将装入模块装入内存。

程序的装入和链接

程序的装入

  • 10 . 绝对装入方式 : 当计算机系统很小,且仅能运行单道程序时,完全有可能知道程序将驻留在内存的什么位置时,可以采用绝对装入方式。
  • 11 . 可重定位装入方式 : 由于程序中的其他程序都是相对于起始地址计算的,所以不可能在采用绝对装入方式,而应采用可重定位装入方式,它可以根据具体情况将装入模块装入到内存的适当位置。
  • 12 . 动态运行时的装入方式 : 当程序和数据在运行时的位置会发生改变的时候,我们就会采用动态运行时的装入方式。

程序的链接

  • 13 . 静态链接方式 :在程序运行之前,先将各模块和它们所需的库函数链接成一个完成的装配模块,以后不在拆开。
  • 14 . 装入时动态链接:在装入内存时,采取边编译边装入的链接方式。
  • 15 . 运行时动态链接:由于事先不知道要运行的模块,而采用运行时动态链接。

连续分配存储管理方式

  • 16 . 单一连续分配 : 整个内存的用户空间由该程序独占时,可以采用单一连续分配方式。
  • 17 . 固定分区分配 : 将整个用户空间划分为若干个固定大小的区域,在每个分区中之装入一道作业。
  • 18 . 动态分区分配 : 用相应的数据结构描述空闲分区和已分配分区的情况,为分配提供依据。

基于顺序搜索的动态分区分配算法

  • 19 . 首次适应算法 : 每次从链首开始搜索首次适应的分区。
  • 20 . 循环首次适应算法 : 每次从上一次结束搜索的分区,开始搜索首次适应的分区。
  • 21 . 最佳适应算法 : 总是把能满足要求的、最小的空闲分区分配给作业。
  • 22 . 最坏适应算法 : 总是选择一块最大的空闲分区,从中割一部分存储空间给作业使用。

基于索引搜索的动态分区匹配算法

  • 23 . 快速适应算法 : 对于每一类具有相同容量的所有空闲分区,单独设立一个空闲分区链表。这样系统中存在多个空闲分区链表,同时,在内存中设立管理索引表,对应空闲分区表。
  • 24 . 伙伴系统 : 将一个大小为2的k次幂的内存分配,每次只能分配2的n次幂大小的分区,分配后我们将不同大小的分区用双向链表放置。例如:有一个大小为3的作业,应该寻找一个大小为4的内存空间位置分配,如果没有就寻找大小为8的内存空间,依次寻找大小为16的内存空间;如果是大小为8的内存空间,会将空间分为两个大小为4的内存空间,一个分配给作业,一个保留。如果是16大小的内存空间,我们将它分为两个8大小的,再将一个8大小的分为4大小的,将一个分配给作业,一个保留。
  • 25 . 哈希算法 : 根据哈希函数,得到分配位置,实现最佳分配策略。

动态重定位分区分配

  • 26 . 紧凑 : 当内存中有很多小分区时,将内存中的所有作业进行移动,是它们全部相邻接。
  • 27 . 动态重定位 : 重定位寄存器,用来存放程序在内存中的起始地址。
  • 28 . 重定位分区匹配算法 : 在这里插入图片描述

分页存储管理方式

  • 29 . 分页存储管理 :将用户程序的地址空间分为若干个固定大小的区域,称为"页"或"页面"。典型的页面大小为1KB,相应地,也将内存空间分为若干个物理块和页框,也和块地大小相同。这样可将用户程序地任一页放入任一物理块中,实现离散分配。
  • 30 . 分段存储管理方式 : 为了满足用户要求而形成地一种存储管理方式。它把用户地地址空间分为若干个大小不同地段,每段可定义为一组相对完整的信息。在存储器分配时,以段为单位,这些段在内存中可以不相邻接,所以也同样实现了离散分配。
  • 31 . 段页式存储管理方式 : 这是分页和分段两种存储管理方式相结合的产物。它同时具有两者的优点,是目前应用较广泛的一种存储管理方式。

习题

1 . 为什么要配置层次存储器?

  • 为了让存储器更大
  • 为了让存储器能与处理机的速度相匹配
  • 由于存储器的价格昂贵

2 . 可采用那几种方式将程序装入内存?他们分别适用于那种场合?

  • 绝对装入方式:单道程序
  • 可重定位装入方式:多道程序中,初始位置为相对位置
  • 动态运行时装入方式:多道程序中,程序在内存中移动。

3 . 何谓静态链接?静态链接时需要解决的两个问题?

4 . 何谓装入时动态链接?装入时动态链接有何优点?
5 . 何谓运行时动态链接?优点?
6 . 在动态分区分配中,应如何将各空闲分区链接成空闲分区链?
7 . 为什么要引入动态重定位?如何实现?
8 . 什么是基于顺序搜索的动态分区分配算法?它可以分为哪几种?
9 . 在采用首次适应算法回收内存时,可能出现哪几种情况?应该怎样处理这些情况?
10 . 什么时基于索引搜索的动态分区分配算法?他可分为哪几种?
12 . 分区存储管理中常用那些分配策略?比较它们的优缺点。

  • 答案
    13 . 为什么引入对换?对换可分为哪几种类型?
    14 . 对文件区管理的目标和对换空间管理目标有何不同?
    15 . 为实现对换,系统应具备哪几方面功能?
    16 . 在以进程为单位进行对换时,每次是否都将整个进程换出?为什么?
    17 . 基于离散分配时所用的基本单位不同,可将离散分配分为哪几种?
    18 . 什么是页面?什么是物理块?页面的大小应如何确认?
    19 . 什么是页表?页表的作用是什么?
    20 . 为实现分页存储管理,需要哪些硬件支持?
    21 . 在分页系统中是如何实现地址变换的?
    22 . 具有快表时,是如何实现地址变换的?
    23 . 较详细地说明引入分段存储管理是为了满足用户哪几方面的需要。
    24 . 在具有快表的段页式存储管理中,如何实现地址变换?
    25 . 为什么说分段系统比分页系统更易于实现信息的共享和保护?
    26 . 分页和分段存储管理有何区别?
    27 . 试全面比较连续分配和离散分配方式。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值