课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
内存是程序员在学习软件编程开发的时候都需要掌握的一个概念,而今天我们就通过案例分析来了解和学习一下,虚拟内存技术的作用。
虚拟内存是计算机系统内存管理的一种技术,虚拟地址空间构成虚拟内存。它使得应用程序认为它拥有连续可用的内存(一个连续完整的地址空间),而实际上,它通常是被分隔成多个物理内存碎片。还有部分暂时存储在外部磁盘存储器上(Swap),在需要时进行数据交换。
虚拟内存不只是用磁盘空间来扩展物理内存的意思——这只是扩充内存级别以使其包含硬盘驱动器而已。把内存扩展到磁盘只是使用虚拟内存技术的一个结果。除了扩展内存空间,虚拟内存技术还有隔离运行内存和确定运行地址的作用。
使用虚拟内存主要是基于以下三个方面考虑,也就是说虚拟内存主要有三个作用:
作为缓存工具,提高内存利用率:使用DRAM当做部分的虚拟地址空间的缓存(虚拟内存就是存储在磁盘上的N个连续字节的数组,数组的部分内容会缓存在DRAM中)。扩大了内存空间,当发生缺页异常时,将会把内存和磁盘中的数据进行置换。
作为内存管理工具,简化内存管理:每个进程都有统一的线性地址空间(但实际上在物理内存中可能是间隔、支离破碎的),在内存分配中没有太多限制,每个虚拟页都可以被映射到任何的物理页上。这样也带来一个好处,如果两个进程间有共享的数据,那么直接指向同一个物理页即可。
作为内存保护工具,隔离地址空间:进程之间不会相互影响;用户程序不能访问内核信息和代码。页表中的每个条目的高位部分是表示权限的位,MMU可以通过检查这些位来进行权限控制(读、写、执行)。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请在707945861群中学习了解。