Chinaunix首页 | 论坛 | 博客
  • 博客访问: 18326
  • 博文数量: 7
  • 博客积分: 300
  • 博客等级: 二等列兵
  • 技术积分: 80
  • 用 户 组: 普通用户
  • 注册时间: 2010-04-02 21:27
文章分类
文章存档

2010年(7)

我的朋友
最近访客

分类: WINDOWS

2010-10-12 16:03:00

虚拟内存:
 
1.
桌面版windows上经常要设置虚拟内存,尤其是实际内存很小时;设置虚拟内存后,计算机可以运行比实际内存更大的软件;
这个虚拟内存技术,其实主要就是换页技术;将外部存储空间的一部分用来存放内存中暂时不用的东西,就好像它是内存一样,要的时候再把它调进内存,也就是所谓的虚拟了;桌面版windows可以设置这块虚拟内存的位置(位于哪个盘下),及大小,它对应的有一个文件pagefile.sys;
 
2.
虚拟存储技术(虚拟内存技术,这个虚拟内存完全不同于上面所说的虚拟内存),就是程序员在编写程序时使用的地址都从0开始,到运行程序时再进行重定位;常将这个从0开始的地址空间,叫虚拟存储空间(有人也叫虚拟内存空间);这样做有一个极大的好处:程序员不用管它写的程序最后会被放到内存的什么地方执行。
这个虚拟操作系统的支持,当然更虚拟CPU硬件的支持,像8051单片机好像就不支持这个,像S3C2410这样的ARM芯片就支持;这个硬件就是MMU(内存管理单元
 
3.不要提到虚拟内存或虚拟存储,就以为计算机可以运行比程序实际需要的内存大的程序;这种想法肯定是错误的。很多的嵌入式系统,比如windows mobile手机它支持2G的虚拟存储空间,但不支持换页技术,这就表示它不能运行超过它实际可用内存大小的软件;因为这里说的2G只是程序员可用的地址空间,它并不能把当前运行程序的一部分放置到外存上,它必须完全满足运行的程序需要的内存才能运行这个程序;当然如果windows mobile手机配置了超过2G的内存,它当然可以运行这样的大程序了。
 
实际上它们的英语单词好像是一样的。但意思不一样。一个就是指虚拟出的内存;一个表示一个技术,这个技术需要MMU和操作系统的支持。
 
阅读(252) | 评论(0) | 转发(0) |
0

上一篇:未决信号 与 信号阻塞

下一篇:没有了

给主人留下些什么吧!~~