跳转至

程序的装入

程序主要处理阶段

  • 编辑、编译、链接、装入、运行

程序的装入

  • 程序装入是将目标代码从外存加载到主存,以便由CPU执行的过程。不同的装入方式决定了程序在主存中的布局以及地址转换的实现方式。

装入方式

绝对装入方式:编译程序产生绝对地址目标代码。

可重定位装入方式:目标模块起始地址为0,其余为相对地址。

动态运行时装入方式:进程的内存映像在不同时候可以处于不同的位置。

绝对装入方式

  • 编译时确定:如果在编译时知道程序驻留在主存的具体位置,则编译程序将产生物理地址的目标代码。
  • 装入过程:绝对装入程序按照装入模块中的地址,将程序和数据装入主存。
  • 地址一致:模块装入后,程序中的逻辑地址与实际主存的地址完全相同,所以不需要对地址进行修改。
  • 适用场景:只适用于单道程序环境,目标模块只能装入到主存储器事先指定的固定位置。

静态重定位装入方式

  • 地址转换:在装入作业时,把作业中的指令地址和数据地址一次性全部转换成物理地址。
  • 执行过程:作业执行过程中无需再进行地址转换。
  • 静态重定位:这种地址转换方式称为“静态重定位”,作业装入的方式称为“静态重定位装入方式”。

动态重定位装入方式

  • 装入过程:在装入作业时,直接把作业装入到分配的主存区域中。
  • 地址转换:作业执行过程中,由硬件地址转换机制自动将指令中的逻辑地址转换成对应的物理地址。
  • 动态完成:这种地址转换是在作业执行过程中动态完成的,称为“动态重定位”。
  • 动态重定位装入方式:这种作业装入的方式称为“动态重定位装入方式”。