1、第四章 存 储 器 管 理 第四章 存储器管理 4.1 程序的装入和链接 4.2 连续分配方式 4.3 基本分页存储管理方式 4.4 基本分段存储管理方式 4.5 虚拟存储器的基本概念 4.6 请求分页存储管理方式 4.7 页面置换算法 4.8 请求分段存储管理方式 第四章 存 储 器 管 理 4.1 程序的装入和链接 图 4-1 对用户程序的处理步骤 第四章 存 储 器 管 理 4.1.1 程序的装入1. 绝对装入方式 (Absolute Loading Mode) 程序中所使用的绝对地址,既可在编译或汇编时给出, 也可由程序员直接赋予。 但在由程序员直接给出绝对地址时, 不仅要求程序员熟悉
2、内存的使用情况,而且一旦程序或数据被修改后,可能要改变程序中的所有地址。因此,通常是宁可在程序中采用符号地址,然后在编译或汇编时,再将这些符号地址转换 为绝对地址。 第四章 存 储 器 管 理 2. 可重定位装入方式 (Relocation Loading Mode) 图 4-2 作业装入内存时的情况 第四章 存 储 器 管 理 3. 动态运行时装入方式 (Denamle Run-time Loading) 动态运行时的装入程序,在把装入模块装入内存后,并不立即把装入模块中的相对地址转换为绝对地址,而是把这种地址转换推迟到程序真正要执行时才进行。因此, 装入内存后的所有 地址都仍是相对地址。
3、第四章 存 储 器 管 理 4.1.2 程序的链接 1. 静态链接方式 (Static Linking) 图 4-3 程序链接示意图 第四章 存 储 器 管 理 在将这几个目标模块装配成一个装入模块时,须解决以下两个问题: (1) 对相对地址进行修改。 (2) 变换外部调用符号。 第四章 存 储 器 管 理 2. 装入时动态链接 (Load time Dynamic Linking) 装入时动态链接方式有以下优点: (1) 便于修改和更新。 (2) 便于实现对目标模块的共享。 第四章 存 储 器 管 理 3. 运行时动态链接 (Run-time Dynamic Linking) 近几年流行起来
4、的运行时动态链接方式,是对上述在装入时链接方式的一种改进。这种链接方式是将对某些模块的链接推迟到执行时才执行,亦即,在执行过程中,当发现一个被调用模块尚未装入内存时,立即由 OS去找到该模块并将之装入内存, 把它链接到调用者模块上。凡在执行过程中未被用到的目标模块,都不会被调入内存和被链接到装入模块上,这样不 仅可加快程序的装入过程,而且可节省大量的内存空间。 第四章 存 储 器 管 理 4.2 连续分配方式4.2.1 单一连续分配 这是最简单的一种存储管理方式,但只能用于单用户、单任务的操作系统中。采用这种存储管理方式时,可把内存分为系统区和用户区两部分,系统区仅提供给 OS使用,通常是放 在内存的低址部分;用户区是指除系统区以外的全部内存空间, 提供给用户使用。