首页
社区
课程
招聘
[旧帖] [求助]一个进程真的有多个段么? 0.00雪花
发表于: 2011-7-18 10:02 1531

[旧帖] [求助]一个进程真的有多个段么? 0.00雪花

2011-7-18 10:02
1531
收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 13
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
1:在Win32中可执行文件一般都是PE格式的文件,当系统把这种可运行的文件加载到内存里运行它的时候.我们就可以看到它对应的进程或线程,还有模块名称等等.PE格式的文件由一个PE头和一个以上(也可以只有一个)段构成,具体的你可以看看PE结构方面的资料,其实基本结构并不复杂.PE格式的文件被加载到内存基本上可以说是一种映射.数据的布局并没多大变化.从这个意义上说,我理解的你说的"进程"确实是"分段的".
2:OD显示的内存地址应该叫虚拟地址.在WIN32中,每个进程都有自己的4G虚拟内存空间.但实际上一个进程往往用不了这么多.很多虚拟地址是不可用的.从这点上说进程也是分段的.
3:你在看看保护模式方面的书吧,从保护模式的原理上你可以知道,段选子,段,描述符,描述符表,虚拟地址,页,物理地址等等的关系.
最终,你就会知道,进程的数据其实放得乱七八糟,何止是分段.有可能一个字符串都是分几个不连续物理地址区放的.

再补充点,我们所说的"进程"是计算机中"任务"的"执行进程",一个任务保存在磁盘上一般是由一个PE文件或多个PE文件再加上一些别的类型的文件构成的.计算机中一般同时存在多个要完成的"任务".但是计算机又不可能同时处理所有的任务,所以,只能把时间"分段",让一些任务"挂起",通过一定的逻辑,轮流把CPU的时间分给它们.所以进程的执行也是分段的.
2011-7-18 12:11
0
游客
登录 | 注册 方可回帖
返回
//