嵌入式三级项目――内存管理

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

内存管理——嵌入式Linux操作系统三级项目Contents目录程序的简介实验代码的改进空闲内存整理算法的比较程序运行结果程序的简介程序的简介本程序是一个演示内存连续分配管理方式的程序;可演示三种空闲内存整理方式。实验代码的改进遍历,避免死循环此处可以不用连接空闲内存,因为不满足分配条件的话,不会分配内存,也就不会改变空闲内存的结构此句无效if用于处理fbt是头结点,else用于处理非头结点情况优化:将对头结点的特殊处理和遍历链表两部分整合到一起,使用一条语句释放ab数据结构节点。空闲内存整理算法的比较FFBFWF内存算法对比特点优势劣势FF按空闲内存块初始地址升序排列。能够快速合并内存块;实现简单;高地址碎片少。低地址产生的碎片较多。BF按空闲内存块的大小升序排列。选择满足要求的最小空闲块。有较高的内存利用率。对需求内存大的进程,分配内存相对耗时;速度稍慢。WF按空闲内存块的大小降序排列。分配内存时速度最快。内存利用率很低,容易产生很多外部碎片。程序运行结果主要步骤截图1、设置内存区大小(若不设置,默认为1024)内存大小初始值为:1024只针对初始内存块有效,当运行了其他步骤后,不能再更改内存块的大小。实例对比三种算法将总内存空间设置为256让内存中存在离散的空闲内存块实例对比三种算法FF算法实例:按空闲块首地址升序排列。此时新建一个进程,用FF算法排序时,新建的进程是从地址较低的空闲块中得到内存。实例比较三种算法此时新建一个进程,用BF算法时,新建的进程是从最大的空闲块中得到内存,否者分配失败。BF算法实例按空闲块大小降序排列。实例比较三种算法WF算法实例按空闲块大小降序排列。此时新建一个进程,用BF算法时,新建的进程是从较小的空闲块中得到内存。新建进程新创建了6个进程,分别分配的内存为:80、50、500、450、400、350,可由标号PID看出为6个进程,即创建成功与否标号都会加1。创建进程不成功,由于需要的内存大于剩余的内存数。这时系统会报错。杀死进程杀死进程2,此时进程2释放内存80到130。若此时再新建一个进程占用内存44,可得下图。可看到申请内存为44,但是系统分配给进程7的内存为50。这是因为程序中有对最小碎片大小的控制。THANKYOU

1 / 20
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功