[发明专利]一种插件调度方法及装置有效
申请号: | 201810607856.3 | 申请日: | 2018-06-13 |
公开(公告)号: | CN108920206B | 公开(公告)日: | 2022-01-18 |
发明(设计)人: | 刘峰;杨萌;李红辉;张骏温 | 申请(专利权)人: | 北京交通大学 |
主分类号: | G06F9/445 | 分类号: | G06F9/445 |
代理公司: | 北京尚伦律师事务所 11477 | 代理人: | 张俊国 |
地址: | 100044 北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 插件 调度 方法 装置 | ||
本发明是关于一种插件调度方法及装置。该方法包括:获取包括所有插件信息的有向无环图信息;生成n位随机数,根据随机数生成分配子串,分配子串包括执行插件的线程;根据有向无环图信息生成调度子串,调度子串包括执行插件的顺序;根据分配子串和调度子串生成插件调度方案,得到第一插件调度方案集合;根据遗传算法将第一插件调度方案集合进行遗传处理,得到第二插件调度方案集合;从第二插件调度方案集合中选择最优插件调度方案;根据最优插件调度方案进行插件调度。该技术方案,降低插件调度所使用的时间,提高软件性能。
技术领域
本发明涉及计算机程序处理技术领域,尤其涉及一种插件调度方法及装置。
背景技术
在一般的应用程序里,开发出来的产品满足了当时的设计需求。然而,用户往往会提出新的功能需求,为了满足这些需求而不对程序做完全的重写,插件技术的应用是不错的选择,使得可以在不修改主程序代码的情况下,为软件增加新的功能,满足不同客户的需求。插件可以看作是软件中的一种特殊的小程序,不能单独执行,必须依赖宿主程序才能执行。
插件之间的运行关系有两种:并发关系和顺序关系。并发关系是指一些插件之间不存在依赖关系时,可同时执行以此来提高执行效率,并发执行可以通过线程池实现;顺序关系是指一些插件之间存在依赖关系,要根据一定的顺序执行。在实际执行中,这种依赖关系是多个映射、多层重叠的。如图1所示,插件B和插件C要在插件A执行之后才能执行;插件E、插件F和插件G要在插件C执行之后才能执行;插件I要在插件D和插件A都执行完才能执行。插件E、插件F和插件G不存在依赖关系,因此能并发执行。
对于使用插件技术的软件,插件的执行时间是影响软件性能的主要因素,因此寻找合适的插件调度算法十分重要。
发明内容
本发明实施例提供一种插件调度方法及装置。所述技术方案如下:
根据本发明实施例的第一方面,提供一种插件调度方法,包括:
获取包括所有插件信息的有向无环图信息,所述有向无环图信息包括所述插件的运行关系;
生成n位随机数,每一位随机数的取值为大于等于1且小于等于m的整数,其中,n为所有插件的个数,m为线程个数,根据所述随机数生成分配子串,所述分配子串包括执行所述插件的线程;
根据所述有向无环图信息生成调度子串,所述调度子串包括执行所述插件的顺序;
根据所述分配子串和所述调度子串生成插件调度方案,得到第一插件调度方案集合;
根据遗传算法将所述第一插件调度方案集合进行遗传处理,得到第二插件调度方案集合;
从所述第二插件调度方案集合中选择最优插件调度方案;
根据所述最优插件调度方案进行插件调度。
可选的,所述根据所述有向无环图信息生成调度子串,包括:
根据所述有向无环图信息计算所有插件的入度;
将入度为0的插件加入到第一集合中;
随机从所述第一集合中的第一插件开始执行;
根据所述运行关系,将所述第一插件后继的第二插件的入度减1;
将入度减为0的第二插件加入到所述第一集合中;
重复该过程,直到所有插件都被加入到所述第一集合中,得到的插件执行顺序即为所述调度子串。
可选的,所述从所述第二插件调度方案集合中选择最优插件调度方案,包括:
计算所述第二插件调度方案集合中每个插件调度方案的执行时间;
选择执行时间最短的插件调度方案作为所述最优插件调度方案。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京交通大学,未经北京交通大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810607856.3/2.html,转载请声明来源钻瓜专利网。