请问什么叫做虚拟内存?
请问什么叫做虚拟内存? 问题点数:5、回复次数:4Top
1 楼ttoth12(命运的角斗士)回复于 2004-05-03 20:53:58 得分 4
就是硬盘,就是当你的内存不够用的时候,把内存里面一部分目前不使用的数据或者程序保存到外存也就是硬盘,一次来空出一部分内存空间来给当前需要使用的程序使用,虚拟内存里面最基本的调用数据单位是页,你去看看操作系统的书阿,里面有介绍的阿!!里面还说什么却也中断阿!!Top
2 楼Beover1984(摇滚人生)回复于 2004-05-03 21:56:41 得分 0
楼上说的很清楚了,我来接分Top
3 楼dfclc(胖子)回复于 2004-05-03 23:10:41 得分 0
一楼都说出来了啊!也可以看看书,更加深入是研究一下啊!Top
4 楼purldmz(雅樵)回复于 2004-05-03 23:48:01 得分 1
保护的虚拟地址模式:
//1,今天你见到的大部分操作系统和应用程序都在使用保护的虚拟地址模式
//2,在保护的虚拟地址模式中,每个进程都有自己的虚拟地址空间,彼此完全
//独立和隔离
//3,每个进程的虚拟地址都被描述成一个4g字节大小的线性地址空间,空间的
//地址从0x00000000到0xffffffff,整个虚拟的线性地址空间被分成2的20次方
//个4k大小的页,系统以页为单位将虚拟地址空间映射成物理地址
//4,系统中可用的物理存储空间包括系统的内存和硬盘上的交换空间(交换
//分区或者交换文件),当系统可用的内存不足时,系统将把暂时不用的页保存//到硬盘交换空间中。保存在硬盘上的页通常也叫未驻留页,当程序访问未驻留//页时,将引发系统页异常,异常处理程序此时将硬盘上的页交换回内存,供
//程序使用
//5,保护的虚拟地址模式我们带来的最大的好处是,系统将一部分硬盘空间模拟
//成内存,使得程序可以透明的使用比实际内存大得多的虚拟存储空间
//在代码1中隐含的内存问题正是与虚拟地址空间密切相关的问题,代码中matrix
//指向一个连续的存储空间,同时也是一个二维数组或矩阵,数组每行的大小是//4k,程序填充该数组的顺序是:matrix[0][0],matrix[1][0],matrix[2][0]
//……,在虚拟地址空间里,每次操作地址都相差4k,因此每次操作都会进入一//个新的页异常,整个操作可能会引发count*(1024*4)次页异常,在最坏的情//况下,每次页异常都造成硬盘和内存的交换,那么,这段访问内存的代码将
//变成访问硬盘的代码,速度将减慢数十万倍!!!!!!!!!!!!!
// 数据访问速度和存储介质的关系
//数据的存储位置 存取某数据块所需的时间(秒)
//cpu一级缓存 1
//cpu二级缓存 4
//内存 25—100
//硬盘或网络资源 3个星期(约2000 000秒)
//所以提高速度可对数据或存储位置优化,在内存上为硬盘中的数据建立
//高速缓冲区Top




