程序的准备执行-装入 BR 0 1000 VR 100 LOADA 200 200+ OADA2001100 200 3456 3456 1200 1300 300 2021/2/2 《计算机操作系统》-第6章 22/130
2021/2/2 《计算机操作系统》-第6章 22/130 程序的准备执行--装入 ◼ 动态地址映射(动态重定位) ◼ 动态地址重定位是在程序执行的过程中,每次 访问内存之前,将要访问的程序地址转换为内 存地址。一般来说这种转换是由专门的硬件机 构来完成的。 ◼ 最简单的硬件机构是重定位寄存器。 ◼ 在地址重定位机构中,有一个基地址寄存器BR 和一个程序地址寄存器VR,一个内存地址寄存 器MR。 0 3456 . . . . . . LOAD A 200 . . . . . . 0 100 200 300 . . . . . . . . . LOAD A 200 3456 1100 1200 1300 200 VR + 1000 BR
程序的准备执行-装入 动态地址映射(动态重定位) ■动态地址重定位是在程序执行的过程中,每次 访问内存之前,将要访问的程序地址转换为内 存地址。一般来说这种转换是由专门的硬件机 构来完成的。 ■最简单的硬件机构是重定位寄存器。 在地址重定位机构中,有一个基地址寄存器BR 和一个程序地址寄存器R,一个内存地址寄存 器MR。 2021/2/2 《计算机操作系统》-第6章 23/130
2021/2/2 《计算机操作系统》-第6章 23/130 程序的准备执行--装入 ◼ 动态地址映射(动态重定位) ◼ 动态地址重定位是在程序执行的过程中,每次 访问内存之前,将要访问的程序地址转换为内 存地址。一般来说这种转换是由专门的硬件机 构来完成的。 ◼ 最简单的硬件机构是重定位寄存器。 ◼ 在地址重定位机构中,有一个基地址寄存器BR 和一个程序地址寄存器VR,一个内存地址寄存 器MR
程序的准备执行-装入 动态地址映射(动态重定位)过程描述: 程序装入内存后,它所占用的内存区的首地址 由系统送入基地址寄存器BR中。 2.在程序执行的过程中,若要访问内存,将访问 的逻辑地址送入VR中 3.地址转换机构把VR和BR中的内容相加,并将 结果送入MR中,作为实际访问的地址。 2021/2/2 《计算机操作系统》-第6章 24/130
2021/2/2 《计算机操作系统》-第6章 24/130 程序的准备执行--装入 ◼ 动态地址映射(动态重定位)过程描述: 1. 程序装入内存后,它所占用的内存区的首地址 由系统送入基地址寄存器BR中。 2. 在程序执行的过程中,若要访问内存,将访问 的逻辑地址送入VR中。 3. 地址转换机构把VR和BR中的内容相加,并将 结果送入MR中,作为实际访问的地址
相对地址重定位寄存 10000 2500110000 100 10100 load1,2500 load 1,2500 2500 12500 365 365 15000 5000 作业J 处理机一侧 存储器一侧 2021/2/2 《计算机操作系统》-第6章 25/130
2021/2/2 《计算机操作系统》-第6章 25/130 load 1,2500 365 load 1,2500 365 0 100 2500 5000 2500 10000 10000 10100 + 12500 15000 作业J 处理机一侧 存储器一侧 相对地址 重定位寄存器
程序的准备执行装入 动态地址映射(动态重定位)优点: 程序占用的内存空间是动态可变的,当程序从 某个存储区移到另一个区域时,只需要修改相 应的寄存器BR的内容即可。 个程序不一定要求占用一个连续的内存空间 可以部分地装入程序运行。 便于多个进程共享同一个程序的代码。 2021/2/2 《计算机操作系统》-第6章 26/130
2021/2/2 《计算机操作系统》-第6章 26/130 程序的准备执行-装入 ◼ 动态地址映射(动态重定位)优点: ◼ 程序占用的内存空间是动态可变的,当程序从 某个存储区移到另一个区域时,只需要修改相 应的寄存器BR的内容即可。 ◼ 一个程序不一定要求占用一个连续的内存空间。 ◼ 可以部分地装入程序运行。 ◼ 便于多个进程共享同一个程序的代码