发明名称 一种动态多线程划分方法
摘要 本发明公开了一种动态多线程划分方法,该方法使虚拟机加载用户程序,并生成线程单元;由线程单元执行用户程序中的指令,在执行用户程序过程中:当遇到用户程序要求产生新对象时,给新对象分配线程单元;当遇到用户程序中的方法调用时,根据方法调用的目标对象,将方法调用分派到目标对象所在的线程单元;当遇到用户程序要求内存访问时,根据线程单元当时所处的模式决定内存访问方式。本发明不依赖样本输入,能够根据程序的运行情况来实时地决定划分方案,对不同输入具有更好的适应性。
申请公布号 CN101923460A 申请公布日期 2010.12.22
申请号 CN201010230483.6 申请日期 2010.07.19
申请人 西安交通大学 发明人 赵银亮;杜延宁;韩博;李远成
分类号 G06F9/38(2006.01)I 主分类号 G06F9/38(2006.01)I
代理机构 西安通大专利代理有限责任公司 61200 代理人 汪人和
主权项 一种动态多线程划分方法,其特征在于:使虚拟机加载用户程序,并生成线程单元;由线程单元执行用户程序中的指令,在执行用户程序过程中:(1)当遇到用户程序要求产生新对象时,给新对象分配线程单元;(2)当遇到用户程序中的方法调用时,根据方法调用的目标对象,将方法调用分派至目标对象所在的线程单元;(3)当遇到用户程序要求内存访问时,根据线程单元当时所处的模式决定内存访问方式;以上分配的各个线程单元并行执行分派给自己的方法调用,并且线程单元在获得非推测控制后对之前的推测执行进行验证,如果正确,就提交推测执行的成果;否则,就丢弃推测执行的成果;所述的线程单元是具有独立计算能力的执行单元,线程单元有三种不同的工作模式:非推测模式、推测模式、返回值预测模式;虚拟机有一个或多个线程单元,但任何时刻只有一个线程单元处在非推测模式。
地址 710049 陕西省西安市咸宁路28号