CN102105848A - 用于管理硬件资源的资源管理器 - Google Patents
用于管理硬件资源的资源管理器 Download PDFInfo
- Publication number
- CN102105848A CN102105848A CN2009801292729A CN200980129272A CN102105848A CN 102105848 A CN102105848 A CN 102105848A CN 2009801292729 A CN2009801292729 A CN 2009801292729A CN 200980129272 A CN200980129272 A CN 200980129272A CN 102105848 A CN102105848 A CN 102105848A
- Authority
- CN
- China
- Prior art keywords
- resource
- explorer
- state
- interdependent
- change
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3287—Power saving characterised by the action undertaken by switching off individual functional units in the computer system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2145—Inheriting rights or properties, e.g., propagation of permissions or restrictions within a hierarchy
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
提供了一种资源管理器,所述资源管理器被配置以便管理计算设备中的多个硬件资源。根据多个硬件资源中的每个硬件资源的记录以及关于所述多个硬件资源之间的依赖性的指示来管理资源。
Description
技术领域
本发明在特定实施例中涉及计算设备,并且在进一步的实施例中涉及维护计算设备中的硬件资源的记录。
背景技术
很多计算设备具有操作为移动计算设备的选项。然而,这确实需要移动电源,大多数常常是电池的形式。但是,移动电源受限于它们可以向计算设备递送电力的持续时间。
“硬件组件”可以指的是计算设备中向该设备的用户提供特定功能性的元件。类似地,术语“硬件资源”可以用于指代可由设备的软件来控制的该设备的硬件的任何部分。使用硬件资源(诸如设备驱动器、内核dll等)的软件可以被称为这些资源的“客户机”。相依资源(dependentresource)可以被称为“父代”资源和“子代”资源,其中“子代”资源依赖于“父代”资源。
计算设备包括多个硬件资源,诸如时钟源、可控电压调节器、电源开关,并且通过这些硬件资源来控制设备的其它硬件组件,诸如照相机或显示器。然而,这些硬件资源常常相互依赖,所以特定资源的改变可能在其它资源上以及因此在相应的硬件组件上产生非预期的结果。此外,特定资源可能依赖于其它资源。
发明内容
本发明的实施例延伸到一种资源管理器,所述资源管理器被配置以便:根据多个硬件资源中每个硬件资源的记录以及关于所述多个硬件资源之间的依赖性的指示来管理计算设备中的所述多个硬件资源。
本发明的进一步实施例延伸到一种方法,所述方法包括:建立计算设备中多个硬件资源中的每个硬件资源的记录,以及维护关于所述多个硬件资源之间的依赖性的指示。
本发明的进一步实施例延伸到存储了计算机程序的计算机可读存储器,所述计算机程序被配置以便:当在计算机的处理器上操作时使得所述处理器执行前述方法。
本发明的进一步实施例延伸到一种资源管理器,所述资源管理器被配置以便管理计算设备中的多个硬件资源,所述资源管理器被配置以便:
确定依赖于所述多个资源中的至少一个资源的相依电力资源;
确定所述资源中的至少一个资源的改变是否按照可接受的方式来影响所述相依电力资源;以及
如果所述改变按照可接受的方式来影响所述相依电力资源,则改变所述至少一个资源的所述电力状态。
在本发明的实施例中,通过维护关于硬件资源之间的依赖性的指示,资源之间的互依赖性的模型可以被维持,并且用于通过例如节省设备的电力消耗来维护计算设备。
本发明的实施例依赖于硬件资源的记录,并且只要这样的记录存在或可以被生成,这些实施例可以被调整以并入相对大数目的资源和依赖性。此外,本发明的实施例与平台、操作系统或硬件无关。
附图说明
参照附图在下文中描述了本发明的实施例,在附图中:
图1是移动计算设备的示意图;
图2是表示并入了本发明实施例的图1的移动计算设备的一部分的框图;
图3图示了根据本发明实施例的图1的设备的特定硬件组件、硬件资源和对应状态的表格表示;
图4是图3的硬件资源之间的依赖性的示图;
图5是根据本发明实施例的移动计算设备的硬件资源之间的依赖性的示图;
图6是根据本发明实施例的用于验证硬件资源依赖性示图中目标节点的状态改变的结果的过程图;
图7是根据本发明实施例的用于改变硬件资源依赖性示图中节点的状态的过程图;以及
图8是图示了根据本发明实施例的用于改变资源的状态的过程的过程图。
具体实施方式
图1是具有壳体12的移动计算设备10的示意图。壳体12封装了键板14、显示器16、扬声器18和扩音器20。设备10进一步包括天线22。图1中图示的移动计算设备10可以用作电话,并且在该实例中经由天线22发送和接收电信信号。虽然计算设备10是移动计算设备,但是本发明的其它实施例实现在不一定移动的计算设备上。
图2是移动计算设备10的特定组件的示意图示。设备10包括内核24,其表示设备10的操作系统。在所示的实施例中,操作系统是操作系统。然而,本发明不限于此方面。在该实施例中,内核24借助于存储器管理单元28可在操作上连接到系统存储器30。设备驱动器32、34和38可在操作上连接到内核24,并且控制以下各个硬件组件的行为以及与以下各个硬件组件的特定通信:中央处理单元(CPU)40;照相机42;闪光灯44;以及显示器16。用户借助于用户程序与设备10进行交互,图2中图示了作为用户程序之一的用户程序26。用户程序26借助于内核24和相应的设备驱动器而与设备10的硬件(诸如显示器16)进行通信。应当意识到,移动计算设备10包括很多比这里图示的硬件组件更多的硬件组件。计算设备的这些方面在本领域中是已知的并且因此在此将不会进一步描述。
电力资源管理器36可在操作上连接到设备驱动器32、34和38,并且能够通过与其相应设备驱动器的交互来控制设备10的硬件组件的硬件资源。在图2的图示中,电力资源管理器36已经被图示为与内核24分离的组件。然而,电力资源管理器36可以被实现为内核24的一部分;本发明的实施例不受实现电力资源管理器的方式的影响。在实施例中,电力资源管理器36是相对低级别的组件,其具有对设备10的各种硬件组件的直接访问(即,资源管理器36能够改变它所连接的硬件组件的资源的状态,而不必与任何其它硬件资源或内核24协商该改变)。
电力资源管理器36维护适于登记到电力资源管理器36上的那些硬件组件和资源的记录。该记录被保存在系统存储器30中所维护的资源管理器数据库39中。资源管理器数据库由发布应用编程接口(API)的资源管理器来填充(populate),通过API,硬件组件能够登记其硬件资源。可以认为硬件组件包括至少两种:静态组件和动态组件。静态组件及其对应的资源是那样一些硬件组件,即,它们将总是在设备中呈现并且在没有禁用设备的情况下无法被移除(例如,显示器16)。动态组件及其对应的资源是那样一些硬件组件,即,它们可以在设备10可操作的同时被安装和被移除(例如,闪速存储器)。
静态资源和动态资源都可以进一步被分类为二元资源或多级资源。二元资源是可以接通或断开的那些硬件资源。多级资源是电力级别可以在接通与断开之间递增地变化的那些硬件资源。下面将参照图8更详细地对此进行讨论。
在特定实施例中,当计算设备正在自举时,建立用于静态资源的记录。当向计算设备添加动态资源时,建立用于动态资源的记录。根据本发明实施例的记录能够容纳静态和动态硬件组件及其资源。当从设备移除相应资源时,可以删除记录。如此,记录可以保持最新以便正确地反映计算设备中的可用资源。
登记资源的方式将取决于该资源是属于静态硬件组件还是动态硬件组件。静态资源的登记发生在设备10的自举时间,而动态资源的登记发生在安装相应的组件时。类似地,静态资源的撤销登记将发生在设备10关闭时,而动态资源的撤销登记将发生在移除相应的组件时。
关于多个硬件资源之间的依赖性的指示可以针对与相依硬件资源相对应的每个记录来包括关于依赖性的指示。依赖性可以是电力依赖性。
可以通过使用本发明的实施例来实施以下情况:资源涉及电力消耗,对设备消耗的电量的仔细控制;其进而支持更有效的计算设备。通过跟踪硬件资源的电力依赖性,在实施例中可以确保这些资源并不消耗比用来维持其功能性所需更多的电力,从而导致可用电力的更有效的利用。
在特定实施例中,确定目标资源的所有依赖性。在备选实施例中,仅确定一个或多个目标资源的一个或一些依赖性。
图3以表格形式图示了向作为电力资源管理器的资源管理器36登记的数据种类。表46包括两列:硬件列48和硬件资源列50。硬件组件:照相机42、CPU 40、闪光灯44和显示器14通过举例的方式被列在硬件列48下方。应当意识到,电力资源管理器36能够登记与很多比图3所示出的硬件组件更多的硬件组件有关的信息。
表46中还图示了列50中所列出的与列48的硬件组件相对应的硬件资源。因此,照相机42具有硬件资源:(在该例中)聚焦、曝光和视频。聚焦资源是自动聚焦特征,曝光特征设置了照相机的孔径,并且视频资源确定了由照相机捕获的是静止图片还是视频。以类似的风格,CPU 40具有时钟速度调节器资源,其确定了CPU 40的速度。闪光灯组件具有允许对闪光灯进行充电的闪光灯充电开关,以及操作闪光灯的操作开关。屏幕具有背光灯亮度调节器,其确定了屏幕的背光灯的明亮程度。
图3的表52含有表46的列50中所列出的每个硬件资源(这里在列54中列出)。伴随每个资源,在列56中列出了该资源的状态。特定的状态涉及二元资源,并且因此具有二元设置,诸如被接通或断开的聚焦资源;确定是否启用了照相机的自动聚焦特征。其它资源涉及多级资源,并且因此具有可采用多个设置之一的状态。这已经通过标记“<设置>”来指示。例如,CPU速度调节器可以被设置成使得CPU速度是以下三个值之一:低、中或高。
然而,图3的表格并没有图示资源之间的依赖性。为了跟踪这些依赖性,该实施例的电力资源管理器36按照示图来维护与设备10的硬件组件和硬件资源有关的信息。该示图被存储在资源管理器数据库39中。该示图的节点表示资源,并且该示图的边表示资源之间的依赖性。就此而言,在该实施例中,该示图的节点可以被认为是资源的记录,并且边可以被认为是关于资源之间的依赖性的指示。
在特定实施例中,资源之间的依赖性可以通过示图来表示,其中每个记录是示图中的节点,并且依赖性是示图的边。
示图特别适于对计算设备中硬件资源之间的互依赖性进行建模,因为如此,可以使用相对简单且容易维护的结构来对相对复杂的依赖性进行建模。此外,示图很容易进行标度并且可以适于对各种硬件平台和操作系统进行建模。
在实施例中,可以根据依赖性的优先级来对示图的边进行加权。
图4中示出了图3中所示的特定资源的示图100的简单例子。照相机曝光资源通过节点80来表示,CPU时钟调节器通过节点82来表示,开关上的闪光灯通过节点88来表示,并且闪光灯充电开关通过节点92来表示。
如上所述,资源之间的依赖性是示图100的边。为了在合理数量的时间中计算照相机32所需要的孔径,要求针对CPU速度的最小设置。因此,照相机曝光资源取决于CPU时钟调节器资源。这通过从节点80到节点82的定向边84来反映。因此,节点82是子代节点80的父代。
类似地,在该实施例中,开关上的闪光灯资源(节点88)要求由曝光资源(节点80)来计算和设置曝光设置。因此,定向边86从节点88延伸到节点80。开关上的闪光灯资源(节点88)也取决于闪光灯充电开关(节点88),因为除非闪光灯已被充电,否则无法操作闪光灯。通过从节点88到节点92的定向边90来图示这种依赖性。
图4的示例示图是相对简单的结构。在实践中,用于设备的依赖性示图可能比图4所示的示图更复杂。例如,图4的示图仅图示了节点之间的单依赖性。然而,一些资源将直接依赖于不止一个其它资源。在该实例中,示图可以包括被加权的边,其中根据依赖性的优先级来对边进行加权。
当所选择的资源具有不止一个依赖性时,与所选择的资源的每个依赖性相关联的优先级可以被包括在与所选择的资源相对应的记录中。对依赖性进行优先级排列确保了:可以按照资源的优先级顺序来执行对记录的任何使用,以便改变状态或通知资源的客户机。
图5图示了资源依赖性的更复杂的示图110。示图110图示了假想资源A(节点112)、D(节点116)、F(节点120)、E(节点124)、C(节点128)、G(节点132)和H(节点136)的依赖性。如图5所示,下面的节点依赖于彼此:节点A 112和D 116(边114);节点D 116和E 124(边122);节点D 116和F 120(边118);节点E 124和C 128(边126);节点E 124和G 132(边130);以及节点G 132和H 136(边134)。因为所涉及的每个节点都是相互依赖的,所以边114、118、122、126、130和134是双向边。此外,因为一些节点具有多个依赖性,所以根据表示图5中的依赖性的边的箭头头部旁边出现的数字来对边进行优先级排序。所以,举例来说,通过节点D表示的硬件资源按照优先级的顺序而依赖于通过节点A 112(优先级1)、节点E 124(优先级2)和节点F 120(优先级3)表示的硬件资源。
图4和图5的示图是属于静态和动态组件这二者的资源的表示。不管是在自举时间添加了对应的节点(静态资源)或者当安装了对应的组件(动态资源)时,节点的添加都将涉及建立与相依资源的边以及确定那些边的优先级。为每个资源指定依赖性和优先级,并相应地建立示图的边。
在特定实施例中,当向示图添加新节点时,执行检查以确保没有引入环形依赖性(circular dependency)。该检查涉及:在已经添加了新节点时沿着示图的每个边,并且验证每个节点在示图中仅出现一次。应当意识到,不止一个示图可以用于表示计算设备的所有资源。
环形依赖性可以导致前向馈送(feed-forward)情形,在该情形中,过程(其取决于记录)在循环中被卡住(stuck)。通过检查不存在环形依赖性,可以最小化在循环中绊住(caught)设备的可能性。
在这些实施例中,在建立记录之后以及在利用记录之前,为记录执行对于不存在环形依赖性的验证。通过在使用记录之前检查环形依赖性,可以降低设备将进入不经济的循环的可能性。
此外,在这些实施例中,确定目标状态的状态改变将对被确定成依赖于目标资源的一个或多个资源的影响。这样的初始测试可以确保最终的改变将不会导致错误。
在这些实施例中,对于被确定成相依的每个资源,确定是否存在依赖于所述相依资源的其它资源,并且重复该确定,直到已经找到所有相依资源,并且然后确定所述目标状态的状态改变将对被发现是相依的每个资源的影响。在这种情况下,仅当确定该改变对于依赖于目标资源的每个资源的影响是可接受时才改变所述目标资源的状态。
如果需要改变这些资源中的一个资源的状态,那么检查所建议的状态(即目标状态)与相依资源的节点的状态相容。如果存在不止一个依赖性,则按照优先级顺序来检查相依节点。在一个实施例中,仅当已验证了状态改变是可允许的时候,才会实现状态改变。
图6图示了一示例过程,其用于验证资源的目标状态与依赖于该资源的并且该资源所依赖于的其它资源相容。出于清楚起见,要改变状态的资源被称为“目标资源”,并且对应的节点被称为“目标节点”。在图示的实施例中,图6和图7两者的过程通过资源管理器36来执行。
参照图6,在框152中,目标节点被设置为当前节点。然后该过程移动到框154,其中,为当前节点确定是否存在任何未处理的相依节点。因为当前节点是目标节点并且先前没有实现该框154,所以这里将确定是否存在目标节点所依赖于的或依赖于目标节点的任何节点。如果没有这样的相依节点,则该过程将移动到框158,其中,将为目标节点检查预期的目标状态。换句话说,在框158,确定目标节点是否能够进入被指定为目标状态的状态。
如前所述,节点对应于由软件控制的硬件资源。软件可以包括用于确定节点是否能够进入特定状态的有关信息。这可以取决于相依节点的状态,并且因此,框158可以在适当的情形下涉及:查明所有(或仅一些)相依节点的状态,以及将这些状态与那些节点的非可允许状态的列表进行比较。如果该比较是良好的(favourable),则该过程报告:目标节点能够进入被指定为目标状态的状态。
在备选实施例中,对每个硬件资源的当前级别以及每个相依资源的需求维持记录。如果状态的改变导致硬件资源的电力使用增加,则这是被允许的,除非所请求的改变将导致电力使用超过预定的最大值。如果状态改变导致请求减少电力使用,则这仅在没有其它请求超出(exceed)该新状态的情况下是允许的。下面参照图8描述了用于改变节点的状态的过程以及确定节点是否能够进入目标状态的进一步考虑。
如果目标节点能够进入目标状态,则该过程继续到框164。如果存在由框158的测试所报告的错误,则该过程将中止并且由此在框162处停止。
返回框154,如果确定存在连接到目标节点的相依节点,则该过程将继续到框156,其中,这些节点中的第一个节点被设置为当前节点,并且该过程将返回框154,并为这一新的当前节点测试是否存在相依节点。将按照在存在不止一个相依节点的情况下它们的依赖性的优先级顺序来处理这些相依节点。在数据库39中保存关于哪些节点已经被测试了依赖性以及哪些节点还没有被测试依赖性的记录。
如图6所示,框154和156形成循环,在该循环的末尾,当前节点将是不具有任何进一步依赖性的节点(这将是终结节点)。该过程然后将继续到框158,并且如先前阐述地前进到框158和160,但是就当前节点而言,其现在不是目标节点。
在框164,该过程将确定示图中是否存在还没有执行框158的测试的任何更高级别的节点。这是通过考虑是否存在依赖于当前节点的任何节点(其本身具有尚未处理的相依节点)来完成的。如果确定存在这样的未处理的节点,则该过程将下一未处理的节点设置为当前节点并且返回框154,从框154开始将按照上述那样继续。
按照这样的方式,示图的每个节点将经历框158的测试,其中,确定该节点是否能够进入与进入目标状态的目标节点相容的状态。因此,一旦对于示图的每个所需节点已经完成了图6的过程,电力资源管理器36就能够确定与目标节点形成相依关系的每个资源是否能够按照与目标状态相容的方式来更改它们的状态。
在本发明的特定实施例中,根据记录中所编译的信息或者关于与目标资源相对应的依赖性的一个或多个指示来更改目标资源的状态。
通过根据关于硬件资源之间的依赖性的指示来更改硬件资源的状态,可以确保在改变这些资源中的一个资源的状态时可以考虑这些依赖性。如此,可以避免与相依资源的状态不相容的一个资源的状态。
一旦成功地完成了测试过程,则电力资源管理器36会将目标节点的状态改变成目标状态。图7中图示了用于这么做的示例过程。该过程类似于图6的过程。
在图7中,在框202,目标节点被设置为当前节点。在框204中,确定是否存在与当前节点形成相依关系的任何节点。如果存在相依节点,则该过程将移动到框206,其中,具有最高优先级的下一未处理的节点被设置为当前节点,并且该过程返回框204。在完成由框204和206所构成的循环之后,当前节点将是示图的终结节点。
在这些实施例中,在将目标资源的状态更改成目标状态之前,更改相依资源的状态。
在改变相依资源的状态而自动地改变了目标资源的状态的情况下,如果可以在更改目标资源的状态之前更改相依资源的状态以确保所有资源进入预期状态的话,则是有益的。此外,在资源之间存在不止一个依赖性的情况下,可以在相依资源之间发展级联效果,并且确保预期的状态结果,重要的是首先改变相依资源的状态。在依赖性被图示为示图的情况下,这是通过改变那些资源(其节点驻留在示图的终结分支处)的状态来完成的。
返回参照图7,该过程然后将前进到框208,其中,当前节点的状态被设置成由目标节点的目标状态所确定的那个状态。应当意识到,对于依赖性示图中的特定相依节点来说,一个节点的状态改变将自动地改变另一节点的状态。因此,框208的过程(对于通过该步骤的后续迭代来说)可能已经被实现。在这种情况下,该过程将前进到框210。
框210测试由于框208中的状态设置所导致的错误。如果发生错误,则该过程将终止于框212。如果没有发生错误,则该过程前进到框214。在框214,该过程将确定:是否存在还没有被设置状态的相对于当前节点的任何相依节点。如果确实存在这样的节点,则该过程将继续到框218,其中,具有最高优先级的还没有被设置状态的下一相依节点成为当前节点。该过程然后在这一新的当前节点的情况下返回框204,并且重复。
另一方面,如果不存在框214中所检测到的未处理的更高级别的节点,则确定示图的所有节点已经设置了它们的状态并且该过程在216处结束。
该过程允许根据其依赖性的优先级来设置资源的状态改变,从而确保直到已经首先适当地改变了形成相互间依赖关系的那些节点才设置节点的状态。
通过例子,图6的过程被应用于图5的示图。如果我们假设通过节点D 116表示的资源要改变(即,节点D是目标节点),则电力资源管理器将首先查询节点A 112(其具有连接到节点D 116的节点的最高优先级),以便确定针对将受到影响的节点D的所期望的改变,节点A 112将需要处于什么状态,并且然后确定节点A 112是否可以移动到该状态。对节点E 124重复该过程。然而,在可以对节点E 124做出该确定之前,资源电力管理器36需要确定所建议的改变将如何影响节点C 128和G 132。对节点G 132的确定进而需要关于节点H 136的确定。现在返回节点D 116,关于节点F120进行最后的确定。
因此,根据该实施例,该过程将确定所请求的改变将以下面的顺序而产生的影响:
节点A 112;节点C 128;节点H 136;节点G 132;节点E 124;节点F 120;以及最后的节点D 116。
类似地,将图7的过程应用于图5的示图,将按照相同的顺序来传播通过由节点D 116所表示的资源的状态改变所造成的改变:
节点A 112;节点C 128;节点H 136;节点G 132;节点E 124;节点F 120;以及最后的节点D 116。
在特定实施例中,期望通知由示图所表示的资源的客户机:已经改变了状态。再者,可以在目标节点通知其客户机之前,首先将对于通知的请求传播到所有相依节点。根据本发明的这些实施例,依照包含或存储在记录中的信息来更改目标资源的客户机。
当更改资源的客户机时,在通知过程期间考虑资源之间的依赖性,并且这有助于确保按照它们的依赖性的顺序来正确地通知客户机。
特别地,在目标资源的客户机被更改成该改变之前,将与目标资源形成依赖性的每个资源的客户机更改成该改变。
参照图5的例子:
通知节点A 112的任何客户机,接着通知节点C 128的客户机,接着通知节点H 136的客户机,接着通知节点G 132的客户机,接着通知节点E 124的客户机,接着通知节点F 120的客户机,接着通知节点D 116的客户机。该过程与图6和图7的过程相似并且以相同的方式来操作。
图8表示由此来更改资源的状态的过程。如前所述,电力资源可以是二元资源或多级资源。对于二元资源来说,资源管理器36维护与数据库39中的资源相对应的使用计数器(usage counter)。由电力资源管理器36提供的用于该资源的API包括use()函数,当硬件驱动器需要该资源时调用该函数。当特定硬件驱动器不再需要该资源时调用release()函数。
use()函数使得使用计数器递增,并且release()函数使得使用计数器递减。当使用计数器从0变成1时,接通相应的组件。当使用计数器从1变成0时,断开相应的组件。
通过资源管理器的API来提供进一步的函数。提供了用于返回使用计数器的当前值以及组件的当前状态的函数。可以在各种设备驱动器之间共享组件,并且一些组件限制了可以共享该组件的设备驱动器的数目。对于这样的组件,使用计数器具有预定的最大级别。将拒绝对于共享其使用计数器已经达到预定最大值的资源的请求。
按照与二元资源相似的方式由资源管理器36来管理多级资源。对于多级资源来说,资源管理器同样维护根据使用该资源的设备驱动器的数目而递增和递减的使用计数。另外,资源管理器跟踪多级资源的级别,并且仅允许级别在特定情况下递增或递减:如果请求改变级别的驱动器是使用该资源的唯一驱动器(使用计数是1),那么允许该改变。如果存在使用该资源的不止一个驱动器,则仅当该改变与使用该资源的所有驱动器的使用要求相容时才允许该改变。
因此,对于多级资源,电力资源管理器36将使用数据库39来另外跟踪使用该资源的所有驱动器的级别要求。
在图8中,框250表示资源管理器36接收到电力控制请求。在接下来的框(框252),资源管理器36确定该资源是否是多级资源。如果该资源是多级资源,则该过程将前进到框254,其中,确定所接收到的请求是否是降低该资源的级别的请求。如果该请求是降低级别的请求,则该过程移动到框256,其中,确定该资源是否处于其最大允许级别。如果该资源处于最大允许级别,那么无法满足对于增加级别的请求,并且该过程前进到框260,这表示失败状态并且从此该过程在框262处结束。
返回框256,如果确定该资源没有处于其最大允许级别,则该过程将前进到框264,其中使级别递增。此后,该过程将前进到框268,其中,在数据库39中记录新的电力级别和使用级别(如果从新的驱动器接收到电力控制请求的话)。然后,该过程将前进到下面讨论的框292。
在框254,其中确定控制请求是否是对于降低电力级别的请求,如果确定是肯定的,则该过程前进到框258,其中确定该资源是否处于其最小电力级别。如果该资源处于其最小电力级别,那么无法降低级别,所以该过程将通过进入失败框260而失败,并且然后在框262处结束。然而,如果该资源没有处于其最小电力级别,那么在框266处降低电力级别。一旦已经降低了电力级别,则在数据库39中记录新的电力级别和使用级别(如果从新的驱动器接收到电力控制请求的话)。然后,该过程将前进到下面讨论的框292。
返回框252,如果确定该资源不是多级资源,那么假定该资源是二元资源。该过程前进到框270,其中确定请求是否是对于使用该资源的请求。如果请求是使用请求,则在框272处进行确定,以便确定对该资源的使用计数是否处于最大级别。资源管理器36通过查询数据库39并且确定当前使用级别是否等于所存储的该资源的最大级别来这么做。
如果在框272处确定使用计数处于最大值,则没有附加的驱动器可以被所请求的资源支持,并且因此该请求在框274处失败。该过程然后将在框276处结束。然而,如果在框272处确定该资源还没有达到其最大使用级别,则该过程将前进到框278,其中确定该资源的使用计数是否等于零。如果对于所请求的资源来说使用计数确实等于零,则该过程前进到步骤280,在那里接通该资源。然后,该过程进行到步骤282,其中,使用计数递增并且新的计数被记录在数据库39中。如果在框278处确定该资源已经接通,则该过程将从框278直接前进到框282。从框282开始,该过程前进到下面讨论的框292。
如果在框270处的确定确定了该请求不是对于使用该资源的请求,则假定该请求是对于释放该资源的请求。在这种情形下,该过程将前进到框284,其中,对于该资源的使用计数将递减。然后,该过程将在下一个框286处确定被递减的使用计数是否等于零。如果使用计数确实等于零,则过程将前进到框288,在那里该资源将被断开。然后,该过程将前进到框290,其中,由资源管理器36将现在被递减的使用计数记录在数据库39中。如果在框286处确定使用计数不是零,则该过程将直接前进到框290。从框290开始,该过程前进到框292。
在已经更改了特定资源的级别或使用计数之后,该特定资源需要时间来稳定。因此,在步骤292,确定当前资源是否需要稳定。如果资源确实需要稳定,则该过程前进到框294,其中对该资源进行请求的(一个或多个)驱动器的线程被布置成休眠达到足以允许资源稳定的一段时间。此后,该过程将在框296终止。类似地,如果在框292处确定不需要稳定,则该过程将直接进入框296,在框296该过程将终止。
应当意识到,在图示的实施例的失败框260和274中的每一个处,适当的错误消息被返回到进行请求的驱动器,从而使得可以得体地处理故障。
在以上实施例中,请求和使用资源的是硬件驱动器。在备选实施例中,其它软件模块或硬件元件是请求和使用资源的实体。
本领域技术人员将理解,替代实现是可能的,并且在由所附的权利要求定义的本发明的范围内,可以对上述方法和实现做出各种修改。还应当注意,在此所描述的特征和过程元素的任何组合可以在本发明的不同实施例中进行组合或省略。
在上述和附图中图示的实施例中,电力资源管理器被图示和描述为单个组件。然而,在进一步的实施例中,资源管理器的功能由多个组件来执行。在进一步的实施例中,资源管理器形成更大组件的子集。
在上述实施例中,特定组件已被描述为软件,并且其它被描述为硬件。应当意识到,在很多情况下,提供作为硬件的组件可以以软件来实现,并且反之亦然。
Claims (46)
1.一种资源管理器,所述资源管理器被配置以便:根据多个硬件资源中每个硬件资源的记录以及关于所述多个硬件资源之间的依赖性的指示,管理计算设备中的所述多个硬件资源。
2.根据权利要求1所述的资源管理器,其中,关于所述多个硬件资源之间的依赖性的所述指示针对与相依硬件资源相对应的每个记录包括了关于依赖性的指示。
3.根据权利要求1或权利要求2所述的资源管理器,其中,所述依赖性是电力依赖性。
4.根据权利要求3所述的资源管理器,其中,当所选择的资源具有不止一个依赖性时,所述资源管理器被配置以便:根据与所述所选择的资源的一个或多个依赖性相关联的优先级来管理所述所选择的资源。
5.根据任何前述权利要求所述的资源管理器,其被配置以便:验证对于给定记录不存在环形依赖性。
6.根据权利要求5所述的资源管理器,其被配置以便:在建立所述给定记录之后以及在利用所述给定记录之前实现所述验证。
7.根据任何前述权利要求所述的资源管理器,其被配置以便:当通过示图来表示所述资源之间的依赖性时管理所述资源,其中,一个或多个所述记录是所述示图的节点并且所述依赖性是所述示图的边。
8.根据任何前述权利要求所述的资源管理器,其被配置以便:维护所述记录和关于依赖性的所述指示。
9.根据权利要求8所述的资源管理器,其中,所述资源管理器被配置以便:当计算设备自举时为静态资源建立记录。
10.根据权利要求8或权利要求9所述的资源管理器,其中,所述资源管理器被配置以便:当将动态资源添加到所述计算设备时,为所述动态资源建立记录。
11.根据权利要求10所述的资源管理器,其被配置以便:当从所述设备移除相应资源时删除记录。
12.根据任何前述权利要求所述的资源管理器,其被配置以便:根据一个或多个所述记录中的信息或者与目标资源相对应的一个或多个关于依赖性的所述指示,更改所述目标资源的状态。
13.根据权利要求12所述的资源管理器,当从属于权利要求时,其被配置以便:根据所述优先级来更改所述相依资源的所述状态。
14.根据权利要求13所述的资源管理器,其被配置以便:参照所述一个或多个记录或者与所述目标资源相对应的关于依赖性的所述一个或多个指示,确定依赖于所述目标资源的资源。
15.根据权利要求14所述的资源管理器,其被配置以便:确定所述目标资源的状态改变将对被确定成依赖于所述目标资源的一个或多个资源的影响。
16.根据权利要求15所述的资源管理器,其被配置以便:仅当确定所述改变对依赖于所述目标资源的一个或多个资源的影响是可接受的时候,才改变所述目标资源的所述状态。
17.根据权利要求15或权利要求16所述的资源管理器,其被配置以便:对于被确定是相依的每个资源,确定是否存在依赖于所述相依资源的其它资源;重复所述确定,直到已经确定了所有的相依资源;以及确定所述目标状态的状态改变将对被确定是相依的每个资源的影响。
18.根据权利要求15至17中任何一项所述的资源管理器,其被配置以便:在将所述目标资源的所述状态更改成所述目标状态之前,更改所述一个或多个相依资源的状态。
19.根据权利要求18所述的资源管理器,其被配置以便:依照所述被确定的依赖性来更改所述一个或多个相依资源的所述状态。
20.根据权利要求12至19中任何一项所述的资源管理器,其被配置以便:依照包含在所述记录中的信息来更改所述目标资源的一个或多个客户机。
21.根据权利要求20所述的资源管理器,其被配置以便:在所述目标资源的客户机被更改成所述改变之前,将与所述目标资源形成依赖性的一个或多个资源的一个或多个客户机更改成所述改变。
22.一种方法,其包括:建立计算设备中的多个硬件资源中的每个硬件资源的记录,以及维护关于所述多个硬件资源之间的依赖性的指示。
23.根据权利要求22所述的方法,其中,关于所述多个硬件资源之间的依赖性的所述指示针对与相依硬件资源相对应的每个记录包括了关于依赖性的指示。
24.根据权利要求22或权利要求23所述的方法,其中,所述依赖性是电力依赖性。
25.根据权利要求24所述的方法,其进一步包括:当所选择的资源具有不止一个依赖性时,将优先级与所述所选择的资源的一个或多个依赖性相关联。
26.根据任何前述权利要求所述的方法,其进一步包括:验证对于给定记录不存在环形依赖性。
27.根据权利要求26所述的方法,其中,在建立所述给定记录之后以及在利用所述给定记录之前实现所述验证。
28.根据权利要求22至27中任何一项所述的方法,其中,当计算设备自举时为静态资源建立记录。
29.根据权利要求22至28中任何一项所述的方法,其中,当将动态资源添加到所述计算设备时,为所述动态资源建立记录。
30.根据权利要求29所述的方法,其包括:当从所述设备移除相应资源时删除记录。
31.根据权利要求22至30中任何一项所述的方法,其包括:将资源之间的所述依赖性表示为示图,其中,一个或多个所述记录是所述示图的节点,并且一个或多个所述依赖性是所述示图的边。
32.根据权利要求31所述的方法,当从属于权利要求25时,其中,根据所述优先级来对所述边进行加权。
33.根据权利要求22至32中任何一项所述的方法,其进一步包括:根据所述一个或多个记录或者与目标资源相对应的关于依赖性的所述一个或多个指示,更改所述目标资源的状态。
34.根据权利要求33所述的方法,其进一步包括:
参照所述记录来确定依赖于所述目标资源的资源。
35.根据权利要求34所述的方法,其进一步包括:确定所述目标资源的状态改变将对被确定成依赖于所述目标资源的一个或多个资源的影响。
36.根据权利要求35所述的方法,其中,仅当确定所述改变对依赖于所述目标资源的一个或多个资源的影响是可接受的时候,才改变所述目标资源的所述状态。
37.根据权利要求35或权利要求36所述的方法,其进一步包括:对于被确定是相依的一个或多个资源,确定是否存在依赖于所述相依资源的其它资源;重复所述确定,直到已经确定了所有的相依资源;以及确定所述目标状态的状态改变将对被确定是相依的所述一个或多个资源的影响。
38.根据权利要求35至37中任何一项所述的方法,其进一步包括:在将所述目标资源的所述状态更改成所述目标状态之前,更改所述相依资源的一个或多个状态。
39.根据权利要求38所述的方法,其中,依照所述被确定的依赖性来更改所述相依资源的所述一个或多个状态。
40.根据权利要求39所述的方法,当从属于权利要求25时,其中,根据所述优先级来更改所述相依资源的所述一个或多个状态。
41.根据权利要求33至41中任何一项所述的方法,其进一步包括:依照包含在所述记录中的信息或者关于依赖性的所述指示来更改所述目标资源的客户机。
42.根据权利要求41所述的方法,其中,在所述目标资源的客户机被更改成所述改变之前,将与所述目标资源形成依赖性的每个资源的客户机更改成所述改变。
43.一种存储了计算机程序的计算机可读存储器,所述计算机程序被配置以便当在计算机的处理器上操作时,使得所述处理器实现权利要求22至42中任何一项所述的方法。
44.一种资源管理器,其被配置以便管理计算设备中的多个硬件资源,所述资源管理器被配置以便:
确定依赖于所述多个资源中的至少一个资源的相依电力资源;
确定所述至少一个资源的改变是否按照可接受的方式来影响相依电力资源;以及
如果所述改变按照可接受的方式来影响相依电力资源,则改变所述至少一个资源的所述电力状态。
45.根据权利要求44所述的资源管理器,其被配置以便:确定直接或间接依赖于所述至少一个资源的每个相依电力资源,以及如果所述改变按照可接受的方式来影响每个相依资源,则改变所述至少一个资源的所述电力状态。
46.根据权利要求45或权利要求46所述的资源管理器,其中,通过示图来图示所述多个资源之间的所述多个资源依赖性,其中,在所述示图中,所述资源具有对应的节点并且所述依赖性具有对应的边,并且其中,所述资源管理器被配置以便:通过改变在所述示图中经由边而连接到与所述至少一个资源相对应的节点的每个节点的状态,改变所述至少一个资源的所述状态。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB0811943.0 | 2008-06-30 | ||
GBGB0811943.0A GB0811943D0 (en) | 2008-06-30 | 2008-06-30 | Computing device |
PCT/IB2009/052771 WO2010001322A1 (en) | 2008-06-30 | 2009-06-26 | A resource manager for managing hardware resources |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102105848A true CN102105848A (zh) | 2011-06-22 |
Family
ID=39683390
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009801292729A Pending CN102105848A (zh) | 2008-06-30 | 2009-06-26 | 用于管理硬件资源的资源管理器 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20120144392A1 (zh) |
EP (1) | EP2307939A4 (zh) |
CN (1) | CN102105848A (zh) |
GB (1) | GB0811943D0 (zh) |
WO (1) | WO2010001322A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103782275A (zh) * | 2011-09-02 | 2014-05-07 | 高通股份有限公司 | 用于管理便携式计算装置的资源的系统和方法 |
CN108475360A (zh) * | 2015-12-31 | 2018-08-31 | 微软技术许可有限责任公司 | 分布式计算依赖管理系统 |
WO2018176812A1 (zh) * | 2017-03-31 | 2018-10-04 | 武汉斗鱼网络科技有限公司 | 静态资源发布方法及装置 |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8806502B2 (en) | 2010-09-15 | 2014-08-12 | Qualcomm Incorporated | Batching resource requests in a portable computing device |
US8601484B2 (en) * | 2010-09-15 | 2013-12-03 | Qualcomm Incorporated | System and method for managing resources and markers of a 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 |
US20120240125A1 (en) * | 2011-03-18 | 2012-09-20 | Qnx Software Systems Co | System Resource Management In An Electronic Device |
JP5751669B2 (ja) * | 2011-07-08 | 2015-07-22 | ルネサスエレクトロニクス株式会社 | 言語変換処理方法及び言語変換処理プログラム |
US8943504B2 (en) | 2012-04-20 | 2015-01-27 | Qualcomm Incorporated | Tracking and releasing resources placed on a deferred unlock list at the end of a transaction |
CN104283951B (zh) * | 2014-09-29 | 2018-03-27 | 华为技术有限公司 | 一种实例迁移的方法、装置及系统 |
CN105573463A (zh) * | 2014-10-17 | 2016-05-11 | 深圳市中兴微电子技术有限公司 | 一种功耗管理方法及装置 |
US9836695B2 (en) * | 2015-03-24 | 2017-12-05 | International Business Machines Corporation | Automated decision support provenance and simulation |
US10223226B2 (en) | 2016-11-14 | 2019-03-05 | International Business Machines Corporation | Controlling an electronic circuit |
US11126599B2 (en) * | 2017-01-24 | 2021-09-21 | Accenture Global Solutions Limited | Information validation method and system |
US20220413922A1 (en) * | 2021-06-23 | 2022-12-29 | Dell Products, L.P. | Platform framework configuration state management |
CN116795755B (zh) * | 2023-08-28 | 2023-12-08 | 上海移芯通信科技股份有限公司 | 一种基于物联网芯片的设备管理方法和装置 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5919264A (en) * | 1997-03-03 | 1999-07-06 | Microsoft Corporation | System and method for using data structures to share a plurality of power resources among a plurality of devices |
US6986127B1 (en) * | 2000-10-03 | 2006-01-10 | Tensilica, Inc. | Debugging apparatus and method for systems of configurable processors |
US7055046B2 (en) * | 2002-06-28 | 2006-05-30 | Microsoft Corporation | Power management architecture for defining component power states under a global power state and applying a new component power state when a new component power state is greater than a registered power state floor |
US7065663B2 (en) * | 2002-12-19 | 2006-06-20 | Intel Corporation | Methods and apparatus to control power state transitions |
US20050240795A1 (en) * | 2004-04-27 | 2005-10-27 | Nokia Corporation | Resource management system and method |
US7272741B2 (en) * | 2004-06-02 | 2007-09-18 | Intel Corporation | Hardware coordination of power management activities |
US20070180280A1 (en) * | 2006-02-01 | 2007-08-02 | Bolan Joseph E | Controlling the allocation of power to a plurality of computers whose supply of power is managed by a common power manager |
US8151272B2 (en) * | 2008-04-07 | 2012-04-03 | At&T Intellectual Property I, Lp | Optimized usage of collector resources for performance data collection through even task assignment |
-
2008
- 2008-06-30 GB GBGB0811943.0A patent/GB0811943D0/en not_active Ceased
-
2009
- 2009-06-26 US US13/001,908 patent/US20120144392A1/en not_active Abandoned
- 2009-06-26 WO PCT/IB2009/052771 patent/WO2010001322A1/en active Application Filing
- 2009-06-26 CN CN2009801292729A patent/CN102105848A/zh active Pending
- 2009-06-26 EP EP09772982A patent/EP2307939A4/en not_active Withdrawn
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103782275A (zh) * | 2011-09-02 | 2014-05-07 | 高通股份有限公司 | 用于管理便携式计算装置的资源的系统和方法 |
CN103782275B (zh) * | 2011-09-02 | 2017-10-24 | 高通股份有限公司 | 用于管理便携式计算装置的资源的系统和方法 |
CN108475360A (zh) * | 2015-12-31 | 2018-08-31 | 微软技术许可有限责任公司 | 分布式计算依赖管理系统 |
CN108475360B (zh) * | 2015-12-31 | 2021-06-08 | 微软技术许可有限责任公司 | 分布式计算依赖管理系统 |
US11757720B2 (en) | 2015-12-31 | 2023-09-12 | Microsoft Technology Licensing, Llc | Distributed computing dependency management system |
WO2018176812A1 (zh) * | 2017-03-31 | 2018-10-04 | 武汉斗鱼网络科技有限公司 | 静态资源发布方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
EP2307939A4 (en) | 2012-06-13 |
WO2010001322A1 (en) | 2010-01-07 |
US20120144392A1 (en) | 2012-06-07 |
GB0811943D0 (en) | 2008-07-30 |
EP2307939A1 (en) | 2011-04-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102105848A (zh) | 用于管理硬件资源的资源管理器 | |
CN105144074B (zh) | 使用混合存储器设备的块存储 | |
CN104067257A (zh) | 自动化事件管理 | |
US8909952B2 (en) | Power supply apparatus of computer system and method for controlling power sequence thereof | |
CN104185836A (zh) | 用于在系统改变之后验证计算设备的适当操作的方法和系统 | |
CN102541661B (zh) | 实现等待地址同步接口的方法和设备 | |
CN111221550B (zh) | 用于流式计算的规则更新方法、装置及流式计算系统 | |
CN110678850A (zh) | 自动化装置测试分类系统和技术 | |
CN104573497A (zh) | 一种启动项的处理方法和装置 | |
US10884818B2 (en) | Increasing processing capacity of virtual machines | |
US10884845B2 (en) | Increasing processing capacity of processor cores during initial program load processing | |
CN112598529B (zh) | 数据处理方法及装置、计算机可读存储介质、电子设备 | |
CN113342849A (zh) | 数据审核方法、装置、电子设备及存储介质 | |
CN110825425A (zh) | 配置数据管理方法及装置、电子设备、存储介质 | |
CN100394392C (zh) | 计算机程序还原模式自动启动控制方法及系统 | |
US10250456B2 (en) | Operational management in cloud computing systems | |
CN110908644A (zh) | 状态节点的配置方法、装置、计算机设备和存储介质 | |
CN107810475A (zh) | 用于虚拟计算环境的软件生命周期管理的方法和装置 | |
CN110058866B (zh) | 集群组件安装方法及设备 | |
US10990434B2 (en) | Increasing processing capacity of virtual machines for an abnormal event | |
CN103309799B (zh) | 基于有限状态机的调度测试方法、系统及其装置 | |
CN115022317B (zh) | 基于云平台的应用管理方法、装置、电子设备及存储介质 | |
CN115484149B (zh) | 网络切换方法、网络切换装置、电子设备及存储介质 | |
US20220215364A1 (en) | Electronic device, management method of electronic device, and program | |
CN112486501A (zh) | 一种Spark应用部署管理方法及相关设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20110622 |