程序要执行,必须被CPU调用执行,而前提是装入到主存中。程序装入主存的过程包括编译、链接和装入三个步骤。
编译:
编译器将用户源代码编译成若干目标模块(.obj文件)。
链接:
链接器将编译后形成的一组目标模块以及它们所需要的库函数链接在一起,形成一个完整的装入模块(如.exe文件)。
装入:
装入程序将装入模块装入主存。
装入主存的方法主要有三种:
绝对装入方式:
在编译时已知程序驻留在主存的具体位置,编译程序将产生的物理地址的目标代码装入主存。
静态重定位装入方式:
装入程序根据主存当前的实际使用情况,将装入模块装入到主存适当的地方。
动态重定位装入方式:
装入程序在把装入模块装入主存后,并不立即把装入模块中的相对地址转换为绝对地址,而是把这种地址转换推迟到程序要真正执行时才进行。
因此,程序是通过编译、链接和装入过程装入主存器的。