操作系统原理学习笔记(二十四)-虚拟存储器概述

操作系统原理学习笔记目录

存储器不足

  • 各类存储器都要求作业在完全装入内存后才能运行,就可能出现两种情况:
    • 作业大小超过内存总容量,无法运行。
    • 大量作业要求运行,内存容量不足,仅少量作业能运行。
  • 这些情况有两种处理方式:
    • 物理上增加内存。
    • 逻辑上扩充内存。

常规存储管理方式的特征与局部性原理

  • 常规存储器管理方式的特征:
  • 局部性原理-由P.Denning于1968年提出:
    • 论点:
      • 程序执行时,除少部分转移、过程调用命令外,大部分情况下是顺序执行的。
      • 过程调用虽然会使程序执行轨迹转移,但大多数情况下深度不超过5,换句话说,一定时间内,程序的执行轨迹是可预知的。
      • 程序中的循环结构虽然不是顺序执行,但是他会被循环调用。
      • 对数据结构的处理大多局限于小范围内。
    • 局限性还表现在两个方面:
      • 时间局限性。某语句或数据刚被访问过,则还会被访问的几率较大,因为程序中存在大量循环结构。
      • 空间局限性:某个存储单元被访问,则附近的存储单元大概率将被访问,因为顺序结构。
  • 虚拟存储器的基本工作情况:
    • 由局部性原理可知,程序运行前,不需要全部装入内存,只需将需要用到的页/段装入内存即可。

虚拟存储器的定义与特征

  • 定义:
    • 具有请求调入功能、置换功能,能从逻辑上对内存容量加以扩充的一种存储器系统。
    • 逻辑容量由内存与外存之和决定,运行速度接近内存,成本接近外存。
  • 特征:
    • 多次性:作业可以分成多次调入内存,仅将需要的部分调入内存即可运行。
    • 对换性:作业的程序和数据不需要常驻内存,允许换进换出。
    • 虚拟性:从逻辑上扩充内存,使得用户感受到的内存容量比实际的大。
    • 虚拟性基于多次性与对换性,多次性与对换性又基于离散分配。

虚拟存储器的实现方式

  • 虚拟存储器必然以离散分配方式存储,如果是连续分配方式,在调入作业时,就需要在内存中预留一段连续的空间,以便作业分次装入内存,但这样反而造成内存资源浪费,达不到有效的内存空间利用。
  • 目前的虚拟存储器都是用下面方式之一实现的:
  • 分页请求系统:
    • 在分页系统中,增加请求调页功能和页面置换功能。
    • 允许仅装入少数页面的程序运行。
    • 通过调页功能与页面置换功能把即将运行的页面调入内存,将暂不使用的页面调入外存。
    • 以页面为单位置换,OS需要提供硬件支持与实现请求分页的软件。
    • 硬件支持:
      • 请求分页的页表机制。
      • 缺页中断机构。
      • 地址变换机构。
    • 实现请求分页的软件:
      • 在硬件支持下,将所需页面调入内存,并将暂不需要的页面置换到磁盘。
  • 请求分段系统:
    • 请求分段系统是在分段系统中,加入请求调段及分段置换功能的段式虚拟存储系统。
    • 允许仅装入少数段的程序运行。
    • 通过调段功能与段置换功能把即将运行的段调入内存,将暂不使用的段调入外存。
    • 以段为单位置换,OS需要提供硬件支持与实现请求分段、段置换的软件。
    • 硬件支持:
      • 请求分段的段表机制。
      • 缺段中断机构。
      • 地址变换机构。
    • 软件支持:
      • 在硬件支持下,将所需段调入内存,并将暂不需要的段置换到磁盘。
  • 请求分页系统比请求分段系统更简单,因为作为其置换单位的页面,是固定大小的,而段是动态长度。

You may also like...

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注