> # ♻️ 资源
> **大小:** 593KB
> **文档链接:**[**https://www.yuque.com/sxbn/ks/100010768**](https://www.yuque.com/sxbn/ks/100010768)
> **➡️ 资源下载:**[**https://download.csdn.net/download/s1t16/87450287**](https://download.csdn.net/download/s1t16/87450287)
> **注:更多内容可关注微信公众号【神仙别闹】,如当前文章或代码侵犯了您的权益,请私信作者删除!**
> ![qrcode_for_gh_d52056803b9a_344.jpg](https://cdn.nlark.com/yuque/0/2023/jpeg/2469055/1692147256036-49ec7e0c-5434-4963-b805-47e7295c9cbc.jpeg#averageHue=%23a3a3a3&clientId=u8fb96484-770e-4&from=paste&height=140&id=u237e511a&originHeight=344&originWidth=344&originalType=binary&ratio=1.25&rotation=0&showTitle=false&size=8270&status=done&style=none&taskId=ud96bf5f7-fe85-4848-b9c2-82251181297&title=&width=140.1999969482422)
# 存储器的分配与回收算法实现
**实验要求:**
1. 本实验是模拟操作系统的主存分配,运用可变分区的存储管理算法设计主存分配和回收程序,并不实际启动装入作业。
2. 采用最先适应法、最佳适应法、最坏适应法分配主存空间。
3. 当一个新作业要求装入主存时,必须查空闲区表,从中找出一个足够大的空闲区。若找到的空闲区大于作业需要量,这是应把它分成二部分,一部分为占用区,另一部分又成为一个空闲区。
4. 当一个作业撤离时,归还的区域如果与其他空闲区相邻,则应合并成一个较大的空闲区,登在空闲区表中。5.运行所设计的程序,输出有关数据结构表项的变化和内存的当前状态。
**实验任务:**
分别用 线性表 和 链表 模拟 主存空间的分配
**步骤:**
(1)最先适应法:在分配内存时,从链首开始顺序查找;如果找到一个大小能满足要
的空闲分区,然后再按照作业的大小,从分区中划出一块内存空间分配给请求者,余下的空闲分区仍留在空闲链中;如果找不到,此次分配失败,返回
最佳适应法:扫描整个空闲分区表或者链表,挑选一个最小的空闲区分割给作业使用
最坏适应法:扫描整个空闲分区表或者链表,挑选一个最大的空闲区分割给作业使用
(2)分配内存时:若分割后的多余部分太小,可以不用分割,直接将整个分区分配给进程
回收内存时:1.若回收区与插入点的前一个空闲分区 F1 相邻接,则将两者合并,同时修改 F1 的大小为两者大小的和
2.若回收区与插入点的后一个空闲分区 F2 相邻接,则将两者合并,使用回收区的首址作为新空闲区的首址,大小为两者大小的和
3.若回收区与 F1、F2 邻接,此时将三个分区合并,使用 F1 的表项和 F1 的首址,取消 F2 的表项,大小为三者之和
4.若回收区 既不与 F1 邻接,也不与 F2 邻接, 此时为回收区单独建立一个新表项,填写回收区的首址和大小,并根据首址插入到适当位置
(3)依次输入一个进程的请求信息后,按照指定的方法对这个 PCB 进行分配,逐步输出模拟内存分配的状态,进行查看
(4)设计测试数据,分析程序运行情况,并进行调试
**算法描述:**
(1)输入指定的分配方法(1.最先适应法,2.最佳适应法,3.最坏适应法)
(2)i=0; 同时输入时间数 n
(3)i++; 同时输入一个进程的请求信息
(4)按照指定的方法对 这个进程 进行内存分配
(5)显示内存状态
(6)若 i==n,结束。否则转到(3)
**流程:**
![](https://cdn.nlark.com/yuque/0/2024/png/2469055/1715560607168-16accf5d-c924-4603-a176-6dbf82fc7109.png#averageHue=%23f3f3f3&from=url&id=w2dZs&originHeight=333&originWidth=673&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)
测试结果:
最先适应法:
![](https://cdn.nlark.com/yuque/0/2024/png/2469055/1715560607275-aef236ba-9786-4d9f-b682-7b830ecf29fa.png#averageHue=%23121211&from=url&id=N76dZ&originHeight=735&originWidth=669&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)
![](https://cdn.nlark.com/yuque/0/2024/png/2469055/1715560607335-ada70124-51cc-47c5-9b85-64fc9ffc28e4.png#averageHue=%230e0e0e&from=url&id=nzv8B&originHeight=336&originWidth=666&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)
最佳适应法:
![](https://cdn.nlark.com/yuque/0/2024/png/2469055/1715560607397-bd615a43-01a6-41fc-99a5-d4eafd792662.png#averageHue=%23111111&from=url&id=ukNky&originHeight=735&originWidth=669&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)
![](https://cdn.nlark.com/yuque/0/2024/png/2469055/1715560607477-7434f916-4be8-4427-956e-705ec2e54432.png#averageHue=%230d0d0d&from=url&id=pt41b&originHeight=335&originWidth=665&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)
最坏适应法:
![](https://cdn.nlark.com/yuque/0/2024/png/2469055/1715560607535-4936d3b6-b95d-453c-ae9b-3482c48088ed.png#averageHue=%23111111&from=url&id=lnWaQ&originHeight=735&originWidth=669&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)
![](https://cdn.nlark.com/yuque/0/2024/png/2469055/1715560607595-92685bff-24f8-435a-9550-6db82498526e.png#averageHue=%230c0c0c&from=url&id=IrF25&originHeight=364&originWidth=661&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)
神仙别闹
- 粉丝: 3819
- 资源: 7471
最新资源
- bdwptqmxgj11.zip
- onnxruntime-win-x86
- onnxruntime-win-x64-gpu-1.20.1.zip
- vs2019 c++20 语法规范 头文件 <ratio> 的源码阅读与注释,处理分数的存储,加减乘除,以及大小比较等运算
- 首次尝试使用 Win,DirectX C++ 中的形状渲染套件.zip
- 预乘混合模式是一种用途广泛的三合一混合模式 它已经存在很长时间了,但似乎每隔几年就会被重新发现 该项目包括使用预乘 alpha 的描述,示例和工具 .zip
- 项目描述 DirectX 引擎支持版本 9、10、11 库 Microsoft SDK 功能相机视图、照明、加载网格、动画、蒙皮、层次结构界面、动画控制器、网格容器、碰撞系统 .zip
- 项目 wiki 文档中使用的代码教程的源代码库.zip
- 面向对象的通用GUI框架.zip
- 基于Java语言的PlayerBase游戏角色设计源码
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
- 1
- 2
前往页