[发明专利]软件监测方法、装置以及系统有效
| 申请号: | 201180001455.X | 申请日: | 2011-06-14 |
| 公开(公告)号: | CN102301343A | 公开(公告)日: | 2011-12-28 |
| 发明(设计)人: | 王超;余加强;陈明宇;黄永兵;张文力;崔泽汉 | 申请(专利权)人: | 华为技术有限公司 |
| 主分类号: | G06F11/36 | 分类号: | G06F11/36 |
| 代理公司: | 暂无信息 | 代理人: | 暂无信息 |
| 地址: | 518129 中国广东省深*** | 国省代码: | 广东;44 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 软件 监测 方法 装置 以及 系统 | ||
技术领域
本发明涉及计算机技术领域,尤其涉及一种软件监测方法、装置以及系统。
背景技术
在使用并行技术的软件系统中,例如应用多线程技术以及多核处理技术等软件系统,软件系统中程序的串行部分成为整个系统性能的瓶颈因素,而串行部分主要体现在各种锁程序所保护的临界区,包括信号量,互斥锁程序(Mutex),自旋锁程序(Spinlock),开关中断,读写锁程序等等。如果能够详细、准确地统计串行部分中各种锁程序的相关信息,则可以为整个软件系统的性能优化提供数据依据。
在现有技术条件下常见的一种软件监测方法是通过软件自身会给锁程序函数进行插桩替换的方式来统计软件的锁程序使用信息。一些软件软件监测工具如Valgrind Mutextrace等,普遍使用这种软件插桩的软件监测技术,其过程一般为先替换或增加被检测目标软件的某段指令(通常为函数的入口和返回)为检测程序的指令;再强制执行检测程序,以获取锁程序的相关信息。
然而,这种软件监测方式需要修改目标程序并强制执行监测程序,这样在运行软件系统的同时增加系统的运行负担。对于较为大型的软件系统来说,软件系统具有数量庞大的临界区和对应管理临界区的锁程序,而利用现有的插桩方式进行软件分析的话,插桩的数量也是非常庞大的,这样致使软件系统通常会在高负荷的环境下进行测试和数据搜集,带来较大的系统开销,并严重干扰应用程序的正常运行,追踪导致难以统计出完整而详细的锁程序使用信息。
发明内容
本发明实施例提供一种软件监测方法、装置以及系统,以解决分析过程中引入过大系统开销而致使难以统计出完整而详细的锁程序使用信息的问题。
本发明实施例提供一种软件监测方法,所述方法在锁程序被调用或释放时记录锁程序地址以及使用所述锁程序的线程标识;将所述锁程序地址以及使用所述锁程序的线程标识进行编码转化为内存地址,并通过所述内存地址访问内存;侦听内存总线以识别所述内存地址的访问内存信号并获取所述锁程序的追踪信息,所述锁程序的追踪信息包括所述内存地址以及时间信息;根据所述追踪信息获得所述锁程序的使用信息,所述使用信息包括所述锁程序地址、使用所述锁程序的线程标识以及所述线程占用锁程序的时间。
本发明实施例提供一种软件监测装置,包括动态库模块、通信模块、侦听模块以及数据分析模块,其中所述动态库模块用于记录锁程序地址以及使用所述锁程序的线程标识;所述通信模块用于将所述锁程序地址以及使用所述锁程序的线程标识进行编码转化为内存地址并通过所述内存地址访问内存;所述侦听模块用于侦听内存总线以识别所述内存地址的访问内存信号并获取所述锁程序的追踪信息,所述锁程序的追踪信息包括所述内存地址以及时间信息;所述数据分析模块用于根据所述追踪信息获得所述锁程序的使用信息,所述使用信息包括所述锁程序地址、使用所述锁程序的线程标识以及所述线程占用锁程序的时间。
上述软件监测方法、装置以及系统只有锁程序地址以及线程标识的记录和编码转化地址通过软件部分实现,而侦听、存储以及分析方面均可以利用旁路硬件来实现,例如,通过在内存接口或插槽上插卡来实现对内存总线的侦听、存储以及分析,而旁路硬件无需对目标程序做任何修改,不占用系统的处理资源,也不影响应用程序的运行环境,从而通过这样软硬结合的方式可以在不带来额外的系统开销的情况下,实现对应系统性能的分析。
附图说明
图1所示为本发明一实施例中软件监测方法的流程示意图。
图2所示为本发明一实施例中软件监测方法的一部分流程示意图。
图3所示为本发明一实施例中软件监测方法的另一部分流程示意图。
图4所示为本发明另一实施例中软件监测装置的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员所获得的所有其他实施例,都属于本发明保护的范围。
本发明一实施例提供一种软件监测方法,主要对系统串行部分的相关信息进行分析,所述分析方法采用非插桩式分析,不对目标程序做任何修改,也不依赖于具体的软件或硬件平台,在分析运行过程中不引入额外的开销,从而可以充分记录分析所需的信息。
如图1所示,本发明实施例提供一种软件监测方法,包括:
步骤101、记录锁程序地址以及线程标识,所述线程标识用于标识使用所述锁程序的线程;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201180001455.X/2.html,转载请声明来源钻瓜专利网。
- 上一篇:保护倒换装置和方法
- 下一篇:处于泡沫形式的化妆品组合物





