- 1、本文档共22页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
内存分配算法概要1
嵌入式系统三级项目
主要内容
内存分配的方法:FF、BF、WF和NF
内存管理的一些指令malloc()、realloc()和free()
内存保护
最佳适合内存分配算法BF
最先适合内存分配算法FF
最差适合内存分配算法WF
循环首次适应分配算法NF
最先适合内存分配算法(FF)
一、空闲分区按照地址递增的次序链接
二、从链头开始查找,选择第一个满足要求的空闲区
优点:尽可能的利用存储器的低地址部分
缺点:搜索次数增加,影响工作效率
一、空闲分区按从小到大进行排序
二、自表头开始查找到第一个满足要求的自由分区分配
优点:使碎片尽量小,保留大的空闲区
缺点:造成许多难利用的小空闲区,分配后必须重新排序
最佳适合分配算法BF
最差适合分配算法(WF)
一、空闲分区按从大到小进行排序
二、自表头开始查找到第一个满足要求的自由分区分配
优点:尽量减少小的碎片产生
缺点:缺乏大的空闲分区,分配完需要重新排序
循环首次分配算法
一、空闲分区按地址递增的次序链接
二、从上次找到空闲区的下一个空闲开始查找,选择第一个满足要求的空闲区
优点:使内存中的空闲区分布得较均匀
缺点:缺乏大的空闲分区
以FF算法为例
输入1,设置内存的大小
输入3,建立一个新进程并设置内存大小
重复上一步骤,建立第二个进程,大小一样
输入5,显示内存使用情况
输入4,选择结束第二个进程
输入5,再次查看内存使用情况
指令malloc()内存分配函数
void *malloc(int size);
malloc 向系统申请分配指定size个字节的内存空间
返回类型是 void* 类型。void* 表示未确定类型的指针,返回后强行转换为实际类型的指针
int* p;
p = (int *) malloc (sizeof(int));
如果写成p = malloc (sizeof(int)); 则程序无法通过编译
函数的实参为 sizeof(int) ,用于指明一个整型数据需要的大小
指令free()内存释放函数
void free(指针变量)
free可以释放任意类型的指针
举例:int* p = (int *) malloc(4);
*p = 100;
free(p); //释放 p 所指的内存空间
new/delete、new[]/delete[]、malloc/free 三对均需配套使用,不可混用!
指令realloc()内存重新分配函数
void *realloc(void *mem_address, unsigned int newsize);
改变mem_address所指内存区域的大小为newsize长度
如果重新分配成功则返回指向被分配内存的指针,否则返回空指针NULL
当内存不再使用时,应使用free()函数将内存块释放
如果原先的内存大小后面还有足够的空闲空间用来分配,加上原来的空间大小= newsize
如果原先的内存大小后面没有足够的空闲空间用来分配,那么从堆中另外找一块newsize大小的内存。 并把原来大小内存空间中的内容复制到newsize中。返回新的mem_address指针
如果没有足够可用的内存用来完成重新分配(扩大原来的内存块或者分配新的内存块),则返回null.而原来的内存块保持不变
内存保护
内存保护可通过硬件提供的MMU来实现
MMU具有以下功能:
1、内存映射(逻辑地址→物理地址)
2、防止地址越界:通过检查逻辑地址,确保应用程序只能访问地址空间所对应的、限定的物理地址空间
3、防止操作越界:如果对内存页面的访问违背了内存页面的特权信息,MMU产生异常
简单的MMU保护模式
谢谢
您可能关注的文档
最近下载
- 2024霸王茶姬- 以东方茶会世界友品牌简介手册-65P.pptx VIP
- 焊点标准(DIP部分).pdf
- 大职赛生涯闯关参考答案.docx VIP
- 宁夏水务投资集团有限公司招聘笔试题库2023.pdf
- eo体系内审检查表.doc
- 桉木P-RC+APMP化机浆废水的污染特征与生物处理的研究.pdf VIP
- 《基于项目式学习在初中物理教学中培养学生问题解决能力的实践研究》课题研究方案.doc
- Unit4Funwithnumbers.(课件)-外研版(三起)(2024)英语三年级上册.pptx VIP
- 城市轨道交通全自动运行系统场景技术规范.pdf VIP
- 大学本科优质生源基地建设管理办法.docx
文档评论(0)