首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 其他相关 >

第6章 可执行文件的装载与施行

2013-01-28 
第6章 可执行文件的装载与执行??? ? ? 2. 页映射:?? ? ? ? ? 下图中P0~P7是“进程虚拟地址空间”中的“虚拟页

第6章 可执行文件的装载与执行

?

?? ? ? 2. 页映射:

?? ? ? ? ? 下图中P0~P7是“进程虚拟地址空间”中的“虚拟页”(VP, Virtual Page),右边F0~F3是“内存”中的“物理页”(PP, Physical Page)。“OS”中的“存储管理器”需要管理调入缺少虚拟页到物理页等。
第6章 可执行文件的装载与施行

?? ? ??

?? ? ? ?查看“页的大小”: $getconf PAGE_SIZE

?? ? ? ?查看“OS位数”:$getconf LONG_BIT

?? ? ? ?查看“CPU位数”: $arch ? ? ==> i686或x86_64则表明机器是64位的

三、从操作系统的角度看可执行文件


?? ? ?由于使用了“分页机制” ,所以提到“可执行文件的装载”并不是一次性完成的,而是分了两步:
第6章 可执行文件的装载与施行
??

?? ? ?1. 进程建立时,为“分页装载”做了一些准备,还未真正装载; (1)(2)(3)

?

?? ? ? ? ? ? ? ?(1)分配一个页目录Page Directory,用来记录Virtual Page(进程虚拟地址空间中)到Physical Page(内存中)的映射关系。等执行时发生缺页(Page Fault)时,由OS安排处理调用、填充页目录等。

??? ? ? ? ? ? ? ?(2)在进程数据结构中构造一些VMA(Virtual Memory Area),VMAs保存了Disk Page(磁盘上的可执行文件中)到Virtual Page(进程虚拟地址空间中)的映射关系。注:VMA是OS内部的一个数据结构。

?? ? ? ? ? ? ? ?(3)将CPU指令寄存器设置为可执行文件入口,启动运行

??

?? ? ?2. 缺页(产生页错误)时,才真正地去装载。(4)

?? ? ? ? ? ? ? ?(4)缺少进程虚拟空间的某个VP时,

?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 分配一个物理页PP;

?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 查询VMA,将该VP对应的DP装入PP;

?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 在目录表Page Dir中添加一个“VP->PP”的对应关系。

?

四、进程虚存空间分布

五、Linux内核装载ELF过程

六、Windows PE的装载

热点排行