可变分区管理分配算法
1、最先(首次)适应分配算法
空闲分区通常按地址从小到大排列,分配第一个满足长度要求地空闲区。
首地址 | 大小 |
---|---|
100k | 128k |
800k | 200k |
1300k | 700k |
第一个请求188k,第二个请求138k
首先在首地址为800k的分配188k,剩余12k,然后在首地址为1300k的分配138k,剩余1162k。
优点:分配从低地址开始,使高地址部分比较少用,以保持一个大空闲区,有利于大作业的装入;
缺点:分区利用不均衡,回收分区比较麻烦。
2、下次适应分配算法/循环首次
每次分配时从未分配区的上次扫描 结束处顺序查找。 可以解决的缺点。
首地址 | 大小 |
---|---|
100k | 128k |
800k | 200k |
1300k | 700k |
第一个请求188k,第二个请求138k
首先在首地址为800k的分配188k,剩余12k,上一次未分配区地址不够,然后在首地址为1300k的分配138k,剩余1162k。
优点:分区利用均衡
缺点:不利于上一次分配之前的分区不能得到有效利用
3、最优适应分配算法
分配能满足要求的最小区。 可以将空闲区按照大小从小到大排列,查找第一 个满足要求的。
首地址 | 大小 |
---|---|
100k | 128k |
800k | 200k |
1300k | 700k |
第一个请求188k,第二个请求138k
首先在首地址为800k的分配188k,剩余12k,上一次未分配区地址不够,然后在首地址为1300k的分配138k,剩余1162k。
优点:主存利用率好。
缺点:分割剩下的空闲区比较小,难以利用;查 找时间比较长。
4、最坏适应分配算法
分配能满足要求的最大区; 可以将空闲区按照大小从大到小排列,查找第一 个满足要求的。 效率大致等同于最先适应法。
首地址 | 大小 |
---|---|
100k | 128k |
800k | 200k |
1300k | 700k |
第一个请求188k,第二个请求138k
首先在首地址为1300k的分配188k,剩余1112k,上一次未分配区地址不够,然后在首地址为1300k的分配138k,剩余974k。
5、快速适应分配算法
为经常用到的长度的空闲区设置单独的链表。
优点:查找快速;
缺点:归还时与相邻空闲区的合并即复杂又费时 。
最佳适用算法
可变分区管理分配算法相关推荐
- 连续分配管理方式的动态分区分配算法(首次适应、最佳适应、最坏适应、邻接适应算法)
一.动态分区分配算法(连续分配管理方式) 动态分区分配算法:在动态分区分配方式中, 当很多个空闲分区都能满足需求时,应该选择哪个分区进行分配? (一)首次适应算法 算法思想:每次都从低地址开始查找,找 ...
- (王道408考研操作系统)第三章内存管理-第一节5:动态分区分配算法(首次适应、和邻近适应)
文章目录 一:首次适应算法(First Fit) 二:最佳适应算法(Best Fit) 三:最坏适应算法(Worst Fit) 四:邻近适应算法(Next Fit) 总结 动态分区分配算法:用于研究当 ...
- java 内存分配管理_JAVA实验操作系统内存管理-最优分配,最先分配,最坏分配算法...
package Memory; import java.util.ArrayList; import java.util.Iterator; import java.util.Scanner; pub ...
- Linux 操作系统原理 — 内存 — 内存分配算法
目录 文章目录 目录 前文列表 内存碎片 伙伴(Buddy)分配算法 Slab 算法 虚拟内存的分配 内核态内存分配 vmalloc 函数 kmalloc 用户态内存分配 malloc 申请内存 用户 ...
- linux为系统分配内存,Linux操作系统知识讲解:走进Linux 内存分配算法
Linux 内存分配算法 内存管理算法--对讨厌自己管理内存的人来说是天赐的礼物 1.内存碎片 1) 基本原理 产生原因:内存分配较小,并且分配的这些小的内存生存周期又较长,反复申请后将产生内存碎片的 ...
- DLmalloc 内存分配算法
dlmalloc由Doug Lea编写的内存分配算法 (1)mspace_malloc/mspace_free (2) dlmalloc/dlfree 1.边界标记 2.空闲块分箱:2个分箱数组 (1 ...
- JVM内存管理------GC算法精解(五分钟教你终极算法---分代搜集算法)
转载自 JVM内存管理------GC算法精解(五分钟教你终极算法---分代搜集算法) 引言 何为终极算法? 其实就是现在的JVM采用的算法,并非真正的终极.说不定若干年以后,还会有新的终极算法, ...
- JVM内存管理------GC算法精解(五分钟让你彻底明白标记/清除算法)
转载自 JVM内存管理------GC算法精解(五分钟让你彻底明白标记/清除算法) 相信不少猿友看到标题就认为LZ是标题党了,不过既然您已经被LZ忽悠进来了,那就好好的享受一顿算法大餐吧.不过LZ丑 ...
- JVM内存管理------GC算法精解(复制算法与标记/整理算法)
转载自 JVM内存管理------GC算法精解(复制算法与标记/整理算法) 本次LZ和各位分享GC最后两种算法,复制算法以及标记/整理算法.上一章在讲解标记/清除算法时已经提到过,这两种算法都是在此 ...
最新文章
- 少壮不努力,老大背单词
- alert 回调_element之Alert 警告
- BZOJ1833:[ZJOI2010]数字计数——题解
- Linux中文件描述符1,linux内核中的文件描述符(一)--基础知识简介
- web前端攻城狮整理的收藏夹
- 排除万难,我终于入了程序员的坑!
- C语言百度翻译API的使用,c语言怎么翻译? 程序怎么运行?
- 【收藏】k8s使用如下配置给pod固定ip
- OpenCV形态学变换函数morphologyEx()梯度运算的使用
- [python]使用virtualenv处理python版本问题
- python 数字大小排序_python list字符按数字大小排序
- tensflower官方测试案例_Storm自带测试案例的运行
- Hudson安装配置文档
- C语言学习资源汇总,史上最全面总结,没有之一
- 培养好习惯是很难,但也有方法
- Only one connection receive subscriber allowed.
- 一种逐样本的偏AUC优化框架
- 【隐式图搜索遍历学习】倒牛奶
- 如何更新neovim以及安装指定版本
- sigar获取进程信息
热门文章
- 北邮和中南计算机,中南大学与北京邮电大学哪个好?
- 对抗自编码器(adversarial autoencoder)
- sketch软件_UI界面设计工具都在这里了,Sketch、XD、Figma哪个好?
- 100行微信跳一跳java_安卓版微信跳一跳辅助 跳一跳辅助Java代码
- 远程控制阀门和限位开关
- 中软国际解放号:IT服务行业的“天猫”
- beego task
- 人体时钟html代码,canvas版人体时钟的实现示例
- 解读链接脚本ld和案例分享
- 性能监控工具之Grafana+Prometheus+Exporters