什么是虚拟内存?为什么要设置虚拟内存?
在计算机系统中,进程是与其他进程共享CPU和主存资源的。但是共享主存会形成一些特殊的挑战。如果太多进程需要太多的内存,那么它们中的一些就根本无法运行,当一个程序没有空间可用时,那就是它运气不好了。另外内存还很容易被破坏,如果某个进程不小心写了另一个进程使用的内存,它就可能以某种完全和程序逻辑无关的令人迷惑的方式失败。
为了更加有效地管理内存并且少出错,现代系统提供了一种对主存的抽象概念,叫做虚拟内存。
虚拟内存是硬件异常、硬件地址翻译、主存、磁盘文件和内核软件的完美交互,它为每个进程提供了一个大的、一致的和私有的地址空间。通过一个清晰的机制,虚拟内存提供了三个重要能力:
将主存看成是一个存储在磁盘上的地址空间的高速缓存,在主存中只保存活动区域,并根据需要在磁盘和主存之间来回传送数据,通过这种方式高效地使用主存;为每个进程提供一致的地址空间,从而简化内存管理;保护每个进程的地址空间不被其他进程破坏。
虚拟内存遍及计算机系统的所有层面,在硬件异常、汇编器、链接器、加载器、共享对象、文件和进程的设计中扮演者重要角色。
虚拟内存是计算机系统最重要的概念之一,它成功的一个主要原因就是因为它是默默地、自动地工作,不需要程序员的任何干涉。
相关阅读
Linux系统实现多任务的上下文切换机制
进程的抽象概念:独立控制流和私有地址空间
磁盘的构造、容量和扇区访问操作
以上内容就是小编分享的关于什么是虚拟内存.jpg” />