重定位寄存器在内存映射和分配方面是否发生了变化?

Cai*_*tri 2 memory theory operating-system

我刚刚阅读了一本操作系统书籍,它在逻辑地址到物理地址的转换中引用了重定位寄存器.

我明白他们是如何转变的.本质上,逻辑地址被添加到重定位寄存器以获取物理内存地址.(非常简单的版本).

但要实现这一点,如果有多个进程,则重定位寄存器必须不断变化.

例如,如果重定位寄存器是常量2000,则将始终为进程提供相同的物理内存地址.

那么如何找到重定位寄存器的值呢?它是如何改变的?

感谢您的帮助!这本书很害羞.

小智 5

分配给进程的内存的逻辑地址是基址寄存器和限制寄存器的组合.将此逻辑地址添加到重定位寄存器时,它会提供物理地址. 逻辑内存 - >物理内存转换

因此,即使重定位寄存器是常量,也会为进程提供不同的物理地址,因为进程的逻辑地址会发生变化.

如何找到重定位寄存器的值?

重定位寄存器的值将由OS设置,没有用户进程可以访问该值.只有内存管理单元知道此值.

它是如何改变的?

该值可以由操作系统更改.


附注:重定位寄存器的重点是避免用户进程访问物理地址.操作系统驻留在物理内存中,地址范围为0-Relocation Register.