能力值:
( LV2,RANK:10 )
|
-
-
2 楼
1:在Win32中可执行文件一般都是PE格式的文件,当系统把这种可运行的文件加载到内存里运行它的时候.我们就可以看到它对应的进程或线程,还有模块名称等等.PE格式的文件由一个PE头和一个以上(也可以只有一个)段构成,具体的你可以看看PE结构方面的资料,其实基本结构并不复杂.PE格式的文件被加载到内存基本上可以说是一种映射.数据的布局并没多大变化.从这个意义上说,我理解的你说的"进程"确实是"分段的".
2:OD显示的内存地址应该叫虚拟地址.在WIN32中,每个进程都有自己的4G虚拟内存空间.但实际上一个进程往往用不了这么多.很多虚拟地址是不可用的.从这点上说进程也是分段的.
3:你在看看保护模式方面的书吧,从保护模式的原理上你可以知道,段选子,段,描述符,描述符表,虚拟地址,页,物理地址等等的关系.
最终,你就会知道,进程的数据其实放得乱七八糟,何止是分段.有可能一个字符串都是分几个不连续物理地址区放的.
再补充点,我们所说的"进程"是计算机中"任务"的"执行进程",一个任务保存在磁盘上一般是由一个PE文件或多个PE文件再加上一些别的类型的文件构成的.计算机中一般同时存在多个要完成的"任务".但是计算机又不可能同时处理所有的任务,所以,只能把时间"分段",让一些任务"挂起",通过一定的逻辑,轮流把CPU的时间分给它们.所以进程的执行也是分段的.
|
|
|