题目
[问答题,简答题] 可采用哪几种方式将程序装入内存?它们分别适用于何种场合?.
[问答题,简答题] 可采用哪几种方式将程序装入内存?它们分别适用于何种场合?.
题目解答
答案
A.首先由编译程序将用户源代码编译成若干目标模块,再由链接程序将编译后形成的目标模块和所需的-库函数链接在一起,组成一个装入模块,再由装入程序将装入模块装入内存; B.装入模块的方式有:绝对装入方式,可重定位方式和动态运行时装入方式; C.绝对装入方式适用于单道程序环境下; D.可重定位方式适用于多道程序环境下; E.动态运行时装入方式也适用于多道程序环境下
解析
步骤 1:编译程序生成目标模块
编译程序将用户源代码编译成若干目标模块。这些目标模块是机器语言代码,但它们可能包含对其他模块中定义的符号的引用,这些引用需要在链接阶段解决。
步骤 2:链接程序生成装入模块
链接程序将编译后形成的目标模块和所需的库函数链接在一起,组成一个装入模块。链接程序解决目标模块之间的符号引用,生成一个完整的可执行文件。
步骤 3:装入程序将装入模块装入内存
装入程序将装入模块装入内存。装入模块的装入方式有绝对装入方式、可重定位方式和动态运行时装入方式。这些方式适用于不同的环境和需求。
步骤 4:绝对装入方式
绝对装入方式适用于单道程序环境下。在这种方式下,程序在编译和链接时就已经确定了它在内存中的位置,装入程序直接将程序装入到这个位置。
步骤 5:可重定位方式
可重定位方式适用于多道程序环境下。在这种方式下,程序在编译和链接时没有确定它在内存中的位置,装入程序在装入时根据内存的实际情况确定程序的位置。
步骤 6:动态运行时装入方式
动态运行时装入方式也适用于多道程序环境下。在这种方式下,程序在运行时才被装入内存,装入程序根据程序的需要动态地分配内存。
编译程序将用户源代码编译成若干目标模块。这些目标模块是机器语言代码,但它们可能包含对其他模块中定义的符号的引用,这些引用需要在链接阶段解决。
步骤 2:链接程序生成装入模块
链接程序将编译后形成的目标模块和所需的库函数链接在一起,组成一个装入模块。链接程序解决目标模块之间的符号引用,生成一个完整的可执行文件。
步骤 3:装入程序将装入模块装入内存
装入程序将装入模块装入内存。装入模块的装入方式有绝对装入方式、可重定位方式和动态运行时装入方式。这些方式适用于不同的环境和需求。
步骤 4:绝对装入方式
绝对装入方式适用于单道程序环境下。在这种方式下,程序在编译和链接时就已经确定了它在内存中的位置,装入程序直接将程序装入到这个位置。
步骤 5:可重定位方式
可重定位方式适用于多道程序环境下。在这种方式下,程序在编译和链接时没有确定它在内存中的位置,装入程序在装入时根据内存的实际情况确定程序的位置。
步骤 6:动态运行时装入方式
动态运行时装入方式也适用于多道程序环境下。在这种方式下,程序在运行时才被装入内存,装入程序根据程序的需要动态地分配内存。