对游戏模式的操作系统支持的制作方法

文档序号:16049930发布日期:2018-11-24 11:11阅读:193来源:国知局

在多任务平台(诸如操作系统)上运行的游戏和其他高端应用可在他们被给予对一种或多种系统资源(诸如处理时间、图形处理能力、输入/输出(i/o)带宽以及专用内存)的恒定的访问权时表现最佳。想要与其他工作负载和应用并行地运行游戏或高端应用的用户目前需要接受在游戏或高端应用之外运行更多程序可能损害性能。另外,游戏或高端应用可能无法可预测地执行,因为系统可能在执行游戏或高端应用之外的各种任务和执行游戏或高端应用中的任务之间频繁地交替。

本文中所要求保护的主题不限于解决任何缺点或仅在诸如以上所描述的环境那样的环境中操作的各实施例。相反,提供本背景仅用于解说其中可实践本文中所描述的一些实施例的一个示例性技术领域。



技术实现要素:

提供本概述以便以简化的形式介绍以下在详细描述中进一步描述的一些概念。本概述并非旨在标识出要求保护的主题的关键特征或必要特征,亦非旨在用作辅助确定要求保护的主题的范围。

本文公开的实施例涉及用于分配一种或多种系统资源供应用独占使用的系统、方法和计算机可读介质。在一个实施例中,一种计算系统包括处理器以及存储有计算机可执行指令的存储设备,当由所述处理器执行时,所述计算机可执行指令使所述计算系统执行以下操作:接收为第一应用独占地分配一种或多种系统资源的请求,所述一种或多种系统资源可由所述第一应用和一个或多个第二应用使用;确定将被独占地分配给所述第一应用的一种或多种系统资源的适当数量;以及将所述一种或多种系统资源划分为第一部分和第二部分,所述第一部分被分配供所述第一应用独占使用,而所述第二部分未被分配供所述第一应用独占使用,所述第二部分可供所述一个或多个第二应用使用。

另一个实施例涉及划分系统资源供应用独占使用的资源管理器。资源管理器包括协商模块,所述协商模块与应用协商以确定所述应用期望其独占使用的系统资源的分配。所述资源管理器包括访问模块,所述访问模块校验所述应用是否被授权所述系统资源的分配供其独占使用。所述资源管理器包括划分模块,所述划分模块引发所述系统资源的划分的生成,以便提供所期望的系统资源您的分配以供所述应用独占使用。

附加特征和优点将在以下描述中提出,且部分会从描述中显而易见,或者可以通过实践此处的原理来获悉。本发明的特征和优点可以通过在所附权利要求书中特别指出的工具和组合来实现和获得。本发明的特征从以下描述和所附权利要求书中将更完全显而易见,或者可以通过如下文所述实践本发明而获悉。

附图说明

为了描述可获得本发明的上述和其它优点和特征的方式,将通过参考附图中例示出的本发明的具体实施例来呈现以上简要描述的本发明的更具体描述。可以理解,这些附图只描绘了本发明的各典型实施例,并且因此不被认为是对其范围的限制,将通过使用附图并利用附加特征和细节来描述和解释本发明,在附图中:

图1例示了其中可采用本文描述的原理的示例计算系统;

图2例示了能够分配系统资源供应用独占使用的计算系统的实施例;

图3例示了用于分配系统资源供应用独占使用的协商过程的示例实施例;

图4例示了将处理资源划分为供应用独占使用的部分和供其他应用使用的部分;

图5例示了将存储器资源划分为供应用独占使用的部分和供其他应用使用的部分;

图6例示了根据本文公开的实施例的代理组件;

图7例示出了用于分配一种或多个系统资源供应用独占使用的示例方法的流程图;以及

图8例示出了用于请求一种或多个系统资源的独占分配的协商过程的示例方法的流程图。

具体实施方式

在多任务平台上运行的游戏和其他高端应用可在他们被给予对一种或多种系统资源(诸如处理时间、图形处理能力、输入/输出(i/o)带宽以及专用内存)的恒定的访问权时表现最佳。想要与其他工作负载和应用并行地运行游戏或高端应用的用户目前需要接受在游戏或高端应用之外运行更多程序可能损害性能。另外,游戏或高端应用可能无法可预测地执行,因为系统可能在执行游戏或高端应用之外的各种任务和执行游戏或高端应用中的任务之间频繁地交替。

所公开的实施例的各方面涉及实现集中式资源管理器的计算系统的创建和使用,该集中式资源管理器决定如何对系统资源进行划分,使得可以将适当数量的系统资源分配给游戏或高端应用独占使用。这可以通过资源管理器与游戏或高端应用之间的协商过程来完成。

一旦资源管理器决定了如何划分系统资源以使得可以将适当数量的系统资源分配给游戏或高端应用程序独占使用,资源管理器可以利用底层操作系统机制来执行该划分。随后,资源管理器可以向游戏或高端应用程序通知将供其独占使用的系统资源的分配。资源管理器可以监视系统并对整体系统性能所保证的独占分配进行调整。

通过实现所公开实施例的各方面,可以实现各种技术效果和益处。举例来说,在实施例中公开的独占分配的系统资源的使用显著改善了用户体验,因为游戏或其他高端应用应该具有足够的系统资源以便以最佳方式运行。此外,协商的使用有助于确保要被独占分配的资源的量是适当的数量,以便独占分配不包括过多或过少的系统资源。这进而有助于确保系统资源以高效的方式被分配。

将参考图1描述对计算系统的一些介绍性讨论。随后,将描述用于独占分配一种或多种系统资源的计算系统的表现。

计算系统现在越来越多地采取多种多样的形式。例如,计算系统可以是手持式设备、电器、膝上型计算机、台式计算机、大型机、分布式计算系统、数据中心、或甚至是常规上不被认为是计算系统的设备(诸如可穿戴设备(如眼镜))。在本说明书以及权利要求书中,术语“计算系统”被广义地定义为包括任何设备或系统(或其组合),该设备或系统包含至少一个物理且有形的处理器以及其上能具有可由处理器执行的计算机可执行指令的物理且有形的存储器。存储器可以采取任何形式,并可以取决于计算系统的性质和形式。计算系统可以分布在网络环境中,并可包括多个组分计算系统。

如图1所例示,在其最基本的配置中,计算系统100通常包括至少一个硬件处理单元102和存储器104。存储器104可以是物理系统存储器,该物理系统存储器可以是易失性的、非易失性的、或两者的某种组合。术语“存储器”也可在此用来指示诸如物理存储介质这样的非易失性大容量存储器。如果计算系统是分布式的,则处理、存储器和/或存储能力也可以是分布式的。

计算系统100上还具有通常被称为“可执行组件”的多个结构。例如,计算系统100的存储器104被例示为包括可执行组件106。术语“可执行组件”是本领域普通技术人员在计算领域中很好理解的结构的名称,该结构可以是软件、硬件或其组合。例如,当以软件实现时,本领域普通技术人员将理解,可执行组件的结构可以包括可以在计算系统上执行的软件对象、例程、方法等,无论这样的可执行组件存在于计算系统的堆中、或者可执行组件是否存在于计算机可读存储介质上。

在这样的情况下,本领域普通技术人员之一将认识到可执行组件的结构存在于计算机可读介质上,使得当由计算系统的一个或多个处理器(例如由处理器线程)解释时,致使计算系统执行某一功能。这种结构可以是可由处理器直接计算机可读的(就如可执行组件是二进制文件时的情形)。替代地,该结构可以被构造成可解释和/或经编译的(无论是在单个阶段还是在多个阶段中),以便生成这类可由处理器直接解释的二进制文件。当使用术语“可执行组件”时,对可执行组件的示例结构的这种理解完全在计算领域的普通技术人员的理解之内。

术语“可执行组件”还很好地被本领域普通技术人员之一理解为包括专门用硬件或几乎专门用硬件实现的结构,诸如在现场可编程门阵列(fpga)内、专用集成电路(asic)内、或任何其他专门电路内。因此,术语“可执行组件”是用于计算领域的普通技术人员很好理解的结构的术语,无论是以软件、硬件还是组合来实现。在本说明书中,还可以使用术语“组件”、“代理”、“管理器”、“服务”、“引擎”、“模块”、“虚拟机”等。如在本说明书和该情况中所使用的,这些术语(无论是否以修饰从句来表达)也旨在与术语“可执行组件”同义,因此也具有计算领域的普通技术人员很好理解的结构。

在随后的描述中,参考由一个或多个计算系统执行的动作描述了各实施例。如果这样的动作是以软件实现的,则执行动作的相关联计算系统的一个或多个处理器响应于已经执行了构成可执行组件的计算机可执行指令来引导计算系统的操作。例如,这样的计算机可执行指令可以在形成计算机程序产品的一个或多个计算机可读介质上实现。这样的操作的示例涉及对数据的操纵。

计算机可执行指令(以及被操纵的数据)可以存储在计算系统100的存储器104中。计算系统100还可包含允许计算系统100例如通过网络110与其他计算系统通信的通信信道108。

尽管并非所有计算设备都要求用户接口,但是在一些实施例中,计算系统100包括用于与用户对接的用户接口系统112。用户接口系统112可以包括输出机构112a以及输入机构112b。本文描述的原理不限于精确的输出机构112a或输入机构112b,因为这将取决于设备的性质。然而,输出机构112a可以包括例如扬声器,显示器,触觉输出,全息图等。输入机构112b的示例可以包括例如麦克风、触摸屏、全息图、相机、键盘、鼠标或其他的指针输入、任何类型的传感器等。

本文所述的实施例可包括或利用专用或通用计算系统,该专用或通用计算系统包括诸如举例来说一个或多个处理器和系统存储器等计算机硬件,如以下更详细讨论的。本文中描述的各实施例还包括用于承载或存储计算机可执行指令和/或数据结构的物理和其他计算机可读介质。这样的计算机可读介质可以是可由通用或专用计算系统访问的任何可用介质。存储计算机可执行指令的计算机可读介质是物理存储介质。承载计算机可执行指令的计算机可读介质是传输介质。由此,作为示例而非限制,本发明的各实施例可包括至少两种显著不同的计算机可读介质:存储介质和传输介质。

计算机可读存储介质包括ram、rom、eeprom、cd-rom或其他光盘存储、磁盘存储或其他磁存储设备,或可用于存储计算机可执行指令或数据结构形式的所需程序代码手段且可由通用或专用计算系统访问的任何其他物理且有形存储介质。

“网络”被定义为允许在计算系统和/或模块和/或其他电子设备之间传输电子数据的一个或多个数据链路。当信息通过网络或另一通信连接(硬连线、无线、或者硬连线或无线的组合)传输或提供给计算系统时,该计算系统将该连接适当地视为传输介质。传输介质可以包括可以用来携带所需要的以计算机可执行的指令或数据结构的形式存在的程序代码手段并可以被通用或专用计算系统访问的网络和/或数据链路。上述的组合同样应当被包括在计算机可读介质的范围内。

此外,在到达各种计算系统组件之后,计算机可执行指令或数据结构形式的程序代码手段可从传输介质自动转移到存储介质(或反之亦然)。例如,通过网络或数据链路接收到的计算机可执行指令或数据结构可被缓存在网络接口模块(例如,“nic”)内的ram中,然后最终被传送到计算系统ram和/或计算系统处的较不易失性的存储介质。因而,应当理解,存储介质可被包括在还利用(或甚至主要利用)传输介质的计算系统组件中。

计算机可执行指令例如包括,当在处理器处执行时使通用计算系统、专用计算系统、或专用处理设备执行某一功能或某组功能的指令和数据。替代地或另外地,计算机可执行指令可以将计算系统配置为执行特定功能或功能组。计算机可执行指令可例如是二进制或甚至是在被处理器直接执行之前经受某种转换(诸如编译)的指令,诸如中间格式指令(诸如汇编语言或甚至是源代码)。

尽管用结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述特征或动作。相反,上述特征和动作是作为实现权利要求的示例形式而公开的。

本领域的技术人员将理解,本发明可以在具有许多类型的计算系统配置的网络计算环境中实践,这些计算机系统配置包括个人计算机、台式计算机、膝上型计算机、消息处理器、手持式设备、多处理器系统、基于微处理器的或可编程消费电子设备、网络pc、小型计算机、大型计算机、移动电话、pda、寻呼机、路由器、交换机、数据中心、可穿戴设备(诸如眼镜)等等。本发明也可在其中通过网络链接(或者通过硬连线数据链路、无线数据链路,或者通过硬连线和无线数据链路的组合)的本地和远程计算系统两者都执行任务的分布式系统环境中实施。在分布式系统环境中,程序模块可以位于本地和远程存储器存储设备二者中。

本领域技术人员还将理解本发明可在云计算环境中实践。云计算环境可以是分布式的,但这不是必须的。在分布时,云计算环境可以国际性地分布在一个组织内,和/或具有跨多个组织拥有的组件。在本说明书和下面的权利要求书中,“云计算”被定义为用于允许对可配置计算资源(例如,网络、服务器、存储、应用和服务)的共享池的按需网络访问的模型。“云计算”的定义不限于可从这样的模型(在被合适地部署时)中获得的任何其它多个优点。

现在注意图2,其示出了计算系统200的实施例,计算系统200可对应于先前描述的计算系统100。计算系统200包括可以实现本文公开的各实施例的各个模块或功能块,如将要阐述的。计算系统200的各个模块或功能块可以在本地计算系统上实现,或者可以在包括驻留在云中的元件或实现云计算的各方面的分布式计算系统上实现。计算系统200的各个模块或功能块可以被实现为软件、硬件或软件和硬件的组合。计算系统200可包括比图2中所示的模块更多或更少的模块,并且模块中的一些可以根据情况允许被组合。尽管未必示出,但计算系统200的各个模块可根据需要访问和/或利用处理器和存储器(诸如处理器102和存储器104)以执行它们的各种功能。

如图2中所示,计算系统200可以执行独占应用或程序205和非独占应用或程序204。独占应用或程序205可以被认为是“独占应用”,因为它是一种期望在操作中获得对诸如处理资源或存储器资源之类的一种或多种系统资源的独占使用的应用。非独占应用或程序204可以是非独占应用并且不获得对一种或多种系统资源的独占使用的任何应用或程序。在为独占应用205的独占使用分配系统资源之前,独占应用205和非独占应用204都可以在情况允许时共享系统资源的使用。

在一个实施例中,独占应用205可以是游戏或其他高端应用,其在具有对一种或多种系统资源具有恒定的访问权时表现最佳和/或当具有对一种或多种系统资源具有恒定的访问权时向用户提供更令人满意的体验。因此,本文公开的实施例不受构成独占应用205的应用类型的限制,因为独占应用205可以是如前所述的期望独占使用一种或多种系统资源的任何合理的应用。

计算系统200可以包括资源管理器210,其可以是计算系统操作系统的一部分。在操作中,资源管理器210可以确定什么系统资源(如果有的话)要独占地分配给独占应用205。随后,资源管理器可以利用各种系统机制来划拨要供独占应用205独占使用的一种或多种系统资源。该过程将在以下更详细地描述。应注意,本文使用的术语“独占使用”还包括近似独占使用或基本独占使用。因此,本文描述的实施例不需要独占应用205的100%的独占使用,因为实施例覆盖近似独占使用。

例如,在一个实施例中,独占应用205可以向资源管理器210发送请求206。请求206可以通知资源管理器210独占应用205期望独占使用一种或多种系统资源。请求206还可以指定所期望的系统资源的级别。

在一个实施例中,请求206可以具有独占应用205和资源管理器210之间的协商的形式。因此,资源管理器210可以包括协商模块211,其在操作中处理与独占应用205的协商。协商模块211可以是独占应用205调用的用于开始协商过程或简单地发送请求206的api。

图3例示了独占应用205和资源管理器210之间的协商的实施例。如310处所例示的,独占应用205可以向资源管理器210请求资源管理器210能够为独占应用205的独占使用所提供的最大可能的系统资源分配。也就是说,假设资源管理器210可能需要留出系统资源的一些部分以供可能需要在计算系统200上运行的其他应用使用,则独占应用205可能想要知道可以合理地给予其独占使用的系统资源的最大分配量。

如320处所例示的,资源管理器210可以向独占应用205通知可被合理地分配供独占应用205独占使用的系统资源的最大分配量。随后,独占应用205可以确定它是否需要使用资源管理器210能够分配给其独占使用的所有系统资源,或者它是否需要比资源管理器210能够分配给其独占使用的少的系统资源。

例如,假设系统资源包括八个处理器和16gb的ram,并且资源管理器210能够将六个处理器和12gb的ram分配给独占应用205独占使用。如果独占应用205是需要大量系统资源来恒定地操作的高端游戏,则独占应用205可以确定它可能合理地需要使用六个处理器和12gb的ram。另一方面,如果独占应用205是诸如纸牌之类的简单游戏,其需要比高端游戏少得多的系统资源,则独占应用205可以确定它需要使用显著少于可被分配用于其独占使用的六个处理器和12gb的ram,并因此可以确定它实际需要的所分配的系统资源中的什么子集。

如330处所例示的,独占应用205可将其最大期望系统资源分配返回给资源管理器210,并请求资源管理器210相应地划分系统资源。最大期望系统资源分配可以指定资源管理器210能够分配给独占应用205独占使用的系统资源中独占应用205实际需要使用的部分或量。如将在以下更详细地描述的,资源管理器210可以尝试给予独占应用205给定整体系统条件下的最佳可能系统资源分配或者独占应用205提供的最大期望系统资源分配,取较小者。

返回到图2,资源管理器210可以评估请求206以确定是否实现独占应用205对系统资源的独占使用的请求。在一个实施例中,资源管理器210可以包括访问模块212,其允许计算系统200的用户配置或指定哪些应用有权独占使用一种或多种系统资源,例如通过提供有权独占使用一种或多种系统资源的应用的列表。相应地,访问模块212可以确定独占应用205是否是被批准独占使用系统资源的应用,并且如果该独占应用未被批准,则可以拒绝该请求。

在其他实施例中,访问模块212或资源管理器210的另一部分可以确定独占应用205是否是活动的以及用户是否正在与该独占应用交互。如果独占应用205不活动和/或用户未正与该独占应用205交互,则资源管理器210可以不分配独占式系统资源。如将理解的,如果独占应用205不活动,则在这种情况下将独占式系统资源分配给独占应用205会是对系统资源的浪费,因为独占应用205可能不利用独占式系统资源。

如果请求206由于上述原因或任何其他原因而不被准许,则资源管理器210可以如207处所例示的打开一个通信信道以通知独占应用205其对一种或多种系统资源的独占访问的请求将不被履行。

当请求206被准许时,资源管理器210的划分模块214可以确定将多少系统资源分配给独占应用205的独占使用。该确定可以基于上面讨论的独占应用提供的最大期望系统资源分配。该确定可以基于将要阐述的其他因素。

例如,划分模块214可以考虑计算系统200的整体系统资源以及当前活动的其他应用的数量和种类以及它们当前的系统资源需求。如将理解的,资源管理器210仅能够分配最多达计算系统200中所包括的实际数量的资源的系统资源。此外,资源管理器210还可能需要留出足够的系统资源,以便其他活动应用可以访问足够的系统资源以实现至少最低可接受程度的操作。

另外,划分模块214可能需要确定资源管理器210已知的任何其他应用是否也是以与独占应用205类似的方式请求了独占式系统资源分配的独占应用。在这种情况下,资源管理器可能必须向独占应用205和一个或多个其他独占应用分配少于最大期望系统资源分配,以便满足所有活动应用的系统资源需求。

在一些实施例中,用户通过使用访问模块212可以能够为各种独占应用指定优先级,使得具有较高优先级的独占应用与具有较低优先级的独占应用相比具有更接近其最大期望系统资源分配的独占系统资源分配。如果具有较高优先级的独占应用稍后变为非活动,则资源管理器可以基于剩余的活动独占应用的优先级重新分配独占式系统资源。

划分模块214还可以考虑独占应用205的资源使用历史。如果独占应用205具有使用少于其最大期望系统资源分配的历史,则即使在独占应用205请求最大值时,资源管理器210也可以分配少于最大期望系统资源分配,以便不交付可能不会被使用的系统资源。将会理解,当确定有多少系统资源独占分配给独占应用205时,资源管理器210的划分模块214可以考虑除了本文所讨论的那些之外的因素。

如图2所例示的,计算系统200还包括系统控制单元220,在一些实施例中,该控制单元220可以是操作系统内核。当资源管理器210已经如上所述地确定了多少系统资源独占分配给独占应用205时(无论是最大期望系统资源分配还是某个其他量),资源管理器210可以指示系统控制单元220实现部分或全部的系统资源分配和划分,如215所例示的。将会理解,系统控制单元220实现系统资源分配和划分的准确方式可以取决于何种类型的平台实现计算系统200。因此,本文公开的实施例不受系统控制单元220如何实现系统资源分配和划分的限制。

在一个实施例中,系统控制单元220控制或以其他方式指导一种或多种系统资源的划分,包括处理资源230、存储器资源240、输入/输出(i/o)资源250以及图形处理资源260。其他系统资源270表示可能存在可以被分配和划分以供独占应用205使用的未在本文中明确讨论的更多系统资源。在其他实施例中,资源管理器210可以直接控制一种或多种系统资源的划分。

例如,如图4所例示的,资源管理器210可以指示系统控制单元220将处理资源230的可用处理器划分成保留处理器235和通用处理器236。因此,在其中处理资源230包括八个处理器的实施例中,系统控制单元220可以在保留处理器235中包括六个处理器,并且将剩余的两个处理器包括在通用处理器236中。

随后,系统控制单元220可以将未被标识为独占应用的所有活动应用(例如非独占应用204)归为使用通用处理器236。也就是说,系统控制单元220被指示不允许除了独占应用205以外的任何应用调度用于在保留处理器235上执行的线程。以这种方式,独占应用205被给予了对于保留处理器235中的处理器的独占使用。将会理解,在一些实施例中,使用可以是近似独占的,因为控制单元220可被配置为处理保留处理器235的一个或多个处理器上的中断或类似过程,或者可被配置为在保留处理器235的一个特定处理器上运行特别密切的线程。还将理解,在一些实施例中,除了保留处理器235,独占应用205也可以访问通用处理器236。因此,本文公开的实施例不将独占应用限于仅使用为其独占使用而分配的一种或多种系统资源,因为在一些实施例中,独占应用也可以访问未被分配供其独占使用的一种或多种系统资源。

以类似方式,系统控制单元220可以控制或以其他方式指导存储器资源240的划分。如图5中所示,资源管理器210可以指示系统控制单元220将存储器资源240划分成保留存储器245和通用存储器246。例如,在具有16gb可用ram的实施例中,系统控制单元220可以在保留存储器245中包括12gb的ram,并且在通用存储器246中包括剩余的4gbram。因此,独占应用205可被给予对于保留存储器245的独占使用,而非独占应用可被给予对于通用存储器246的非独占使用。如上所述,在一些实施例中,独占应用205也可以使用通用存储器246。

在一些实施例中,还可以以各种方式分配图形处理资源260,以确保独占应用205能够使用图形处理资源中的大部分。在一些实施例中,图形处理资源260的分配可以由系统控制单元220控制,而在其他实施例中,分配可以由资源管理器210通过利用底层操作系统机制来间接地控制,以确保独占应用205能够使用图形处理资源中的大部分。

还可以将i/o资源分配给独占应用205的主要使用。例如,系统控制单元220或资源管理器210可以指示操作系统的磁盘和网络堆栈优先考虑来自独占应用205的流量。

一旦系统控制单元220按照资源管理器210所指示的那样分配和划分了系统资源,就可以将其传送给资源管理器,如图2中的216处所例示的。随后,资源管理器210可以将资源分配信息传送给独占应用205,如209所例示的。

资源分配信息209可以指示请求206的处置,诸如请求206是否被如上所述地履行、资源管理器210是否正在等待划分系统资源、或者请求206是否成功。如果请求成功,则关于已经被独占分配给独占应用205的具体的系统资源的信息可以被包括在信息209中。这可以包括标识已经被独占地分配给独占应用205的处理资源(诸如保留处理235)和存储器资源(诸如保留存储器资源245)的信息。该信息还可以包括处理资源的表现特征以及与可能至少具有对所分配的处理资源的一些访问权的其他应用有关的信息。将会理解,资源分配信息209可以包括向独占应用205通知已经为其分配的供其独占使用的系统资源的任何合理信息以及关于如何访问这些系统资源的信息。

在一些实施例中,计算系统可以包括资源管理器210不直接控制、但是当资源管理器试图最大化独占地可用于独占应用205的资源时可能想要成为“好公民”的其他系统服务280。因此,资源管理器210可定义这些组件可以订阅的广播信道,如285处所例示的。广播285可以请求其他系统服务280在独占应用205活动时延迟任何低优先级活动,从而更多资源可以被相应地分配。

例如,对文件进行索引以将其显示为搜索结果是一个相对低优先级的活动;决定何时调度这一任务的其他系统服务280的组件可以选择在资源管理器将系统资源投入到独占应用205时抑制它。如果独占应用205变为不活动,则资源管理器210可以更新广播285,从而其他系统服务280可以恢复其活动。如果独占应用205稍后再次变为活动,则可以再次更新广播285,从而其他系统服务280可以抑制它们的活动。

在一些实施例中,独占应用205可能需要采取特殊动作以开始使用已经被分配给其独占或近似独占使用的系统资源。例如,如208处所例示的,独占应用205可能需要对系统控制单元220的一个或多个api或对处理资源230进行特殊调用,以将线程调度到保留处理器235的处理器上。尽管调用208被示为由系统控制单元220接收,但这仅是为了便于说明。将会理解,可以根据需要由任何适当的系统资源接收调用208,以确保专用应用能够访问那些资源。另外,可以对如所需要的那么多的系统资源进行任意数量的调用208。

如所例示的,资源管理器210还可以包括监视模块213。监视模块213可被配置为监视各种应用(包括独占应用205),以确保计算系统200的稳定性。例如,如果监视模块213确定独占应用205不再活动或不再需要独占使用所分配的系统资源,则监视模块213可以使资源管理器210如前所述的更新广播285。另外,监视模块213可以使资源管理器210使用通信信道207来通知独占应用205它不再具有独占资源分配。如果监视器213稍后确定独占应用205再次活动并且需要独占资源分配,则它可以使系统资源管理器210以先前描述的方式分配系统资源。

在一些实施例中,监视模块213可以在独占应用205的操作期间确定由于系统资源的独占分配而导致整体系统性能不足,因为其他操作应用过度使用非独占系统资源。在这种情况下,监视模块213可以使资源管理器210确定可以被独占分配给独占应用205的新的较低级别的资源,该新的较低级别的资源将为其他应用留下足够的资源。随后,该新分配信息209可被传送给独占应用205。以这种方式,独占应用205仍将接收一定程度的系统资源的独占使用,尽管可能不是最大可能的独占系统资源分配,同时改进了计算系统200的整体性能。

以类似的方式,如果监视模块213在独占应用205的操作期间确定更多系统资源已变得可供独占应用使用,则监视模块213可以使资源管理器210为独占应用205分配更多系统资源。随后,该新分配信息209可被传送给独占应用。

现在注意图6,其例示了计算系统200的替代实施例。如图所示,计算系统200包括资源管理器210和系统控制单元220,如之前描述的图2中所示的实施例。尽管为了便于阐述未示出,但是图6的实施例还可以包括上面结合图2的实施例描述的计算系统200的其他系统资源元素。

图6的实施例包括应用605,在一些实施例中,应用605可以是游戏或其他高端应用,其将以与独占应用205受益相同的方式受益于一种或多种系统资源的分配供其独占使用。然而,与独占应用205不同,应用605可以不是一个能够请求分配一种或多种系统资源供其独占使用的应用。例如,应用605可能是未被编码来发出这一请求的旧式应用或游戏。

因此,这一实施例的计算系统200还可以包括代理组件610。在操作中,代理组件610被配置为检测应用605正在计算系统200上运行。随后,代理组件610可以代表应用605并且可以与资源管理器210通信,如612处所例示的。在该通信期间,代理组件610可以发起与资源管理器210的协商,以分配各种系统资源供应用605独占使用。这一协商可以以先前关于图2的实施例所描述的方式进行。另外,资源管理器210可以使用系统控制单元220和计算系统200的其他元件以先前关于图2的实施例描述的方式分配和划分系统资源供应用605独占使用。

以这种方式,尽管应用605不能够请求或协商系统资源的独占使用,但是它能够获得对一种或多种系统资源的独占使用,因为代理组件610替它处理请求或协商。因此,可以以对应用605无缝的方式来改善应用605的操作。

下面的讨论现在涉及可被执行的多个方法和方法动作。尽管这些方法动作可以以特定次序被讨论或在流程图中被例示为以特定次序发生,但是除非特别指明否则不需要任何特定排序,或者因某一动作取决于在该动作被执行之前完成的另一个动作而要求特定排序。

图7例示了用于分配一种或多种系统资源供应用独占使用的示例方法700的流程图。方法700将结合先前讨论的图2-6中的一个或多个来描述。

方法700包括接收为第一应用独占分配一种或多种系统资源的请求(动作710)。该一种或多种系统资源可由第一应用和一个或多个第二应用使用。例如,如先前所讨论的,资源管理器210可以接收对处理资源230、存储器资源240、i/o资源250、图形资源260或其他系统资源270中的一个或多个的独占分配的请求。在该请求之前,这些系统资源可以由独占应用205、应用605和一个或多个非独占应用204使用。该请求可以包括供独占应用205或应用605独占使用的系统资源的最大期望分配。

在一个实施例中,请求可以从独占应用205处接收。在另一实施例中,请求可以从代表不能自己作出请求的应用605的代理组件610处接收。在一些实施例中,如以下将结合方法800讨论的,该请求可以包括资源管理器210与独占应用205或代理组件610之间的协商。

方法700还包括确定将被独占分配给第一应用的一种或多种系统资源的适当数量(动作720)。例如,如先前所讨论的,资源管理器210及其各种模块可以确定可被分配给独占应用205或应用605的系统资源的适当数量。这一确定可以基于资源管理器201在动作710接收的最大期望分配。此外,这一确定还可以基于先前讨论的其他因素,诸如独占应用205或应用605是否是被批准独占使用一种或多种系统资源的应用、独占应用205或应用605是否是活动的、提供给独占应用205或应用605的所请求的独占使用的一种或多种系统资源的数量是否将留下足够的系统资源供一个或多个第二应用使用、独占应用205或应用605的使用历史是否保证该独占使用、和/或独占应用205或应用605是否具有保证该独占使用的优先权。

方法700还包括将一种或多种系统资源划分为第一部分和第二部分,第一部分被分配供第一应用独占使用,而第二部分未被分配供第一应用独占使用,第二部分可供一个或多个第二应用使用(动作730)。例如,如先前所讨论的,资源管理器210可以指示系统控制单元220将处理资源230、存储器资源240、i/o资源250、图形资源260或其他系统资源270中的一个或多个划分为供独占应用205或应用605独占使用的第一部分,以及供一个或多个非独占应用204使用的第二部分。

例如,处理资源230可以被划分为供独占应用205或应用605独占使用的保留处理器235,以及供一个或多个非独占应用204使用的通用处理器236。类似地,存储器资源240可以被划分为供独占应用205或应用605独占使用的保留存储器245,以及供一个或多个非独占应用204使用的通用存储器246。

图8例示出了用于为第一应用请求一种或多种系统资源的独占分配的协商过程的示例方法800的流程图。方法800将结合先前讨论的图2-6中的一个或多个来描述。

方法800包括接收关于可被分配给第一应用独占使用的一种或多种系统资源的最大数量的查询(动作810)。例如,如先前所讨论的,资源管理器210可以从独占应用205或代理组件610接收查询,如310所例示的,该查询询问资源管理器可以分配给独占应用205或应用605独占使用的系统资源的最大数量。

方法800包括通过提供可被分配给第一应用独占使用的一种或多种系统资源的最大数量来对查询作出响应(动作820)。例如,如先前所讨论的,如320所例示的,资源管理器210可以向独占应用或代理组件610提供在计算系统200的当前操作需求情况下可被分配给独占应用205或应用605独占使用的系统资源的最大数量。

方法800还可以包括接收指定第一应用期望其独占使用的一种或多种系统资源的数量的信息(动作830)。例如,如先前所讨论的,如330所例示的,资源管理器210可以从独占应用205或代理组件610接收信息,该信息指定独占应用205或应用605合理地需要的系统资源的数量。例如,独占应用205或应用605可能合理地需要资源管理器210愿意分配给其独占使用的一种或多种系统资源的最大数量,并且这可以被指定在资源管理器210接收的信息中。替代地,独占应用205或应用605可能合理地需要小于资源管理器210愿意分配给其独占使用的一种或多种系统资源的最大数量,并且这可以被指定在资源管理器210接收的信息中。

方法800还包括确定第一应用是否要被给予对于所接收的信息中指定的一种或多种系统资源的独占使用(动作840)。例如,如先前所讨论的,资源管理器210可以确定将一种或多种系统资源中的多少分配给独占应用205或应用605独占使用。这一确定可以以先前结合方法700的动作720所讨论的方式执行。

对于本文公开的过程和方法,过程和方法中执行的操作可以以不同的顺序来实现。此外,概述的操作仅作为示例提供,并且一些操作可以是可选的、可被组合成更少的步骤和操作、可被补充进一步的操作、或者扩展到附加操作而不偏离所公开的实施例的本质。

本发明可具体化为其它具体形式而不背离其精神或本质特征。所描述的实施例在所有方面都应被认为仅是说明性而非限制性的。从而,本发明的范围由所附权利要求书而非前述描述指示。落入权利要求书的等效方案的含义和范围内的所有改变应被权利要求书的范围所涵盖。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1