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

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

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

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

存储器不足

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

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

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

虚拟存储器的定义与特征

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

虚拟存储器的实现方式

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

推荐阅读
  • 结城浩(1963年7月出生),日本资深程序员和技术作家,居住在东京武藏野市。他开发了著名的YukiWiki软件,并在杂志上发表了大量程序入门文章和技术翻译作品。结城浩著有30多本关于编程和数学的书籍,其中许多被翻译成英文和韩文。 ... [详细]
  • 最详尽的4K技术科普
    什么是4K?4K是一个分辨率的范畴,即40962160的像素分辨率,一般用于专业设备居多,目前家庭用的设备,如 ... [详细]
  • H凹变换优化技术——lhMorphConcave详解与应用摘要:本文详细介绍了lhMorphConcave技术,该技术通过优化H凹变换来提高图像处理的精度。具体而言,该函数在5×5的正方形区域内对输入图像进行二值化处理,以实现更精确的形态学分析。参数设置方面,sr参数用于控制变换的具体细节,从而确保在不同应用场景中都能获得理想的效果。此外,文章还探讨了该技术在实际项目中的应用案例,展示了其在图像分割、特征提取等领域的强大潜力。 ... [详细]
  • 使用HTML和JavaScript实现视频截图功能
    本文介绍了如何利用HTML和JavaScript实现从远程MP4、本地摄像头及本地上传的MP4文件中截取视频帧,并展示了具体的实现步骤和示例代码。 ... [详细]
  • 如何在 Python 列表中添加元素 [Python 基础]
    本文介绍了 Python 中常用的三种方法来向列表中添加元素:`append()`、`extend()` 和 `insert()`。这些方法分别适用于不同的场景,帮助开发者灵活地管理列表数据。 ... [详细]
  • 本文介绍 DB2 中的基本概念,重点解释事务单元(UOW)和事务的概念。事务单元是指作为单个原子操作执行的一个或多个 SQL 查询。 ... [详细]
  • Visual Studio 2019 安装指南
    作为一名拥有三年经验的程序员,由于长期专注于C语言,我意识到自己的技术栈过于单一。在转型为Android驱动开发工程师后,这种局限性更加明显。本文将介绍如何安装Visual Studio 2019,并配置C++开发环境,以帮助读者拓宽技术视野。 ... [详细]
  • 本文将深入探讨 iOS 中的 Grand Central Dispatch (GCD),并介绍如何利用 GCD 进行高效多线程编程。如果你对线程的基本概念还不熟悉,建议先阅读相关基础资料。 ... [详细]
  • python模块之正则
    re模块可以读懂你写的正则表达式根据你写的表达式去执行任务用re去操作正则正则表达式使用一些规则来检测一些字符串是否符合个人要求,从一段字符串中找到符合要求的内容。在 ... [详细]
  • Nvidia Ansel 工具为 PC 玩家提供了便捷的高精度图像采集和分享功能。本文介绍了如何将 Ansel 插件集成到虚幻引擎 4 (UE4) 游戏中,并详细说明了其主要功能和系统要求。 ... [详细]
  • 优化虎牙直播体验的插件
    近期在观看虎牙直播时,发现广告和一些低质量直播间频繁出现,严重影响了观看体验。为此,我开发了一款插件,帮助用户屏蔽这些不想要的内容。以下是插件的介绍和使用方法。 ... [详细]
  • 深入解析Django CBV模型的源码运行机制
    本文详细探讨了Django CBV(Class-Based Views)模型的源码运行流程,通过具体的示例代码和详细的解释,帮助读者更好地理解和应用这一强大的功能。 ... [详细]
  • 一个初秋的雨夜,我独自漫步在校园的小道上,心中突然涌起对理想爱情的憧憬。这篇文章将分享我对理想伴侣的期望,以及与他共度美好时光的愿景。 ... [详细]
  • C#实现文件的压缩与解压
    2019独角兽企业重金招聘Python工程师标准一、准备工作1、下载ICSharpCode.SharpZipLib.dll文件2、项目中引用这个dll二、文件压缩与解压共用类 ... [详细]
  • Python 数据可视化实战指南
    本文详细介绍如何使用 Python 进行数据可视化,涵盖从环境搭建到具体实例的全过程。 ... [详细]
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社区 版权所有