资源管理方法、资源管理设备、资源管理程序及存储介质的制作方法

文档序号:6486202阅读:129来源:国知局
专利名称:资源管理方法、资源管理设备、资源管理程序及存储介质的制作方法
技术领域
本发明涉及用于管理针对电子设备的硬件资源分配的资源管理方法、资源管理设备、资源管理程序及存储介质。
背景技术
存在若干方法用于避免来自多个执行任务的使用硬件资源(下文简称为资源)的请求的冲突。举例说明,一个方法(下文称为第一方法)涉及按照预定优先级来限制使用资源的权利。另一方法(第二方法)是所谓的单任务方法,其在任何时间将可执行应用程序的数量限制为单个任务。又一方法(第三方法)涉及在任何时间仅允许已经获得资源的第一应用程序利用那些资源。再一方法(第四方法)涉及通过软件来实施一层,在该层中硬件资源通过抽象的实体来代表,从而这些资源可以虚拟方式被同时访问。
日本专利待审公开Hei 9-16416(图1)公开了用于分配硬件资源的技术。所公开的技术涉及根据请求的拥挤程度在多任务处理环境中调整资源处理请求的等待时间,使得这些资源可被择优分配。换而言之,根据其拥挤程度为较低优先级的处理请求进行不同的延迟,使得资源被择优地分配给较高优先级的请求。
然而,上面的第一和第二方法具有对应用程序的执行施加限制的缺陷;涉及较少操作限制的方法是优选的。第三方法要求资源请求在系统内具有同一优先级;优先级方面可能存在的任何差异均被忽略。如果想要通过第三方法按照优先级来分配资源,则有必要由使用者负责进行优先级管理。对于第四方法,高性能的环境比如个人计算机是强制性的;所涉及的方案对于具有有限功能和性能的设备比如移动电话来说是难以负担的。

发明内容
本发明是考虑到上述情况而做出的,提供了资源管理方法、资源管理设备、资源管理程序及存储介质,用于有效率和灵活地管理硬件资源在多个应用程序之间的分配,以便实施独占、无冲突的资源使用。
按照本发明的一个实施例,提供了一种资源管理方法,包括步骤从所述多个处理装置的任一个接受资源获取请求;确定与来自所述一个处理装置的所述资源获取请求相应的资源是否与将由另一处理装置使用的资源冲突;决定在资源使用方面被发现相互冲突的处理装置中应当被给予使用所涉及的资源的许可的处理装置;当从未被给予使用所述资源的许可的处理装置接收有关通知所述资源的释放的请求时,与该释放通知请求处理装置相结合地在列表中将相应于该释放通知请求的所述资源编目;当从已被给予使用所述资源的许可的处理装置接收说明所述资源已被释放的通知时,从所述列表中检查所述释放通知请求处理装置;以及将说明所述资源已被获取的获取完成通知发出到在所述列表检查步骤中从所述列表检查出的所述释放通知请求处理装置。
在上述实施例的一个优选变形中,可以逐个功能地接受资源获取请求,确定资源之间冲突的存在,决定是否给予使用资源的许可,将这些资源在列表中编目,检查该列表,以及发出获取完成通知,功能代表进行所需处理而需要的至少一个资源。
按照本发明,尽管是处理装置最终获取资源,但是资源管理设备对于如何确定资源之间冲突的存在、如何决定是否给予使用资源的许可、以及如何分配使用资源的权利实行管理。无法获取给定资源的处理装置可请求在所涉及的资源被释放时立即得到通知。如果以前正使用该资源的处理装置已经释放它,并且有任何处理装置请求得到有关所涉及的资源的释放的通知,则资源管理设备将向请求处理装置发出说明该资源已被释放的获取完成通知。
也就是,本发明的资源管理设备对于如何确定资源之间冲突的存在、如何决定是否给予使用资源的许可、以及如何分配使用资源的权利实行管理。如果以前正使用该资源的任何处理装置已经释放它,并且有另一处理装置请求得到有关该资源的释放的通知,则资源管理设备向请求处理装置发出说明该资源已被释放的获取完成通知。这使得能在多个处理装置之间(例如应用程序)有效率和灵活地分配资源,由此实施独占、无冲突的资源使用。


图1是示出了功能与资源之间对应关系的列表图;图2是概括了作为本发明实施例的进行资源管理的电子设备结构的方框图;图3是概括了作为体现本发明的电子设备实例的移动电话终端结构的方框图;图4是时序流程图,其示出了资源管理器如何管理在应用程序APP1与APP2之间关于资源使用的冲突,应用程序APP1在优先级上高于应用程序APP2,资源管理器未接收通知释放资源的请求;图5是时序流程图,其示出了资源管理器如何管理在应用程序APP1与APP2之间关于资源使用的冲突,应用程序APP1在优先级上高于应用程序APP2,资源管理器接收通知释放资源的请求;图6是时序流程图,其示出了资源管理器如何管理在应用程序APP1与APP2之间关于资源使用的冲突,应用程序APP1在优先级上等于或低于应用程序APP2,资源管理器未接收通知释放资源的请求;图7是时序流程图,其示出了资源管理器如何管理在应用程序APP1与APP2之间关于资源使用的冲突,应用程序APP1在优先级上等于或低于应用程序APP2,资源管理器接收通知释放资源的请求;以及图8时序流程图,其示出了资源管理器如何管理在应用程序APP1、应用程序APP2与应用程序APP3之间关于资源使用的冲突,应用程序APP1在优先级上等于或低于应用程序APP2,应用程序APP2又在优先级上低于应用程序APP3,资源管理器接收通知释放资源的请求。
具体实施例方式
现在参照附图,将描述本发明的优选实施例。
在讨论实施例的具体结构之前,下面将概括本发明提出的资源管理方案。
按照本发明,硬件资源(简称为资源)是以称为功能的单位来管理的。功能代表一个或多个资源,它们被用来进行对应于本发明的处理装置的应用程序所需的处理。同样地,功能是资源管理的最小增量。具体功能可包括压缩运动图像再现功能和数字相机功能,它们代表了电子设备的相应能力。具体而言,压缩运动图像再现功能被安排为代表用于再现压缩运动图像所必需的若干资源。这样的资源可包括数据获取资源,用于从存储器或通过通信线路获取压缩运动图像数据;数据扩展资源,比如用于扩展已压缩的移动画面数据的电路;显示资源,比如用于在其数据扩展之后显示运动图像的显示设备;以及音频输出资源,比如用于输出由扩展的数据导出的声音的扬声器。类似地,数字相机功能被设置为代表数字化捕获图像所需要的资源。这些资源可包括数字相机模块,用于捕获图像;数据压缩资源,比如用于压缩所捕获的图像数据的电路;以及记录资源,比如用于将压缩的图像数据记录到存储器的电路。与每个都代表资源的上述功能相结合地处理的数据例如是32位长的位图信息。
图1是示出了在功能与资源之间对应关系的列表图。该图描绘了功能与资源之间的一般化关系。图1的左手侧列(垂直轴)中的参考字符FA至FN分别标示不同的功能;顶行(水平轴)中的参考字符RA至RO分别代表不同的资源。在图1中,该列中的每个功能被示出为包括由指向顶行的空心圆指定的资源。具体而言,图1中的功能FA至FD被示出为与用于其使用的资源RC相关联,功能FE和FF则与资源FB相关联。类似地,功能FG被示出为与用于其使用的资源RH相关联,功能FH与资源RI相关联,功能FI与资源RE、RG、RI、RJ和RL相关联;功能FJ与资源RA、RC、RD和RE相关联;以及功能FK与资源RF、RG、RI至RL和RN相关联。功能FL至FN的说明被省略。
图2是概括了作为本发明实施例、进行资源管理的电子设备的结构的方框图。本发明的电子设备包括资源管理器1、应用程序4、资源(硬件资源)6和资源访问库5。资源管理器1实现按照本发明的资源管理设备的功能。应用程序4构成了被该电子设备用于进行各种处理的软件。资源6由并入该电子设备中的各种硬件资源组成。资源访问库5用作为允许应用程序4获得对资源6的访问的接口。
资源管理器1是按照本发明来执行资源管理的主要模块,对可由应用程序4访问的资源6提供独占控制。资源管理器1具有资源管理器处理模块2和资源管理器访问库3。资源管理器访问库3起到本发明的接受装置和通知发出装置的作用。库3由此用作为允许应用程序4访问资源管理器处理模块2的接口。利用资源管理器访问库3,应用程序4可向资源管理器处理模块2请求使用资源的权利,或者可向后者通知释放的资源。资源管理器处理模块2起到本发明的冲突确定装置、决定装置、列表编目装置和列表检查装置的作用。资源管理器处理模块2具有句柄管理模块8和资源管理模块7,用于逐个功能地进行资源管理。句柄管理模块8管理资源句柄与功能之间的对应关系。句柄管理模块8具有一列表,其中编号被分配给由应用程序4请求的资源。该列表被用来查明哪些应用程序正在使用哪些资源,以及确定在应用程序之间关于资源使用的冲突。资源管理模块7逐个功能地管理资源。更具体而言,句柄管理模块8具有图1的表格,其定义了功能与资源之间的对应关系。对于资源管理,资源管理模块7进行检查以确定哪些资源被链接到哪些资源编号,以及哪些资源被哪些功能所代表。资源管理模块7还给予应用程序使用资源的许可。由于资源管理器1中的资源管理器访问库3、句柄管理模块8和资源管理模块7以协同方式来运作,所以这些模块在下文中将被整体地看作为资源管理器1。
在图2的结构中,应用程序4每个都能够请求至少一个功能。通过请求功能,应用程序4请求资源管理器1以获取将由所涉及的功能使用的资源。如果假定两个或更多应用程序4通过同时或在不同时间请求功能来请求获取资源,则资源管理器1参照图1的对应表来比较功能以确定待使用资源的相符。经过比较,资源管理器1确定是否存在资源冲突。如果资源管理器1确定资源冲突已经出现,则管理器1进行随后将描述的资源冲突解决处理。如果确定尚无资源冲突出现,则资源管理器1给予每个应用程序4使用其各自资源的许可。
当获取资源时,应用程序4向资源管理器1通知功能名和所需资源的优先级、关于资源获取的原因、访问句柄和进程ID。每个应用程序预先与所涉及的应用程序的优先级、所涉及的每个功能的优先级、以及每个相应资源的优先级所构成的优先级信息相关联。资源管理器1在解决可能出现的任何资源冲突时使用优先级信息。如果获取资源的尝试失败,或者如果使用资源的权利被取消,则利用资源获取原因的资源管理器1向请求所涉及的资源的应用程序4通知获取它的尝试为何已失败,或者使用它的权利为何已取消。访问句柄构成了用来同时访问多个功能的信息。进程ID是用来标识请求资源的应用程序4的信息。对于该实施例,只有在由所有指定功能所用的所有资源已被获取时,资源获取才认为成功。资源获取的任何其他情况被认为是失败。在获取任何资源的尝试失败的情况下,相应功能被释放,即使某些所请求资源已被获取。资源管理器1逐个功能地向应用程序4通知资源获取结果。
不再使用的任何资源应当尽快地被释放。所涉及的资源由至今仍在使用它的应用程序4来释放。换而言之,一旦被获取,则任何资源将仅由在过去已经获取它的应用程序4来释放。在释放资源之后,应用程序4向资源管理器1通知所涉及的资源的释放。在此发出的资源释放完成通知包括在资源的获取时所用的访问句柄和进程ID。尽管多个功能可被同时指定,但是释放完成通知是逐个功能地发出的,因为该处理是逐个功能地进行的。
应用程序4可发出资源释放通知请求,其请求资源管理器1通知由所有被请求的功能所使用的所有资源的释放。可与每个资源释放通知请求相结合地指定多个功能。当由同时指定的所有功能所使用的所有资源被释放时,资源管理器1将该释放通知发出到已请求得到资源释放的通知的应用程序4。当发送该释放通知请求时,应用程序4向资源管理器1通知请求释放通知的功能的名字、释放等待优先级、通知等待优先级、访问句柄和进程ID。只有当所有指定功能的所有资源已被释放时,资源管理器1才发送释放通知到应用程序4。如果资源在通知等待时间内未被释放,则资源管理器1将释放通知超时通知发送到应用程序4。资源等待状态可由已发出释放通知请求的应用程序4取消,该应用程序4通过向资源管理器1通知在资源获取时所用的访问句柄和进程ID来实现该取消。也就是,对于任何资源的释放的等待状态仅能由等待资源释放的应用程序4来取消。
当接收资源释放通知时,应用程序4应当无延迟地请求所涉及的资源或者向资源管理器1通知不再需要该资源。如果应用程序已请求该资源,则资源管理器1在该资源下一次被释放时将资源释放通知发送到下一通知目的地的应用程序。如果不需要该资源,则资源管理器1将资源释放通知发送到下一通知目的地的应用程序。如果应用程序4无法标示它是否需要资源,则资源管理器1在经过预定时段时识别超时,视该资源为不必要。在此情况下,资源管理器1将资源释放通知发送到下一通知目的地的应用程序。假定在经过由请求得到资源释放通知的应用程序所指定的时段时,未从利用所涉及的资源的应用程序接收资源释放通知。在这样的情况下,资源管理器1取消等待释放请求的状态,将超时通知发送到请求得到资源释放通知的应用程序。如果存在有请求得到资源释放通知的多个应用程序,则释放通知首先被提供给比任何其他应用程序具有更高优先级的应用程序,以及提供给其发出通知请求的时间比其他请求者更迟的应用程序。也就是,释放通知首先被提供给最高优先级的应用程序。如果存在具有同一优先级的多个应用程序,则该通知被提供给发出通知请求的时间比任何其他应用程序更迟的应用程序。
多个功能可由资源获取请求、资源释放请求或释放通知请求同时指定。所涉及的处理是以每个功能单独进行的,结果的通知是逐个功能地发出的。当多个功能被同时指定时,处理结果因功能而变化。
而且,资源管理器1可对编目的应用程序周期性地进行“健康”检查。如果作为健康检查的结果,检验出应用程序的缺失,则资源管理器1释放由所涉及的应用程序所已经使用的所有资源,取消关于该应用程序所编目的内容。
现在将单独地描述为资源冲突的控制而采取的具体动作。
可能出现这样的情形,即在应用程序4针对一功能进行请求时,该功能包括由另一应用程序当前使用的资源,使得获取该功能的请求带来资源冲突。在此情况下,资源管理器1向比其他应用程序具有更高优先级的应用程序提供使用该资源的权利。如果这些应用程序具有同一优先级,则资源管理器1将使用该资源的权利提供给最近进行该获取请求的应用程序。如果使用该资源的权利已被取消,则资源管理器1向利用该资源的应用程序通知为何已造成该取消,等待来自该应用程序的响应。一般在针对导致取消权利的原因的通知而返回响应时,或者在继发送原因通知之后发送资源释放请求时,取消使用资源的权利。
当应用程序4被设置为同时获取多个功能时,资源管理器1进行检查以确定否有任一功能由于资源冲突而无法被获取。如果发现有任一功能由于冲突而不可得到,则资源管理器1将获取失败的单个通知作为响应提供给应用程序4,以免徒劳地进行资源释放处理。在此情况下,应用程序4停止获取所有指定功能的资源。如果这些功能的获取不受制于任何资源冲突,则资源管理器1确定是否为每个指定功能获取了资源。每个功能的资源获取结果被报告给应用程序4。
可能发生这样的情形,即在应用程序4正在进行资源释放通知请求并等待该请求的响应的同时,资源管理器1在响应等待时间结束之前从另一应用程序接收对于同一资源的另一请求。在此情况下,资源管理器1将获取该资源的许可给予比其他应用程序具有更高优先级的应用程序,或者发出请求的时间比其他应用程序更迟的应用程序。
还可能发生这样的情形,即对于有关取消该获取资源的权利的原因的通知的响应,或者对于释放资源的请求,在“释放处理时间”内不被报告,该释放处理时间是由应用程序4在请求获取所涉及的资源时指定的。在这样的情况下,资源管理器1将“释放错误”通知发送到已经进行该获取请求的应用程序以及利用所涉及的资源的应用程序。在释放错误的情况下,资源管理器1将所有后续的获取请求视为释放错误,除非和直到所涉及的资源被释放。
现在将说明图2中所示的模块之间传送的数据。
应用程序4向资源管理器访问库3发送如下数据初始设置请求数据、停止设置请求数据、用于内-外同步的资源获取请求数据、资源释放请求数据、资源释放通知请求数据和资源释放通知请求取消数据。初始设置请求数据由标示消息接收方法的数据和接收目的地指针组成。资源获取请求数据由功能组数据、优先级数据、获取原因数据、资源释放最大处理时间数据和资源句柄组成,功能组数据由功能名构成。资源释放请求数据由资源句柄形成。资源释放通知请求数据由功能组数据、优先级数据和资源句柄构成。资源释放通知请求取消数据由资源句柄构成。优先级数据表示获取请求和释放通知请求的优先级。获取原因数据表示资源获取的原因。资源释放最大处理时间数据代表应用程序释放它正在使用的资源所实际需要的最大时间。
应用程序4将进程ID、消息类型数据和消息数据发送到句柄管理模块8。进程ID特定于所涉及的应用程序。消息类型数据包括初始设置请求消息、停止设置请求消息、获取请求消息、释放请求消息、释放通知请求消息和释放通知取消请求消息。消息数据标示与使用中的每个消息类型相对应的消息内容。在消息类型之中,初始设置请求消息是用于对所涉及的应用程序编目的消息。停止设置请求消息是取消应用程序编目的消息。获取请求消息用来请求获取功能。释放请求消息是用于请求释放功能的消息。释放通知请求消息用来等待资源释放。释放通知取消请求消息是用于取消等待资源释放的状态的消息。初始设置请求消息包含消息接收方法和接收目的地指针。获取请求消息包含资源句柄、待获取的功能组、获取优先级、获取原因、资源释放最大处理时间、以及响应于该资源获取而向其发送第一消息的目的地。释放请求消息包含待释放的资源的资源句柄。释放通知请求消息包含用于释放通知的资源句柄、等待资源释放的功能组、释放通知的优先级和释放通知等待时间。释放通知取消请求消息包含用于取消释放通知的资源句柄。
句柄管理模块8将资源句柄数据、消息类型数据和原因数据发送到应用程序4。原因数据代表失败请求的原因,以及产生请求以释放一释放请求通知的原因。消息类型数据包括成功获取通知消息、未成功获取通知消息、释放请求通知消息、释放通知消息、释放通知等待超时通知消息和释放错误通知消息。成功获取通知消息是标示资源成功获取的获取请求批准消息。未成功获取通知消息是标示获取资源的尝试失败的获取拒绝消息。释放请求通知消息是请求实施句柄释放的消息。释放通知消息标示所有指定资源已被释放。释放通知等待超时通知消息是标示资源在经过释放通知等待时间后尚未被释放的消息。释放错误通知消息是通知响应于释放通知而进行的释放请求的超时信号的消息。该消息被提供给请求获取资源的应用程序以及请求释放资源的应用程序。
句柄管理模块8将消息ID、消息类型数据、功能组数据、进程ID、优先级数据、原因数据、资源释放时间数据和释放等待时间数据发送到资源管理模块7。消息ID是标识每个消息的标识符。当存在响应于发送的消息而返回的消息时,响应消息的消息ID变成所发送的消息的标识符。消息类型数据包括获取请求消息、释放请求消息、不需要响应消息、释放通知请求消息和原因响应消息。功能组数据标示功能组。进程ID是标识应用程序进程的标识符。优先级数据是标示获取请求和释放通知请求的优先级的数据。原因数据标示资源获取的原因。资源释放时间数据是表示应用程序释放它正在使用的资源所实际需要的最大时间的数据。释放通知等待时间数据是表示从发出释放通知请求之时到接收释放通知为止的超时时间段的数据。在消息类型之中,获取请求消息是请求获取功能的消息。释放请求消息是用于请求释放功能的消息。不需要响应消息被用来响应于标示释放功能组的所接收通知而通知不需要该功能组。释放通知请求消息是用于请求得到有关该指定功能的所有资源的释放的通知的消息。原因响应消息是作为对原因通知的响应而发出的消息。
资源管理模块7将消息ID、消息类型数据、功能组数据、进程ID、原因数据、原因进程数据和原因优先级数据发送到句柄管理模块8。消息ID是标识每个消息的标识符。同样地,该消息ID用作由句柄管理模块8发送的每个消息的消息ID。消息类型数据包括成功获取通知消息、未成功获取通知消息、成功释放通知消息、未成功释放通知消息、原因通知消息、释放通知消息、释放通知超时通知消息和释放错误通知消息。功能组数据是表示功能组的数据。进程ID是标识应用程序进程的标识符。原因数据是代表资源获取失败、释放失败、原因通知产生、以及在标示相应功能的释放的通知之前的资源获取的原因的数据。原因进程数据是标识这样的进程的数据,该进程造成了资源获取失败、释放失败或者原因通知的产生;或者是标识这样的进程的数据,该进程造成了在标示相应功能的释放的通知之前的资源获取。原因优先级数据代表这样的优先级,其造成了资源获取失败、释放失败或者原因通知产生;或者这样的优先级,其造成了在标示相应功能释放的通知之前的资源获取。在消息类型中,成功获取通知消息是标示成功获取功能的消息。未成功获取通知消息是标示获取功能的尝试失败的消息。成功释放通知消息是标示成功释放功能的消息。未成功释放通知消息标示释放功能的尝试失败。原因通知消息是这样的消息,其标示使用功能资源的权利被取消。释放通知消息标示由释放通知请求所指定的功能的所有资源已被释放。释放通知超时通知消息是标示释放通知请求的超时的消息。释放错误通知消息标示对起源于获取请求的原因通知的响应的超时。该消息在两个方向上发送一个是通知原因的方向;另一个是请求获取的方向。
图3是概括了作为体现本发明的电子设备实例的移动电话终端的结构的方框图。在图3的组件之中,图2中所示的组件由相似的标号来指定。图3中出现的组件简单地构成了移动电话终端的主要结构。
在图3的实例中,移动电话终端的应用程序4包括电话应用程序43,其实现该移动电话终端的电话功能;时钟应用程序44,用于实现时钟功能;屏幕应用程序45,用于实现显示能力和屏保功能;应用程序启动器46,用于开始应用程序;以及用户定义的应用程序(APP1,APP2)41、和42。这些应用程序被连接到应用程序框架14,即应用程序的基础。应用程序框架14继而连接到窗口管理器13。窗口管理器13经由图2中所示的资源访问库5连接到操作系统(OS)21。
在图3的实例中,资源6包括液晶显示器(LCD)设备62,示例性地用于提供显示;驱动程序61,用于驱动设备62;按键设备64,其一般是十键的小键盘;驱动程序63,用于驱动按键设备64;系统设备66,其支持移动电话终端的发送和接收(通信)能力以及其他主要功能;驱动程序65,用于驱动系统设备66;相机设备68,其用作为数字相机;驱动程序67,用于驱动相机设备68;存储器设备(存储器/快擦写存储器堆(Mem/Flash FILE))72,其是用作为本发明的存储介质的存储器;驱动程序(存储器/文件系统任务(Mem/FileSys TASK))71,用于写文件到存储器设备72和从其读文件;杂项硬件70,比如LED(发光二极管)和音频设备;以及杂项驱动程序69,用于驱动硬件70。CPU(中央处理单元)23控制这些设备以及与设备相结合执行各种操作。
图3中的任务管理器11在应用程序4的执行期间管理任务。事件管理器12管理各种事件。资源管理器(ResMan)1对应于图2中所示的资源管理器1。
现在将参照图4至8的时序流程图来描述上述实施例的资源管理器一般如何管理资源。
图4是流程图,其示出了本发明的资源管理器如何管理在应用程序APP1与APP2之间关于资源使用的冲突,应用程序APP1在优先级上高于应用程序APP2(APP1>APP2),而应用程序APP1比应用程序APP2更早地发出指定功能的资源获取请求。在图4的实例中,应用程序APP2未发出释放通知请求。
参照图4,资源管理器示例性地在步骤S1中从应用程序APP1接收指定有功能的新资源获取请求。在步骤S2中,资源管理器确定是否有资源冲突。由于将由指定的功能所使用的资源当前未被任何其他应用程序使用,所以资源管理器在步骤S3中将获取资源的许可返回给应用程序APP1。在步骤S4中,应用程序APP1获取所需资源。
随后在步骤S5中,资源管理器从应用程序APP2接收新的资源获取请求,其指定了包括正在使用的同一资源的功能。在此情况下,资源管理器在步骤S6中检查确定是否有资源冲突。由于应用程序APP2将需要使用的资源正在被应用程序APP1使用,所以资源管理器在步骤S7中将未成功获取通知返回给应用程序APP2。在步骤S8中,继获取所需资源的尝试失败之后,应用程序APP2进行获取拒绝处理。
图5是时序流程图,其示出了本发明的资源管理器如何管理在应用程序APP1与APP2之间关于资源使用的冲突,应用程序APP1在优先级上高于应用程序APP2(APP1>APP2),而应用程序APP1比应用程序APP2更早地进行指定功能的资源获取请求。在图5的实例中,与图4的实例相对,应用程序APP2发出释放通知请求。图5中与参照图4已经讨论的步骤等效的步骤将不再被进一步描述。
在图5的步骤S8中,应用程序APP2进行该拒绝获取处理,将释放通知请求发送到资源管理器。此时,与请求应用程序相关联地,资源管理器在列表中对由释放通知请求所指定的功能进行编目。随后,应用程序APP1在步骤S10完成其处理和释放资源。在步骤S11中,资源管理器从应用程序APP1接收释放完成通知。在步骤S12中,资源管理器搜寻来自任何其他应用程序的任何释放通知请求。在此情况下,来自应用程序APP2的释放通知请求已经在列表中被编目。于是资源管理器在步骤S13中向应用程序APP2通知所涉及的资源已被释放。
当这样被通知所需资源的释放时,应用程序APP2进行到步骤S14,发出另一指定该功能的获取请求。在于步骤S14中接收该获取请求之后,资源管理器在步骤S15中确定是否有资源冲突。由于将由所指定的功能使用的资源当前未被任何其他应用程序使用,所以资源管理器在步骤S16中将获取完成通知返回到应用程序APP2。在步骤S17中,应用程序APP1获取所需资源。
图6是另一时序流程图,其示出了本发明的资源管理器如何管理在应用程序APP1与APP2之间关于资源使用的冲突。在此情况下,尽管应用程序APP1也比应用程序APP2更早地进行指定功能的资源获取请求,但是应用程序APP1的优先级等于应用程序APP2,使得比其他应用程序更晚地进行获取请求的应用程序被提供给更高优先级(APP1≤APP2)。在图6的实例中,应用程序APP1并未发出释放通知请求。图6中与参照图4和5已经讨论的步骤等效的步骤将不再被进一步讨论。
在图6的步骤S6中,资源管理器在确定资源冲突的存在时发现应用程序APP2的优先级等于应用程序APP1,应用程序APP1比其他应用程序更晚地进行资源获取请求。在此情况下,资源管理器在步骤S21中将资源释放请求发出到应用程序APP1。在接收该释放请求时,应用程序APP1在步骤S22和S23中进行资源释放处理。在步骤S24中,应用程序APP1将释放完成通知发送到资源管理器。
当从应用程序APP1收到释放完成通知时,资源管理器在步骤S25中将获取完成通知发送到应用程序APP2。在步骤S26中,应用程序APP2获取所需资源。
在完成其处理之后,应用程序APP2在步骤S27中释放资源。在步骤S28中,资源管理器从应用程序APP2接收释放完成通知。在步骤S29中,资源管理器在列表中对释放的资源进行编目。
图7是另一时序流程图,其示出了本发明的资源管理器如何管理在应用程序APP1与APP2之间关于资源使用的冲突。在此情况下,尽管应用程序APP1也比应用程序APP2更早地进行指定有功能的资源获取请求,但是应用程序APP1的优先级等于应用程序APP2,使得比其他应用程序更晚地进行获取请求的应用程序被提供给更高优先级(APP1≤APP2)。在图7的实例中,与图6的实例相对,应用程序APP1发出释放通知请求。图7中与参照图4,5和6已经讨论的步骤等效的步骤将不再被进一步描述。
在图7的步骤S23中,应用程序APP1释放它已经使用的资源。在步骤S30中,应用程序APP将释放完成通知和释放通知请求发送到资源管理器。
之后在步骤S28中,资源管理器从应用程序APP2接收释放完成通知。在步骤S31中,资源管理器检验列表中所含内容,在该列表中应用程序被编目为等待资源释放。从该释放等待列表中,资源管理器发现应用程序APP1已经发出释放通知请求。于是资源管理器在步骤S32将资源释放通知发送到应用程序APP1。
在从资源管理器接收该资源释放通知之后,应用程序APP1在步骤S33中为了另一次的资源获取尝试而准备在列表中再次进行编目。在准备完成时,应用程序APP1在步骤S34中将获取请求发送到资源管理器。
在步骤S35中,资源管理器确定是否有资源冲突。当此时未检测到冲突时,资源管理器在步骤S36中将获取完成通知返回到应用程序APP1。在步骤S37中,应用程序APP1再次获取所需资源。
图8是时序流程图,其示出了本发明的资源管理器如何管理在应用程序APP1、应用程序APP2和应用程序APP3之间关于资源使用的冲突。具体而言,图8的实例假设了应用程序APP1最初进行资源获取请求,继而是应用程序APP2和APP3,它们均以此次序进行同一请求。还假设应用程序APP3比应用程序APP1或APP2具有更高优先级,后两者在优先级上等同。应用程序发出请求越迟,该应用程序的优先级越高(APP1≤APP2<APP3)。在图8的实例中,应用程序APP1发出释放通知请求。图8中与参照图4、5、6和7已经讨论的步骤等效的步骤将不再被进一步描述。
在图8的步骤S40中,应用程序APP3发出资源获取请求,这比在步骤S5中已经发出其自身的资源获取请求的应用程序APP2更迟。资源管理器在步骤S40中从应用程序APP3接收该资源获取请求。在于步骤S30中从应用程序APP1接收释放完成通知和释放通知请求之后,资源管理器在步骤S41中确定在应用程序APP2与APP3之间是否有资源冲突。在此情况下,资源管理器在步骤S42中将获取完成通知发送到具有最高优先级的应用程序APP3。在步骤S43中,资源管理器将未成功获取通知发送到应用程序APP2。在步骤S44中,应用程序APP3获取所需资源。
在完成其处理之后,应用程序APP3在步骤S45中释放它已经使用的资源。在步骤S46中,应用程序APP3将释放完成通知发送到资源管理器。
当收到该释放完成通知时,资源管理器在步骤S47中检验该释放等待列表中所含的内容。从该列表中,资源管理器发现应用程序APP1已经发出释放通知请求。随后,进行由图7中的步骤S32至S37构成的处理。
如上所述,体现本发明的资源管理器通过在保持当前使用状态(条件)的情况下动态地实现优先级和使用权管理来提供灵活的资源管理工具。换而言之,本发明的资源管理器以这样的方式管理资源使用权,使得可灵活地定义实际使用硬件资源的应用程序以及被提供使用资源的权利的应用程序。
上述实施例引入了作为单位的“功能”的概念,该单位是资源使用权管理的增量,每个功能是由单个的硬件资源中用于构成应用程序而必需的多个资源构成的。本发明的资源管理器由此允许逐个功能地进行资源管理。
上面的实施例具有考虑到应用程序和资源的优先级的请求队列。与简单的后进先出算法相比,该实施例使得能减少徒劳的资源冲突的数量。
尽管上面的描述包含许多特定方面,但是这些不应当被理解为限制本发明的范围,而是仅提供本发明的目前优选实施例的说明。应当理解,在不脱离所附权利要求书的实质或范围时,可进行变化和变形。
例如,本发明可不仅应用于移动终端,而且应用于个人计算机和PDA(个人数字助理)。
关于图1中的对应表,每当应用程序4发出资源获取请求时,与给定的应用程序4所需的功能有关的以及与对应于这些功能的资源有关的信息可由所涉及的应用程序4发送到资源管理器1。
而且,优先级不仅可应用于应用程序,而且应用于功能或者应用于每个功能中所含的资源。在这样的情况下,资源管理器1可关于给定的功能或者关于该功能内的每个资源来确定是否有资源冲突。资源管理器1然后可考虑到资源冲突确定的结果而发出资源获取完成通知和其他通知。
权利要求
1.一种资源管理方法,用于具有多个处理装置的资源管理设备,所述资源管理方法包括步骤从所述多个处理装置的任一个接受资源获取请求;确定与来自所述一个处理装置的所述资源获取请求相应的资源是否与将由另一处理装置使用的资源冲突;决定在资源使用方面被发现相互冲突的处理装置中应当被给予使用所涉及的资源的许可的处理装置;当从未被给予使用所述资源的许可的处理装置收到有关通知所述资源的释放的请求时,与该释放通知请求处理装置相结合地在列表中将相应于该释放通知请求的所述资源编目;当从已被给予使用所述资源的许可的处理装置收到说明所述资源已被释放的通知时,从所述列表中检查所述释放通知请求处理装置;以及将说明所述资源已被获取的获取完成通知发出到在所述列表检查步骤中从所述列表检查出的所述释放通知请求处理装置。
2.根据权利要求1的资源管理方法,其中所述决定步骤按照为每个所述处理装置预定的优先级来决定是否给予使用所述资源的许可。
3.根据权利要求1的资源管理方法,其中所述接受步骤逐个功能地接受所述资源获取请求,该功能代表进行所需处理而需要的至少一个资源;其中所述确定步骤逐个功能地确定资源之间冲突的存在;其中所述决定步骤逐个功能地决定是否给予使用资源的许可;其中所述列表编目步骤逐个功能地在所述列表中对所述资源编目;其中所述列表检查步骤逐个功能地检查所述列表;以及其中所述通知发出步骤逐个功能地发出所述获取完成通知。
4.根据权利要求3的资源管理方法,其中所述决定步骤按照每个功能预定的优先级来决定是否给予使用所述资源的许可。
5.一种资源管理设备,具有多个处理装置,所述资源管理设备包括接受装置,用于从所述多个处理装置的任一个接受资源获取请求;冲突确定装置,用于确定与来自所述一个处理装置的所述资源获取请求相应的资源是否与将由另一处理装置使用的资源冲突;决定装置,用于决定在资源使用方面被发现相互冲突的处理装置中应当被给予使用所涉及的资源的许可的处理装置;列表编目装置,其当从未被给予使用所述资源的许可的处理装置收到有关通知所述资源的释放的请求时,与该释放通知请求处理装置相结合地在列表中将相应于该释放通知请求的所述资源编目;列表检查装置,其当从已被给予使用所述资源的许可的处理装置收到说明所述资源已被释放的通知时,从所述列表中检查所述释放通知请求处理装置;以及通知发出装置,用于将说明所述资源已被获取的获取完成通知发出到由所述列表检查装置从所述列表检查出的所述释放通知请求处理装置。
6.根据权利要求5的资源管理装置,其中所述决定装置按照为每个所述处理装置预定的优先级来决定是否给予使用所述资源的许可。
7.根据权利要求5的资源管理装置,其中所述接受装置逐个功能地接受所述资源获取请求,该功能代表进行所需处理而需要的至少一个资源;其中所述冲突确定装置逐个功能地确定资源之间冲突的存在;其中所述决定装置逐个功能地决定是否给予使用资源的许可;其中所述列表编目装置逐个功能地在所述列表中对所述资源编目;其中所述列表检查装置逐个功能地检查所述列表;以及其中所述通知发出装置逐个功能地发出所述获取完成通知。
8.根据权利要求7的资源管理装置,其中所述决定装置按照每个功能预定的优先级来决定是否给予使用所述资源的许可。
9.一种资源管理设备,具有多个应用程序、资源管理器访问库和资源管理器处理模块;其中所述资源管理器访问库包括接受模块,用于从所述多个应用程序的任一个接受资源获取请求;以及通知发出模块,用于将说明资源已被获取的获取完成通知发出到所述多个应用程序的任一个;其中所述资源管理器处理模块包括冲突确定模块,用于确定与来自所述应用程序的所述资源获取请求相应的资源是否与将由另一应用程序使用的资源冲突;决定模块,用于决定在资源使用方面被发现相互冲突的处理装置中应当被给予使用所涉及的资源的许可的处理装置;列表编目模块,其当从未被给予使用所述资源的许可的处理装置收到有关通知所述资源的释放的请求时,与该释放通知请求处理装置相结合地在列表中将相应于该释放通知请求的所述资源编目;以及列表检查模块,其当从已被给予使用所述资源的许可的处理装置收到说明所述资源已被释放的通知时,从所述列表中检查所述释放通知请求处理装置;以及其中所述资源管理器访问库将说明所述资源已被获取的获取完成通知发出到由所述列表检查模块从所述列表检查出的所述释放通知请求应用程序。
10.一种资源管理程序,可由具有多个处理装置的资源管理设备读取以执行,所述资源管理程序使所述资源管理设备执行包括如下步骤的处理从所述多个处理装置的任一个接受资源获取请求;确定与来自所述一个处理装置的所述资源获取请求相应的资源是否与将由另一处理装置使用的资源冲突;决定在资源使用方面被发现相互冲突的处理装置中应当被给予使用所涉及的资源的许可的处理装置;当从未被给予使用所述资源的许可的处理装置收到有关通知所述资源的释放的请求时,与该释放通知请求处理装置相结合地在列表中将相应于该释放通知请求的所述资源编目;当从已被给予使用所述资源的许可的处理装置收到说明所述资源已被释放的通知时,从所述列表中检查所述释放通知请求处理装置;以及将说明所述资源已被获取的获取完成通知发出到在所述列表检查步骤中从所述列表检查出的所述释放通知请求处理装置。
11.一种存储资源管理程序的存储介质,该资源管理程序可由具有多个处理装置的资源管理设备读取以执行,所述资源管理程序使所述资源管理设备执行包括如下步骤的处理从所述多个处理装置的任一个接受资源获取请求;确定与来自所述一个处理装置的所述资源获取请求相应的资源是否与将由另一处理装置使用的资源冲突;决定在资源使用方面被发现相互冲突的处理装置中应当被给予使用所涉及的资源的许可的处理装置;当从未被给予使用所述资源的许可的处理装置收到有关通知所述资源的释放的请求时,与该释放通知请求处理装置相结合地在列表中将相应于该释放通知请求的所述资源编目;当从已被给予使用所述资源的许可的处理装置收到说明所述资源已被释放的通知时,从所述列表中检查所述释放通知请求处理装置;以及将说明所述资源已被获取的获取完成通知发出到在所述列表检查步骤中从所述列表检查出的所述释放通知请求处理装置。
全文摘要
通过有效率和灵活地在应用程序之间分配资源,没有冲突地实现资源的独占使用。如果当应用程序APP1正在使用资源的同时从应用程序APP2接收资源获取请求(步骤S5),则资源管理器(ResMan)在应用程序APP1和APP2之间进行资源并发判断(步骤S6),并且具有较低优先级的应用程序APP2返回获取NG报告(步骤S7)。资源管理器从应用程序APP2接收资源释放报告请求(步骤S9),接着从应用程序APP1接收释放完成报告(步骤S11)。资源管理器查看是否有对于该资源的任何其他冲突请求(在步骤S15中)。在没有其它资源并发,则资源管理器向应用程序APP2发出资源获取完成报告(步骤S16)。
文档编号G06F9/46GK1806228SQ20048001618
公开日2006年7月19日 申请日期2004年6月9日 优先权日2003年6月10日
发明者大出直树 申请人:索尼爱立信移动通信日本株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1