操作系统中的内存分配

来源:互联网 发布:js array remove item 编辑:程序博客网 时间:2024/06/05 00:30

连续的内存分配

内存通常有两个区域
- 存放操作系统的区域
- 存放用户进程的区域
将多个进程存放到内存中需要考虑如何将输入队列中需要调入内存的多个进程进行内存分配。采用连续内存分配时,每个进程位于一个连续的内存区域。

内存分配方法

  1. 固定分区分配

    将内存分为多个固定大小的分区,每个分区只能容纳一个进程。当进程终止时,其分区可以被其他进程所利用。
    现在这种方案已经不再使用,主要用于批处理的环境。

  2. 列表内容

    在可变分区分配中,有个表记录哪些内存可用,哪些内存已被占用。有新的进程需要内存时,为该进程寻找满足需要的内存块,如果找到就为之分配内存
    在寻找内存块的时候有一下三种方案可以选择:

    • 首次适应:为进程分配第一个满足大小的内存块,查找从头开始找,一旦找到足够大的空闲块,就停止寻找,为之分配。
    • 最佳适应:分配能够满足进程的最小的空闲内存块,查找整个列表,寻找能搞满足进程的最小空闲内存块。该方法会产生最小剩余的内存块。
    • 最差适应:分配能够满足进程的最大空闲内存块,查找整个列表,寻找能够满足进程的最大空闲内存块,该方法会产生最小剩余内存块。
1 0