新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 嵌入式Web访问时的内存丢失问题

嵌入式Web访问时的内存丢失问题

作者: 时间:2009-11-19 来源:网络 收藏

4 的解决
由于系统的管理默认采用“2的幂”的分配方法,这就造成了空间的巨大浪费,当某些应用程序要申请较大的连续空间时,却不能满足。为了解决这个,专门为uClinux内核设计了可选的内存分配器。不同的内核版本,这个可选的内存分配器不同,一般是page_alloc2和kmalloc2。
page_alloc2能解决缺省的分配方法造成的浪费。虽然它也是使用“2的幂”的分配方法,但它是按页(每页4 096B,即4 KB)分配的,分配的内存大小如果已经满足了要求,则只是将当前的一页分配出去,其他的就不再分配。还是一个65 KB的应用程序,如果使用这种方法,就只是分配68 KB(≥65 KB,且为整页)即可,这样就能节省60 KB的空间。
page_alloc2还采取了一些避免内存碎片的方法。它将所有的两页(8 KB)或更少的内存需求从空闲内存开始部分向上分配,所有大的内存需求从剩余内存的末尾部分开始向下分配。这样防止了网络缓存等的临时分配,避免了内存碎片的出现。同时,它支持一次申请超过1 MB的内存空间,这对一些大的应用程序是很好的支持。采用此方法后,在系统运行过程中,并未出现过页面出错问题。通过free命令查看内存分配如表2所列。

本文引用地址:https://www.eepw.com.cn/article/152276.htm

结 语
系统应用日益广泛的情况下,本文结合在多支点触发系统中的应用,介绍了出现的问题以及它的解决方法。在实际应用中,新的内存分配方法能让系统稳定地工作,但是从表2可以发现:采用“page_alloc2'’的内存分配方法时,系统的Cache较小,这就造成了页面有一定的延时。而“2的幂”的分配方法,系统的Cache较大,访问速度较快。从这个对比得知,在反应时间要求不是很高的情况下,“page_alloc2”的内存分配方法更适合小内存的系统;而“2的幂”的分配方法更合适那些内存足够大的嵌入式系统。系统开发者可以根据实际情况采用不同的方案。

linux操作系统文章专题:linux操作系统详解(linux不再难懂)

上一页 1 2 3 4 下一页

评论


相关推荐

技术专区

关闭