第四章存储器管理 412程序的链接 1.静态链接方式( Static linking) 模块A 模块A CALL B JSR Return Return i 0模块B 模块B CALL C USRL+M Return L+M Return +Ⅳ 模块C 0模块C L+M+N-1 Return Return (a)目标模块图43程序链接示意图(b)装入模块
第四章 存 储 器 管 理 4.1.2 程序的链接 1. 静态链接方式(Static Linking) 图 4-3 程序链接示意图 模块 A CALLB; Return; 0 L-1 模块 B CALLC; Return; 0 M-1 模块 C Return; 0 N-1 0 模块 A JSR“L” L-1 Return; 模块 B JSR“L+M” Return; L L+M-1 L+M L+M+N-1 模块 C Return; (a) 目标模块 (b) 装入模块
第四章存储器管理 在将这几个目标模块装配成一个装入模块时,须解 决以下两个问题: (1)对相对地址进行修改。 (2)变换外部调用符号
第四章 存 储 器 管 理 在将这几个目标模块装配成一个装入模块时,须解 决以下两个问题: (1) 对相对地址进行修改。 (2) 变换外部调用符号
第四章存储器管理 2.装入时动态链接L0ad拟 time Dynamic linking) 装入时动态链接方式有以下优点:蕌 (1)便于修改和更新。 (2)便于实现对目标模块的共享
第四章 存 储 器 管 理 2. 装入时动态链接(Loadtime Dynamic Linking) 装入时动态链接方式有以下优点: (1) 便于修改和更新。 (2) 便于实现对目标模块的共享
第四章存储器管理 3.运行时动态链接(Run- ime Dynamic Linking) 近几年流行起来的运行时动态链接方式,是对上述在 装入时链接方式的一种改进。这种链接方式是将对某些模 块的链接推迟到执行时才执行,亦即,在执行过程中,当 发现一个被调用模块尚未装入内存时,立即由OS去找到该 模块并将之装入内存,把它链接到调用者模块上。凡在执 行过程中未被用到的目标模块,都不会被调入内存和被链 接到装入模块上,这样不仅可加快程序的装入过程,而且 可节省大量的内存空间
第四章 存 储 器 管 理 3. 运行时动态链接(Run-time Dynamic Linking) 近几年流行起来的运行时动态链接方式,是对上述在 装入时链接方式的一种改进。这种链接方式是将对某些模 块的链接推迟到执行时才执行,亦即,在执行过程中,当 发现一个被调用模块尚未装入内存时,立即由OS去找到该 模块并将之装入内存, 把它链接到调用者模块上。凡在执 行过程中未被用到的目标模块,都不会被调入内存和被链 接到装入模块上,这样不仅可加快程序的装入过程,而且 可节省大量的内存空间
第四章存储器管理 42连续分配方式 421单一连续分配 这是最简单的一种存储管理方式,但只能用于单用户、 单任务的操作系统中。采用这种存储管理方式时,可把内 存分为系统区和用户区两部分,系统区仅提供给OS使用, 通常是放在内存的低址部分;用户区是指除系统区以外的 全部内存空间,提供给用户使用
第四章 存 储 器 管 理 4.2 连续分配方式 4.2.1 单一连续分配 这是最简单的一种存储管理方式,但只能用于单用户、 单任务的操作系统中。采用这种存储管理方式时,可把内 存分为系统区和用户区两部分,系统区仅提供给OS使用, 通常是放在内存的低址部分;用户区是指除系统区以外的 全部内存空间, 提供给用户使用