文章目录

  • 【第六章】虚拟存储器
    • | 本章概念
      • 1.虚拟存储器概述
      • 2.请求分页存储管理方式基本概念
      • 3.页面置换算法的相关概念
      • 4.请求分段存储管理方式基本概念
    • | 本章算法
      • 1.分页存储管理的有关计算公式
      • 2.请求分页系统访问内存的有效时间EAT
      • 3.已知逻辑地址、页大小、页表;求物理地址
      • 4.页面置换算法
      • 5.请求分段存储管理方式 地址变换
    • | 课后简答题

【第六章】虚拟存储器

| 本章概念

1.虚拟存储器概述

  • 前面基础存储器的缺点
    • 有一个共同特点:作业全部装入内存后方能运行
    • 常规存储器管理方式的特征:一次性:作业被一次性全部装入内存;驻留性:作业一直驻留在内存
    • 一次性和驻留性使许多在程序运行中不用或暂不用的程序(数据)占据了 大量的内存空间,使得一些需要运行的作业无法装入运行。
  • 如何解决【大作业装不下、少量作业得以运行】的问题?解决办法:扩充内存、逻辑上扩充内存容量(虚拟存储器)
  • 虚拟存储器的定义
    • 应用程序在运行之前,没有必要全部装入内存,仅须将 那些当前要运行的部分页面或段先装入内存便可运行
    • 具有请求调入功能和置换功能,能从逻辑上对内存容量加以扩充的一种存储器系统。
    • 其运行速度接近于内存速度,而成本接近于外存
  • 虚拟存储器的特征
    • 多次性:作业中的程序和数据允许被分成多次调入内存允许
    • 对换性:作业运行时无须常驻内存
    • 虚拟性:从逻辑上扩充了内存容量,使用户看到的内存容量远大于实 际内存容量
  • 虚拟存储器的实现方法
    • 请求分页系统
    • 请求分段系统
    • 段页式虚拟存储器

2.请求分页存储管理方式基本概念

  • 最小物理块数的确定:保证进程正常运行所需的最小物理块数。取决于指令的格式、功能和寻址方式。
    • 平均分配算法;
    • 按比例分配算法; 各进程页面总和 S = ΣSi 每个进程所能分到的物理块数 bi = Si / S * m
    • 考虑优先权的分配算法;
  • 页面调入策略:
    • 何时调入页面?预调页策略、请求调页策略
    • 从何处调入页面?
    • 如何调入页面?查找所需页在磁盘上的位置、查找一内存空闲块、将所需页读入新空闲块然后更新页表、重启用户进程
  • 缺页率的计算:
    • S:访问页面成功次数
    • F:访问页面失败次数
    • A : 总访问次数 = S+F
    • 缺页率 = F/A
  • 缺页中断处理时间:
    • β:被置换的页面被修改的概率
    • ta:被置换页面被 修改的缺页中断处理时间
    • tb:被置换页面没有被修改的缺页中断时间
    • 缺页中断处理的时间 = β * ta + (1-β)*tb

3.页面置换算法的相关概念

  • 页面置换:找到内存中没有使用的一些页,换出
  • 性能的关键点 :找出一个导致最小缺页数的算法
  • 同一个页可能会被装入内存多次(可能造成“抖动”)
  • 页面置换完善了逻辑内存和物理内存的划分——在一个较小的物理 内存基础之上可以提供一个大的虚拟内存
  • 常见的页面置换算法:最佳置换算法 OPT 、先进先出置换算法 FIFO 、最近最久未使用算法 LRU 、最少使用算法 LFU、Clock置换算法、页面缓冲算法
  • 目的:尽可能小的缺页率

4.请求分段存储管理方式基本概念

  • 在分页基础上建立的请求分页式虚拟存储器系统,是以页面为单位进行换出 / 换入的。而在分段基础上所建立的请求分段式虚拟存储器系统,则是以分段为单位进行换入 / 换出的
  • 请求分段中的硬件支持
    • 请求段表机制
    • 缺段中断机构:在指令执行期间产生和处理中断信号。一条指令在执行期间,可能产 生多次缺段中断。由于段不是定长的,因此中断处理比缺页中断复杂
    • 地址变换机构:若段不在内存中,则必须先将 所缺的段调入内存,并修改段表,然后利用段表进行地址变换。
  • 分段保护:
    • 越界检查:比较段号与段表长度;段内地址与段表长度
    • 存取控制检查:以段为基本单位进行
    • 环保护机构

| 本章算法

1.分页存储管理的有关计算公式

最小物理块的数量计算公式

按比例分配算法; 各进程页面总和 S = ΣSi 每个进程所能分到的物理块数 bi = Si / S * m

缺页率的计算

  • S:访问页面成功次数
  • F:访问页面失败次数
  • A : 总访问次数 = S+F
  • 缺页率 = F/A

缺页中断处理时间的计算

  • β:被置换的页面被修改的概率
  • ta:被置换页面被 修改的缺页中断处理时间
  • tb:被置换页面没有被修改的缺页中断时间
  • 缺页中断处理的时间 = β * ta + (1-β)*tb

2.请求分页系统访问内存的有效时间EAT

λ:为查找快表所需要的时间

t:为访问一次内存所需要的时间

访问页在内存,且其对应页表项在快表中 EAT= λ + t

访问页在内存,但其对应页表项不在快表中 EAT= λ + t + λ + t = 2(λ + t)

t:为访问一次内存所需要的时间

φ:缺页中断处理时间

f:缺页率

访问页不在内存中:需进行缺页中断处理,有效时间可分为查找快表的时间、查找页表的时间、 处理缺页的时间、更新快表的时间和访问实际物理地址的时间

EAT = t + f ×(φ + t) + (1- f) × t

区别于【第五章:存储器管理】的【引入快表后的有效访问时间】计算公式

这个是请求调页系统,第五章那个是分页存储系统




3.已知逻辑地址、页大小、页表;求物理地址

①把逻辑地址转为二进制(如101(8) → 001 000 001)

②根据页大小计算出页的地址结构(如一页32B,2^5=32 因此低5位为页内地址,其余页为页号)

③由①的二进制,结合②的地址结构,可以得出【页号、页内地址】(如001 000 001,低5位为页内地址,则该二进制表示第2页,页内第1位)

④查表,若查得到则OK;若查不到则表示该逻辑地址不能转换


4.页面置换算法

最佳页面置换算法 OPT

  • 被置换的页将是之后最长时间不被使用的页。是一种理想算法,永远不可能实现

先进先出置换算法 FIFO

  • 总是淘汰最先进入内存的页面

最近最久未使用算法 LRU

  • 选择最近最久未使用的页面予以淘汰
  • 硬件支持:被访问的页面对应寄存器的Rn-1位置为1,定时右移
  • 具有最小数值的寄存器所对应的页面为淘汰页

最少使用算法 LFU(了解)

  • 选择在最近时期使用最少的页面作为淘汰页。(如果一个数据在最近一段时间很少被访问到,那么可以认为在将来它被访问的可能性也很小。因此,当空间满时,最小频率访问的数据最先被淘汰;当存在两个或者更多个键具有相同的使用频次时,应该淘汰最久未使用的数据。(即此时为 LRU)
  • 为内存中的每个页面设置 一个移位寄存器,用来记 录该页面的被访问频率

Clock置换算法(了解)

  • LRU的近似算法,又称最近未用(NRU)或二次机会页面置换算法

  • 每个页都与一个访问位相关联,初始值位0,当页被访问时置访问位为1,置换时选择访问位为0的页 ;若为1,重新置为0

    页面缓冲算法(了解)

  • 设置两个链表:

    • ①空闲页面链表:保存空闲物理块
    • ②修改页面链表:保存已修改且需要被换出的页面,等被换出的页面数目达到一定值时,再一起换出外存



5.请求分段存储管理方式 地址变换

作业最多可拥有的段数 = 2 ^ 虚拟地址中【段号】的位数

作业最多可拥有的长度字节 = 2 ^ 虚拟地址中【段内相对地址】的位数

已知段号和段内地址,如何进行地址变换?

① 找到段号对应的段长 L 和主存起始地址 S

② 若段表中段号所对应的段长 < 所给的段内地址 则说明产生了越界中断,无法转换

若段表中段号对应的段长 ≥ 所给的段内地址, 则逻辑地址对应的主存地址为【主存起始地址 + 段内地址】


| 课后简答题

1.常规存储器管理方式具有哪两大特征” />
10.为了实现请求分段存储管理,应在系统中增加配置哪些硬件机构?

为了实现请求分段存储管理,应在系统中配置多种硬件机构以支持快速完成请求分段功能。

所需的硬件支持有段表机制、缺段中断机构以及地址转换机构。