热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

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

文章首发及后续更新:https:mwhls.top1549.html新的更新内容请到mwhls.top查看。无图无目录格式错误更多相关请到上方的文章首发页面查看。存储

文章首发及后续更新:https://mwhls.top/1549.html
新的更新内容请到mwhls.top查看。
无图/无目录/格式错误/更多相关请到上方的文章首发页面查看。

存储器不足

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

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

  • 常规存储器管理方式的特征:
    • 前面提到的物理存储器统称为传统存储器管理方式。
    • 一次性:作业需要一次性装入内存才允许运行。
    • 驻留性:直到运行结束,整个作业将一直在内存中保留,即便它是被阻塞的。
    • 注:
      • 这部分有点奇怪,首先是内容和标题不对应,内容说是传统存储管理方式,小标题说是常规存储器管理方式,大标题说是常规存储管理方式。
      • 以及驻留性,说是运行结束才会终止,但是前面提到的兑换、分页、分段明明就是为了解决这个问题而出现的...
        • 操作系统原理学习笔记(二十一)-对换
        • 操作系统原理学习笔记(二十二)-分页存储管理方式
        • 操作系统原理学习笔记(二十三)-分段存储管理方式
  • 局部性原理-由P.Denning于1968年提出:
    • 论点:
      • 程序执行时,除少部分转移、过程调用命令外,大部分情况下是顺序执行的。
      • 过程调用虽然会使程序执行轨迹转移,但大多数情况下深度不超过5,换句话说,一定时间内,程序的执行轨迹是可预知的。
      • 程序中的循环结构虽然不是顺序执行,但是他会被循环调用。
      • 对数据结构的处理大多局限于小范围内。
    • 局限性还表现在两个方面:
      • 时间局限性。某语句或数据刚被访问过,则还会被访问的几率较大,因为程序中存在大量循环结构。
      • 空间局限性:某个存储单元被访问,则附近的存储单元大概率将被访问,因为顺序结构。
  • 虚拟存储器的基本工作情况:
    • 由局部性原理可知,程序运行前,不需要全部装入内存,只需将需要用到的页/段装入内存即可。

虚拟存储器的定义与特征

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

虚拟存储器的实现方式

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

推荐阅读
author-avatar
今天是星期天嘛_512
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有