首页 > 其他分享 >虚拟存储概述

虚拟存储概述

时间:2022-12-06 13:22:22浏览次数:69  
标签:运行 装入 作业 虚拟存储 概述 内存 外存 虚拟内存

一、传统存储的特征

  • 一次性
    • 作业必须一次性全部装入内存后才能开始运行。这会造成两个问题
    • 作业很大时,不能全部装入内存导致大作业无法运行
    • ②当大量作业要求运行时,由于内存无法容纳所有作业,因此只有少量作业能运行,导致多道程序并发度下降。
  • 驻留性
    • 一旦作业被装入内存,就会一直驻留在内存中,直至作业运行结束
    • 事实上,在一个时间段内,只需要访问作业的一小部分数据即可正常运行,这就导致了内存中会驻留大量的、暂时用不到的数据,浪费了宝贵的内存资源。

二、虚拟存储技术

2.1、概述

  • 虚拟内存
    • 基于局部性原理,在程序装入时,可以将程序中很快会用到的部分装入内存,暂时用不到的部分留在外存,就可以让程序开始执行。
    • 在程序执行过程中,当所访问的信息不在内存时,由操作系统负贵将所需信息从外存调入内存,然后继续执行程序。
    • 若内存空间不够,由操作系统负责将内存中暂时用不到的信息换出到外存。
  • 虚拟内存的最大容量M和实际容量R
    • \(M由计算机的地址结构(CPU寻址范围)决定\)
      • 如:某计算机地址结构为32位,按字节编址,内存大小为\(512MB\),外存大小为\(2GB\)。则虚拟内存的最大容量为\(2^{32}B= 4GB\)
    • \(R=min(内存+外存,CPU寻址范围)\)
      • 接上例,\(R=min(512MB+2GB,4GB)=2.5GB\)
  • 虚拟内存的特征
    • 多次性:无需在作业运行时一次性全部装入内存,而是允许被分成多次调入内存。
    • 对换性:在作业运行时无需--直常驻内存,而是允许在作业运行过程中,将作业换入、换出。
    • 虚拟性:从逻辑上扩充了内存的容量,使用户看到的内存容量,远大于实际的容量。

2.2、虚拟内存的实现(离散分配)

  • 请求分页存储管理

  • 请求分段存储管理

  • 请求段页式存储管理

标签:运行,装入,作业,虚拟存储,概述,内存,外存,虚拟内存
From: https://www.cnblogs.com/shyfvm/p/16954955.html

相关文章

  • 嵌入式开发工具链概述
    一、嵌入式系统软件开发流程高级语言编写的源代码文件——》交叉编译器——》目标文件——》链接器用目标机的汇编语言编写的源代码文件——》交叉汇编器——》目标文件——......
  • servlet_概述和servlet_快速入门
    servlet_概述:serverapplet概念:运行在服务器端的小程序Servlet就是一个接口,定义一个Java类被浏览器访问到(tomcat识别)的规则将来我们自定义一个类,实现Ser......
  • 线上服务异常的定位、处理与优化的探索 - 第一章 概述
    一.1. 课题背景 项目在实施、交付、运维过程中难免出现过各种各样的线上服务异常发生。线上服务不同于本地,本地调试千好万好上线也运行难免出现问题。如:CPU爆满、起飞......
  • 300004 房屋建筑构造的概述
    <?phpheader('Content-Type:text/html;charset=utf-8');define('ROOT',$_SERVER['DOCUMENT_ROOT']);includeROOT.'/assets/php/head.php';$tit='房屋建筑构造的......
  • javaScript概述
    目录JS简介JS基础变量与常量基本数据类型运算符流程控制函数内置对象JS简介全称JavaScript但是与Java一毛钱关系都没有之所以这么叫是为了蹭Java的热度它是一门前端工......
  • Linux基础-01-概述思想
    1,一切皆文件;2、单一目的的小程序,组合小程序完成复杂任务;在linux中,每一个命令都是对应一个功能,通过不同的参数来完成不同的要求,通过繁多的小的命令来完成3、文本文件保存......
  • [N]Chap01:Java概述
    Thisisnottheend;Itisnoteventhebeginningoftheend.Butitis,Perhaps,Theendofthebeginning.......
  • Jenkins实践指南-01-pipeline概述
    1.pipeline概述1.1什么是pipeline从某种抽象层次上讲,部署流水线(Deploymentpipeline)是指从软件版本控制库到用户手中这一过程的自动化表现形式。——《持续交付-发布可......
  • 单元测试概述
    什么是单元测试本质上也是代码,但它的主要目的是用来验证业务代码的正确性、健壮性和稳定性,甚至是性能。它是代码级的测试。传统意义上的单元测试一般指软件的最小粒度模......
  • Swift闭包简要概述
    1.闭包闭包是一个捕获了外部变量或者常量的函数,可以有名字的函数,可以是匿名的函数,也可以是不捕获外部变量的函数。所以可以说闭包是特殊的函数。闭包是自包含的函数代码块,可......