[发明专利]使用监控线程对二进制翻译程序执行流程动态监控的方法有效
| 申请号: | 200910054325.7 | 申请日: | 2009-07-02 |
| 公开(公告)号: | CN101593125A | 公开(公告)日: | 2009-12-02 |
| 发明(设计)人: | 管海兵;梁阿磊;李晓龙;倪志晨;邓海鹏 | 申请(专利权)人: | 上海交通大学 |
| 主分类号: | G06F9/45 | 分类号: | G06F9/45;G06F9/46 |
| 代理公司: | 上海交达专利事务所 | 代理人: | 毛翠莹 |
| 地址: | 200240*** | 国省代码: | 上海;31 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | 本发明提出了一种使用监控线程对二进制翻译程序执行流程动态监控的方法。首先为原有动态二进制翻译系统创建新的程序监控线程MT,然后为每一个翻译生成的基本块插桩代码,使每个基本块执行时均将自身的入口地址写入队列中,队列溢出的情况使用线程间等待的方式来避免。监控线程MT负责按序将各个入口地址取出并查找对应的中间指令基本块,根据该基本块的结束类型更新相应的数据结构,完成程序监控的目的。最后,监控线程MT参照收集的剖分信息,以决策者的身份完成构建热路径的优化。与传统的程序监控方法相比,本发明具有软件开销小,硬件成本低,程序分析监控与程序执行并行进行,获取的监控信息完整准确等多种优良特性。 | ||
| 搜索关键词: | 使用 监控 线程 二进制 翻译 程序 执行 流程 动态 方法 | ||
【主权项】:
1、一种使用监控线程对二进制翻译程序执行流程动态监控的方法,其特征在于包括如下步骤:1)将原有动态二进制翻译系统执行流程作为主线程,并在原有系统上新创建一条监控线程MT,用于完成对二进制程序执行行为的实时监视工作;主线程和监控线程MT独立工作在多核处理器平台的不同核心上;2)借鉴传统插桩技术的原理,为每一个经动态二进制翻译系统翻译生成的二进制基本块头,插入一段机器代码,在执行该基本块的时候,这段机器代码负责将该基本块的入口地址写入队列Q中;在此写入过程中,一旦队列Q被填满,主线程必须暂停,等待监控线程MT处理完队列中的所有数据后发出的再次启动信号Signal,当主线程收到该再次启动信号时才能继续执行;3)监控线程MT依次从队列Q中获取基本块的入口地址,并通过查找该入口地址对应的中间指令基本块,来了解该中间指令基本块具体的程序行为,收集需要的各种剖分信息,并将结果存放于监控线程MT自建的数据结构中;如果当该基本块入口地址存放的位置是队列Q的最大可存储位置时,监控线程MT将清空队列Q,并发送再次启动信号Signal通知主线程继续进行;4)根据收集到的剖分信息,如果监控线程MT检测到某条程序路径执行的次数大于设定的阈值时,监控线程MT将以决策者的身份,完成构建热路径的优化过程;5)对当前入口地址对应的基本块的剖分信息收集工作完成后,监控线程MT将继续获取队列Q中下一个入口地址,重复步骤3)、4)中的操作,以实现对二进制翻译程序执行流程的动态监控。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海交通大学,未经上海交通大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/200910054325.7/,转载请声明来源钻瓜专利网。
- 上一篇:多种存储器的管理方法、系统及控制器
- 下一篇:指套式操作设备





