网站大量收购独家精品文档,联系QQ:2885784924

内的存分配算法.pptx

  1. 1、本文档共22页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
内的存分配算法

嵌入式系统三级项目主要内容内存分配的方法:FF、BF、WF和NF内存管理的一些指令malloc()、realloc()和free()内存保护最先适合内存分配算法FF最佳适合内存分配算法BF最差适合内存分配算法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产生异常应用3应用1应用2操作系统简单的MMU保护模式谢谢

文档评论(0)

liwenhua00 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档