分区分配算法的模拟
文章平均质量分 65
falldeep
远和近
展开
-
循环首次适应算法的模拟(c++实现)
当内存各分区中都无大小大于该作业的可用区时,判断空闲分区总和是否大于该作业的大小,若满足条件,则在紧凑后放入。如下图所示,此时若插入一个大小为130KB的作业,则必须进行紧凑后才能放入。设置内存总大小为1024KB,进入程序后有四种选项,插入作业请输入1,回收作业请输入0,紧凑请输入2, 查看内存信息请输入3,退出程序请输入4。1)实现一个完整的(可变)动态分区管理器,包括分配,回收,分区碎片整理等。此时已经产生了碎片,输入2,进行紧凑操作,程序进行重定位,自动改变了当前内存中作业的起始地址。原创 2022-10-11 09:54:47 · 3060 阅读 · 1 评论 -
最坏适应算法的模拟(c++实现)
空闲分区表中的空闲分区按大小从大到小排列,作业调入时会先从表头(下标为0)开始寻找,因此每次分配的都是可以满足作业大小需求的最大空白分区,实现了最坏适应算法的模拟。空闲分区表中的空闲分区按大小从大到小排列,作业调入时会先从表头(下标为0)开始寻找,因此每次分配的都是可以满足作业大小需求的最大空白分区,实现了最坏适应算法的模拟。设置内存总大小为1024KB,进入程序后有四种选项,插入作业请输入1,回收作业请输入0,紧凑请输入2, 查看内存信息请输入3,退出程序请输入4。4)回收功能:对不用的作业进行回收。原创 2022-10-11 09:52:23 · 3933 阅读 · 1 评论 -
固定分区分配算法的模拟(c++实现)
预先将内存空间(1024KB)划分成4个等值大小的空闲分区(每个分区占256KB),分配过程根据用户需求将某一满足条件的分区直接分配(不进行分割),作业完成后回收相应内存。插入作业若过大,超过分区大小,内存将无法装入,如插入作业D,大小500KB,程序返回异常提醒。1)实现一个完整的固定分区管理器,包括分配,回收等。根据固定分区分配算法,将该作业分配到第0分区。2)初始化功能:内存状态设置为初始状态。输入0,进行回收作业测试,回收作业A成功。3)分配功能:采用固定分区分配算法。图3-3 显示当前内存信息。原创 2022-10-11 09:49:26 · 1585 阅读 · 0 评论 -
最佳适应算法的模拟(c++实现)
当内存各分区中都无大小大于该作业的可用区时,判断空闲分区总和是否大于该作业的大小,若满足条件,则在紧凑后放入。空闲分区表中的空闲分区按大小从小到大排列,作业调入时会先从表头(下标为0)开始寻找,因此每次分配的都是可以满足作业大小需求的最小空白分区,实现了最佳适应算法的模拟。设置内存总大小为1024KB,进入程序后有四种选项,插入作业请输入1,回收作业请输入0,紧凑请输入2, 查看内存信息请输入3,退出程序请输入4。1)实现一个完整的(可变)动态分区管理器,包括分配,回收,分区碎片整理等。原创 2022-10-11 09:45:48 · 2963 阅读 · 1 评论 -
首次适应算法的模拟(C++实现)
当内存各分区中都无大小大于该作业的可用区时,判断空闲分区总和是否大于该作业的大小,若满足条件,则在紧凑后放入。设置内存总大小为1024KB,进入程序后有四种选项,插入作业请输入1,回收作业请输入0,紧凑请输入2, 查看内存信息请输入3,退出程序请输入4。插入一个名字为jincou的作业,大小为130KB,根据程序运行结果可以发现是经过了紧凑的,说明程序运行正确。此时已经产生了碎片,输入2,进行紧凑操作,程序进行重定位,自动改变了当前内存中作业的起始地址。输入1后,程序可作业进行内存分配。原创 2022-10-11 09:41:45 · 3271 阅读 · 2 评论