连续内存分配及其方式详解

  • 内容
  • 评论
  • 相关

内存应容纳操作系统和各种用户进程,因此应该尽可能有效地分配内存。本节介绍一种早期方法:连续内存分配

内存通常分为两个区域:一个用于驻留操作系统,另一个用于用户进程。操作系统可以放在低内存,也可放在高内存,这取决与中断向量的位置。由于中断向量通常位于低内存,因此程序员通常将操作系统也放在低内存。因此,本节只讨论操作系统位于低内存的情况,其他情况的讨论也类似。

通常,我们需要将多个进程同时放在内存中。因此我们需要考虑,如何为输入队列中需要调入内存的进程分配内存空间。在采用连续内存分配时,每个进程位于一个连续的内存区域,与包含下一个进程的内存相连。

内存保护

在深入讨论内存分配前,我们应先讨论内存保护问题。结合《内存交换》一节中讨论的两个想法,我们可以防止进程访问不属于它的内存。如果一个系统有重定位寄存器和界限寄存器,则能实现我们的目标。

重定位寄存器含有最小的物理地址值,界限寄存器含有逻辑地址的范围值(例如,重定位=100040,界限=74600)。每个逻辑地址应在界限寄存器规定的范围内。MMU(内存管理单元)通过动态地将逻辑地址加上重定位寄存器的值,来进行映射。映射后的地址再发送到内存(图1 )。


重定位和界限寄存器的硬件支持
图 1 重定位和界限寄存器的硬件支持

本文标题:连续内存分配及其方式详解

本文地址:https://www.hosteonscn.com/3620.html

评论

0条评论

发表评论

邮箱地址不会被公开。 必填项已用*标注