码迷,mamicode.com
首页 > 其他好文 > 详细

虚拟内存

时间:2015-09-30 11:16:23      阅读:126      评论:0      收藏:0      [点我收藏+]

标签:

技术分享

在 主存(内存)- 辅存(硬盘等)这一层次的不断发展中,逐渐形成了虚拟存储系统。在这个系统中,程序员编程的地址范围与虚拟存储器的地址空间相对应。例如,机器指令地址码为24位,则虚拟存储器的存储单元个数可达16M(2的24次方是16M)。而这个数字比真实内存的存储单元个数要大得多。这类指令地址码称为虚地址(虚存地址、虚拟地址)或逻辑地址,而把真实内存的地址称为实地址或物理地址。

物理地址是程序在执行过程中能够真正访问的地址,也是实实在在的主存地址。对具有虚拟存储器的计算机系统而言,程序员编程时,可用的地址空间远远大于主存空间(靠,我编程从来不关心内存地址;内存地址只是一个个符号化了的东西:变量、指针什么的。也从来不关心它够不够,好像没遇到不够的?),使得程序员(其实改为进程更合适)以为自己占有一个容量极大的主存。但其实这个大主存并不存在,这也是被称为虚拟存储器的原因。

对虚拟存储器而言,其逻辑地址变换为物理地址的工作由操作系统和硬件自动完成,这一切对程序员是透明的。当虚地址的内容在主存时,机器可立即使用;若不在主存,则必须先调入主存才能为机器所用。

“操作系统的各种内存管理策略都出于同一个目的:同时将多个进程存放在内存中,以便允许多道程序设计。不过,这些策略都需要在进程执行之前将整个进程放在内存中。动态载入虽然能减轻这个限制,但需要程序员小心应用,并且花费额外的工作。
而虚拟内存则允许执行进程部分在内存中,一个显著的优点是程序可以比物理内存大。而且虚拟内存将内存抽象成一个巨大的数组,将用户视界的逻辑内存与物理内存分离,使得程序员不受内存存储的限制。简而言之,虚拟内存展现在程序员面前的是一个比物理内存要大得多的、地址连续的内存空间,而事实上是映射到支离破碎的物理内存,乃至磁盘上”
相关文章可见拙作 操作系统学习笔记:虚拟内存

版权声明:本文为博主原屙文章,喜欢你就担走。

虚拟内存

标签:

原文地址:http://blog.csdn.net/leftfist/article/details/48812069

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!