用户名:
密  码:
验证码:
 
JAVA J2EE J2ME J2SE JSP C/C++ C语言 C++ VC MFC Web前台 Html css JavaScript 软件测试 软件测试入门 LoadRunner Windows Win2008 Win2003 WinXP
.NET ASP.NET VB.NET MVC Linux/Unix Linux Unix Shell Web开发 PHP ASP Ajax IIS Apache 编程语言 C VB Delphi 汇编 数据库 MSSQL Mysql Oracle

再谈内存映射

www.diybl.com 时间:2008-10-12 作者:佚名 编辑:本站 点击:  [评论]

内存映射文件之剖析

                                                                             

 

内存映射文件(Mapping File)Windows内存管理中的重要一环,也是编程

技术中比较高级的一个话题。目前关于这方面的资料比较少,而其实内存映射

文件其实对我们的对于Windows的内存了解很重要,在这里把笔者的心得写

出来,和大家一起讨论。

 

                          内存空间及映射

    相信大家都已经知道,在WIN32中和16Windows的最大不同就是WIN32

引入了面向进程的独立虚拟地址,这个地址的寻址空间达到了4GB2^32),当然

这个地址是虚拟的。每个进程拥有自己的独立空间,进程A的地址0X10000000

和进程B的地址0X10000000没有丝毫的联系(只是在用户进程地址空间,不包括其他

范围)。说到这个地方可能大家会奇怪了,我的机器中只有64M(或者128M等)内存呀,怎么会有这么大的地址空间呢?而进程A和进程B的同样的地址又会如何识别使得不冲突呢?

   这里先让我们来看看Windows的内存空间(注:这里我们都以Win9X来讨论,

当然Win2K或者WinNT9X在某些方面会不大一样)

                    

                     0x00000000----0x003FFFFF     4M      属于系统保留区域

 

            0x00400000---0x7FFFFFFF    2G-4M   面向进程独立的地址空间

 

            0x80000000--0xBFFFFFFF     1G       Win32共享的空间,用来存放

                                                  内存映射文件等

         

            0xC0000000---0xFFFFFFFF    1G       用来存放Vxd

 

 1 2 3 4 5 6 7 8 9
如果图片或页面不能正常显示请点击这里 站内搜索:
推荐文章
文章评论
请您留言
昵称:  
验证码:
注册会员
会员登陆
频道地图