[发明专利]一种管理设备驱动缓存的方法有效
申请号: | 200810100141.5 | 申请日: | 2008-05-26 |
公开(公告)号: | CN101286143A | 公开(公告)日: | 2008-10-15 |
发明(设计)人: | 刘忱;周元庆;吴应祥;李忠雷 | 申请(专利权)人: | 中兴通讯股份有限公司 |
主分类号: | G06F13/10 | 分类号: | G06F13/10;G06F12/02 |
代理公司: | 北京安信方达知识产权代理有限公司 | 代理人: | 龙洪;霍育栋 |
地址: | 518057广东省深圳市南山*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 管理 设备 驱动 缓存 方法 | ||
技术领域
本发明涉及操作系统的设备管理和内存管理,尤其涉及一种管理设备驱动缓存的方法。
背景技术
设备驱动程序是操作系统设备管理中最重要组成部分,在系统中承担着输入输出、数据交换、数据存储、数据通信,以及调试工具等作用。
驱动缓存作为系统设备输入/输出(IO,Input and output)的内存数据备份,在系统运行中可以起到减少对设备I/O的读写频率,从而提高设备吞吐效率的作用,达到通过“空间换取时间”的效果。缓存从本质来说无非是按某一规则组织起来,采用统一管理方式组织的内存,主要应用在设备驱动设计中。缓存作为系统设备数据交换的加速利器,在嵌入式领域的作用越来越重要,几乎所有的驱动都有独立的数据缓存管理机制,大同而小异。传统的设备驱动设计基本上采用在设备初始化时预先分配的内存,采用链表形式管理,在设备进行数据输入输出时提供给硬件作为数据临时存放或中转之用。所以需要将系统中所有的驱动所需所有缓存的数量配置为最大,才能完全满足系统需要。这往往对系统可用内存提出了非常高的需要,甚至大大超过了硬件所允许的范畴。如果强行把驱动缓存数量加以限制,则限制了系统设备在极限情况下的处理能力,无法达到“空间换取时间”的作用,使系统设备的性能无法进一步提升。而且,事实上系统能够处理的设备IO能力是一定的,很少有所有设备同一时刻都满负荷运行的情况。为每个设备驱动提供尽可能多的缓存以提高性能的方式,在实际中往往表现出缓存利用率不高,在特定条件下各驱动缓存配置不合理,内存资源浪费严重的现象。
发明内容
本发明要解决的技术问题是提供一种管理设备驱动缓存的方法,使系统中的内存资源能够充分利用,提高系统设备的数据吞吐效率。
为了解决上述问题,本发明提供了一种管理设备驱动缓存的方法,包括:
对设备驱动缓存进行初始化配置;系统运行过程中,设备驱动缓存不足时从系统内存中申请内存以扩展所述设备驱动缓存。
进一步地,所述方法还包括:系统内存充足时,为所述设备驱动缓存提供内存支持;系统内存不足时,将其它设备驱动缓存回收到内存中,为所述设备驱动缓存提供内存支持。
进一步地,采用Slab大块内存管理方式对所述设备驱动缓存进行管理。
进一步地,对设备驱动缓存进行初始化配置时,为设备驱动缓存设置静态优先级,系统确定多个依次从高到低的管理级别,根据各个设备在系统中的重要性大小为其确定管理级别,并将静态优先级划分为与设备管理级别个数相同的多个依次从高到低的级别,对应所述设备的管理级别分别为所述设备驱动缓存分配相应的静态优先级。
进一步地,对设备驱动缓存进行初始化配置时,为设备驱动缓存设置动态优先级,在设备驱动缓存使用一次的过程中即从被申请到被释放过程中,计算系统设定的统计时间段内所述设备驱动缓存使用一次的平均时间,将此平均时间经过加权后作为该设备驱动缓存的动态优先级。
进一步地,一个设备驱动缓存不足而系统内存资源充足时,发起动态内存申请,系统内存向所述设备驱动缓存支付内存申请后内存总量仍大于系统设置的保留内存值时,将所述设备驱动申请的内存构造成设备驱动缓存,加入到该设备驱动缓存的队列中;系统内存向所述设备驱动缓存支付内存申请后内存总量小于系统设置的保留内存值时,将其它设备驱动缓存回收到内存中,回收成功后,将所述设备驱动申请的内存构造成设备驱动缓存,加入到该设备驱动缓存的队列中,完成所述设备驱动缓存的扩展。
进一步地,多个设备驱动缓存不足而系统内存资源充足时,发起动态内存申请,系统内存向所述各个设备驱动缓存支付内存申请后内存总量仍大于系统设置的保留内存值时,将所述各个设备驱动申请的内存构造成设备驱动缓存,加入到各个设备驱动的缓存队列中;系统内存向所述设备驱动缓存支付内存申请后内存总量小于系统设置的保留内存值时,将其它设备驱动缓存回收到内存中,回收成功后,将所述设备驱动申请的内存构造成设备驱动缓存,加入到各个设备驱动缓存的队列中,完成所述多个设备驱动缓存的扩展。
进一步地,将其它设备驱动缓存回收到内存中后,按照设备驱动缓存优先级从高到低的顺序对所述多个设备驱动缓存进行扩展,即按照设备驱动缓存的静态优先级从高到低的顺序对相应的设备驱动缓存进行扩展,如果两个或多个设备驱动缓存的静态优先级相同,则按照其动态优先级从高到低的顺序依次进行扩展。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中兴通讯股份有限公司,未经中兴通讯股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200810100141.5/2.html,转载请声明来源钻瓜专利网。