首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 维修教程知识 > 单片机栏
嵌入式Web访问时的内存丢失问题
来源:本站整理  作者:佚名  2009-11-19 08:56:57




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所列。

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

上一页  [1] [2] [3] [4]  下一页

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)

推荐阅读

图文阅读

热门阅读

Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:19,093.75000 毫秒