CN101689103B - 用于方便管理由计算系统使用的硬件资源的方法和系统 - Google Patents

用于方便管理由计算系统使用的硬件资源的方法和系统 Download PDF

Info

Publication number
CN101689103B
CN101689103B CN2008800225120A CN200880022512A CN101689103B CN 101689103 B CN101689103 B CN 101689103B CN 2008800225120 A CN2008800225120 A CN 2008800225120A CN 200880022512 A CN200880022512 A CN 200880022512A CN 101689103 B CN101689103 B CN 101689103B
Authority
CN
China
Prior art keywords
hardware device
functional hardware
resource
functional
function
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN2008800225120A
Other languages
English (en)
Other versions
CN101689103A (zh
Inventor
S·H·米索
D·斯来茨
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of CN101689103A publication Critical patent/CN101689103A/zh
Application granted granted Critical
Publication of CN101689103B publication Critical patent/CN101689103B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/545Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals

Abstract

提供了供在计算环境中使用的混合资源管理器。该混合资源管理器用作单个资源管理器,其与操作系统协作以便管理与多功能硬件设备的各种功能相关联的各个设备驱动程序中的每一个。在一个示例中,该混合资源管理器实现用于防止在各种应用程序同时请求多个功能时发生冲突的一致的管理和策略框架。

Description

用于方便管理由计算系统使用的硬件资源的方法和系统
技术领域
本发明涉及用于方便管理由计算系统使用的硬件资源的方法和系统。
背景技术
操作系统采用资源管理方案来限制应用程序之间的干扰、实现排定资源分配的优先顺序并以其他方式控制资源分配的策略,以及一般地管理运行许多独立软件应用程序的系统的总体行为。通常,为每一类设备提供资源管理器。设置设备种类的示例包括外围设备,诸如键盘、打印机、传真机、扫描仪、CD和DVD播放器、网络接口、智能卡读取器、生物测定扫描仪和存储器存储设备(例如闪存)。不同种类的设备中的每一个设备通常都具有其自己的资源管理器。因为给定种类中的特定设备一般彼此之间略有不同,所以通常为每一个特定硬件设备提供被称为设备驱动程序的附加软件组件。设备驱动程序用作资源管理器和特定硬件设备之间的转换层。
设备驱动程序在计算机系统中通常用作用于与硬件设备通信的最底层的软件组件。通常,这些设备驱动程序以一对一关系与其控制的设备相关联。例如,串行端口驱动程序与计算机的数据/传真串行调制解调器相关联、综合切换数字网(ISDN)驱动程序与ISDN接口设备相关联,并且网络驱动程序提供到广域网(WAN)数据接口设备的接口。在这一安排中,每一个专用驱动程序都管理对硬件设备的启动、关闭、维护和运行操作。
由于技术的进步,将多个硬件设备集成到单个多功能设备中已变为可能。例如,单个硬件设备可能能够执行数据/传真调制解调器、ISDN和WAN接口的功能中的一个或全部。另一示例可以是具有集成的智能卡读取器和生物测定扫描仪的键盘。这些多功能设备具有胜过多个单功能设备的若干优点,包括降低的成本、较小的尺寸、主机系统上的负载降低以及更容易安装。然而,为了保持与传统应用程序兼容,这些多功能设备仍需要用于每一个功能(例如,键盘、智能卡读取器和生物测定扫描仪等)的专用驱动程序。由于每一个设备驱动程序都独立地运作,因此可能出现多个设备驱动程序向单个硬件设备发送命令的情况。因此,存在存储一个驱动程序发送的命令与另一个驱动程序发送的命令冲突,从而导致系统误动作的可能性。例如,一个驱动程序可能发送关闭硬件设备的命令,而其他独立的驱动程序正在使用该设备。另一示例是其中一个驱动程序试图运行需要独占地访问多功能设备以确保有效结果的诊断测试,而另一驱动程序试图在该诊断测试期间访问该多功能设备。多个设备驱动程序访问单个多功能硬件设备可能发生许多冲突。
图1示出了计算机系统10,其具有连接到多功能设备8的多个设备驱动程序,即设备驱动程序A2、设备驱动程序B4以及设备驱动程序C6。在操作中,驻留在计算机系统10上的应用程序可请求多功能设备8执行第一功能。当请求一功能时,计算机系统10指示对应于所请求的功能的驱动程序向多功能设备8发送命令以使其能够执行所请求的功能。例如,如果请求功能A,则计算机系统10指示设备驱动程序A向多功能设备8发送命令以便执行功能A。然而,如上所述,某些设备驱动程序可能向多功能设备发出冲突的命令。发自不同的设备驱动程序的冲突命令可能由具有多功能设备的系统中的众多情形引起。例如,当设备驱动程序A2正在指示多功能设备8执行功能A时,计算机系统10可以指示设备驱动程序B4向多功能设备8发出命令以执行功能B。由设备驱动程序B4发出的部分命令可能是与设备A2正在发出的命令冲突的设备初始化命令。在这些情况下,由于冲突,该多功能设备可能由于冲突而无法执行所请求的功能中的部分或全部。
除了冲突之外,在多功能设备使用多个驱动程序时引发的另一问题涉及安全性。例如,确保在任何给定时间应用程序仅使用多功能设备8的一个特定功能并锁定所有其他功能通常是必需的。
对该问题的一种可能的解决方案是将设备驱动程序组合到单个多功能驱动程序中,并由此使用编程方法来防止冲突命令。然而,该方法可能要求重新编写现有驱动程序的软件代码中的大部分或全部以便能够像单个驱动程序那样工作。该解决方案还降低了软件的模块性。单个组合驱动程序更大并且更复杂,并因此更难以创建、测试、维护和升级。当考虑驱动程序和多功能设备的所有不同排列和组合时,将多个驱动程序组合到单个多功能驱动程序中会增加所需驱动程序总数。因此,保持驱动程序分开是高度合乎需要的。
发明内容
以下详细描述呈现了供在计算环境中使用的混合资源管理器。混合资源管理器用作单个资源管理器,其与操作系统协作以管理与多功能硬件设备的各种功能相关联的各个设备驱动程序中的每一个。在一个示例中,混合资源管理器实现用于防止在各种应用程序同时请求多个功能时发生冲突的一致的管理和策略框架。
提供本概述是为了以简化的形式介绍将在以下详细描述中进一步描述的一些概念。该概述不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。本发明的其它特征和优点在参考附图继续阅读以下对实施例的详细描述后将变得显而易见。
本发明涉及一种用于方便管理由计算系统使用的硬件资源的方法,包括:通过多功能API接受来自资源消费者的访问由多功能硬件设备执行的任何单独功能的资源获取请求,其中所述多功能API被配置成方便(i)由所述多功能硬件设备执行的功能的设备枚举以及(ii)出于认证和验证目的的设备获取以及(iii)在获取所述多功能硬件设备后锁定所述多功能硬件设备;与同所述多功能硬件设备相关联并专用于所请求的单独功能的设备驱动程序进行通信;以及响应于与所述设备驱动程序的通信,出于允许根据所述资源获取请求来访问多功能硬件设备的目的而获取所述多功能硬件设备。
本发明涉及一种用于管理由计算设备使用的硬件资源的系统,包括:多功能接口模块,其从资源消费者接受对由多功能硬件设备执行的每一个功能的消费者功能调用,所述多功能接口模块被配置成方便(i)由所述多功能硬件设备执行的功能的设备枚举以及(ii)出于认证和验证目的的设备获取以及(iii)在获取所述多功能硬件设备后锁定所述多功能硬件设备;混合资源管理器模块,其用于通过管理管理专用于由所述多功能硬件设备执行的每一个功能的不同的设备驱动程序,响应于所述消费者功能调用来分配所述多功能硬件设备的不同功能资源;以及策略模块,其用于建立至少一个预定策略,所述混合资源管理器将实现这些策略以允许出于允许根据所述消费者功能调用来访问所述多功能硬件设备的目的而获取所述多功能硬件设备。
本发明涉及一种用于方便管理由计算系统使用的硬件资源的系统,包括:
用于通过多功能API接受来自资源消费者的访问由多功能硬件设备执行的任何单独功能的资源获取请求的装置,其中所述多功能API被配置成方便(i)由所述多功能硬件设备执行的功能的设备枚举以及(ii)出于认证和验证目的的设备获取以及(iii)在获取所述多功能硬件设备后锁定所述多功能硬件设备;
用于与同所述多功能硬件设备相关联并专用于所请求的单独功能的设备驱动程序进行通信的装置;以及
用于响应于与所述设备驱动程序的通信,出于允许根据所述资源获取请求来访问所述多功能硬件设备的目的而获取所述多功能硬件设备的装置。
附图说明
图1示出了具有供与多功能硬件设备一起使用的多个设备驱动程序的计算机系统。
图2示出了具有计算单元以及与计算单元连接或以其他方式与其接口的多个外围组件的计算系统。
图3示出了可以由图2的计算系统实现以方便多功能硬件设备的资源管理的资源管理体系结构的一个示例。
图4示出了在图3中描述的混合资源管理器的一个具体示例。
图5是示出用于方便管理计算系统所使用的硬件资源的方法的一个示例的流程图。
具体实施方式
为了成功地在计算设备上运行应用程序,设备的操作系统必须向应用程序提供各种资源。在以下讨论中详细地描述了适用于实现用于管理这些资源以便于其高效分配和使用的改进的方法的计算系统。
此处所描述的资源管理体系结构可以在许多不同的环境和计算上下文中实现。出于讨论的目的,该体系结构在用于个人计算机的计算系统的上下文中描述,但是同等地适用于其他计算环境,包括诸如游戏控制台、蜂窝电话、PDA、机顶盒(STB)等各种各样的电子设备。
如下文中详细描述的,提供混合资源管理器,而非提供用于支持多功能硬件设备的单个多功能驱动程序。混合资源管理器可以与多功能硬件设备的各个设备驱动程序一起使用,但提供可以由访问硬件设备的所有应用程序使用的一致的管理和策略框架。
图2示出了具有计算单元22以及与计算单元22连接或以其他方式与之接口的多个外围组件。计算单元22具有一个或多个处理器24(1)、24(2)、…、24(P)、易失性存储器26(例如RAM)和非易失性存储器28(例如ROM、闪存、硬盘、CD ROM等)。
操作系统30被存储在非易失性存储器28中。操作系统30是多任务操作系统,其在其被加载到易失性存储器26中并在一个或多个处理器24上执行时,支持多个应用程序32(1)、32(2)、…、32(A)同时执行。一个优选操作系统是微软公司销售的WindowsTM品牌操作系统。然而,应该注意,可以使用其他操作系统。
应用程序32(1)、32(2)、…、32(A)是需要访问硬件资源的、可以在系统上加载并执行的不同资源消费者的示例。资源消费者可以包括诸如文字处理应用程序、电子表格应用程序、数据库应用程序、日程安排应用程序、财务应用程序、教育应用程序、娱乐应用程序等应用程序。
操作系统30具有管理计算系统20的资源以便分配给应用程序32(1)-32(A)的资源管理系统40。资源管理系统40可以与操作系统30分开实现,但是在该示例中被示为集成在操作系统中。以下参考图3更详细地描述了资源管理系统40。
操作系统30还具有用于计算系统20中的各种相关联的外围组件的多个软件驱动程序42(1)、…、42(D)。一个或多个COM(通信)端口44也被示为是操作系统30的一部分。代表性外围组件的集合在计算单元22的周围示出。
USB总线54连接到计算单元22以便与许多不同种类的兼容USB的外围组件接口。这些组件的示例包括调制解调器56、扬声器58、键盘60和其他USB设备62。计算单元22也耦合到网络66以便与其他计算机接口。网络66表示许多不同类型的网络,包括LAN、WAN、因特网、内联网和无线网络。
1394串行总线68连接到计算单元22以便与许多不同种类的兼容1394的外围组件接口。这些组件的示例包括存储器驱动器70(例如盘驱动器、磁带驱动器、CD ROM驱动器等)、调制解调器72、扬声器74、CPU(中央处理单元)76和其他1394设备78。应该注意,虽然在该示例性系统中示出了USB和1394总线,但可另外地或另选地使用其他总线体系结构,诸如SCSI、ISA(工业标准体系结构)和PCI(外围部件互连)总线。
计算系统20具有显示器80,其可以是电视机或计算机监视器。显示器经由一个或多个显示接口82(1)、82(2)、…、82(C)与计算单元22接口,这些显示接口表示视频端口、覆盖图和视频存储器。耦合到计算单元22的其他示例性外围设备包括DVD播放器84、生物测定扫描仪86和智能卡读取器88。
图2所示的组件的集合示出了由资源管理系统40管理的示例性资源类型。其中有各种硬件设备资源,诸如键盘、调制解调器、USB驱动器、生物测定扫描仪、智能卡读取器、1394设备、显示接口、记录器、存储器驱动器等等。许多其他组件可被添加到该系统,并且可以移除所示组件中的一个或多个。如上所述,将这些设备中两个或更多设备的功能组合到单个多功能硬件设备中正变得越来越常见。
图3示出了可以由图2的计算系统20实现以方便多功能硬件设备的资源管理的资源管理体系结构300的一个示例。体系结构300用软件来实现,并且在该示例中包括用户级组件以及内核级组件。体系结构300具有混合资源管理器302和设备驱动程序304(1)、304(2)、304(3)、…、304(P),这些设备驱动程序支持一个或多个资源消费者。资源消费者的示例包括用户级资源消费者,诸如应用程序332(1)、332(2)、332(3)、…、332(N)。如图所示,可以提供的一个应用程序级资源消费者是认证用户接口332(1),其用于提供应用程序级认证和安全性以确保例如特洛伊木马或其他恶意软件不会欺骗或以其他方式获取对诸如口令、公钥等用户凭证的访问权。虽然未示出,但是也可以提供内核级资源消费者。
每一个设备驱动程序304(1)-304(4)都与一硬件设备相关联并且跟踪该硬件设备的可用性。即,如上所述,设备驱动程序可以是与硬件设备接口的任何软件组件或模块。设备驱动程序304(1)可以是例如允许多功能设备340将串行数据传递给调制解调器的串行驱动程序。设备驱动程序304(2)可以是例如允许多功能设备340发出和接收呼叫的ISDN接口驱动程序,而设备驱动程序304(3)可以是例如允许多功能设备340对WAN网络接口设备收发数据的WAN驱动程序。多功能设备的另一示例可以是集成具有闪存的智能卡读取器和生物测定读取器的键盘。在这种情况下,设备驱动程序304(1)可以是键盘,设备驱动程序304(2)可以是智能卡驱动程序,设备驱动程序304(3)可以是生物测定扫描仪驱动程序,而设备驱动程序304(4)可以是闪存驱动程序。又一多功能设备可以是组合WAN数据接口、X.25数据接口和数据加密处理器的虚拟专用网络(VPN)卡。这些设备驱动程序可能非常复杂,并且如上所述,一般最好被实现为单独的驱动程序。当然,上述多功能设备和设备驱动程序仅是示例性的并且此处所描述的原理可以应用于任何多功能硬件设备以及用于与这些设备接口的驱动程序。本领域的技术人员可以理解,随着技术的进步,更多硬件功能将变得可用,并且将众多硬件功能组合到单个设备中将变为可能,并且此处所描述的原理可同等地应用于这些以后开发的多功能设备和设备驱动程序。虽然设备驱动程序被示为在内核层,但是一个或多个设备驱动程序也可以在用户层实现。
每一个设备驱动程序304都向混合资源管理器302注册自己,并且提供由混合资源管理器302使用的一组回调以获取信息。例如,一个回调用于执行资源计算,而另一个用于将成功的保留通知给提供者。混合资源管理器302允许对混合硬件设备使用相同的上下文并且获取由特定设备资源管理器使用以使得硬件设备能够执行该功能对应的设备种类称号(handle)。
混合资源管理器302展示用于与体系结构中的其他模块交互的公共接口320。公共接口320包括定义的API(应用程序编程接口),其具有由设备驱动程序304使用的一组提供者API调用和用于从应用程序332(1)-332(N)或其他资源消费者接收对资源的请求的一组消费者API调用。API是到程序的接口,其定义程序将为执行所需任务而接受的输入类别以及程序将在执行所需任务后返回的输出类别。当应用程序332想要执行一任务时,它使用公共接口320来在混合资源管理器302处创建活动,并且构建描述执行该活动所需的各资源集的一个或多个配置。活动是与正在系统中执行的任务相关联的数据结构。混合资源管理器302确定哪些活动能够从有限的资源池中得到完全满足,并允许具有可以被满足的活动的应用程序访问所请求的资源。
图4示出了图3所描绘的混合资源管理器302的一个具体示例,其中出于支持与现有应用程序的向后兼容的目的而提供了多个公共接口。对混合资源管理器302的访问权是通过公共接口(例如图3中的公共接口320)来获取,该公共接口包括遵从适当的API标准的一系列接口。例如,在该示例中,示出了分别用于生物测定读取器和智能卡读取器的标准API 404和406。还示出了功能接口402,其表示可从可信的第三方获得的任何其他硬件设备功能(例如闪存)。这些接口不直接访问硬件设备。由于这些接口402、404和406与当前用于获取对资源管理器的访问权的那些接口相同,因此维持了向后兼容性。通过公共接口320打开的上下文可能由于可由策略模块建立的策略(在下文中更详细地讨论)而无法完全访问所有底层系统硬件。在某些情况下,混合资源管理器302具有维护硬件设备支持的所有设备种类ID的列表和对应的上下文的上下文结构。
该公共接口还包括通用混合资源接口408,其用于方便实现混合资源管理器的增强的功能。即,也可以被实现为API的通用混合资源管理器接口408由利用混合资源管理器302的特征的应用程序使用。通用混合资源管理器接口408提供诸如如下功能:对于混合设备内的设备的混合设备枚举,其标识由硬件设备提供的不同功能的数量和类型;设备获取,其由计算系统和硬件设备用于验证和认证目的;以及设备锁定,其确保在获取多功能硬件设备之后,给予应用程序(例如应用程序332)对该多功能硬件设备的适当且可能是独占的访问权以便执行特定操作。
通用混合资源管理器接口408帮助使得能够在不同的设备资源管理器并因此即设备(例如经由设备驱动程序,例如设备驱动程序304)之间进行通信。通用混合资源管理器接口408还允许在受限视图中打开上下文,这意味着上下文在通过实际公共API打开的情况下可以是可用功能的子集。
混合资源管理器302还包括通过接口访问的专用资源管理器。在图3所示的示例中,功能管理器412、生物测定管理器414和智能卡资源管理器416分别通过功能接口402、生物测定接口404和智能卡接口406来访问。这些接口中的每一个都是可扩展的但完整性是根据安全模块所建立的安全过程而得到验证的,如下所述。专用资源管理器412、414和416允许向后兼容性并且基本上提供与当前资源管理器相同的功能,但是在诸如上下文分配、外部资源锁定和硬件管理等某些关键方面进行翻新。
核心混合资源管理器418负责管理不同的资源管理器并因此即由能够使用混合资源管理器体系结构的多功能硬件设备和应用程序使用的设备之间的访问。专用资源管理器412、414和416中的每一个都负责其各自到核心混合资源管理器418的连接。核心混合资源管理器418成为可扩展的以方便产生附加功能以及处理可开发的新型混合硬件设备。核心混合资源管理器418仲裁由设备驱动程序提供的对资源(本地或远程)的访问。诸如图3中的应用程序332等资源消费者请求由驱动程序提供的一个或多个资源的集合,而核心混合资源管理器418确定哪些应用程序要使用设备驱动程序的哪些资源。核心混合资源管理器418可基于预定的冲突解决机制来作出资源分配判定。
核心混合资源管理器418强制实施由策略模块420建立的安全策略和其他策略。策略模块420可以接收将从设备或系统层建立的策略(例如,组或本地机器策略)。可以实现的策略的一个示例如下。例如,在包括智能卡读取器和生物测定扫描仪的多功能设备的情况下,可以建立要求对集成的生物测定扫描仪独占地使用智能卡读取器的策略。如果用户试图使用专用智能卡读取器以及物理上单独的生物测定扫描仪,则策略模块420将阻止获取这两个设备。当然,策略模块420可以建立确保混合硬件设备适当地运作而没有冲突等的许多其他策略。例如,就冲突解决而言,如果混合资源管理器302采用基于优先级的解决方案,则策略模块420根据用户或系统所归结的任务的相对重要性来先验地对任务进行排序,从而使得核心资源管理器302可以在存在冲突以使得无法为所有任务分配其资源时确定哪一个任务应该获取对资源的访问权。其他可行策略包括首先预订获胜、最近预订获胜、“公平”资源共享、用户挑选什么胜过什么等等。许多不同的策略是可能的。系统或用户设置策略,并且策略管理器模块将它们转换成绝对优先级。
混合资源管理器302可以包括各种其他模块,诸如在图3中示出的那些附加模块。例如,可以出于集中认证硬件设备的目的而提供认证模块424,以使得无需在每一次不同的应用程序试图访问混合硬件设备时执行单独的认证过程。该认证模块可以代表应用程序(作为上下文调用的结果)调用或由设备管理器模块422代表混合硬件设备调用。此外,设备管理器模块422监视和管理混合硬件设备。设备管理器模块422还可在混合硬件设备和功能层锁定资源。
诸如处理程序430、432和434等设备功能处理程序使用输入/输出控制代码来管理混合资源管理器302和混合资源设备之间的详细通信协议。也可以提供认证用户接口或用户体验模块以便集成可能需要的各种用户级认证并为用户提供一致的接口。例如可以在用户、系统和/或硬件设备层提供这种认证。
图5是示出方便管理由计算系统使用的硬件资源的方法的一个示例的流程图。方法从步骤510开始,在那里通用混合资源管理器接口接受访问由多功能硬件资源执行的任何单独功能的资源获取请求。在判定步骤520中,确定资源获取请求是否遵从为多功能硬件资源所提供的功能而建立的策略。如果否,则在步骤530中拒绝访问。如果该请求确实遵从策略,则在步骤540,混合资源管理器与同多功能硬件资源相关联并专用于所请求的单独功能的设备驱动程序进行通信。响应于与设备驱动程序的通信,在步骤550,混合资源管理器使得能够出于允许根据资源获取请求来访问多功能硬件设备的目的而获取多功能硬件设备。
尽管用对结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述具体特征或动作。相反,上述具体特征和动作是作为实现权利要求的示例形式公开的。

Claims (18)

1.一种用于方便管理由计算系统使用的硬件资源的方法,包括:
通过多功能API接受来自资源消费者的访问由多功能硬件设备执行的任何单独功能的资源获取请求,其中所述多功能API被配置成方便(i)由所述多功能硬件设备执行的功能的设备枚举以及(ii)出于认证和验证目的的设备获取以及(iii)在获取所述多功能硬件设备后锁定所述多功能硬件设备;
与同所述多功能硬件设备相关联并专用于所请求的单独功能的设备驱动程序进行通信;以及
响应于与所述设备驱动程序的通信,出于允许根据所述资源获取请求来访问多功能硬件设备的目的而获取所述多功能硬件设备。
2.如权利要求1所述的方法,其特征在于,还包括确定所述资源获取请求是否遵从为由所述多功能硬件设备提供的功能建立的策略。
3.如权利要求2所述的方法,其特征在于,还包括当在请求由所述多功能硬件设备执行的第一功能的第一资源消费者和请求由多功能硬件设备执行的第二功能的第二资源消费者之间发生策略冲突时,拒绝获取所述多功能硬件设备。
4.如权利要求1所述的方法,其特征在于,所述资源获取请求从应用程序级资源消费者接收。
5.如权利要求1所述的方法,其特征在于,还包括使用多个设备处理程序中的一个来实现混合资源管理器和所述设备驱动程序之间的通信协议,其中所述设备处理程序中的每一个都专用于所述多功能硬件设备的不同的功能资源。
6.一种用于管理由计算设备使用的硬件资源的系统,包括:
多功能接口模块,其从资源消费者接受对由多功能硬件设备执行的每一个功能的消费者功能调用,所述多功能接口模块被配置成方便(i)由所述多功能硬件设备执行的功能的设备枚举以及(ii)出于认证和验证目的的设备获取以及(iii)在获取所述多功能硬件设备后锁定所述多功能硬件设备;
混合资源管理器模块,其用于通过管理管理专用于由所述多功能硬件设备执行的每一个功能的不同的设备驱动程序,响应于所述消费者功能调用来分配所述多功能硬件设备的不同功能资源;以及
策略模块,其用于建立至少一个预定策略,所述混合资源管理器将实现这些策略以允许出于允许根据所述消费者功能调用来访问所述多功能硬件设备的目的而获取所述多功能硬件设备。
7.如权利要求6所述的系统,其特征在于,还包括:
至少一个专用接口模块,其接受来自挑选出的资源消费者对由所述多功能硬件设备执行的一个特定功能的请求,其中所述至少一个专用接口模块允许在通过所述多功能接口模块打开的情况下是可用功能的子集的上下文;以及
至少一个专用资源管理器模块,其用于通过管理专用于所述特定功能的设备驱动程序来分配对应于所述特定功能的资源。
8.如权利要求7所述的系统,其特征在于,所述专用接口模块遵从与由所述多功能硬件设备执行的特定功能相关联的API标准。
9.如权利要求6所述的系统,其特征在于,所述策略模块被配置成建立用于实现资源分配的预定冲突解决策略。
10.如权利要求9所述的系统,其特征在于,所述预定冲突解决策略包括基于优先级的解决方案。
11.如权利要求6所述的系统,其特征在于,还包括认证模块,其用于集中认证所述多功能硬件设备。
12.如权利要求11所述的系统,其特征在于,还包括设备管理器模块,其用于代表所述多功能硬件设备来接受用于调用所述认证模块的内容调用。
13.如权利要求6所述的系统,其特征在于,所述混合资源管理器模块驻留在操作系统内的系统层。
14.如权利要求11所述的系统,其特征在于,所述认证模块被配置成独立于所分配的功能资源来呈现公共认证用户接口。
15.如权利要求6所述的系统,其特征在于,所述计算设备是选自由个人计算机、游戏控制台、蜂窝电话、PDA和机顶盒STB组成的组的电子设备。
16.一种用于方便管理由计算系统使用的硬件资源的系统,包括:
用于通过多功能API接受来自资源消费者的访问由多功能硬件设备执行的任何单独功能的资源获取请求的装置,其中所述多功能API被配置成方便(i)由所述多功能硬件设备执行的功能的设备枚举以及(ii)出于认证和验证目的的设备获取以及(iii)在获取所述多功能硬件设备后锁定所述多功能硬件设备;
用于与同所述多功能硬件设备相关联并专用于所请求的单独功能的设备驱动程序进行通信的装置;以及
用于响应于与所述设备驱动程序的通信,出于允许根据所述资源获取请求来访问所述多功能硬件设备的目的而获取所述多功能硬件设备的装置。
17.如权利要求16所述的系统,其特征在于,还包括用于确定所述资源获取请求是否遵从为由所述多功能硬件设备提供的功能建立的策略的装置。
18.如权利要求17所述的系统,其特征在于,还包括用于当在请求由所述多功能硬件设备执行的第一功能的第一资源消费者和请求由多功能硬件设备执行的第二功能的第二资源消费者之间发生策略冲突时,拒绝获取所述多功能硬件设备的装置。
CN2008800225120A 2007-06-27 2008-06-07 用于方便管理由计算系统使用的硬件资源的方法和系统 Active CN101689103B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/823,239 2007-06-27
US11/823,239 US8042122B2 (en) 2007-06-27 2007-06-27 Hybrid resource manager
PCT/US2008/066229 WO2009002686A1 (en) 2007-06-27 2008-06-07 Hybrid resource manager

Publications (2)

Publication Number Publication Date
CN101689103A CN101689103A (zh) 2010-03-31
CN101689103B true CN101689103B (zh) 2013-04-24

Family

ID=40162399

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008800225120A Active CN101689103B (zh) 2007-06-27 2008-06-07 用于方便管理由计算系统使用的硬件资源的方法和系统

Country Status (10)

Country Link
US (1) US8042122B2 (zh)
EP (1) EP2160678B1 (zh)
JP (1) JP2010532046A (zh)
KR (1) KR101279717B1 (zh)
CN (1) CN101689103B (zh)
AU (1) AU2008268878B2 (zh)
CA (1) CA2687646A1 (zh)
MX (1) MX2009013455A (zh)
MY (1) MY151782A (zh)
WO (1) WO2009002686A1 (zh)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8484616B1 (en) * 2009-06-23 2013-07-09 Emc Corporation Universal module model
US9244866B2 (en) 2010-04-30 2016-01-26 International Business Machines Corporation Remote access of peripheral device connected to serial bus
US8806502B2 (en) 2010-09-15 2014-08-12 Qualcomm Incorporated Batching resource requests in a portable computing device
US9098521B2 (en) 2010-09-15 2015-08-04 Qualcomm Incorporated System and method for managing resources and threshsold events of a multicore portable computing device
US8631414B2 (en) 2010-09-15 2014-01-14 Qualcomm Incorporated Distributed resource management in a portable computing device
US8615755B2 (en) 2010-09-15 2013-12-24 Qualcomm Incorporated System and method for managing resources of a portable computing device
US9152523B2 (en) 2010-09-15 2015-10-06 Qualcomm Incorporated Batching and forking resource requests in a portable computing device
ES2439803B1 (es) * 2012-04-19 2014-10-29 Universitat Politècnica De Catalunya Procedimiento, sistema y pieza de código ejecutable para controlar el uso de recursos de hardware de un sistema informático
US9904579B2 (en) 2013-03-15 2018-02-27 Advanced Elemental Technologies, Inc. Methods and systems for purposeful computing
US10075384B2 (en) 2013-03-15 2018-09-11 Advanced Elemental Technologies, Inc. Purposeful computing
US9378065B2 (en) 2013-03-15 2016-06-28 Advanced Elemental Technologies, Inc. Purposeful computing
US9721086B2 (en) * 2013-03-15 2017-08-01 Advanced Elemental Technologies, Inc. Methods and systems for secure and reliable identity-based computing
EP3007391B1 (en) * 2013-05-27 2019-06-26 Nec Corporation Network control device, network control method, program, and communication system
US20150127593A1 (en) * 2013-11-06 2015-05-07 Forever Identity, Inc. Platform to Acquire and Represent Human Behavior and Physical Traits to Achieve Digital Eternity
WO2016040506A1 (en) * 2014-09-13 2016-03-17 Advanced Elemental Technologies, Inc. Methods and systems for secure and reliable identity-based computing
WO2016057036A1 (en) * 2014-10-08 2016-04-14 Hewlett Packard Enterprise Development Lp Resource federation
KR102343641B1 (ko) * 2015-03-13 2021-12-24 삼성전자주식회사 시스템 온 칩과 이를 포함하는 장치들
WO2016171822A1 (en) * 2015-04-18 2016-10-27 Intel Corporation Multimodal interface
JP6682871B2 (ja) 2016-01-20 2020-04-15 ティアック株式会社 制御機器
JP6686461B2 (ja) 2016-01-20 2020-04-22 ティアック株式会社 制御機器
JP6604213B2 (ja) 2016-01-20 2019-11-13 ティアック株式会社 制御機器
JP2017130808A (ja) 2016-01-20 2017-07-27 ティアック株式会社 制御機器
US10571225B2 (en) * 2016-11-22 2020-02-25 Walmart Apollo, Llc System and method for camouflaging and recharging autonomous vehicles
KR20180083572A (ko) 2017-01-13 2018-07-23 삼성전자주식회사 전자장치 및 그 제어방법
CN107133108A (zh) * 2017-04-27 2017-09-05 努比亚技术有限公司 分布式复杂锁的实现方法、终端、服务器及计算机可读存储介质
US10080117B1 (en) * 2017-10-20 2018-09-18 International Business Machines Corporation Controlling operation of computing devices
CN111144689B (zh) * 2019-11-25 2022-11-29 广西电网有限责任公司 一种基于分层耦合约束的学校综合能效评价方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6216196B1 (en) * 1999-05-14 2001-04-10 Ariel Corporation System and method for multiple device drivers to arbitrate for a single device
WO2001084301A2 (en) * 2000-05-02 2001-11-08 Microsoft Corporation Resource manager architecture
CN1609788A (zh) * 2004-11-24 2005-04-27 华南理工大学 一种嵌入式操作系统的驱动程序加固方法

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5440740A (en) * 1992-10-13 1995-08-08 Chen; Fetchi System and method for managing devices on multiple digital signal processors
JPH11191089A (ja) * 1997-12-26 1999-07-13 Canon Inc データ処理装置のポート獲得解放処理方法およびコンピュータが読み出し可能なプログラムを格納した記憶媒体
US6760784B1 (en) * 1998-10-08 2004-07-06 International Business Machines Corporation Generic virtual device driver
JP2000222229A (ja) * 1999-02-04 2000-08-11 Seiko Epson Corp 複数ジョブの排他制御方法、排他制御装置および複数ジョブの排他制御プログラムを記録した媒体
US6766519B1 (en) * 1999-03-26 2004-07-20 Emc Corporation Generic software interface for hardware environments having executing code registers itself and the code for a next suboperation
US7111297B1 (en) * 2000-05-02 2006-09-19 Microsoft Corporation Methods and architectures for resource management
US7058947B1 (en) * 2000-05-02 2006-06-06 Microsoft Corporation Resource manager architecture utilizing a policy manager
US6938261B2 (en) * 2000-05-12 2005-08-30 Microsoft Corporation System and method employing script-based device drivers
JP2002215483A (ja) * 2001-01-15 2002-08-02 Matsushita Electric Ind Co Ltd 機器制御システム並びに、機器制御システムにおけるコントローラ及びデバイス
US7207041B2 (en) * 2001-06-28 2007-04-17 Tranzeo Wireless Technologies, Inc. Open platform architecture for shared resource access management
JP2004110370A (ja) * 2002-09-18 2004-04-08 Canon Inc デバイス一覧表示方法
US20040139142A1 (en) * 2002-12-31 2004-07-15 International Business Machines Corporation Method and apparatus for managing resource contention
US7069206B2 (en) * 2003-04-24 2006-06-27 International Business Machines Corporation Method and apparatus for abstraction of physical hardware implementation to logical software drivers
KR20040092248A (ko) * 2003-04-25 2004-11-03 정평모비컴(주) 전산자원의 원격제어 관리 시스템
US20050060409A1 (en) * 2003-08-26 2005-03-17 Jean-Francois Dube Managing resources of chassis that include configurable network diagnostic modules
US7613881B2 (en) * 2004-06-08 2009-11-03 Dartdevices Interop Corporation Method and system for configuring and using virtual pointers to access one or more independent address spaces
US7549154B2 (en) * 2004-11-23 2009-06-16 Microsoft Corporation Extensible architecture for auxiliary displays
US8091088B2 (en) * 2005-02-22 2012-01-03 Microsoft Corporation Method and system for hierarchical resource management involving hard and soft resource limits
US7525676B2 (en) * 2005-04-20 2009-04-28 Xerox Corporation System and method for controlling access to programming options of a multifunction device
US20060291406A1 (en) * 2005-06-23 2006-12-28 Lexmark International, Inc. Device authentication method and system
US8284768B2 (en) * 2005-10-06 2012-10-09 Sierra Wireless, Inc. Dynamic bus-based virtual channel multiplexing device driver architecture
JP2007208594A (ja) * 2006-02-01 2007-08-16 Seiko Epson Corp 画像処理装置、画像処理方法及び画像処理プログラム
JP4391532B2 (ja) * 2007-01-16 2009-12-24 シャープ株式会社 制御装置、プログラム、コンピュータ読み取り可能な記録媒体、通信システム、および制御方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6216196B1 (en) * 1999-05-14 2001-04-10 Ariel Corporation System and method for multiple device drivers to arbitrate for a single device
WO2001084301A2 (en) * 2000-05-02 2001-11-08 Microsoft Corporation Resource manager architecture
CN1609788A (zh) * 2004-11-24 2005-04-27 华南理工大学 一种嵌入式操作系统的驱动程序加固方法

Also Published As

Publication number Publication date
KR101279717B1 (ko) 2013-06-27
MY151782A (en) 2014-07-14
KR20100021464A (ko) 2010-02-24
JP2010532046A (ja) 2010-09-30
EP2160678A4 (en) 2011-11-30
AU2008268878A1 (en) 2008-12-31
WO2009002686A1 (en) 2008-12-31
US20090007153A1 (en) 2009-01-01
CA2687646A1 (en) 2008-12-31
US8042122B2 (en) 2011-10-18
EP2160678B1 (en) 2018-12-05
AU2008268878B2 (en) 2012-06-07
EP2160678A1 (en) 2010-03-10
CN101689103A (zh) 2010-03-31
MX2009013455A (es) 2010-01-15

Similar Documents

Publication Publication Date Title
CN101689103B (zh) 用于方便管理由计算系统使用的硬件资源的方法和系统
US7096491B2 (en) Mobile code security architecture in an application service provider environment
US5664098A (en) Dual decor capability for a host system which runs emulated application programs to enable direct access to host facilities for executing emulated system operations
US7865876B2 (en) Multiple trusted computing environments
US7257835B2 (en) Securely authorizing the performance of actions
CN102495750B (zh) 用于部署虚拟桌面的方法和系统
US5717604A (en) Network monitoring system for tracking, billing and recovering licenses
US7076655B2 (en) Multiple trusted computing environments with verifiable environment identities
US5835737A (en) Method and apparatus for arbitrating access to selected computer system devices
US7996834B2 (en) Virtual machine self-service restrictions
US7568217B1 (en) Method and apparatus for using a role based access control system on a network
US9262602B2 (en) Extensible bios interface to a preboot authentication module
US20140298324A1 (en) System and method for automated configuration of software installation package
EP1571526A1 (en) Metered execution of code
US8108907B2 (en) Authentication of user database access
US6678682B1 (en) Method, system, and software for enterprise access management control
US8082551B2 (en) System and method for sharing a trusted platform module
CN103034799A (zh) 一种内核级的桌面访问控制方法
US20090007256A1 (en) Using a trusted entity to drive security decisions
US9633206B2 (en) Demonstrating integrity of a compartment of a compartmented operating system
EP2306309B1 (en) Method and apparatus for simulating image processing apparatus
US8701116B2 (en) Method for managing the shared resources of a computer system, a module for supervising the implementation of same and a computer system having one such module
CN1378172A (zh) 以存储卡来保护软件的系统与方法
Dillman NetWare 3. x
Schacht et al. User Requirements for Computer Security

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150512

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150512

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.