[发明专利]一种应用于多核系统的分布式引用计数系统及计数方法有效
申请号: | 201410120816.8 | 申请日: | 2014-03-28 |
公开(公告)号: | CN103942180B | 公开(公告)日: | 2017-08-11 |
发明(设计)人: | 侯荣涛;荣欢;王琴 | 申请(专利权)人: | 南京信息工程大学 |
主分类号: | G06F15/177 | 分类号: | G06F15/177 |
代理公司: | 南京经纬专利商标代理有限公司32200 | 代理人: | 杨楠 |
地址: | 210044 *** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 应用于 多核 系统 分布式 引用 计数 方法 | ||
技术领域
本发明涉及一种应用于多核系统的分布式引用计数系统及计数方法。
背景技术
为了管理各种资源,现代操作系统(例如Linux)一般采用引用计数的策略对资源进行管理,现有的资源的引用计数是一个共享计数器。内核中的计数器可用于网络统计、记录各种资源的使用率等等。如果多个处理器试图更新同一个计数器,则可能引起严重的竞争。因此,传统操作系统通常使用粗粒度锁来保护内核对象中共享的引用计数。进程获取一个对象的引用时,首先申请锁,申请成功后操作计数器加1,最后解锁;释放引用时则依次执行加锁、计数器减1和解锁操作,并执行垃圾回收,同时需要判断计数器是否为零,如果为零,表示没有进程引用相应的对象,此时可撤销该对象。随着系统中CPU(或CPU核)数量的增加,计数器可能成为瓶颈:每次只有一个CPU可以修改该值,其它所有的CPU都必须等待操作结束,才能再次访问计数器。如果计数器频繁地被访问,对锁的竞争更为激烈。计数器的本质是一个整数变量,在SMP环境下需要保护该变量不被并发更新。一种简单的方法是把计数器定义为原子变量,并使用相应的原子加、减操作,然而原子计数器使用了复杂的锁操作,要求当前CPU独占该变量的cache访问。一个经常修改的原子计数器可能导致CPU核的cache过分抖动,严重影响系统性能。
本发明克服了传统操作系统引用计数机制的瓶颈,从而解决由传统操作系统使用粗粒度锁来保护内核对象中共享的引用而导致的CPU某个内核独占共享引用计数而过分“抖动”,严重影响系统性能的问题。该机制适用于优化操作系统中引用计数,从而避免共享计数器的竞争,改善系统的可扩展性。
发明内容
针对上述技术问题,本发明所要解决的技术问题是提供一种克服了传统操作系统引用资源机制的瓶颈,有效避免某个系统内核独占系统全局引用计数模块而过分“抖动”,严重影响系统性能现象发生的应用于多核系统的分布式引用计数系统。
与之相应, 针对上述技术问题,本发明所要解决的技术问题是提供一种基于本发明设计的应用于多核系统的分布式引用计数系统,克服了传统操作系统引用资源机制的瓶颈,有效提高系统资源引用效率的计数方法。
本发明为了解决上述技术问题采用以下技术方案:本发明设计了一种应用于多核系统的分布式引用计数系统,包括至少两个系统内核、内存存储模块、任务管理器和系统全局引用计数模块;还包括数个本地资源引用模块,本地资源引用模块的数量与系统内核的数量相一致;各个系统内核分别一一对应与各个本地资源引用模块相通信;同时,各个系统内核分别与内存存储模块、任务管理器、系统全局引用计数模块相通信。
作为本发明的一种优选技术方案:还包括全局锁模块和数个本地锁模块,所述各个系统内核与全局锁模块相通信;本地锁模块的数量与所述系统内核的数量相一致,所述各个系统内核分别一一对应与各个本地锁模块相通信。
本发明所述一种基于本发明设计应用于多核系统的分布式引用计数系统采用以上技术方案与现有技术相比,具有以下技术效果:
(1)本发明设计一种应用于多核系统的分布式引用计数系统,在现有技术基础之上,引入数个分别与各个系统内核一一对应的本地资源引用模块,有效降低了系统内核直接对系统全局引用计数模块的访问频率,有效避免了某个系统内核独占系统全局引用计数模块而出现的过分“抖动”现象,有效地改善了操作系统的服务能力,提高了系统的可扩展性;
(2)本发明设计一种应用于多核系统的分布式引用计数系统,在引入本地资源引用模块的同时,引入全局锁模块和本地锁模块,实现在各个系统内核进行资源高效率引用的同时,避免了针对资源的并发操作,保证了系统的稳定运行。
与此相应,本发明为了解决上述技术问题采用以下技术方案:本发明还设计了一种基于本发明所述应用于多核系统的分布式引用计数系统的计数方法,包括如下步骤:
步骤001. 根据系统工作要求,预先初始化从所述内存存储模块中分配可用资源至所述各个本地资源引用模块中,所述系统全局引用计数模块清零;
步骤002. 所述系统内核接收由任务管理器分配的任务后,该系统内核根据接收到的任务,向与之对应的本地资源引用模块请求并获得引用资源;
步骤003. 该系统内核根据请求获得的引用资源完成该任务的执行,同时,所述系统全局引用计数模块根据该系统内核请求获得的引用资源数,更新已引用的系统资源数。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京信息工程大学,未经南京信息工程大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410120816.8/2.html,转载请声明来源钻瓜专利网。