逻辑地址空间 BR 物理地址空间 1000 VR LOAD A 200 200 3456 200 1300 300 地址映射
0 100 200 300 . . . . . . . . . LOAD A 200 3456 逻辑地址空间 1100 1200 1300 物理地址空间 200 VR + 1000 BR 地址映射
地址重定位-5 当CPU取一条访问内存的指令时,地址变换硬件逻辑 自动将指令中的相对地址与重定位寄存器中的值相加, 再根据和值作为内存的绝对地址去访问该单元的数据。 由此可见,动态重定位是在指令执行过程中动态进行, 这样可以带来两个好处:(1)目标程序装入内存时无需任 何修改,所以装入之后再移动也不会影响其正确运行, 这便于存储器用紧缩来解决存储器的碎片问题。(2)一个 程序由若干个相对独立的目标模块组成时,每个目标模 块各装入一个存储区域,这些存储区域可以不相领接 只要各个模块有自己对应的重定位寄存器就可以了
地址重定位-5 当CPU取一条访问内存的指令时,地址变换硬件逻辑 自动将指令中的相对地址与重定位寄存器中的值相加, 再根据和值作为内存的绝对地址去访问该单元的数据。 由此可见,动态重定位是在指令执行过程中动态进行, 这样可以带来两个好处:⑴目标程序装入内存时无需任 何修改,所以装入之后再移动也不会影响其正确运行, 这便于存储器用紧缩来解决存储器的碎片问题。⑵一个 程序由若干个相对独立的目标模块组成时,每个目标模 块各装入一个存储区域,这些存储区域可以不相领接, 只要各个模块有自己对应的重定位寄存器就可以了
3链接 静态链接( static- linking) 静态链接是在生成可执行文件时进行的。在目标模块中记录符 号地址( symbolic address),而在可执行文件中改写为指令直接使用的 数字地址。 Module a Module a call function1 L-1 call l+F Module b Module b function function F function1(( L+F function1 O( M-1
3.链接 静态链接(static-linking) 返回 静态链接是在生成可执行文件时进行的。在目标模块中记录符 号地址(symbolic address),而在可执行文件中改写为指令直接使用的 数字地址。 Module A call "function1" 0 L-1 0 Module B M-1 function1(){ ... } "function1" F Module A call L+F 0 L-1 L Module B L+M-1 function1(){ ... } "function1" L+F
动态链接( dynamic-linking) 在裝入或运行时进行链接。通常被链接的共享代码称为动态链接库 (DLL, Dynamic-Link Library)或共享库( shared library) 优 共享:多个进程可以共用一个DLL,节省内存,减少文件交换 部分装入:一个进程可以将多种操作分散在不同的DLL中实现, 而只将当前操作相应的DLL装入内存。 便于局部代码修改:即便于代码升级和代码重用;只要函数的 接口参数(输入和输出)不变,则修改函数及其DLL,无需对 可执行文件重新编译或链接 便于运行环境适应:调用不同的DLL,就可以适应多种使用环 境和提供不同功能。如:不同的显示卡只需厂商为其提供特定 的DLL,而OS和应用程序不必修改 缺点: 链接开销:增加了程序执行时的链接开销: 管理开销:程序由多个文件组成,增加管理复杂度
动态链接(dynamic-linking) 优点 共享:多个进程可以共用一个DLL,节省内存,减少文件交换。 部分装入:一个进程可以将多种操作分散在不同的DLL中实现, 而只将当前操作相应的DLL装入内存。 便于局部代码修改:即便于代码升级和代码重用;只要函数的 接口参数(输入和输出)不变,则修改函数及其DLL,无需对 可执行文件重新编译或链接。 便于运行环境适应:调用不同的DLL,就可以适应多种使用环 境和提供不同功能。如:不同的显示卡只需厂商为其提供特定 的DLL,而OS和应用程序不必修改。 缺点: 链接开销:增加了程序执行时的链接开销; 管理开销:程序由多个文件组成,增加管理复杂度。 在装入或运行时进行链接。通常被链接的共享代码称为动态链接库 (DLL, Dynamic-Link Library)或共享库(shared library)
(二)连续分配存储方式 (1)单一连续分配 这是一种最简单的存储管理方式,但只能用于单用户、单任务 的操作系统,如在8位和16位微机上CPM和Ms-DOS操作系统。 它将内存分为两个区: 系统区:仅供操作系统使用,通常设置在内存的低段; 用户区:指除系统区以外的全部内存空间,提供给用户使用。 这种存储分配方式由于用在单用户、单任务的操作系统中。地址 映射和存储保护措施如下图
(二)连续分配存储方式 (1)单一连续分配 这是一种最简单的存储管理方式,但只能用于单用户、单任务 的操作系统,如在8位和16位微机上CP/M和MS-DOS操作系统。 它将内存分为两个区: 系统区:仅供操作系统使用,通常设置在内存的低段; 用户区:指除系统区以外的全部内存空间,提供给用户使用。 这种存储分配方式由于用在单用户、单任务的操作系统中。地址 映射和存储保护措施如下图