1为什么要配置层次式存储器?
在计算机执行时,几乎每一条指令都涉及对存储器的访问,因此要求对存储器的访问速度能跟得上处理机的运行速度。或者说,存储器的速度必须非常快,能与处理机的速度相匹配,否则会明显的影响到处理机的运行。此外还要求存储器具有非常大的容量,而且存储器的价格还应很便宜。对于这样十分严格的三个条件,目前是无法同时满足的。于是正在现代计算机系统中都无一例外的采用了多层结构的存储器系统。
2可采用哪几种方式将程序装入内存?它们分别适用于何种场合?
(1)绝对装入方式当计算机系统很小,且仅能运行单道程序时,完全有可能知道程序将驻留在内存的什么位置。此时可以采用绝对装入方式。用户程序编译后,将产生绝对地址的目标代码。(2)可重定位装入方式绝对装入方式只能将目标模块装入到内存中事先指定的位置,这只适用于单道程序环境。而在多道程序环境下,编译程序不可能预知经编译后所得到的目标模块应放在内存的何处。因此,对于用户程序编译所形成的若干个目标模块,它们的起始地址通常都是从0开始的,程序中的其他地址也都是想对于起始地址计算的。此时,不可能再采用绝对装入方式,而应采用可重定位装入方式,他可以根据内存的具体情况将装入模块装入到内存的适当位置。(3)动态运行时的装入方式可重定位装入方式可将装入模块装入到内存中任何允许的位置,故可用于多道程序环境,但该方式并不允许程序运行时在内存中移动位置。因为,程序在内存中的移动,意味着它的物理位置发生了变化,这时必须对程序和数据的地址(绝对地址)进行修改后方能运行。然而,实际情况是,在运行过程中他在内存中的位置肯能经常要改变。动态运行时的装入程序在把装入模块装入内存后,并不立即把装入模块中的逻辑地址转换为物理地址,而是把这种地址转换推迟到程序真正要执行时才进行。因此,装入内存后的所有地址都仍然是逻辑地址。
3何谓静态链接?静态链接时需要解决两个什么问题?
在程序运行之前,先将各目标模块及他们所需的库函数链接成一个完整的装配模块,以后不再拆开,我们把这种事先进行链接的方式称为静态链接方式。需要解决的两个问题是:①对相对地址进行修改。②变换外部调用符号。
4何谓装入时动态链接?装入时动态链接方式有何优点?
这是指将用户源程序编译后所得到的一组目标模块,再装入内存时,采用边装入边链接的链接方式。即在装入一个目标模块时,若发生一个外部模块调用事件,将引r