- 浏览: 142390 次
文章分类
最新评论
注:本文中的大部分内容均是摘录自《深入理解计算机系统》一书,权当记录之用。
虚拟存储器作为现代操作系统中的一个重要概念,其重要性自然不言而喻。如果你还不了解虚拟存储器的概念,务必请查阅相关资料,本文并不打算纠结于此,而只是介绍其众多作用中的冰山一角,即如何作为存储器管理的工具。
我们知道,磁盘和主存是以数据块的形式作为传输单元,所以物理存储器一般会被划分成一个个大小固定的块,叫做物理页,也叫页帧。但仅仅这样是不够的,因为 CPU 与磁盘的速度完全不在一个等级,因此虚拟存储器才得以有了用武之地。为了更好操作,虚拟存储器也被分割成了固定大小的块,即所谓的虚拟页。在任意时刻,虚拟页面集合都分为三个不相交的子集:
1、未分配的:无数据关联,不占用内存。
2、缓存的:缓存在物理存储器中的已分配页。
3、未缓存的:未缓存在物理存储器中的已分配页。
虚拟存储器的按需页面调度算法和进程独立的虚拟地址空间的结合将会影响系统中存储器的使用和管理。概括来讲,以下就是虚拟存储器在存储器管理方面起的重要作用:
1、简化链接。独立的地址空间允许每个进程的存储器映像使用相同的基本格式,而不管代码和数据实际存放在物理存储器的何处。栈占据进程地址空间最高的部分,并向下生长。这种一致性简化了链接器的设计和实现,允许链接器生成全链接的可执行文件,这些文件是独立于物理存储器中的代码和数据的最终位置的。
2、简化加载。虚拟存储器使得容易向存储器中加载可执行文件和共享文件对象。加载器从不实际从磁盘拷贝任何数据到存储器,虚拟存储器系统会按照需要自动地调入数据页。在此顺便提一下存储器映射的概念,它就是一种将一组连续的虚拟页映射到任意一个文件中的任意位置的表示法。unix中就有一个叫mmap的系统调用,它允许应用程序自己做存储器映射。
3、简化共享。一般而言,每个进程都拥有自己的独立地址空间,这是操作系统通过创建页表将相应的虚拟页映射到不同的物理页来实现的。但需要进程共享代码和数据时(如操作系统内核代码,标准库函数等),只需将不同进程中适当的虚拟页面映射到相同的物理页面,再安排多个进程共享这部分代码的一个拷贝,而不是在每个进程中都包括单独的内核和标准库的拷贝。
4、简化存储器分配。虚拟存储器为用户进程提供了一个简单的分配额外存储器的机制。当用户进程要求额外的堆空间时,操作系统就分配适当k个连续的虚拟存储器页面,并可将它们映射到物理存储器中任意位置的任意k个物理页面上,从而使得页面可以随机地分散在物理存储器中。
虚拟存储器作为现代操作系统中的一个重要概念,其重要性自然不言而喻。如果你还不了解虚拟存储器的概念,务必请查阅相关资料,本文并不打算纠结于此,而只是介绍其众多作用中的冰山一角,即如何作为存储器管理的工具。
我们知道,磁盘和主存是以数据块的形式作为传输单元,所以物理存储器一般会被划分成一个个大小固定的块,叫做物理页,也叫页帧。但仅仅这样是不够的,因为 CPU 与磁盘的速度完全不在一个等级,因此虚拟存储器才得以有了用武之地。为了更好操作,虚拟存储器也被分割成了固定大小的块,即所谓的虚拟页。在任意时刻,虚拟页面集合都分为三个不相交的子集:
1、未分配的:无数据关联,不占用内存。
2、缓存的:缓存在物理存储器中的已分配页。
3、未缓存的:未缓存在物理存储器中的已分配页。
虚拟存储器的按需页面调度算法和进程独立的虚拟地址空间的结合将会影响系统中存储器的使用和管理。概括来讲,以下就是虚拟存储器在存储器管理方面起的重要作用:
1、简化链接。独立的地址空间允许每个进程的存储器映像使用相同的基本格式,而不管代码和数据实际存放在物理存储器的何处。栈占据进程地址空间最高的部分,并向下生长。这种一致性简化了链接器的设计和实现,允许链接器生成全链接的可执行文件,这些文件是独立于物理存储器中的代码和数据的最终位置的。
2、简化加载。虚拟存储器使得容易向存储器中加载可执行文件和共享文件对象。加载器从不实际从磁盘拷贝任何数据到存储器,虚拟存储器系统会按照需要自动地调入数据页。在此顺便提一下存储器映射的概念,它就是一种将一组连续的虚拟页映射到任意一个文件中的任意位置的表示法。unix中就有一个叫mmap的系统调用,它允许应用程序自己做存储器映射。
3、简化共享。一般而言,每个进程都拥有自己的独立地址空间,这是操作系统通过创建页表将相应的虚拟页映射到不同的物理页来实现的。但需要进程共享代码和数据时(如操作系统内核代码,标准库函数等),只需将不同进程中适当的虚拟页面映射到相同的物理页面,再安排多个进程共享这部分代码的一个拷贝,而不是在每个进程中都包括单独的内核和标准库的拷贝。
4、简化存储器分配。虚拟存储器为用户进程提供了一个简单的分配额外存储器的机制。当用户进程要求额外的堆空间时,操作系统就分配适当k个连续的虚拟存储器页面,并可将它们映射到物理存储器中任意位置的任意k个物理页面上,从而使得页面可以随机地分散在物理存储器中。
发表评论
-
浮点运算指令
2019-05-22 23:13 1575上一节介绍了浮点数与各种数值类型之间的相互转换 ... -
浮点数类型转换指令
2019-05-15 22:37 1710在浮点寄存 ... -
浮点寄存器概述
2019-05-14 22:31 2590本文介绍的浮点寄存器是基于 AVX2(Adva ... -
汇编指令之跳转指令
2019-04-15 00:21 4799正常执行的情况下,指令会按照顺序一条条地执行, ... -
汇编指令之条件码
2019-04-08 21:05 2359在系统底层,除了整数寄存器,CPU 还维护着一 ... -
汇编指令之算术和逻辑操作指令
2019-03-28 22:16 1382下表是 x86-64 ... -
汇编指令之数据传送指令
2019-03-25 21:28 1289在x86-64 中的 ... -
x86-64 中的寄存器与汇编操作数杂述
2019-03-20 21:45 993Intel 中常用 ... -
hello 程序执行背后的故事
2018-12-26 21:48 608源文件 hello. ... -
linux启动服务概述
2017-04-08 02:43 398传统的linux中定义了七个运行级,分别如下: ... -
unix限制
2017-04-04 16:08 579UNIX系统实现定义了很多幻数和常量,其中有很 ... -
linux引导加载程序--GRUB
2017-04-04 04:22 625linux世界里有两种 ... -
存储器映射
2016-06-13 00:12 553注:本文摘自《深入理解计算机操作系统》第九章--虚拟存 ... -
信号处理问题
2016-06-03 08:31 562注:本文摘自《深入理解计算机系统》第8章 --- 异常控制流。 ... -
僵尸进程
2016-05-23 23:57 361在解释僵尸进程的概念之前,我们得先了解这样的一个事实: 一个进 ... -
程序优化之存储器别名使用
2016-05-20 08:55 797说明:本文示例摘自《深入理解计算机系统》第五章----优化程序 ... -
条件变量基本概念与原理(转载)
2016-05-20 08:54 1580对于条件变量,我一直感到很困惑,搞不清其与互斥锁到底有啥区别, ... -
CPU与磁盘的交互过程
2016-05-19 09:05 1840对于计算机系统底层技术,想必很多人都和我一样不太了解,最近在学 ... -
存储器层次结构中基本的缓存原理
2016-05-19 09:00 668对于操作系统,我们知道,越靠近CPU的存储器,其存储速度就会越 ... -
异常处理
2016-05-19 00:29 424我知道很多人都知道异常处理,但可能对其底层并不太了解,现在我们 ...
相关推荐
此外,实验可能还会探讨虚拟存储器在多任务环境下的作用,比如如何通过虚拟存储器实现进程间的隔离,防止数据冲突。以及在内存不足时,如何通过交换技术将部分进程的内存内容写入磁盘,释放物理内存资源,使得其他...
本文档是一份关于操作系统管理中虚拟存储器的实验报告,详细记录了虚拟存储器的基本概念、管理策略、页面淘汰算法的设计与实现,以及通过C++编程语言对这些概念进行模拟的过程。 首先,虚拟存储器的概念是计算机...
### 虚拟存储器与操作系统实验报告:深入解析与应用 ...通过这一系列的实验设计与实施,学生能够深刻理解虚拟存储器的工作原理,以及页面置换算法在内存管理中的关键作用,为进一步探索操作系统内部机制打下坚实基础。
从给定的文件信息来看,这段代码是在模拟虚拟存储器管理的不同算法,主要涉及FIFO(先进先出)、LRU(最近最少使用)以及OPT(最佳置换)算法。虚拟存储器管理是计算机科学中的一个重要概念,它允许操作系统通过将...
虚拟存储器是现代操作系统中内存管理的关键技术,它允许程序使用超过实际物理内存大小的地址空间,通过在主存和磁盘之间动态交换数据来实现。在这个“用C++编写的虚拟存储器源码”中,我们可以看到一个针对分页式...
### 操作系统课程设计:虚拟存储器 #### 知识点概述 虚拟存储器是一种能够扩展计算机可用内存容量的技术,其基本思想是将程序的一部分...通过对虚拟存储器的学习和实践,可以深入理解现代计算机系统的内存管理机制。
Windows虚拟存储器管理,wendangneichunxu
虚拟存储器管理是操作系统中的重要组成部分,它涉及内存资源的有效分配和回收,以优化系统性能。在本实验中,我们将关注以页面为单位的虚拟内存分配方法,这通常用于现代操作系统,如Linux和Windows。虚拟内存允许...
一个简单的模拟虚拟存储器管理工具,可以用来检查fifo opt 和lru算法
实验二 虚拟存储器 一. 实验内容 模拟分页式虚拟存储管理中硬件的地址转换和缺页中断,以及选择页面调度算法处理缺页中断。 二. 实验目的 在计算机系统中,为了提高主存利用率,往往把辅助存储器(如磁盘)作为主...
比较适合大学生的操作系统课程应用解说,尤其是大学操作系统原理实验,是一个必学项目
通过这个课程设计,学生不仅能够理解虚拟存储器的基本原理,还能实际动手操作,体验虚拟内存管理的实现过程,掌握分页和请求分页的核心算法,以及页面置换策略对系统性能的影响。这样的实践对于提升学生的理论知识和...
虚拟存储器是一种高级存储管理技术,它通过将内存与外部存储器(如硬盘)结合使用,使得程序可以访问超出实际物理内存容量的更大地址空间。虚拟存储器的主要目的是提高存储器系统的性能和性价比,使程序运行速度接近...
虚拟存储器是操作系统中的一个重要概念,它是一种内存管理技术,使得程序可以运行在比实际物理内存更大的地址空间...通过这个实验,我们可以深入理解虚拟存储器的工作原理,并提升对操作系统内存管理的理解和编程能力。
实验二 Windows虚拟存储器管理 2.1实验目的 了解Windows 2000/XP的内存管理机制,掌握页式虚拟存储技术 理解内存分配原理,特别是以页面为单位的虚拟内存分配方法 掌握Windows 2000/XP下内存管理的基本API ......
通过对虚拟存储器管理和常见页面置换算法的学习与实践,学生不仅能够理解这些算法的工作原理及其在实际系统中的作用,还能提升自己的编程能力和问题解决能力。此外,通过对比不同算法的性能差异,可以帮助学生更好地...
总的来说,虚拟存储器作为一种高效管理内存资源的技术,在现代计算机系统中扮演着至关重要的角色。通过合理的地址映像和高效的替换算法,可以有效地利用有限的物理内存资源,提供接近无限的逻辑存储空间,从而极大地...
虚拟存储器的缺点是需要占用一定的物理存储空间来存储虚拟存储器的管理信息等。 六、虚拟存储器在实际应用中的应用 虚拟存储器在实际应用中有广泛的应用。例如,在操作系统中,虚拟存储器可以实现多任务处理和多...
通过虚拟存储器机制,可以使得程序能够访问比实际物理内存大得多的地址空间,从而实现对物理内存的有效管理和利用。 #### 虚拟存储器概念 虚拟存储器是一种允许程序访问比实际物理内存更大的地址空间的技术。它...
操作系统课程设计虚拟存储器各页面置换算法的实现与比较 C源代码