Memory management 单分区分配中的瞬时操作系统代码?

Memory management 单分区分配中的瞬时操作系统代码?,memory-management,operating-system,Memory Management,Operating System,在浏览有关内存管理的讲座的幻灯片时,我遇到了以下问题: 重定位寄存器值在程序执行期间是静态的。因此,所有操作系统都必须存在(可能会被使用)。否则,我们必须“动态”重新定位用户代码/数据!换句话说,我们不能有瞬态操作系统代码 我不明白上面几行是什么意思。如果有人能解释这一点,我将不胜感激。搬迁登记计划提供了一种有效的方式,允许 操作系统的大小将动态更改。这种灵活性在实际应用中是可取的 很多情况下。例如,操作系统包含代码和缓冲区 设备驱动程序的空间 如果设备驱动程序(或其他操作系统服务)不是常用的,

在浏览有关内存管理的讲座的幻灯片时,我遇到了以下问题:

重定位寄存器值在程序执行期间是静态的。因此,所有操作系统都必须存在(可能会被使用)。否则,我们必须“动态”重新定位用户代码/数据!换句话说,我们不能有瞬态操作系统代码


我不明白上面几行是什么意思。如果有人能解释这一点,我将不胜感激。

搬迁登记计划提供了一种有效的方式,允许 操作系统的大小将动态更改。这种灵活性在实际应用中是可取的 很多情况下。例如,操作系统包含代码和缓冲区 设备驱动程序的空间

如果设备驱动程序(或其他操作系统服务)不是常用的,那么我们不希望将代码和数据保存在内存中 我们或许可以把那个空间用于其他目的。这样的代码有时是错误的 称为瞬态操作系统代码;它根据需要来来去去。因此 在编程过程中,使用此代码可以更改操作系统的大小 执行

  • 用户代码中的所有逻辑内存引用都使用重定位寄存器值映射到物理地址空间。(Phy.add=Rel.reg_val+log.add)

  • 重定位寄存器的值由操作系统设置。因此,它将不受用户进程的影响

  • 操作系统中的瞬态代码意味着它只在很短的时间内处于活动状态(在很长时间内无用,就像检查处理器是否死锁的代码一样)。因此,重定位寄存器方案试图将此临时代码占用的内存分配给主存作业队列中的其他进程。缩小或扩展操作系统进程与邻近进程的边界(由于单分区分配)

  • 通过了解以上几点,如果操作系统中存在瞬态代码,由于操作系统进程边界的变化,我们应该能够频繁地重新定位用户代码/数据