• 动态分区分配算法


    一、首次适应算法(First Fit)

    1.思想

    每次都从低地址开始查找,找到第一个能满足大小的空闲分区

    2.实现

    以递增次序排列空闲分区,按顺序查找空闲分区链/空闲分区表,分配第一个满足要求的空闲分区

    3.缺点

    会导致低地址部分出现很多很小的空闲分区,使得每次分配查找开销更大。

    二、最佳适应算法(Best Fit)

    1.思想

    为保证大进程能有连续的大片空间,多留大片空闲区,优先使用更小的空闲区。

    2.实现

    空闲分区按容量递增次序链接,按顺序查找空闲分区链/空闲分区表,分配第一个满足要求的空闲分区

    3.缺点

    会产生很多很小的外部碎片,需要更新排列顺序

    三、最坏适应算法(Worst Fit)

    1.思想

    为减少外部碎片,多留大片空闲区,优先使用更大的空闲区。

    2.实现

    空闲分区按容量递减次序链接,按顺序查找空闲分区链/空闲分区表,分配第一个满足要求的空闲分区

    3.缺点

    会导致大进程到达时无内存分区可用,需要更新排列顺序

    四、邻近适应算法(Next Fit)

    1.思想

    为减少首次适应算法的查找开销,每次查找从上次查找结束位置开始

    2.实现

    以递增次序排列空闲分区,从上次查找结束位置开始查找空闲分区链/空闲分区表,分配第一个满足要求的空闲分区

    3.缺点

    会更多占用高地址部分的大分区,导致无大分区可用

  • 相关阅读:
    java:CompletableFuture的简单例子
    Unity | Image 自定义顶点数据实现圆角矩形
    操作符详解
    Linux kprobe原理
    oracle并发与多版本控制
    JDBC连接数据库工具类
    程序员生活
    Qt MQTT开发环境搭建
    八、C++ 类的构造函数和析构函数
    [LeetCode]-贪心
  • 原文地址:https://blog.csdn.net/2301_76371717/article/details/134007231