内存分配及管理的方法技术

技术编号:4316645 阅读:211 留言:0更新日期:2012-04-11 18:40
本发明专利技术涉及一种内存分配及管理的方法,以在不具有操作系统的环境下,分配内存的空间,包含接收一分配要求;搜寻内存,以得到符合分配要求的多个内存区块;在符合要求的内存区块中,选出一最小内存区块;将分配要求分配至最小内存区块,使最小内存区块切割为一已使用内存区块与一未使用内存区块;提供一第一区块标头给已使用内存区块;以及提供一第二区块标头给未使用内存区块。

【技术实现步骤摘要】

本专利技术是有关于一种,且特别是有关于一种不具有 操作系统的。
技术介绍
随着计算机的发展日新月异,计算机应用范围也从早期的科学计算,到数 据处理、生产管理、计算机辅助系统及通信联络等与人类生活相关的各个层面。 电子产业中,内存装置对于各种运算系统、计算机、及外围装置中皆有相当重 要的应用,随着对系统的操作速度及效能的日益提高,对于内存的速度及其管 理的要求亦随之提高。在具有操作系统(operatkm system; OS)的环境下,内存的管理与分配会由 一套对应的算法(algorithms)进行实做,使程序设计师在开发软件的时候,可以 不用考虑到内存有效的使用与分配。但是,若是在不具有操作系统的环境,或是己经分配到一块内存空间后, 如何在此环境中自行管理与使用内存,尤其是简单而有效率的使用内存,便成 为一个重要的课题。因此本专利技术提出了一种可在不具有操作系统的环境下,分配及管理操作系 统的方法。
技术实现思路
因此本专利技术的目的就是在提供一种,以在不具有操 作系统的环境下管理及分配内存。为了实现上述目的,本专利技术提出一种,以在不具有操作系统的环境下,分配一内存的空间,包含接收一分配要求;搜寻内存,以得到符合分配要求的多个内存区块;在符合要求的内存区块中,选出一最小 内存区块;将分配要求分配至最小内存区块,使最小内存区块切割为一己使用4内存区块与一未使用内存区块;提供一第一区块标头给已使用内存区块;以及 提供一第二区块标头给未使用内存区块。提供第一区块标头的步骤包含将一次一区块标头的位置写入第一区块标 头的第四字段,将已使用内存区块的大小写入第一区块标头的第五字段,将第 一区块标头的第六字段标记为已使用。提供一第二区块标头的步骤包含将一次 一区块标头的位置写入第二区块标头的第四字段,将未使用内存区块的大小写 入第二区块标头的第五字段,将第二区块标头的第六字段标记为未使用。此方 法更包含修改内存的一内存标头。为了实现上述目的,本专利技术的另一实施例是提供一种内存分配及管理的方 法,以在不具有操作系统的环境下,释放一内存的空间,包含接收内存区块 的释放要求;判断所释放的内存区块的的前一内存区块与后一内存区块是否被 使用;以及修改所释放的内存区块的区块标头,将区块标头中的第六字段标示 为未使用。其中当前一内存区块未被使用时,包含合并前一内存区块与所释放的内存 区块,其中还包含修改前一内存区块的一区块标头,以及删除所释放的内存区 块的区块标头。当后一内存区块未被使用时,包含合并后一内存区块及所释放 的内存区块,其中还包含修改所释放的内存区块的区块标头,并删除后一内存 区块的区块标头。此方法中还包含修改内存的一内存标头。本专利技术的内存分配与管理的方法可透过简单而有效率的方式,在不具有操 作系统的环境下,如Option ROM的环境下,自行分配与管理内存空间。Option ROM可包含在基本输入输出系统(Basic Input-output system; BIOS)之中,或是 建在视频图形阵列卡(VGA card)、局域网络卡(Lan card)、磁盘阵列卡(RAID card)等硬件上。附图说明为让本专利技术的所述和其它目的、^r征、优点与实施例能更明显易懂,所附附图的详细说明如下图1是本专利技术的一较佳实施例的示意图2是本专利技术的内存分配及管理方法第一实施例的流程图3A与图3B是本专利技术的内存分配及管理方法第一实施例的实施示意图;图4是本专利技术的第二实施例的流程图5A及图5B是本专利技术的内存分配及管理方法第二实施例的实施示意图;图6A与图6B是本专利技术的内存分配与管理方法第二实施例的另一实施示意图。主要组件符号说明100:内存102:已使用内存区块104:未使用内存区块110:内存标头112:第一字段114:第二字段116:第三字段120:区块标头122:第四字段124:第五字段126:第六字段210 260:步骤300:内存302:内存标头304:第一字段306:第二字段308:第三字段310:内存区块312:区块标头314:第四字段316:第五字段318:第六字段330:己使用内存区块332:第一区块标头334:第四字段336:第五字段338:第六字段340:未使用内存区块342:第二区块标头344:第四字段346:第五字段348:第六字段410 470:步骤500:内存510:第一内存区块520:第二内存区块522:第二区块标头528:第六字段530:第三内存区块600:内存610:第一内存区块612:第一区块标头614:第四字段616:第五字段618:第六字段620:第二内存区块622:第二区块标头630:第三内存区块632:第三区块标头640:较大内存区块具体实施例方式以下将以附图及详细说明清楚说明本专利技术的精神,任何所属
中具有通常知识者在了解本专利技术的较佳实施例后,当可由本专利技术所教示的技术,加以改变及修饰,其并不脱离本专利技术的精神与范围。当内存要求一块连续的内存空间时,即便是所有未使用的片段(fragmentation)的内存空间加起来的和满足需求,仍无法符合连续空间的内存需求,此次要求失败。因此,本专利技术便提出一种内存分配与管理的方法,特别是应用在无操作系统的环境下进行动态配置,以在不知道接下来所需要内存大小或是不知道被释放的空间的大小时,尽可能的分配出一大块的连续内存空间。参照图1,其是本专利技术的一较佳实施例的示意图。内存100具有一内存标头(memory header)110,而在每一次分配内存时,在已使用内存区块102与未使用内存区块104中加入区块标头(block header)120,以记录内存分配的相关信息。内存标头110中包含有一第一字段112、一第二字段114、一第三字段116。其中第一字段112是用以记录第一个区块标头120的起始位置,第二字段114是用以记录整块内存100空间的大小,第三字段116则是用以记录已分配出出去的内存空间大小。其中第一字段112、第二字段114、第三字段116各占用4个位(byte),内存标头110共占用12个位。区块标头120中则包含有一第四字段122、 一第五字段124、 一第三字段126。其中第四字段122是用以记录次一区块标头的起始位置,第五字段124是用以记录此己使用内存区块102或未使用内存区块104的大小。第六字段126则是表示此区块是为已使用或是未使用。其中第四字段122、第五字段124各占用4个位,第六字段126占用1个位,每一个区块标头120共占用9个位,所占用的空间相当少,可以提供更多的内存空间以供分配,并通过第六标头126标示区块的状态,让分配更为容易。参照图2,其是本专利技术的内存分配及管理方法第一实施例的流程图。本实施例是用以在接收到分配内存要求时,找出片段的内存区块中最小可被利用的内存空间进行分配,以保留区块较大的内存,预留给之后的要求。步骤210为接收一分配内存的要求,步骤220为搜寻目前符合此要求大小的未使用内存区块,若是找不到符合要求的未使用内存区块,则进入步骤230,回复结果为零。若是找到符合要求的未使用内存区块,则进入步骤240,在这些符合要求的未使用内存区块中,选出一个最小且符合要求的内存区块对其分配,接着,步骤250为在分配到的内本文档来自技高网
...

【技术保护点】
一种内存分配及管理的方法,其特征在于,以在不具有操作系统的环境下,分配一内存的空间,包含:    接收一分配要求;    搜寻该内存,以得到符合该分配要求的多个内存区块;    在符合要求的所述多个内存区块中,选出一最小内存区块;    将该分配要求分配至该最小内存区块,使该最小内存区块切割为一已使用内存区块与一未使用内存区块;    提供一第一区块标头给该已使用内存区块;以及    提供一第二区块标头给该未使用内存区块。

【技术特征摘要】

【专利技术属性】
技术研发人员:郑仰民
申请(专利权)人:英业达股份有限公司
类型:发明
国别省市:71[中国|台湾]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1