[发明专利]并行DLL树初始化有效
申请号: | 200880010758.6 | 申请日: | 2008-02-20 |
公开(公告)号: | CN101652747A | 公开(公告)日: | 2010-02-17 |
发明(设计)人: | K·M·郑;A·基什安;N·M·克里福特 | 申请(专利权)人: | 微软公司 |
主分类号: | G06F9/38 | 分类号: | G06F9/38 |
代理公司: | 上海专利商标事务所有限公司 | 代理人: | 张 欣;钱静芳 |
地址: | 美国华*** | 国省代码: | 美国;US |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 并行 dll 初始化 | ||
背景
计算设备通过执行计算指令来执行任务。用于执行特定任务的一组计算指令形成函数。在执行相关任务时交互的一组函数形成应用程序。两个或更多不同的应用程序可能需要使用相同的函数来执行相同的任务。虽然可能在每一个应用程序中包括相同的函数的计算指令,但是每一个应用程序共享公共计算指令集更高效。通过共享公共计算指令集,使用较少的存储器来存储指令并且仅需要在一个位置作出对计算指令的修改。
为了允许不止一个应用程序使用相同的函数,形成的函数库,即库。通常,每一个函数的计算指令和对计算指令的引用都被放置在库中。为了使用库中的函数,应用程序调用加载库的操作系统模块并且该应用程序使用对函数的引用来调用所需函数。通常,在可以访问已加载的库之前,必须初始化该库。初始化包括执行例如构建和准备由库使用的数据结构的计算指令。
函数可以调用同一库中的其它函数。函数也可以调用另一库中的函数。因此,库可能依赖于另一库。例如,应用程序可依赖于库A,库A依赖于库B,而库B依赖于库C。为了加载并初始化应用程序,必须以适当的顺序来加载并初始化库A、B和C。应用程序及其库通常以发现应用程序和库的顺序(即,自顶向下的顺序)来加载。
传统上,上述加载并初始化库的过程是串行过程。即,每一个库都必须以适当的顺序一个接一个地加载并初始化。加载和初始化可通过利用诸如多线程处理等并行处理技术和诸如多处理器计算设备和多核微处理器等并行处理硬件来加速。
概述
提供本概述是为了以简化的形式介绍将在以下详细描述中进一步描述的一些概念。本概述并不旨在标识所要求保护的主题的关键特征,也不旨在用于帮助确定所要求保护的主题的范围。
公开了用于初始化支持应用程序的库的并行处理方法和装置。标识支持应用程序的库。确定用于支持库的初始化顺序。在异步阶段中初始化库。
在一个示例性形式中,确定用于支持库的初始化顺序包括:形成用于支持库的引用的库树;以及根据引用集在库树中的层级来确定引用集的加载顺序。
在一个示例性形式中,异步阶段包括:使用加载队列的异步加载阶段;使用咬合队列的异步咬合阶段;以及使用初始化队列的异步初始化阶段。优选地,使用加载队列的异步加载阶段:根据加载顺序来将库树的引用集加载到加载队列中;使用加载队列中的库引用来将库加载到应用程序的进程存储空间中;以及将对所加载的库的库引用从加载队列移至咬合队列。优选地,使用咬合队列的异步咬合阶段:使用咬合队列中的库引用来咬合库;以及将对所咬合的库的库引用从咬合队列移至初始化队列。优选地,使用初始化队列的异步初始化阶段执行用于初始化队列中的库引用所引用的库的初始化计算指令。
附图描述
当结合附图参考以下详细描述时,可以更容易领会并更好地理解本发明的上述方面和许多附加的优点,附图中:
图1是适用于执行并行库树初始化的示例性计算设备的框图;
图2是由示例性库支持的示例性应用程序的框图;
图3是示出图2所示的元素的依赖关系的示例性依赖树的框图;
图4是示出由本身由其他示例性库支持的示例性库支持的示例性应用程序的框图;
图5是示出图4所示的元素的依赖关系的示例性依赖树的框图;
图6是包含四个引用的示例性加载队列以及两者皆为空的示例性咬合队列和示例性初始化队列的示意图;
图7是示例性加载队列包含一个引用,示例性咬合队列包含四个引用而示例性初始化队列不包含引用的图6所示的各示例性队列的示意图;
图8是示例性加载队列不包含引用,示例性咬合队列包含一个引用而示例性初始化队列包含四个引用的图6所示的各示例性队列的示意图;
图9是示例性加载队列和咬合队列为空而示例性初始化队列包含五个引用的图6所示的各示例性队列的示意图;
图10是示出用于加载示例性应用程序和应用程序的示例性支持库的示例性异步过程的功能流程图;
图11是示出用于用引用来填充示例性加载队列并适于在图10所示的异步过 程中使用的示例性子例程的功能流程图;
图12是示出用于使用存储在示例性加载队列中的引用来加载库的示例性子例程的功能流程图;
图13是示出用于使用存储在示例性咬合队列中的引用来咬合库的示例性子例程的功能流程图;
图14是示出用于使用存储在示例性初始化队列中的引用来初始化库的示例性子例程的功能流程图。
详细描述
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于微软公司,未经微软公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200880010758.6/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种插秧机的纵向送秧机构
- 下一篇:无丝套管式日光灯连多路电子镇流器组合