文档下载 文档下载导航
设为首页 | 加入收藏
搜索 请输入内容:  
 导航当前位置: 文档下载 > 所有分类 > IT/计算机 > 全面介绍Windows内存管理机制及C++内存分配实例(一):进程空间
侵权投诉

全面介绍Windows内存管理机制及C++内存分配实例(一):进程空间

详细介绍Windows内存管理的

本文背景:

在编程中,很多Windows或C++的内存函数不知道有什么区别,更别谈有效使用;根本的原因是,没有清楚的理解操作系统的内存管理机制,本文企图通过简单的总结描述,结合实例来阐明这个机制。

本文目的:

对Windows内存管理机制了解清楚,有效的利用C++内存函数管理和使用内存。 本文内容:

本文一共有六节,由于篇幅较多,故按节发表。其他章节请看本人博客的Windows内存管理及C++内存分配实例(二)(三)(四)(五)和(六)。

1. 进程地址空间

1.1地址空间

32|64位的系统|CPU

操作系统运行在硬件CPU上,32位操作系统运行于32位CPU

上,64位操作系统运行于64位CPU上;目前没有真正的64位CPU。

32位CPU一次只能操作32位二进制数;位数多CPU设计越复杂,软

件设计越简单。

软件的进程运行于32位系统上,其寻址位也是32位,能表示

的空间是232=4G,范围从0x0000 0000~0xFFFF FFFF。

NULL指针分区

范围:0x0000 0000~0x0000 FFFF

作用:保护内存非法访问

例子:分配内存时,如果由于某种原因分配不成功,则返回空指针

0x0000 0000;当用户继续使用比如改写数据时,系统将因为发生访问

违规而退出。

那么,为什么需要那么大的区域呢,一个地址值不就行了吗?

我在想,是不是因为不让8或16位的程序运行于32位的系统上呢?!

因为NULL分区刚好范围是16的进程空间。

独享用户分区

范围:0x0001 0000~0x7FFE FFFF

作用:进程只能读取或访问这个范围的虚拟地址;超越这个范围的行

为都会产生违规退出。

例子:

程序的二进制代码中所用的地址大部分将在这个范围,所有

exe和dll文件都加载到这个。每个进程将近2G的空间是独享的。

第1页

TOP相关主题

你可能喜欢

  • 管理机制
  • 虚拟内存
  • 工程电路
  • 电子元器件图片
  • 操作系统内存管理
  • Windows操作系统
  • 南开大学
  • 婚礼司仪主持词

热门文档

相关文档

站点地图 | 文档上传 | 侵权投诉 | 手机版
本站所有资源均来自互联网,本站只负责收集和整理,均不承担任何法律责任,如有侵权等其它行为请联系我们.
文档下载 Copyright 2013 doc.guandang.net All Rights Reserved.  -  email