当前位置: 首页 > 专利查询>微软公司专利>正文

在计算系统中管理驱动器的系统和方法技术方案

技术编号:2876726 阅读:217 留言:0更新日期:2012-04-11 18:40
一种在计算系统中管理驱动器的系统和方法,其中包括应用程序、运行时间和驱动器的管理代码具有关于客户实际硬件配置的先验信息,就像JIT编译器具有关于目标计算机系统微处理器类型的先验信息。在编译时间,编译器知道有效版本的不同系统驱动器,这样编译器可发送特定驱动器版本和目标系统的可执行调节。(*该技术在2023年保护过期,可自由使用*)

【技术实现步骤摘要】

本专利技术设计。
技术介绍
在计算机系统的设计环境中,驱动器是使操作系统具有硬件能力的软件部分,这样操作系统就使应用程序具有那些能力。通常操作系统通过设备驱动器接口(“DDI”)与驱动器交互动作,DDI是特别定义的一种协议,它使操作系统能够加载驱动器、查询硬件提供的能力以及使那些能力可供应用程序使用。由操作系统提供给应用程序的软件接口称作为应用程序接口(“API”)。由操作系统提供的API提供应用程序可以或可以不近似基础硬件的特性的软件抽象。显著背离基础硬件的例子就是为海量存储器提供的目录/文件的软件抽象。另一个不类似基础硬件的软件抽象就是虚拟存储器,它使应用程序能够透明地使用本地硬盘存储器,好像它是随机存取存储器。当API使硬件资源可使用时,操作系统通过DDI调用驱动器利用该资源。由于由API提供的软件抽象和基础硬件之间的差别,从API调用新译为DDI调用就必需大量的逻辑和代码。在该规范的环境中,应用层的API和驱动器层的DDI之间的软件合称为“运行时间”。通常将应用程序、驱动器等用诸如C的高级语言描述。这样的语言通常主要通过编译为本机代码来实现。在该情况下,驱动器与应用程序以及在系统上操作的其它程序分别写入。随后或在安装过程中,或执行应用程序时动态(如DLL)把应用程序和驱动器连接起来。该系统的优点就是可把编译器设计为优化用于特定类处理器(如X86)的代码。然而,编译器不能优化用于特定微处理器(如PENTIUMIV对PENTIUM III)的代码。此外编译器无法优化用于其它系统参数(包括驱动器版本以及其他硬件部分)的代码,并且不考虑目标系统的特别系统的限制。而是,应用程序或运行时间层系统必须使用计算上昂贵的逻辑以确定这样的参数和处理器的约束,以使可编译程序在整类计算机系统上执行。另一普通编程范例就是在运行时间层上编译代码。运行时执行(JIT)编译器是该系统的例子。其它在运行时间编译的系统包括连续编译系统,它在解释状态中立即开始执行,但随时间编译代码并持续优化编译。有了运行时执行编译器,当把类加载入虚拟机中时,就用指向JIT编译器的指针替代虚拟方法表中的方法指针。随后,每个方法第一次调用时,调用JIT编译器编译该方法。随后虚拟方法表中的指针修正为指向该方法本机代码形式,这样将来对该方法的调用会跳向本机代码。这些JIT编译器系统具有用中间语言(如JAVA字节码、CLRT指令等)向目标机发送代码的优点。将编译器设计为把IL转换为可由本机处理器执行的指令。结果,可把相同的IL指令发送到具有不同本机处理器的计算机并仍然在目标处理器上执行。虽然这样的中间语言编译器在目标计算机系统上编译中间语言指令,但是它们也无法优化用于特定目标计算机系统的代码,包括考虑驱动器版本以及其他硬件部分。
技术实现思路
鉴于以上所述,本专利技术提供包括应用程序和运行时间和/或驱动器的管理代码。管理代码由具有目标计算机系统的实际硬件配置先验信息的编译器编译,正如JIT编译器具有关于客户机微处理器类型的先验信息。在编译时间,已知各种硬件驱动器的系统有效版本,因此如果应用程序和驱动器是可管理的,那么编译器可发送对于特定驱动器版本的可执行调节。因此,本专利技术包括管理代码以编译为具有所选处理器的操作系统以及与计算部分交互的驱动器配置的代码的系统和方法。系统包括多个以由中间语言编译器可读的中间语言接收的应用指令以及多个也以由中间语言编译器可读的中间语言接收的运行时间指令。中间语言编译器把应用指令和运行时间指令编译为由处理器可执行的管理代码指令集以与所选驱动器交互。还以中间语言提供驱动器(或部分驱动器)并把它们与应用指令和运行时间指令一起编译为管理代码指令集。附图说明参照附图进一步描述用于管理代码的系统和方法,其中图1是表示具有各种实现本专利技术的计算设备示例网络环境的框图;图2是表示实现本专利技术的示例非限制计算设备的框图;图3A和3B说明用于各种计算系统的不同驱动器模型; 图4是根据本专利技术的一个方面具有用户模式驱动器DLL结构的计算机系统框图;图5说明当应用程序在示例图形应用程序中作出API调用时发生的事件序列;图6根据本专利技术的一个方面说明对应用程序和运行时间JIT编译的应用;图7根据本专利技术的一个方面说明对应用程序、驱动器和运行时间JIT编译的应用;具体实施方式概述在线驱动器模型的支持者把性能优势描述为把API实现合并到驱动器中的主要动机。这个合并有许多不期望的副作用,主要是由于运行时间的后续释放不能在预先释放运行时间的驱动器的顶上添加API方法的特征、性能改进和变化。这里所描述的专利技术承认管理代码(包括应用程序、运行时间和驱动器)应该具有客户机实际硬件配置的先验信息,正如JIT编译器具有关于客户机的微处理器类型的先验信息。例如,在JIT时间,系统知道图形驱动器(DirectX 6.0、DirectX7.0等)的有效版本,因此如果管理应用程序和驱动器,JIT编译器就可以发出对特定驱动器版本的可执行调节。示例网络和分布式环境一个本领域的普通技术人员会明白可以配置计算机或其他客户机或服务器设备作为计算机网络或分布式计算环境中的一部分。在这点上,本专利技术属于具有任何数量存储器或存储单元以及在任何数量的存储单元或卷中所产生的任何数量的应用和过程的任何计算机系统。本专利技术应用于具有在带有远程或本地存储器的网络环境或分布式计算环境中配置的服务器计算机以及客户计算机的环境。本专利技术还应用于独立计算设备,其具有用于产生、接收和发送与服务有关的信息的编程语言操作、解释和执行能力。分布式计算通过计算设备和系统之间的直接交换便于计算机资源和服务的共享。这些资源和服务包括信息交换、高速缓存和文件的磁盘存储。分布式计算利用网络连接,使得客户机平衡其整体力量使整个企业得利。在这点上,各利设备具有数据集,期望它们可以实现本专利技术的图像边界定义技术。图1提供示例网络或分布式计算环境的示意图。分布式计算环境包括计算对象10a、10b等以及计算对象或设备110a、110b、110c等。这些对象可包括程序、方法、数据存储、可编程逻辑等。对象可包括相同或不同设备部分,比如PDA、电视、MP3播放器、电视、个人计算机等。每个对象可通过通信网络14与另一对象进行通信。该网络本身包括为图1系统提供服务的计算对象和计算设备。根据本专利技术的一个方面,每个对象10或110可包含数据,期望它可实现图像剪切或边界定义。也期望它可把来自对象10或110的图像剪切与另一对象10或110的图像剪切比较。在分布式计算结构中,通常可单独用作客户机的计算机相互之间直接通信,并且可用作客户机和服务器,假设不管用做什么它们对于网络都是最有效的。这减少了服务器的负荷并允许所有客户机访问可用于其他客户机的资源,由此增加了整个网络的能力和有效性。分布式计算可以更有效地协助不同地界间的商务传递服务以及能力。此外,分布式计算可以把数据移动到更靠近消耗数据用作为网络高速缓存机构的点。分布式计算还允许计算网络使用智能代理一起动态工作。智能代理位于对等计算机中并来回传送各种信息。智能代理还可代表其它对等系统开始各种任务。例如,智能代理可用于优先化网络上的任务、改变话务流、本地搜索文件或确定诸如病毒的异常行为并在其影响网络之前制止它。也可以考虑本文档来自技高网
...

【技术保护点】
一种计算机系统,其特征在于该系统包括:处理器;操作系统,具有与计算部件交互动作的所选驱动器;多个应用程序指令,所述指令是以可由中间语言编译器读取的中间语言的形式的;多个运行时间指令,所述指令是以可由中间语言编译器读取的中间语 言的形式的;中间语言编译器,其中所述中间语言编译器把应用程序指令和运行时间指令编译为可由处理器执行的指令以与所选驱动器交互动作。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:NP威尔特J米勒
申请(专利权)人:微软公司
类型:发明
国别省市:US[美国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1