`
alphafox
  • 浏览: 17990 次
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

虚拟存储器 与虚拟内存详解

 
阅读更多

在没有虚拟存储器之前

源程序在gcc –o 后生成的文件是可执行目标程序a.out,每条指令都有一个逻辑地址 32位。它存在硬盘上。

要执行时,只需找到该文件,将其装入内存。

装入的方式可以有多种,比如分页,分段等等。但是,必须将该程序完全装入内存。

分页:将一个进程的逻辑地址空间(32位)分成若干大小相等的页。

使用分页方式时有一个问题,必须清楚:

os是根据文件系统找到的a.out,跟a.out的逻辑地址没有一点关系

假如a.out是3个页大小,

就将这3个页分别装入内存,

装入内存的过程中将逻辑地址转换为物理地址。

如果内存为1G 每个程序的大小是100M,那么该os最多只能装10个程序。

虚拟存储器的定义:

具有请求调入功能和置换功能,能从逻辑上对内存容量加以扩充的一种存储系统。

即,程序在运行之前,没必要全部装入内存,

仅把当前要运行的页装入即可,当程序运行时,如果需要其它页面,再进行页面调入或者置换。

这样 假如内存为1G,硬盘为200G,每个程序的大小为2G。

那么该os可以同时装100个程序进内存(甚至可以更多,此处是100,是因为硬盘大小的限制)。而此前的os一个程序也装不下。

也就是说,在用户看来,内存的容量变为了200G,因为有1002G的程序被装入内存了。

但实际的内存只有1G,因此将这种存储系统称为虚拟存储器。

接下来的问题是,在没有虚拟存储器之前,os根据文件名通过文件系统将程序的全部内容载入内存,现在仅装入了一部分,剩下的部分在需要时os该怎么找到?

每个进程都有一张页表。页表的作用是实现程序页号到实地址块号的映射。页表是放在内存中的。

请求分页系统的页表项:

页号

实地址块号

状态位

修改位

外存地址

这样os就可以根据外存地址将所需的页面从硬盘中找到装入对应的内存中了。

综上,逻辑地址跟硬盘一点关系都没有。

逻辑地址使每个进程可以独立对程序的指令进行了编号,这样使每个进程都感觉自己在独占内存。到执行的时候容易将其映射为物理地址。

虚拟存储器的引入 使程序可以不必完全装入内存就能运行。

虚拟存储器一般会用到分页、分段,

但是,分页、分段并不是因为虚拟存储器才被发明的。

明白了这些以后,虚拟内存就比较好理解了

虚拟内存是用硬盘的一部分当内存,虽然把它当做内存用,可这块空间毕竟是在硬盘,速度肯定不如真是内存,所以说它是虚的。

这块虚拟内存的主要用途是当真实的内存被用完以后,又发生页面置换时,可以先把该页面换到这个地方。即虽然页面被换出内存了,但认为其还在内存。这个地方可以被称为假的实地址。

这块硬盘采用的调度算法和其他地方不一样。它是专门为换入换出设计的。

在32位系统中,假如物理内存大于4G,虚拟内存将完全无用武之地。因为cpu只能访问4G的内存空间,没必要再用硬盘当内存了。


分享到:
评论

相关推荐

    ARM MMU详解

    在没有使用虚拟存储器的机器上,虚拟地址被直接送到内存总线上,使具有相同地址的物理存储器被读写。而在使用了虚拟存储器的情况下,虚拟地址不是被直接送到内存地址总线上,而是送到内存管理单元——MMU.他由一个或...

    详解Linux内核内存管理架构

    内存管理子系统可能是linux内核中最为复杂的一个子系统,其支持的功能需求众多,如页面映射、页面分配、页面回收、页面交换、冷热页面、紧急页面、页面碎片管理、页面缓存、页面统计...1)首先L1 cache支持虚拟地址寻址

    详解智能购物应用中的存储器

    IoT领域建立在云计算以及由移动、虚拟和即时连接搭建的数据采集传感器网络的基础之上。行业认为,它将让我们生活中的一切变得更加“智能”,从路灯到海港。IoT已经渗透至各行各业:从工厂自动化到点播娱乐和可穿戴...

    TCPIP详解--共三卷

    TCP/IP详解 卷1:协议 译者序 前言 第1章 概述 1 1.1 引言 1 1.2 分层 1 1.3 TCP/IP的分层 4 1.4 互联网的地址 5 1.5 域名系统 6 1.6 封装 6 1.7 分用 8 1.8 客户-服务器模型 8 1.9 端口号 9 1.10 标准化过程 10 ...

    计算机操作系统PPT详解

    第二章至第十章分别阐述了操作系统的基本原理 、概念和实现方法,包括中断技术,进程和线程的管理、进程的同步和通信,存储器管理,虚似存储器,处理机调度,死锁问题,设备管理和文件系统;第十一章介绍了UNIX操作...

    Unix操作系统详解课件

    UNIX系统采用进程对换(Swapping)的内存管理机制和请求调页的存储方式,实现了虚拟内存管理,大大提高了内存的使用效率。 UNIX系统提供多种通信机制,如:管道通信,软中断通信,消息通信,共享存储器通信,信号灯...

    详解Python IO口多路复用

    现在操作系统都是采用虚拟存储器,那么对32位操作系统而言,它的寻址空间(虚拟存储空间)为4G(2的32次方)。操作系统的核心是内核,独立于普通的应用程序,可以访问受保护的内存空间,也有访问底层硬件设备的所有...

    操作系统复习总结版(含答案部分详解)

    为了使并发进程能更方便、更有效地共享资源,OS常采用多种虚拟技术在逻辑上增加CPU和设备的数量以及存储器的容量,从而解决并发进程对有限系统资源的共享问题。 4、异步性是并发性和共享性的必然结果。OS允许多个...

    移动操作系统多核系统等操作系统概念详解-英文版.rar

    虚拟化 4.非易失性存储器二级存储器 为此在新版本中整合了相关的内容。 例如,大大增加了Android和iOS移动操作系统的覆盖面,以及ARMv8架构的覆盖面,ARMv8架构主导了移动设备。我们还增加了对多核系统...

    网格技术详解

    建设网格的目的也是一样,其最终目的是希望它能够把分布在因特网上数以亿计的计算机、存储器、贵重设备、数据库等结合起来,形成一个虚拟的、空前强大的超级计算机,满足不断增长的计算、存储需求,并使信息世界成为...

    TCP-IP详解-卷2实现分两部分-part2

    第2章 mbuf:存储器缓存 24 2.1 引言 24 2.2 代码介绍 27 2.2.1 全局变量 27 2.2.2 统计 28 2.2.3 内核统计 28 2.3 mbuf的定义 29 2.4 mbuf结构 29 2.5 简单的mbuf宏和函数 31 2.5.1 m_get函数 32 2.5.2 MGET宏 32 ...

    TCP-IP详解卷二:实现

    第2章 mbuf:存储器缓存 2.1 引言 2.2 代码介绍 2.2.1 全局变量 2.2.2 统计 2.2.3 内核统计 2.3 mbufl的定义 2.4 mbuf结构 2.5 简单的mbuf宏和函数 2.5.1 m-get函数 2.5.2 MGET宏 2.5.3 m-etry函数 2.5.4 mbuf锁 ...

    TCP-IP详解卷2_2.rar

    第2章 mbuf:存储器缓存 24 2.1 引言 24 2.2 代码介绍 27 2.2.1 全局变量 27 2.2.2 统计 28 2.2.3 内核统计 28 2.3 mbuf的定义 29 2.4 mbuf结构 29 2.5 简单的mbuf宏和函数 31 2.5.1 m_get函数 32 2.5.2 MGET宏 32 ...

    TCP_IP详解卷1

    《TCP/IP详解,卷1:协议》是一本完整而详细的TCP/IP协议指南。描述了属于每一层的各个协议以及它们如何在不同操作系统中运行。作者用Lawrence Berkeley实验室的tcpdump程序来捕获不同操作系统和TCP/IP实现之间传输...

    TCPIP协议详解卷2:实现

    第2章 mbuf:存储器缓存 24 2.1 引言 24 2.2 代码介绍 27 2.2.1 全局变量 27 2.2.2 统计 28 2.2.3 内核统计 28 2.3 mbuf的定义 29 2.4 mbuf结构 29 2.5 简单的mbuf宏和函数 31 2.5.1 m_get函数 32 2.5.2 MGET宏 32 ...

    TCP-IP详解卷2:实现.part1

    《TCP-IP详解》共3卷,其他卷请到我空间下载,第2卷共分两个part,请下载完两个part后在解压。本书完整而详细地介绍了TCP/IP协议是如何实现的。书中给出了约500个图例,15 000行实际操作的C代码,采用举例教学的方法...

    TCP-IP详解卷2:实现.part2

    《TCP-IP详解》共3卷,其他卷请到我空间下载,第2卷共分两个part,请下载完两个part后在解压。本书完整而详细地介绍了TCP/IP协议是如何实现的。书中给出了约500个图例,15 000行实际操作的C代码,采用举例教学的方法...

    TCP-IP详解卷2:实现

    第2章 mbuf:存储器缓存 24 2.1 引言 24 2.2 代码介绍 27 2.2.1 全局变量 27 2.2.2 统计 28 2.2.3 内核统计 28 2.3 mbuf的定义 29 2.4 mbuf结构 29 2.5 简单的mbuf宏和函数 31 2.5.1 m_get函数 32 2.5.2 MGET宏 32 ...

    TCP/IP详解part_2

    《TCP/IP详解,卷1:协议》是一本完整而详细的TCP/IP协议指南。描述了属于每一层的各个协议以及它们如何在不同操作系统中运行。作者用Lawrence Berkeley实验室的tcpdump程序来捕获不同操作系统和TCP/IP实现之间传输...

Global site tag (gtag.js) - Google Analytics