实例分析首次适应算法、最佳适应算法、最差适应算法
来源:互联网 发布:智能数据盒子 编辑:程序博客网 时间:2024/05/16 06:33
关于首次适应算法、最佳适应算法和最差适应算法,先看一下百度百科的解释,已经说出了三者的最大区别。
首次适应算法(first-fit):
从空闲分区表的第一个表目起查找该表,把最先能够满足要求的空闲区分配给作业,这种方法的目的在于减少查找时间。
最佳适应算法(best-fit):从全部空闲区中找出能满足作业要求的,且大小最小的空闲分区,这种方法能使碎片尽量小。
最差适应算法(worst-fit):它从全部空闲区中找出能满足作业要求的、且大小最大的空闲分区,从而使链表中的节点大小趋于均匀。
下面看一个实例:
Given five memory partitions of 100 KB, 500 KB, 200 KB, 300 KB, and 600 KB (in order), how would each of the first-fit, best-fit, and worst-fit algorithms place processes of 212 KB, 417 KB, 112 KB, and 426 KB (in order)? Which algorithm makes the most efficient use of memory?
首次适应算法:
为212k分配空间:
依次找寻,找到第一个大于212k的空闲区;
找到第二个空闲区500k>212k,分配给212k,剩余288k空闲区;
为417k分配空间:
依次找寻,找到第一个大于417k的空闲区;
找到第五个空闲区600k>417k,分配给417k,剩余183k空闲区
为112k分配空间:
依次找寻,找到第一个大于112k的空闲区;
找到第二个空闲区288k>112k,分配给112k,剩余176k空闲区
为426k分配空间:
依次找寻,找到第一个大于426k的空闲区;
未找到,此作业将等待释放空间
最佳适应算法:
为212k分配空间:
找到第一个跟212k大小最接近的空闲区
找到第四个空闲区300>212k,剩余88k空闲区
为417k分配空间:
找到第一个跟417k大小最接近的空闲区
找到第二个空闲区500>417,剩余83k空闲区
为112k分配空间:
找到第一个跟112k大小最接近的空闲区
找到第三个空闲区200>112k,剩余88k空闲区
为426k分配空间:
找到第一个跟426大小最接近的空闲区
找到第五个空闲区600k>426,剩余74k空闲区
最坏适应算法:
为212k分配空间:
找到第一个大小最大的空闲区
找到第五个空闲区600>212k,剩余388k空闲区
为417k分配空间:
找到第一个大小最大的空闲区
找到第二个空闲区500>417,剩余83k空闲区
为112k分配空间:
找到第一个大小最大的空闲区
找到第三个空闲区388>112k,剩余276k空闲区
为426k分配空间:
找到第一个大小最大的空闲区
达到大小最大的空闲区300k<426k,所以不分配
Answer
Free partition
100
500
200
300
600
Not satisfied
First-fit
212,112
417
426
Best-fit
417
112
212
426
Worst-fit
417
212,112
426
ps:好久没碰操作系统了,今天看到这三个算法的第一反应居然有点懵,还是好记性不如烂笔头啊,本文中的定义来自百度百科,实例题目来自老师布置的作业,答案分析为笔者按自己的理解写的,若有不对,欢迎指出~~
- 实例分析首次适应算法、最佳适应算法、最差适应算法
- 首次适应算法和最佳适应算法和循环首次适应算法和最坏适应算法
- 动态分区分配-循环首次适应算法+最佳适应算法
- 循环首次适应算法、首次适应算法、最佳适应算法_C语言版
- 循环首次适应算法
- 操作系统-首次适应算法
- 最佳适应算法
- 操作系统-最佳适应算法
- 首次适应算法(FF)和循环首次适应算法(NF)
- 常见内存分配算法:首次适应算法(FirstFit)循环首次适应算法(NextFit)最佳适应算法(BestFit)最坏适应算法(WorstFit)
- 操作系统-循环首次适应算法
- 系统内存分配的首次适应算法和最佳适应算法链表模拟实现
- 最佳适应算法(best fit)
- 最佳适应(BestFit)算法
- 动态分区分配-首次适应算法
- 动态分区分配-首次适应算法
- 内存分配(首次适应算法)
- FF(首次适应)算法C,Java实现
- Chat 聊天界面
- 欢迎使用CSDN-markdown编辑器
- URAL 1036 Lucky Tickets 【dp】【高精度】
- 写LCD驱动程序步骤
- c++
- 实例分析首次适应算法、最佳适应算法、最差适应算法
- Java基础知识点:第十一章:内部类,java中的日期和时间,异常
- JMS基本概念
- 101. Symmetric Tree
- 第十一周项目四算星座
- 【Linux4.1.12源码分析】UDP层csum计算
- 关于Linux中的一些感悟
- 数中有多少个数可以被正整数b整除
- Linux开发工具学习笔记3(未完)