- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
理解Windows中的进程进程的内存存储
《一》理解Windows中的进程 进程的内存存储
《一》理解Windows中的进程-进程的内存存储2010/06/20 02:21 P.M.1.1.操作系统如何设计进程
常见的操作系统,无论是Windows,Linux还是Unix系的都不是开发者随意设计出来的,如同网络的要遵循TCP/IP标准一样,操作系统是遵循CPU厂商所给出的构架,这里的厂商最初如我们现在所熟悉的Intel,CPU的构架详细说明了一些基本的指令系统,内存管理方式,所以Windows和Linux等操作系统从一些实现细节上来说是有很大的相似的,只不过作者对于构架的理解不同,稍有差异,就拿先前说的网络协议来说,标准的为七层结构,可很多时候我们只用了四层即可完成应用.
.做计算机开发者必须很好的理解协议,协议在各个领域都有作用,统一的协议协调了开发,也完善了硬件厂商和软件方统一,当然有时候还会涉及到利益和垄断
操作系统主要实现的是进程管理,内存管理和文件系统,这几乎是所有操作系统在设计的时候都不能回避的问题,而进程管理和内存管理是紧密联系在一起的,我们都明白大致进程是什么样的概念了,一般的用户都知道进程就是正在运行的程序,作为开发者来说你得知道的更多,我们知道,在操作系统完成了内存管理后,把活动程序都加载在内存中(严格的说是指虚拟地址中),而进程就是这些活动程序的在内存中的组织形式,活动的程序是我们看到的,而进程包括了这个活动程序的资源,权限,内存结构等所有信息,操作系统通过对进程的管理来控制所有进程.
.在Windows中要深刻理解内核对象,即使你可能不会去做内核的开发,也需要了解一些相关知识.进程也是一个内核对象
我们学习windows下进程需要了解到windows32位操作系统相比与16位操作系统,进程的空间分布,这是一个很重要的概念,也是入门windows高级编程前必须理解的.接下来我假设你的操作系统是xp/2000或者是2003,对于9X的操作系统,下面的知识并不受用.
32位的系统说明了我们操作系统可以访问2的32次方的地址空间,也就是大小4G的空间,其中2个G被操作系统本身的程序占据了,而另外的2个G我们可以运行一些如QQ,msn游戏等程序,这2个G我们称为用户空间,因为这个空间是我们可以掌控的(其实操作系统的那2个G也是可以访问甚至修改的,这属于驱动开发的范畴).在早期软件开发,早操作系统还是16位的时候,许多程序运行不能同时运行,在内存中一个时间段只能运行一个程序,所以软件开发者不必考虑资源的具体分配,因为他们知道,一旦我的程序运行,内存就是属于我了,在操作系统升级为32位后,就如我们多听说的那样,windows是一个多任务的操作系统,所以程序员在编写程序时就不能有这样的观点,分配具体内存是一个头疼的事情,所以操作系统的开发者考虑到大部分人的习惯,以前的观点仍然可以受用,即假设程序员小丁在32位操作系统下写程式时,他可以认为
1.我电脑升级到32位后,我写的程序可以访问到2G大小的空间,这个空间全是我的
2.即使在我程序运行的时候,同时运行另外一个家伙的程序,而他也可以认为这个2G的空间是他的
3我们的程序都可以运行的很好
事实上操作系统通过页段机制让所有的开发者都傻傻的认为自己都可以占用了2G的用户空间,其实在内存管理上进程是独立的,举个列子:请假象一下有一个绝对的坐标系A,他的范围是0到2G,在此基础上相对坐标系B,他是0到2G,这个相对坐标系也是0开始,所以在这个相对坐标系B里行走的人,沿用他在B中的感觉和绝对坐标系是一样的,在里面的一切物理规律都和在绝对坐标系A一样,这样坐标系B有很多,虽然在这些相对坐标系里生活的人与生活在绝对坐标系里没什么不同,但是他们用的相对坐标系本身投射在绝对坐标系上的位置是不同的.这个大致可以帮助你理解操作系统对进程空间上的管理.
实际上,即使我们傻傻的为认为我们占用了2G的空间,实际上我们的运行程序在内存中的大小不会超过2G,各个进程空间是独立的
通过一个小程序来理解下操作系统对进程内存的排列方式,这个是我用来实现修改游戏中的一些数据,比如金钱或者经验值等.在程序的一些地方我做了说明
一些前提的知识:我们的程序分布在2G的地址空间中,而操作系统在具体安排进程的时候会以4K为一个大小来排放程序,所以这就意味着我们的程序的开始地址也必然是4K的整数倍,对与XP或者NT系列的操作系统而言,这个2G的空间刚开始有一个64K的大小的空间,我们一般称为NULL区,假设我们在写一个程序时
char*p=NULL;
就可以避免p没有初始化而成为野指针,而这个p就在这个NULL区,这个区并没有实际的进程存在,进程一般也不能访问这个区域,所以我们略过,不会搜索这个区域,同时你需要知道,对于XP这个大小是64K,而对于98等操作系
您可能关注的文档
最近下载
- 教科版科学五年级下册第三单元 环境与我们 大单元整体教学设计学历案教案附作业设计(基于新课标教学评一体化).docx VIP
- 2024年南京信息职业技术学院单招数学考试试题及答案解析.docx VIP
- 音韵学讲义教案第二章音韵学的基本知识.doc
- 教科版科学五年级下册第二单元 船的研究 大单元整体教学设计学历案教案附作业设计(基于新课标教学评一体化).docx VIP
- 石油化工3503电缆安装质量验收记录.docx VIP
- 2025年商铺租赁合同范本全新修订.docx VIP
- 《中医病证分类与代码》(2020修订版).docx VIP
- 中医食疗 糖尿病痛风类风湿的中医食疗 课件.ppt VIP
- 安徽中汇发新材料有限公司35万吨年轻烃裂解制苯乙烯项目(一期).pdf VIP
- 2025年南京信息职业技术学院单招语文考试题库及答案解析.docx VIP
原创力文档


文档评论(0)