1、第五章 存储管理( 2)n 概述n 分区存储管理n 页式存储管理n 交换技术与覆盖技术n 虚拟存储程序的装入和链接对用户程序的处理步骤程序的装入1. 绝对装入方式程序中所使用的绝对地址,可在编译或汇编时给出, 也可由程序员直接赋予。 但在由程序员直接给出绝对地址时, 不仅要求程序员熟悉内存的使用情况,而且一旦程序或数据被修改后,可能要改变程序中的所有地址。因此,通常是宁可在程序中采用符号地址,然后在编译或汇编时,再将这些符号地址转换为绝对地址。 2. 可重定位装入方式作业装入内存时的情况l 在装入时对目标程序中指令和数据的修改过程称为重定位。l 因地址变换是在装入时一次完成的,以后不再改变,故
2、称为静态重定位。-导致不允许程序运行时在内存中移动位置3. 动态运行时装入方式动态运行时的装入程序,在把装入模块装入内存后,并不立即把装入模块中的相对地址转换为绝对地址,而是把这种地址转换推迟到程序真正要执行时才进行。因此, 装入内存后的所有 地址都仍是相对地址。 为使地址转换不影响指令的执行速度,需重定位寄存器的支持程序的链接图 程序链接示意图1.静态链接方式两个问题需解决:相对地址的修改、变换外部调用符号 这种先进行链接所形成的一个完整的装入模块称为可执行文件 通常不再拆开它,要运行时可直接装入内存 若要修改或更新其中的某个目标模块,则要求重新打开装入模块2. 装入时动态链接装入目标模块时,边装入边链接。装入时动态链接方式有以下优点: (1)便于修改和更新。 (2) 便于实现对目标模块的共享。 3. 运行时动态链接这种链接方式是将对某些模块的链接推迟到执行时才执行,即,在执行过程中,当发现一个被调用模块尚未装入内存时,立即由 OS去找到该模块并将之装入内存, 把它链接到调用者模块上。凡在执行过程中未被用到的目标模块,都不会被调入内存和被链接到装入模块上,这样不 仅可加快程序的装入过程,而且可节省大量的内存空间。