【发布时间】:2013-05-27 23:05:10
【问题描述】:
我只是在阅读一本操作系统的书,它在逻辑地址到物理地址的转换中提到了重定位寄存器。
我了解他们是如何转换的。本质上,逻辑地址被添加到重定位寄存器以获得物理内存地址。 (非常简单的版本)。
但要使其工作,如果有多个进程,重定位寄存器必须不断变化。
例如,如果重定位寄存器是常数 2000,则进程将不断被赋予相同的物理内存地址。
那么,如果重定位寄存器的值找到了,该怎么办呢? 它是如何改变的?
感谢大家的帮助!这本书有点害羞。
【问题讨论】:
-
一般来说,当你在进程之间切换时,你必须恢复每个寄存器的值。我不希望我的寄存器 R7 突然保持一个全新的值,因为操作系统交换到另一个使用 R7 的程序。现在 Windows 3.x 确实有一些微妙不同的规则,但那是因为它仅在进行系统调用时在进程之间交换,并且那些改变了寄存器。
标签: memory operating-system theory