• 动态分区算法


    第1关:首次适应算法

    任务描述
    假设初始状态下可用的内存空间为55MB,并有如下的请求序列:
    作业1申请15MB
    作业2申请30MB
    作业1释放15MB
    作业3分配8MB
    作业4分配6MB
    作业2释放30MB
    请采用首次适应算法进行内存块的分配和回收,并打印出空闲内存分区链的情况

    相关知识
    为了完成本关任务,你需要掌握使用首次适应算法进行内存块的分配与回收。

    内存分配
    空闲分区链按地址递增的顺序链接。在分配内存时,从链首开始顺序查找,直至找到一个大小能满足要求的空闲分区。然后再按照作业的大小,从该分区中划出一块内存空间,分配给请求者,余下的空闲分区仍留在空闲链中。若从链首到链尾都找不到一个能满足要求的分区,则表明系统没有足够大的内存分配给该进程,内存分配失败返回。

    内存回收
    当进程运行完毕释放内存时,系统根据回收区的首址,从空闲区链(表)中找到相应的插入点,此时可能出现以下四种情况之一:
    (1) 回收区与插入点的前一个空闲分区F1相邻接,此时应将回收区与插入点的前一分区合并,不必为回收分区分配新表项,而只需修改其前一分区F1的大小。
    (2) 回收分区与插入点的后一空闲分区F2相邻接,此时也可将两分区合并,形成新的空闲分区,但用回收区的首址作为新空闲区的首址,大小为两者之和。
    (3) 回收区同时与插入点的前、后两个分区F1和F2邻接,此时将三个分区合并,使用F1的表项和F1的首址,取消F2的表项,大小为三者之和。
    (4) 回收区前后没有空闲分区。这时应为回收区单独建立一个新表项,填写回收区的首址和大小&

  • 相关阅读:
    vs工程添加自定义宏
    CentOS obs直播RTMP协议推流到Nginx流媒体服务器到VUE使用HLS直播
    k8s 增加 node 节点
    Python进阶篇:百度指数解密【抓包|JS逆向|数据区分】
    Mac 环境变量配置(待补充)
    Nginx下php连接到GBase 8s数据库 - ODBC方式
    Spring框架(十二):实现日志功能通过SpringBean后处理器
    抖音x-gorgen 0404开源
    IP协议与NAT/NAPT技术
    AntScheduler
  • 原文地址:https://blog.csdn.net/Junds0/article/details/127427584