1、程序经过编译后,每个目标模块都是从0号单元开始编址,称为该目标模块的相对地址(或逻辑地址)。
2、当链接程序将各个模块链接成一个完整的可执行目标程序时,链接程序顺序依次按各个模块的相对地址构成统一的
从0号单元开始编址的逻辑地址空间。
3、用户程序和程序员只需知道逻辑地址,而内存管理的具体机制则是完全透明的,它们只有系统编程人员才会涉及。
4、不同进程可以有相同的逻辑地址,因为这些相同的逻辑地址可以映射到主存的不同位置。
5、物理地址空间是指内存中物理单元的集合,它是地址转换的最终地址,进程在运行时执行指令和访问数据都要通过
物理地址从主存中存取。当装入程序(Loader)将可执行代码装入内存时,必须通过地址转换将逻辑地址转换成物理地址,
这个过程称为地址重定位。
内存保护
1)内存分配前,需要保护操作系统不受用户进程的影响,同时保护用户进程不受其他用户进程的影响。
2)通过采用重定位寄存器和界地址寄存器来实现这种保护。
重定位寄存器含最小的物理地址值,界地址寄存器含逻辑地址值。每个逻辑地址值必须小于界地址寄存器,
3)内存管理机构动态的将逻辑地址与界地址寄存器进行比较,如果未发生地址越界,
则加上重定位寄存器的值后映射成物理地址,再送交内存单元。
4)当CPU调度程序选择进程执行时,派遣程序会初始化重定位寄存器和界地址寄存器。
每一个逻辑地址都需要与这两个寄存器进行核对,以保证操作系统和其他用户进程(程序)
及数据不被该进程的运行所影响。