4 存储管理课件1.pptVIP

  • 5
  • 0
  • 约5.79千字
  • 约 45页
  • 2017-03-12 发布于河南
  • 举报
4.3.4 分区的分配与回收 内存分配程序包括分配一个内存块(分区)和释放一个内存块(分区)两个函数,当进程需要一个大小为size的内存时,可以通过系统调用向系统申请。 调用形式:request(size) 返回:成功为分区的首地址,失败为0。 进程释放一个分区时,调用: release(释放区首地址) 返回:无 一、分配算法 1、分配算法中切割空闲区是从低地址开始的,例如,一个空闲区大小是100KB,首址是230KB,一申请者要求80KB,分配时将从230KB开始的80KB分配给申请者,剩下的部分仍作为一个空闲区,其首址是310KB,大小是20KB。 2、门限值是切割空闲区后剩下的区域若小于门限值,就不切割该空闲区,统统分给申请者。 二、回收算法 当一个进程(或程序)释放某内存区时,要调用存储区释放算法release,它将首先检查释放区是否与空闲区表(队列)中的其它空闲区相邻,若相邻则合并成一个空闲区,否则,将释放为一个空闲区插入空闲区表(或队列)中的适当位置。 空闲释放区与空闲区相邻有四种情况。 试用C语言写出动态分区的回收算法。 A、将r合并到f1,f1.addr;f1.size+r.size=f.size B、将r合并到f2, r.addr;r.size+r.size=f2.size C、f1、r、f2 合并到f1, f1.addr;

文档评论(0)

1亿VIP精品文档

相关文档