`
kmplayer
  • 浏览: 508768 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

虚拟存储器

阅读更多
1,虚拟存储器是硬件异常,硬件地址翻译,主存,磁盘文件和内核文件的完美交互.
提供了三个重要的能力:
(1)将主存看作一个存储在磁盘上的地址空间的高速缓冲,在主存中只保存活动区域,根据需要在主存和磁盘之间来回传送数据.
(2)它为每个进程提供了一致的地址空间,简化了存储器管理.
(3)保护每个进程的地址空间不会被其他进程破坏.

2,一个简单的虚拟寻址系统:

MMU(memory management unit):利用存放在主存中的查询表(页表)动态翻译虚拟地址.

3,虚拟页面分为三个不想交的子集:
(1)未分配的.
(2)缓冲的.
(3)未缓冲的(没有缓冲在主存中的已分配页).

4,DRAM比SRAM慢大约10倍,而磁盘比DRAM慢大约10万多倍,而且从磁盘的第一个扇区读取第一字节的时间比读这个扇区后面的自己要慢大约10万倍.
由于不命中的巨大出发,虚拟页趋向于很大,典型的是4~8KB.

5,一个页表的简单样式:

注:磁盘和存储器之间传送页的活动叫做交换或页面调度.

6,实际中,不命中的概率不大,归功于"局部性".
如果工作集的大小超出了物理存储器的大小,会出现一种不幸的状态"颠簸(thrashing)",页面不断地换进换出.

7,实际中:操作系统为每个进程提供了一个独立的页表,也就是一个独立的虚拟地址空间.
带来的好处:
(1)简化链接:
每个Linux进程都使用下图格式.

文本区总是从0x08048000处开始,栈总是从地址0xbfffffff向下伸展,共享库代码总是从地址0x40000000处开始,操作系统的代码总是从0xcfffffff开始.
这样的一致性简化了链接器的设计和实现.

(2)简化共享:
操作系统可以将不同进程中适当的虚拟页面映射到相同的物理页面,从而实现多个进程共享同一个拷贝.

(3)简化存储器分配:
如果操作系统分配一个适当连续的虚拟存储器页面,可以将它们映射到物理存储器中任意位置的K个任意的物理页面.

(4)简化加载:
加载器从不真正从磁盘拷贝任何数据到存储器中,当每个页面第一次被引用时,虚拟存储器将自动把数据从磁盘调入到存储器.

8,存储器映射:映射一个连续虚拟页面的集合到任意一个文件中的任意一个位置的概念叫做存储器映射.
Unix提供了一个系统调用:mmap.

9,关于地址翻译:
CPU有个控制寄存器:页表基址寄存器(PTBR),指向当前页表.
CPU硬件执行的步骤:
(1)处理器生成一个虚拟地址,送给MMU.
(2)MMU生成PTE(页表表项)地址,并从高速缓冲/主存得到它.
(3)高速缓冲/主存向MMU返回PTE.
(4)MMU构造物理地址,并把它传送给高速缓冲/主存.

页面命中的情况:

页面不命中的情况:

10,结合高速缓冲和虚拟存储器:

11,每个CPU产生一个虚拟地址,MMU就必须查阅一个PTE,可以在MMU中包括一个关于PTE的小的缓冲,称为TLB(翻译后备缓冲器).
TLB的组成同高速缓冲:分组,标记位,块索引.

TLB命中的情况:

TLB不命中的情况:

12,多级页表:
假设一个PTE占用4字节的大小,对于32位的地址空间,需要一个4MB的页表驻留在存储器中.
对于64位的系统,问题将变得复杂.

例如一个二级页表:
一级页表中的每个PTE负责映射虚拟地址空间中一个4MB的组块,每个组块都是由1024个连续的页面组成.
如下图所示:

这种方法可以从两个方面减少对存储器的要求:
(1)如果第一级页表的一个PTE是空的,那么相应的二级页表根本不会存在,这个一种巨大的潜在节约.
(2)只有第一级页表总是在主存中,而最常使用的二级页表才会需要缓冲在主存中.
分享到:
评论

相关推荐

    操作系统虚拟存储器实验报告

    操作系统虚拟存储器是现代计算机系统中的重要组成部分,它允许我们使用比实际物理内存更大的地址空间。这个实验报告将深入探讨虚拟存储器的工作原理、实现机制以及其在实际操作中的应用。我们将通过源程序分析和实验...

    操作系统管理---虚拟存储器-实验报告-代码(1).doc

    "操作系统管理---虚拟存储器-实验报告-代码(1)" 本实验报告的主要内容是关于操作系统管理中虚拟存储器的实验报告,涵盖了虚拟存储器的概念、虚拟存储器管理、页面淘汰算法等知识点。 虚拟存储器是指通过操作系统的...

    虚拟存储器_操作系统实验报告

    ### 虚拟存储器与操作系统实验报告:深入解析与应用 #### 实验目标与原理概览 在大学计算机专业的教育体系中,《操作系统》课程是核心组成部分,它深入讲解了计算机系统如何管理和控制硬件资源,以及如何高效地...

    用C++编写的虚拟存储器源码

    虚拟存储器是现代操作系统中内存管理的关键技术,它允许程序使用超过实际物理内存大小的地址空间,通过在主存和磁盘之间动态交换数据来实现。在这个“用C++编写的虚拟存储器源码”中,我们可以看到一个针对分页式...

    操作系统课程设计 虚拟存储器

    ### 操作系统课程设计:虚拟存储器 #### 知识点概述 虚拟存储器是一种能够扩展计算机可用内存容量的技术,其基本思想是将程序的一部分保留在磁盘上,并且只将当前正在使用的部分加载到物理内存中。通过这种方式,...

    操作系统实验_虚拟存储器

    ### 操作系统实验:虚拟存储器 #### 实验目的与背景 在计算机科学领域,操作系统是连接硬件与软件的关键桥梁,而内存管理则是操作系统的重要组成部分之一。为了提高系统的整体性能和资源利用率,现代操作系统通常...

    模拟虚拟存储器管理代码

    从给定的文件信息来看,这段代码是在模拟虚拟存储器管理的不同算法,主要涉及FIFO(先进先出)、LRU(最近最少使用)以及OPT(最佳置换)算法。虚拟存储器管理是计算机科学中的一个重要概念,它允许操作系统通过将...

    虚拟存储器的工作原理.doc

    虚拟存储器是一种高级存储管理技术,它通过将内存与外部存储器(如硬盘)结合使用,使得程序可以访问超出实际物理内存容量的更大地址空间。虚拟存储器的主要目的是提高存储器系统的性能和性价比,使程序运行速度接近...

    虚拟存储器管理——模拟内存分配与回收实验算法(c语言)

    虚拟存储器管理是操作系统中的重要组成部分,它涉及内存资源的有效分配和回收,以优化系统性能。在本实验中,我们将关注以页面为单位的虚拟内存分配方法,这通常用于现代操作系统,如Linux和Windows。虚拟内存允许...

    实验二 虚拟存储器.zip

    虚拟存储器是操作系统中的一个重要概念,它是一种内存管理技术,使得程序可以运行在比实际物理内存更大的地址空间上。在本实验"实验二 虚拟存储器"中,我们将通过C++语言来理解并实现虚拟存储器的相关机制。这个实验...

    虚拟存储器 操作系统 模拟分页式虚拟存储管理中硬件的地址转换和缺页中断

    实验二 虚拟存储器 一. 实验内容 模拟分页式虚拟存储管理中硬件的地址转换和缺页中断,以及选择页面调度算法处理缺页中断。 二. 实验目的 在计算机系统中,为了提高主存利用率,往往把辅助存储器(如磁盘)作为主...

    浅谈虚拟存储器的应用

    ### 浅谈虚拟存储器的应用 #### 虚拟存储器概述 虚拟存储器是一种能够为用户提供比实际物理内存更大的存储空间的技术。其实现机制基于操作系统管理和外部存储的支持,允许程序的一部分驻留在磁盘上,只有当需要时...

    操作系统课程设计虚拟存储器各页面置换算法的实现与比较

    操作系统课程设计虚拟存储器各页面置换算法的实现与比较 C源代码

    计算机操作系统 虚拟存储器

    虚拟存储器是现代计算机操作系统中的一个核心概念,它允许程序在物理内存有限的情况下,通过利用硬盘空间来模拟出一个比实际内存大得多的地址空间。这个机制使得大型应用程序可以运行,即使它们无法完全加载到物理...

    思维导图:计算机操作系统之虚拟存储器

    虚拟存储器定义 1.基于局部性原理,程序在运行前,仅须将当前要运行的页(段)装入内存。 2.运行时,如访问的页(段)未在内存,利用请求调页(段)功能,将它们调入内存。 3.如内存已满,则利用页(段)置换功能,腾出内存...

    OS课设+虚拟存储器(报告+实验完整版)

    虚拟存储器是操作系统中的核心组件,它是一种内存管理技术,使得程序可以运行在比实际物理内存更大的地址空间上。在本“OS课设+虚拟存储器”中,我们将深入探讨虚拟存储器的基本原理、实现机制以及如何在Android平台...

    系统结构实验 Cache--主存、虚拟存储器模拟) 存贮层次模拟器

    在IT领域,尤其是在计算机系统架构中,理解和模拟Cache与主存、虚拟存储器的工作机制是至关重要的。这个实验旨在帮助我们深入理解存储层次结构及其优化技术。以下将详细阐述相关知识点: 1. **Cache**: Cache是...

    虚拟存储器管理仿真 操作系统 操作系统课程设计 java

    虚拟存储器管理是操作系统中的一个重要概念,它允许程序的逻辑地址空间超过实际的物理内存大小。在本课程设计中,学生通过Java编程实现了一个虚拟存储器管理仿真实验,涵盖了分页式存储管理和请求分页式存储管理这两...

    Windows虚拟存储器管理

    Windows虚拟存储器管理,wendangneichunxu

    计算机组成原理之虚拟存储器

    虚拟存储器可以分为页式虚拟存储器、段式虚拟存储器和段页式虚拟存储器等。 一、虚拟存储系统 虚拟存储系统是一种可以超出物理存储容量的存储系统,它使得用户感知到的存储系统容量要比物理上的真实容量更大。虚拟...

Global site tag (gtag.js) - Google Analytics