- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
wi
n2k大规模稀疏内存分配研究
王雨,傅鹤岗,王富强
(重庆大学计算机学院,重庆400044)
E-mail:wmlgyupacket2003@yahoo.coin.ca
http:,^vww.cqu.edu.cn
摘要;从Win2k内存体系结构入手,着重阐述Win2k中虚拟内存的分配情况,并在此基础上以Win2k内
存堆栈为模扳,结合SEH,提出了分配大规模稀疏内存的有效方法。
关键词:虚拟内存;结构化异常处理;内存堆栈
1引言
Microsoft
Windows是一种复杂的现代操作系统,其内部运行体制十分复杂。然而,对于一个操作系
统来说,其内存结构是影响其运行的关键要素。了解了系统的内存架构,也就了解了系统的运作机制。相
对于DOS时代的实模式内存管理,Windows扩展了内存空间,引入了保护模式的存储器寻址方式,使其内
存空间突破1M的限制,为应用程序提供了更大的寻址空间。而且,也为对多任务处理的支持,保护内核代
码的完整性和正确性等方面提供了可靠的保证。
应用程序在运行时。有时可能需要一个很大范围的连续物理内存,在这种情况之下,系统提供的默认
堆可能不能满足需要,如果一次性分配一个很大的内存区域又会对进程可使用的内存造成浪费,导致以后
的内存需求不能满足的情况,本文将通过虚拟内存机制和结构化异常处理来解决这一问题。
2 win2000内存结构
2.1虚拟地址空间
在实模式操作系统中,所用的进程(系统进程和用户进程)都位于同一个地址空间中,该地址空间在
物理存储器(RAM)上被划分,所有的内存请求都实际对应于物理存储器上的一段物理地址。这样的内存管
理情况满足了当时的系统与程序员对于内存的需求,但是也存在着相当大的弊端。首先,是寻址空间有限。
由于寄存器的限制,采用分段式管理后,只能寻址lM物理内存。第二,对操作系统内部代码没有有效的保
护措施,任何程序都有修改系统内核的特权。第三,是对多任务的支持。
Windows所具有的保护模式的产生,解决了上述问题。众所周知,Windows是多任务的操作系统,这就
意味着,在系统中存在不止一个进程运行,为了保护每个进程享有独立的运行空间,提出了虚拟内存地址
的概念。虚拟地址空间是一个抽象的概念,对于32位进程来说,每个进程均拥有自己的4G地址空问。当
一个进程中的线程正在运行时,它只能访问属于自己的进程内存。属于所有其它进程的内存则被系统隐藏,
并且不能被正在运行的线程访问。对于两个独立运行的进程(没有亲缘性)来说,可以访问相同的虚拟地
址而不产生任何冲突。然而,并不是用户进程可以获得所有4G地址空间的访问权。每个进程的虚拟地址空
的地址空间情况(x86处理器)。
如图1所示,应用程序只能获得从
作者简介:王雨(1979--),男,四川自贡人,硕士研究生,主要研究领域为网络安全,软件工程:傅鹤岗(1950--),男,重庆
人,副教授,主要研究领域为软件工程,电子商务::P11瞪(1971一),男,重庆人,硕士研究生,工程师,主要研
究领域为电子商务,软件工程
Wzn2k走提摸稀疏内存分配研究573
分 区 32位Windows2000(x86处理器)
的地址空间。对于NULL指针分区来
说,主要是为了程序调试纠错。而
NULL指针分区 OOxOOOOFFFF
64KB禁止进入分区的存在,保护了内
用户方式分区 O0x7FFEFFFF
核代码的正确性,任何试图访问地址
文档评论(0)