首页> 中国专利> 基于因设备而异或因用户而异的资源使用简档的资源管理

基于因设备而异或因用户而异的资源使用简档的资源管理

摘要

跟踪与应用相关联的前台进程以及与该应用相关联的作为独立进程在该计算设备上运行的一个或多个后台任务所使用的资源。与该应用的资源使用有关的历史数据被用于预测该应用的资源使用量,其随后被存储。该应用的随后启动可基于所预测的资源使用量是否可用来调节。如果预测资源使用量可用,则可将其分配给该应用且该应用可被启动。如果此时该应用超出预测资源使用量,则与其并行执行的其它进程可被终止以释放资源。不管应用如何执行,针对该应用获得新资源使用数据,随后使用该新资源使用数据来调整预测资源使用量。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-04-03

    授权

    授权

  • 2016-12-07

    实质审查的生效 IPC(主分类):G06F9/50 申请日:20150227

    实质审查的生效

  • 2016-11-09

    公开

    公开

说明书

背景

当今的移动设备,特别是当今的低端移动设备,受到多任务场景的严重挑战。情形经常是,为了大规模具有竞争力,移动设备必须使用低端和/或低功率部件来制造。用于实现移动设备的存储器尤其如此,该存储器包括随机存取存储器(RAM)和多媒体卡(MMC)两者。这一点的净效应是,依赖于用于存储器管理的分页(paging)的传统移动设备在尝试并行运行的多个进程时跌落得非常快。这导致非常差的用户体验和受困的多任务场景。当为移动设备开发的应用和操作系统变得越来越大,同时市场需要降低的制造成本时,这一问题变得尤为重大。

以前,不具有足以支持移动设备上的多个进程的并行执行的存储器的问题是按以下方式中的一种或多种来处理的:使用用于存储器管理的分页;在移动设备上提供更多存储器;以及对应用和操作系统的大小施加限制。如同上面指出的,分页可导致非常差的用户体验和受困的多任务场景。提供更多存储器使得移动设备的成本、复杂度和功耗上升。对应用和操作系统的大小施加限制使得向用户开发和递送期望的功能极为困难。出于至少这些原因,用于移动设备的现有存储器管理解决方案是不足的。需要更好的存储器管理技术来使得当今的移动设备能够按照不对用户体验带来负面影响并且允许各种各样的多任务场景的方式来并行执行多个进程。

概述

本文描述了允许跟踪各种资源(诸如易失性和非易失性存储器、中央处理单元(CPU)、输入/输出(I/O)、网络、电力、和传感器)被在计算设备(诸如移动计算设备)上执行的应用的使用的系统、方法、装置和计算机程序产品。本文描述的技术通过跟踪与应用相关联的前台进程(例如,当前正为该应用提供用户界面并占据与计算设备相关联的显示的至少一部分的进程)以及与作为计算设备上的独立进程运行的与该应用相关联的一个或多个后台任务两者所使用的资源来有利地跟踪应用的资源使用。与该应用的资源使用有关的历史数据被用于预测该应用的资源使用量,其随后被存储。该应用的随后启动可基于所预测的资源使用量是否可用来调节。如果预测资源使用量可用,则可将其分配给该应用且该应用可被启动。如果该应用接着超出预测资源使用量,则与其并行执行的其它进程可被终止以释放资源。不管应用如何执行,针对该应用获得新的资源使用数据,随后使用该新的资源使用数据来调整预测资源使用量。以此方式,针对该应用的资源分配可基于用户的使用模式针对用户随时间自动微调且使得该计算设备能够提供更好的用户体验和改善的性能,尤其在多任务场景期间。对于支持多个用户的计算设备,可针对每个用户/应用组合存储预测资源使用量。

本文描述的系统、方法、装置和计算机程序产品还能够跟踪与应用和/或用户的资源使用有关的其它信息,诸如时间、位置、以及与特定资源使用行为相关联的事件。此类信息可有利地被用于预测性地将计算设备的资源分配给应用,甚至在用户尝试启动应用之前。而且,应用和/或应用数据可在预期用户访问所述应用和/或应用数据之前的时间点处被加载到存储器中。

具体而言,本文描述了一种用于管理计算设备的资源的由计算设备执行的方法。所述资源可包括例如以下的至少一者:易失性或非易失性存储器资源、CPU资源、I/O资源、网络资源、电力资源、以及传感器资源。根据该方法,确定该资源的被应用的第一实例在该第一实例被计算设备执行期间所使用的第一量。确定第一量可包括确定由与第一应用相关联的前台进程和与该应用的第一实例相关联的一个或多个后台任务所使用的资源量。至少基于所述第一量来计算所述应用的第一预测资源使用量。将所述第一预测资源使用量存储在数据存储中。随后,至少基于存储在所述数据存储中的所述第一预测资源使用量来确定所述资源的要被分配给所述应用的要被所述计算设备执行的第二实例的第二量。

在前述方法的一个实施例中,至少基于第一量来计算针对该应用的第一预测资源使用量包括通过将第一量与和该应用的一个或多个先前执行的实例相关联的一个或多个先前确定的量来获得该应用的最大资源使用量以及基于该最大资源使用量来计算第一预测资源使用量。

在替换实施例中,至少基于该第一量来计算该应用的第一预测资源使用量包括基于该第一量以及和该应用的先前执行的实例相关联的一个或多个先前确定的量来获得该应用的平均资源使用量,以及基于该平均资源使用量来计算该第一预测资源使用量。进一步根据此实施例,获得该应用的平均资源使用量可包括将该第一量乘以第一加权因子来获得第一乘积。将至少基于所述一个或多个先前确定的量获得的运行平均量乘以第二加权因子来获得第二乘积,以及将该第一乘积和第二乘积求和。取决于实现,第一加权因子可以大于、小于或等于第二加权因子。

前述方法还可包括:确定第二资源量当前不可用,并且作为响应,执行特定动作,诸如阻止该应用的第二实例的执行,和/或终止该计算设备上当前执行的一个或多个进程。

前述方法可进一步包括确定所述资源的被所述应用的所述第二实例在所述应用的所述第二实例被所述计算设备执行时使用的量超出所述第二量,并且作为响应,终止在所述计算设备上并行执行的一个或多个进程。

在前述方法的另一实施例中,所述确定、计算和存储步骤包括确定该资源的被该应用的第一实例在该第一实例被该计算设备代表第一用户执行时使用的第一量,至少基于该第一量计算针对该应用和该第一用户的第一预测资源使用量,将该第一预测资源使用量存储在数据存储中,以及至少基于存储在数据存储中的第一预测资源使用来那个确定该资源的要被分配给该应用的要被该计算设备代表该第一用户执行的第二实例的第二量。根据此实施例,该方法进一步包括确定该资源的被该应用的第三实例在该第三实例正被该计算设备代表第二用户执行时使用的第三量,至少基于该第三量来计算针对该应用和该第二用户的第二预测资源使用量,以及至少基于存储在该数据存储中的第二预测资源使用量确定该资源的要被分配给该应用的要由该计算设备代表该第二用户执行的第四实例的第四量。

本文还描述了一种计算机程序产品。该计算机程序产品包括具有存储于其上的计算机程序逻辑的计算机可读介质,该计算机程序逻辑在被计算设备的至少一个处理器执行时引起该至少一个处理器执行操作。所述操作包括接收启动应用的请求,获得该应用的预测资源使用量,该预测资源使用量基于该计算设备的资源在该应用被该计算设备的一个或多个先前执行期间的被监视的使用,通过将该预测资源使用量与当前可用的资源量进行比较来确定是否足够量的资源可用,并且响应于至少确定足够量的资源可用而允许该应用启动。所述资源可包括易失性或非易失性存储器资源、CPU资源、I/O资源、网络资源、电力资源、以及传感器资源之一。该应用的资源的被监视的使用可引起与该应用相关联的前台进程以及与该应用相关联的一个或多个后台任务对该资源的被监视的使用。

在前述计算机程序产品的一个实施例中,所述操作进一步包括:响应于至少确定足够量的资源不可用,不允许该应用启动。

在另一实施例中,所述操作进一步包括响应于至少确定足够量的资源不可用,引起一个或多个进程终止。

在又一实施例中,所述操作进一步包括:响应于确定该应用在被启动之后所使用的资源量超出预测资源使用量,终止该计算设备上并行执行的一个或多个进程。

在又一实施例中,所述接收步骤包括接收代表第一用户启动该应用的请求,且该获得步骤包括获得针对该应用和该第一用户的预测资源使用量。

本文还描述了一种在计算设备上实现的系统。该系统包括至少一个处理器和能被该至少一个处理器访问的存储器。该存储器存储用于由该至少一个处理器执行的组件。所述组件包括资源管理器,所述资源管理器能操作以监视应用和用户中的一者或多者对所述计算设备的至少一个资源的使用模式,存储与所述使用模式相关联的信息,以及在至少一个进程被所述至少一个处理器执行之前使用所存储的信息来将所述资源的至少一部分预测性地分配给所述至少一个进程。所述至少一个资源可包括易失性或非易失性存储器资源、CPU资源、I/O资源、网络资源、电力资源、以及传感器资源。

在前述系统的一个实施例中,资源管理器能操作以在计算设备或任何其它实体的用户启动该应用之前预测性地向应用分配该资源的该至少一部分。在前述系统的其中该至少一个资源包括存储器的另一实施例中,在计算设备的用户或任何其它实体启动应用之前,资源管理器可将该应用或与该应用相关联的数据的至少一部分加载到预测性分配的存储器中。

提供该概述以便以简化形式介绍概念的选集,所述概念在以下详细描述中被进一步描述。本概述并不旨在标识所要求保护主题的关键特征或必要特征,也不旨在用于限制所要求保护主题的范围。此外,注意到所要求保护的主题不限于在详细描述和/或本文的其它章节中所述的特定实施例。本文呈现这些实施例仅用于说明性的用途。基于本文所包含的描述,其它实施例对于相关领域的技术人员将是显而易见的。

附图说明

合并在此并作为说明书一部分的附图与说明书一起示出了本发明的实施例,且进一步用于解释本发明的原理的作用,并且使相关领域的技术人员能够实现并使用本发明。

图1是根据一实施例的执行基于因设备而异或因用户而异的资源使用简档的资源管理的计算设备的框图。

图2描绘了根据一实施例的由计算设备实现的用于根据因设备而异或因用户而异的资源使用简档来管理计算设备的资源的方法的流程图。

图3描绘了根据一个实施例的用于计算应用的预测资源使用量的方法的流程图。

图4描绘了根据另一实施例的用于计算应用的预测资源使用量的方法的流程图。

图5描绘了根据一实施例的用于获得应用的平均资源使用量的方法的流程图。

图6描绘了根据图2中示出的流程图的方法可被执行的附加步骤的流程图。

图7描绘了根据图2中示出的流程图的方法可被执行的附加步骤的流程图。

图8描绘了根据图2中示出的流程图的方法可被执行的附加步骤的流程图。

图9描绘了根据一实施例的由计算设备实现的用于根据因用户而异的资源使用简档来管理计算设备的资源的方法的流程图。

图10描绘了根据一实施例的用于根据因设备而异或因用户而异的资源使用简档来管理应用的启动的方法的流程图。

图11描绘了用于使用用户关于计算设备的资源的所监视到的资源使用模式以及从其推导出的信息来预测性地向进程分配资源的方法的流程图。

图12描绘了用于使得在计算设备上运行的应用能够帮助管理计算设备的资源向与该应用相关联的前台进程和一个或多个后台进程的分配的一个方法的流程图。

图13描绘了用于使得在计算设备上运行的应用能够帮助管理计算设备的资源向与该应用相关联的前台进程和一个或多个后台进程的分配的另一方法的流程图。

图14是可被用来实现各个实施例的示例移动设备的框图。

图15是可用于实现各实施例的示例基于处理器的计算机系统的框图。

当结合其中相同的附图标记标识对应的元素的附图时,本发明的特征和优点将从以下阐述的详细描述中变得更加显而易见。在附图中,相同的参考标号一般指相同的、功能上相似的和/或结构上相似的元素。其中元素第一次出现的附图由对应的参考标号中最左侧的数字指示。

详细描述

I.引言

以下详细描述参考示出本发明的示例性实施例的附图。但是,本发明的范围不限于这些实施例,而是由所附权利要求书定义。因此,诸如所示实施例的修改版本之类的在附图所示之外的实施例仍然由本发明所包含。

本说明书中对“一个实施例”、“实施例”、“示例实施例”等的引用指的是所述实施例可包括特定的特征、结构或特点,但是每一实施例不一定包括该特定的特征、结构或特点。此外,这些短语不一定指相同的实施例。此外,当结合实施例描述具体特征、结构或特性时,应当理解在相关领域的技术人员的知识范围内能够结合其他实施例来实现具体特征、结构或特性,无论是否被显式地描述。

本文描述了允许跟踪各种资源(诸如易失性和非易失性存储器、CPU、I/O、网络、电力、和传感器)被在计算设备(诸如移动计算设备)上执行的应用的使用的系统、方法、装置和计算机程序产品。本文描述的技术通过跟踪与应用相关联的前台进程(例如,为该应用提供用户界面并可能排他地占据与计算设备相关联的显示的至少一部分的进程)以及与作为计算设备上的独立进程运行的与该应用相关联的一个或多个后台任务两者所使用的资源来有利地跟踪应用的资源使用。与该应用的资源使用有关的历史数据被用于预测该应用的资源使用量,其随后被存储。该应用的随后启动可基于所预测的资源使用量是否可用来调节。如果预测资源使用量可用,则可将其分配给该应用且该应用可被启动。如果该应用接着超出预测资源使用量,则与其并行执行的其它进程可被终止以释放资源。不管应用如何执行,针对该应用获得新的资源使用数据,随后使用该新的资源使用数据来调整预测资源使用量。以此方式,针对该应用的资源分配可基于用户的使用模式针对用户随时间自动微调且使得该计算设备能够提供更好的用户体验和改善的性能,尤其在多任务场景期间。对于支持多个用户的计算设备,可针对每个用户/应用组合存储预测资源使用量。

本文描述的系统、方法、装置和计算机程序产品还能够跟踪与应用和/或用户的资源使用有关的其它信息,诸如时间、位置、以及与特定资源使用行为相关联的事件。此类信息可有利地被用于预测性地将计算设备的资源分配给应用,甚至在用户尝试启动应用之前。而且,应用和/或应用数据可在预期用户访问所述应用和/或应用数据之前的时间点处被加载到存储器中。

第II节描述了根据一实施例的基于因设备而异或因用户而异的资源使用简档来执行资源管理的示例计算设备,以及相关联的方法。第III节描述了第II节的示例计算设备还可如何允许多进程应用的动态资源管理。第IV节描述了可实现本文描述的资源管理特征的示例移动设备。第V节描述了可实现本文描述的资源管理特征的示例台式计算机。第VI节提供一些总结性评述。

II.用于基于因设备而异的或因用户而异的资源使用简档来执行资源管理的示例系统和方法

图1是根据一实施例的基于因设备而异或因用户而异的资源使用简档来执行资源管理的计算设备100的框图。计算设备100通常旨在表示能够代表用户运行应用的基于处理器的电子设备。在一个实施例中,计算设备100包括移动计算设备,诸如移动电话(例如智能电话)、膝上型计算机、平板计算机、或上网本。计算设备100可想象包括其它类型的移动计算设备,诸如可穿戴计算机(例如,头戴式计算机)、便携式媒体播放器、个人数字助理、个人导航助理、手持式游戏终端、或能够代表用户运行应用的任何其它移动设备。可以整合计算设备100的功能的移动设备的一个示例将在下面参考图14讨论。在另一实施例中,计算设备100包括台式计算机或能够代表用户运行应用的其它非移动计算平台。可以整合计算设备100的功能的示例台式计算机将在下面参考图15讨论。

如图1中所示,计算设备100包括应用102、操作系统104、以及数据存储106。在一个实施例中,应用102和操作系统104中的每一者均包括存储在计算设备100的存储器中并在该计算设备上由通信地连接至存储器的处理器(例如,微处理器或能操作以执行软件指令的其它电路)执行的软件组件。仅为简单,该存储器和处理器包括计算设备100的部分但在图1中未被示出。进一步根据这样的实施例,应用102和操作系统104可各自被持久存储在计算设备100的非易失性存储器上并随后被临时转移到计算设备100的易失性存储器上以在计算设备100的加电操作期间在该处由处理器执行。

应用102旨在表示可在计算设备100上安装和执行以代表其用户执行功能和/或提供特征的各种计算机程序中的任一者。应用102可表示,例如但不限于,电话通讯应用、电子邮件应用、消息收发应用、Web浏览应用、日历应用、工具应用、游戏应用、社交联网应用、音乐应用、生产力应用、生活方式应用、参考应用、旅行应用、体育应用、导航应用、保健和健身应用、新闻应用、照片应用、财务应用、商业应用、教育应用、天气应用、电子阅读器应用、医疗应用等。

操作系统104包括共同管理资源并为在计算设备100上执行的应用提供公共服务的计算机程序集合。如图1中所示,操作系统104包括驱动器110、内核120、以及系统服务130。驱动器110包括使得操作系统104能够与计算设备100的各种硬件资源(诸如CPU、系统存储器、以及I/O设备)交互的组件。内核120利用驱动器110来管理这些硬件资源和计算设备100的其它资源并允许其它程序运行和使用这些资源。内核120可执行诸如向CPU分配进程、向特定进程分配系统存储器、以及向合适设备分配I/O请求等操作。系统服务130是操作以服务来自应用的对可被内核120分配的各种资源的请求的组件。

如图1中所示,内核120包括存储器管理器122。存储器管理器122控制计算设备100的系统存储器如何被利用并执行使得其它进程在需要系统存储器时能够访问系统存储器的操作。在各个操作中,存储器管理器122可维护一种虚拟寻址模式并执行分页(paging)以使得进程可使用比物理上可用的更多的系统存储器。为了管理系统存储器,存储器管理器122与存储器驱动器112交互,该存储器驱动器为驱动器110之一。

如图1中进一步示出的,系统服务130包括资源管理器132。如本文中将更详细地讨论的,资源管理器132是操作以确定要分配给应用的资源量(其中这种确定可以基于该应用的资源使用简档)并且如果该资源量可用则分配该资源量的组件。在以下描述中,假定,要分配给应用的资源是系统存储器——然而,应当理解,本文描述的资源管理技术可被容易地扩展到计算设备100的任何其它资源,包括但不限于:CPU、除了系统存储器之外的易失性存储器、非易失性存储器、网络资源、I/O资源、电力资源(例如,电池电力或来自某种其它电力供应的电力)、以及传感器资源(例如,相机或话筒)。

数据存储106包括存储在计算设备100的易失性或非易失性存储器中的数据集合。如本文将解释的,数据存储106被资源管理器132使用来存储可在计算设备100上被安装和被执行的应用的资源使用简档。根据某些示例实现,数据存储106可包括寄存器或数据库。

当应用102要被启动时(例如,响应于用户激活应用或某个其它事件),代表应用102向系统服务130发出一个或多个系统服务调用以请求应用102被分配应用102正确执行所必需的资源。响应于所述(一个或多个)调用,资源管理器132操作以确定必要的资源是否可用,并且如果这些资源可用,则使得资源被分配给应用102。

在系统存储器的情况下,资源管理器132通过尝试访问应用102的资源使用简档来确定要分配给应用102的系统存储器的量,该资源使用简档可被存储在数据存储106中。在一实施例中,应用102的该资源使用简档包括预测资源使用量,该预测资源使用量指定应用102在执行期间预期要使用的系统存储器的量。替换地,资源使用简档应用102可包括可从中得出这一预测资源使用量的数据。在一进一步实施例中,如果在数据存储106中不存在应用102的资源使用简档,则可向应用102分配默认预测资源使用量。该默认预测资源使用量可以是对于所有应用相同的,或者可以按照应用类型而变化。

一旦资源管理器132确定应用102的预测资源使用量,则资源管理器132与存储器管理器122通信来确定该预测资源使用量当前是否可用。如果该预测资源使用量当前可用,则资源管理器132将向应用102分配该预测资源使用量而应用102可被准许执行。然而,如果该预测资源使用量当前不可用,则资源管理器132可阻止应用102执行。而且,如果预测资源使用量当前不可用,则资源管理器132还可终止计算设备上当前正执行的一个或多个其它进程以便为应用102释放系统存储器。这些其它进程可以是根据进程优先级模式已被指派了比应用102更低的优先级的进程。一旦足够的系统存储器已经按此方式被重新捕捉,则资源管理器132可准许应用102执行。

在应用102已开始执行之后,资源管理器132将监视应用102实际正在使用多少系统存储器。以此方式,资源管理器132可确定应用102正利用比原先根据预测资源使用量分配给它的更多的系统存储器。在此情形下,资源管理器132可尝试终止计算设备100上正并行执行的一个或多个进程以便确保足够的系统存储器可用于应用102正确地执行。如果资源管理器132确定应用102超出了对系统存储器使用的预定义上限或者资源管理器132以其他方式确定应用102的系统存储器使用量不可接受,则资源管理器132还可终止应用102的执行。

资源管理器132还将利用它通过监视多少系统存储器正被应用102使用而获得的信息来更新存储在数据存储106中的应用102的预测资源使用量。用于更新预测资源使用量的各种算法将在下面更详细地描述。以此方式,资源管理器132可按照对应于应用102如何行为以及被计算设备100的用户利用的方式随时间自动微调应用102的资源分配。这有益地使得计算设备100能够提供更好的用户体验和提升的性能,特别是在多任务场景期间。

现在将参考图2的流程图200描述资源管理器132操作以根据因设备而异或因用户而异的资源使用简档来管理计算设备100的资源的方式。尽管流程图200的步骤将是继续参考图1的计算设备100的组件来进行描述的,然而要理解,该方法可完全由其它组件执行。

如图2中所示,流程图200的方法开始于步骤202,其中资源管理器132确定应用的第一实例在被计算设备100执行时使用的第一资源量。例如,如同上面提及的,资源管理器132可确定在应用102的第一实例被计算设备100执行时应用102的第一实例使用的第一系统存储器量。

在一实施例中,资源管理器132通过确定与该应用的第一实例相关联的前台进程和与该应用的第一实例相关联的一个或多个后台任务所使用的资源量来确定该第一量。前台进程可以是当前提供该应用的第一实例的用户界面并占据与计算设备100相关联的显示的至少一部分的进程。然而,许多现代应用的执行还引起一个或多个后台进程(在本文中也被称为后台任务)的执行。这些后台任务可与前台进程并行执行并且在一些情况下可由前台进程发起。这样的后台任务的示例包括但完全不限于:生成背景音频、进行网际协议语音(VoIP)呼叫、同步电子邮件、内容共享等。与前台进程类似,这些后台任务消耗系统资源。然而,应用资源使用的传统观念通常不涵盖这些后台任务所使用的资源。一实施例有利地通过以下操作解决这一问题:跟踪与执行中的应用相关联的前台进程和与该同一应用相关联的一个或多个后台任务两者的资源使用,并将这两种类型的资源使用进行组合来获得该应用的总资源使用量。

在步骤204,资源管理器132至少基于该第一量计算该应用的第一预测资源使用量。例如,资源管理器132可至少基于该第一量计算该应用102第一预测系统存储器使用量。将在下面提供各种示例算法以展示可如何执行这一步骤。

在步骤206,资源管理器132将第一预测资源使用量存储在数据存储106中。例如,资源管理器132可将应用102的第一预测系统存储器使用量存储在数据存储106中。

在执行步骤206之后的某刻,通知资源管理器132该应用的第二实例将在计算设备100上被执行。在步骤208中,资源管理器132至少基于数据存储106中存储的第一预测资源使用量来确定要分配给该应用的第二实例的第二资源量。例如,资源管理器132可至少基于数据存储106中针对应用102存储的第一预测系统存储器使用量来确定要分配给应用102的第二实例的第二系统存储器量。确定第二系统存储器量可包括,例如,将该第二系统存储器量设置为第一预测系统存储器使用量。

在步骤204中,可使用各种方法来计算该应用的第一预测资源使用量。例如,在一个实施例中,基于该应用在特定数量的执行上所使用的最大资源量来计算第一预测资源使用量。这由图3的流程图300表示。

具体而言,图3描绘了根据一实施例的用于计算应用的预测资源使用量的方法的流程图300。如图3中所示,流程图300的方法开始于步骤302,其中资源管理器132通过将在步骤202期间确定的第一量与与该应用的一个或多个先前执行的实例相关联的一个或多个先前确定的量进行比较来获得应用的最大资源使用量。在步骤304,资源管理器132基于最大资源使用量来计算第一预测资源使用量。

现在将提供此方法的一示例。根据此示例,资源管理器132跟踪应用102在五次不同执行期间应用102的系统存储器使用并且选择应用102在这些执行上的最大系统存储器使用作为预测资源使用量。例如,假定在应用102的最近四次执行期间,应用102分别使用了100MB、120MB、160MB和140MB系统存储器。随后在步骤202期间,资源管理器132确定应用102的当前执行的实例正使用150MB系统存储器。在此情况下,资源管理器132可将第一预测资源使用量设置为160MB(或者可能160MB加上一定的缓冲量),因为这是应用102在其最近五次执行上的最大系统存储器使用。

在另一实施例中,基于该应用在特定数量的执行上所使用的平均资源量来计算第一预测资源使用量。这由图4的流程图400表示。

具体而言,图4描绘了根据一实施例的用于计算应用的预测资源使用量的方法的流程图400。如图4中所示,流程图400的方法开始于步骤402,其中资源管理器132基于在步骤202期间确定的第一量和与该应用的一个或多个先前执行的实例相关联的一个或多个先前确定的量获得该应用的平均资源使用量。在步骤404,资源管理器132基于平均资源使用量来计算第一预测资源使用量。

现在将提供此方法的一示例。根据此示例,资源管理器132跟踪应用102在其五次不同执行期间的系统存储器使用,计算那些值的平均值,并随后使用平均值作为预测资源使用量。例如,假定在应用102的最近四次执行期间,应用102分别使用了100MB、120MB、160MB和140MB系统存储器。随后在步骤202期间,资源管理器132确定应用102的当前执行的实例正使用150MB系统存储器。在此情形下,资源管理器132将确定应用102的平均资源使用量是((100MB+120MB+160MB+140MB+150MB)/5),其等于134MB。因此,资源管理器132可将第一预测资源使用量设置为134MB(或者可能134MB加上一定缓冲量)。

现在将描述可获得在步骤402中描述的平均资源使用量的另一方法根据此方法,将资源使用量的运行平均值与最近资源使用量进行组合来获得新的长期运行平均值。该组合可被加权以使得更大权重被应用于旧的长期运行平均值或最近的资源使用量。替换地,这两个量可被等同地加权。该方法可用以下等式来表示:

RAVG_NEW=αRAVG_OLD+(1-α)RNEW

其中RAVG_NEW表示资源使用量的新的运行平均值,RAVG_OLD表示资源使用量的旧的运行平均值,RNEW表示最近观察到的资源使用量,而α是确定加权的变量。

例如,假定资源使用量的旧的运行平均值RAVG_OLD等于130MB,最近观察到的资源使用量RAVG_NEW为160MB,而加权因子α为.25。在此情形下,资源使用量的新的运行平均值RAVG_NEW将等于((.25*130MB)+(.75*160MB)),其为152.5MB。因此,资源管理器132可将第一预测资源使用量设置为152.5MB(或者可能152.5MB加上一定缓冲量)。

在图5的流程图500中描绘了使用运行平均值获得应用的平均资源使用量的前述方法。如图5中所示,流程图500的方法开始于步骤502,其中资源管理器132将在步骤202期间获得的第一量(即,最近观察到的资源使用量)乘以第一加权因子。在步骤504期间,资源管理器132将至少基于该一个或多个先前确定的量获得的运行平均资源使用量(即,先前观察到的资源使用量)乘以第二加权因子来获得第二乘积。在步骤506,资源管理器132将第一乘积和第二乘积求和来获得新的平均资源使用量。

如上面参考图2所述,在流程图200的步骤208,资源管理器132至少基于第一预测资源使用量来确定要被分配给要被计算设备100执行的该应用的第二实例的第二资源(例如,系统存储器)量。因为第二量是基于预测算法的估计值,所以该应用的第二实例可消耗超过所分配的第二量总是可能的。为了解决这种场景,资源管理器132可被配置成确定该应用的第二实例正消耗超过其所被分配的资源份额,并且作为响应,可终止在计算设备100上并行执行的其它进程来释放资源。例如,资源管理器132可使得根据进程优先级模式已被指派了比该应用更低的优先级的某些进程被终止。

此过程在图6的流程图600中描绘。具体而言,如图6中所示,流程图600中的方法开始于步骤602,其中资源管理器132确定该应用的第二实例在被计算设备100执行时所使用的资源量超出第二量。响应于此确定,在步骤604,资源管理器132终止在计算设备上并行执行的一个或多个进程。附加地或替换地,资源管理器132可与计算设备100上并行执行的一个或多个进程通信并指示那些进程减少其对资源的消耗。

资源管理器132还可能可经由与存储器管理器122或某个其它装置的通信确定要被分配给该应用的第二实例的第二资源量当前不可用。在此情况下,资源管理器132可阻止该应用的第二实例的执行。

此过程在图7的流程图700中描绘。具体而言,如图7中所示,流程图700的方法开始于步骤702,其中资源管理器132确定第二资源量当前不可用。响应于此确定,在步骤704,资源管理器132阻止该应用的第二实例的执行。

在资源管理器132确定要被分配给该应用的第二实例的第二资源量当前不可用的情况下,资源管理器132也可终止计算设备100上正执行的一个或多个进程以释放资源。例如,资源管理器132可使得根据进程优先级模式已被指派了比该应用更低的优先级的某些进程被终止。在这些其它进程的资源消耗已被减少之后,资源管理器132随后可允许该应用的第二实例执行。

此过程在图8的流程图800中描绘。具体而言,如图8中所示,流程图800的方法开始于步骤802,其中资源管理器132确定第二资源量当前不可用。响应于此确定,在步骤804,资源管理器132终止在计算设备100上当前执行的一个或多个进程。附加地或替换地,资源管理器132可与计算设备100上当前执行的一个或多个进程通信并指示那些进程减少其对资源的消耗。

对于许多计算设备,诸如智能电话,典型使用模型是每个计算设备一个用户。在此情况下,存储该计算设备的资源使用简档基本与存储特定用户的资源使用简档相同。然而,计算设备也可被用来支持多个用户。例如,同一家庭的多个不同成员可各自使用同一平板计算机、台式计算机、或游戏控制台来运行应用。这些用户中的每个用户可使用不同应用或可按不同方式使用同一应用,从而导致资源消耗的变化的水平。为了解决此场景,某些实施例按照应用和用户两者来在计算设备上存储资源使用简档,以使得资源的预测性分配可针对当前正使用该计算设备的特定用户来定制。这些资源使用简档可被认为是因用户而异的资源使用简档(而不是先前描述的因设备而异的资源使用简档)。

图9描绘了根据一实施例的由计算设备实现的用于根据因用户而异的资源使用简档来管理计算设备的资源的方法的流程图900。现在将持续参考如上面参考图1描述的计算设备100的组件来描述流程图900的方法。然而,该方法不限于该实施例。

如图9中所示,流程图900的方法开始于步骤902,其中资源管理器132确定被应用的第一实例在被计算设备100代表第一用户执行时使用的第一资源量。例如,如同上面提及的,资源管理器132可确定在应用102的第一实例被计算设备100代表第一用户执行时应用102的第一实例使用的第一系统存储器量。应用102的第一实例正被代表第一用户执行这一事实可按各种不同方式中的任意方式确定。在其中用户可登录到计算设备100中的实施例中,当前登录信息可被用来做出此确定。然而,此示例不旨在是限制性的,用于确定计算设备的用户的身份的任何适当方法可被使用。

在步骤904,资源管理器132至少基于该第一量计算针对该应用以及该第一用户的第一预测资源使用量。例如,资源管理器132可至少基于该第一量计算针对应用102和第一用户的第一预测系统存储器使用量。前面提供了提供各种示例算法以展示可如何执行这一步骤。

在步骤906,资源管理器132将第一预测资源使用量存储在数据存储106中。例如,资源管理器132可将针对应用102和第一用户的第一预测系统存储器使用量存储在数据存储106中。

在执行步骤906之后的某刻,通知资源管理器132该应用的第二实例将在计算设备100上代表该第一用户被执行。在步骤908中,资源管理器132至少基于数据存储106中存储的第一预测资源使用量来确定要分配给该应用的第二实例的第二资源量。例如,资源管理器132可至少基于数据存储106中针对应用102和第一用户存储的第一预测系统存储器使用量来确定要分配给应用102的第二实例的第二系统存储器量。确定第二系统存储器使用量可包括,例如,将该第二系统存储器量设置为第一预测系统存储器使用量。

在步骤910,资源管理器132确定该应用的第三实例在被计算设备100代表第二用户执行时使用的第三资源量,其中第二用户不同于第一用户。例如,资源管理器132可确定在应用102的第三实例被计算设备100代表第二用户执行时应用102的第三实例使用的第三系统存储器量。应用102的第三实例正被代表第二用户执行这一事实可按各种不同方式中的任意方式确定。在其中用户可登录到计算设备100中的实施例中,当前登录信息可被用来做出此确定。然而,此示例不旨在是限制性的,用于确定计算设备的用户的身份的任何适当方法可被使用。

在步骤912,资源管理器132至少基于该第三量计算针对该应用以及该第二用户的第二预测资源使用量。例如,资源管理器132可至少基于该第三量计算针对应用102和第二用户的第一预测系统存储器使用量。前面提供了提供各种示例算法以展示可如何执行这一步骤。

在步骤914,资源管理器132将第二预测资源使用量存储在数据存储106中。例如,资源管理器132可将针对应用102和第二用户的第二预测系统存储器使用量存储在数据存储106中。

在执行步骤914之后的某刻,通知资源管理器132该应用的第四实例将在计算设备100上代表该第二用户被执行。在步骤916中,资源管理器132至少基于数据存储106中存储的第二预测资源使用量来确定要分配给该应用的第四实例的第四资源量。例如,资源管理器132可至少基于数据存储106中针对应用102和第二用户存储的第二预测系统存储器使用量来确定要分配给应用102的第四实例的第四系统存储器量。确定第四系统存储器使用量可包括,例如,将该第四系统存储器量设置为第二预测系统存储器使用量。

图10描绘了根据一实施例的用于根据因设备而异或因用户而异的资源使用简档来管理应用的启动的方法的流程图1000。现在将持续参考如上面参考图1描述的计算设备100的组件来描述流程图1000的方法。然而,该方法不限于该实施例。

如图10所示,流程图1000的方法始于步骤1002,其中接收启动应用的请求。例如,启动应用102的请求可被由例如系统服务130和/或资源管理器132接收。

在步骤1004,资源管理器132获得针对该应用的预测资源使用量。例如,资源管理器132可获得针对应用102的预测资源使用量。预测资源使用量基于在该应用被计算设备100的一次或多次先前执行期间计算设备100的资源的被监视的使用。预测资源使用量或计算这一预测资源使用量所需的信息可从针对该应用的资源使用简档获得,该简档可被存储在数据存储206中。资源可包括易失性或非易失性存储器资源、CPU资源、I/O资源、网络资源、电力资源、以及传感器资源中的一者或多者。预测资源使用量可以基于监视计算设备100的资源被与应用相关联的前台进程和与该应用相关联的一个或多个后台任务的使用。

在决策步骤1006,资源管理器132通过将预测资源使用量与当前可用的资源量进行比较来确定是否足够量的该资源可用。例如,在其中资源是系统存储器的实施例中,资源管理器132可从存储器管理器122获得当前可用的系统存储器的量,并随后将针对该应用的预测系统存储器使用量与该当前可用的系统存储器进行比较来确定是否足够量的系统存储器可用。

如果资源管理器132至少确定足够量的该资源可用,则资源管理器132将允许该应用启动,如在步骤1008所示。例如,如果资源管理器132至少确定足够的系统存储器可用,则资源管理器132将允许应用102启动。注意,可能有资源管理器132允许该应用启动必须满足的其它考量。

如果资源管理器132确定足够量的该资源不可用,则资源管理器132将不允许该应用启动,如在步骤1010所示。例如,如果资源管理器132确定足够的系统存储器不可用,则资源管理器132将不允许应用102启动。此外,资源管理器132可寻求通过引起一个或多个当前执行的进程终止或以其它方式减少其资源使用来释放资源。

在一实施例中,资源管理器132还能够跟踪与应用和/或用户的资源使用有关的其它信息,诸如时间、位置、以及与特定资源使用行为相关联的事件。此类信息可有利地被用于预测性地将计算设备的资源分配给应用,甚至在用户尝试启动应用之前。而且,应用和/或应用数据可在预期用户访问所述应用和/或应用数据之前的时间点处被加载到存储器中。

例如,如果确定用户可能在特定时间、特定地点、或与特定事件相关联地启动特定应用,则资源管理器132可操作以在预期用户启动该应用之前(以及可能恰好在预期用户启动该应用之前)确保足够的资源可用于被分配给该应用。而且,这一预测性分析可实际上被用来将应用或应用内容加载到系统存储器中以使得用户可获得对应用及其特征的立即访问。

为帮助说明这一点,图11描绘了用于使用用户关于计算设备的资源的所监视到的资源使用模式以及从其推导出的信息来预测性地向进程分配资源的方法的流程图1100。现在将持续参考如上面参考图1描述的计算设备100的组件来描述流程图1100的方法。然而,该方法不限于该实施例。

如图11中所示,流程图1100的方法开始于步骤1102,其中资源管理器132监视应用和/或用户对计算设备100的至少一个资源的使用模式。如同前面讨论的,监视使用模式可需要监视应用和/或用户的资源使用以及监视与该资源使用相关联的其它信息,诸如时间、位置和与特定资源使用行为相关联的事件。

在步骤1104,资源管理器132存储与使用模式相关联的信息。资源管理器132可将该信息存储在例如数据存储106中。

在步骤1106,资源管理器132使用所存储的信息来在至少一个进程被计算设备100执行之前预测性地向该至少一个进程分配该至少一个资源的至少一部分。在一个示例实施例中,在步骤1106期间,在计算设备100的用户或任何其它实体启动应用之前,资源管理器132预测性地向该应用分配该资源的至少一部分。在其中该至少一个资源包括系统存储器的另一示例实施例中,在计算设备100的用户或任何其它实体启动应用之前,资源管理器132可将该应用或与该应用相关联的数据的至少一部分加载到预测性分配的系统存储器中。这些示例在此仅作为说明来提供而非旨在限制。相关领域的技术人员将领会,仍有其它技术可被用来利用资源使用模式信息以执行附加资源管理任务。

III.用于多进程应用的动态资源管理的示例系统和方法

在一实施例中,图1的计算设备100使得在其上执行的应用(例如应用102)能够动态地控制计算设备100的资源的被分配部分如何在与该应用相关联的多个进程间划分。例如,在计算设备100上执行的应用102可与资源管理器132交互来动态地控制计算设备100的资源的被分配的部分将如何在与该应用相关联的前台进程和与该应用相关联的一个或多个后台进程之间划分。通过向应用提供此能力,本文描述的实施例有利地允许应用适于改变的资源分配和更好地与计算设备上可能正在执行的其它进程共存,由此更好地允许各种多任务场景。

现在将参考图12的流程图1200来描述应用102和资源管理器132可交互以进行这种动态资源管理的一种方式。如图12中所示,流程图1200的方法开始于步骤1202,其中资源管理器1202向与应用102相关联的前台进程发送该应用正在前台执行的通知。

在步骤1204,资源管理器132接收来自前台进程的至少一个消息,该至少一个消息指定第一资源使用预算的要被分配给该前台进程的第一部分以及第一资源使用预算的要被分配该与该应用相关联的至少一个后台任务的第二部分。

在步骤1206,资源管理器132向该前台进程分配该资源的等于该第一资源使用预算的第一部分的一部分并向该至少一个后台任务分配该资源的等于该第一资源使用预算的第二部分的一部分。资源可包括例如而不限于:易失性或非易失性存储器、CPU、I/O资源、网络资源、电力资源、传感器资源。

在步骤1208,资源管理器132向前台进程发送该应用将被挂起或终止的通知。

在步骤1210,资源管理器132接收来自前台进程的至少一个消息,该至少一个消息指定第二资源使用预算的要被分配给该前台进程的第一部分以及第二资源使用预算的要被分配该与该应用相关联的至少一个后台任务的第二部分。第二资源使用预算可以比第一资源使用预算更小。

在步骤1212,资源管理器132向该前台进程分配该资源的等于该第二资源使用预算的第一部分的一部分并向该至少一个后台任务分配该资源的等于该第二资源使用预算的第二部分的一部分。在预定时间段之后,资源管理器132随后可确定被该前台进程使用的资源量和被该至少一个后台进程使用的资源量的总和是否超出该第二资源使用预算。响应于确定该总和超出该第二资源使用预算,资源管理器132可引起该前台进程和该至少一个后台进程中的一个或多个被终止。

在一个实施例中,在前述方法中在资源管理器132和前台进程之间交换的通信是经由共享API来交换的。这一API可被展示给应用的开发者以使得这些开发者可开发可利用这些特征的应用。

图13描绘了用于使得在计算设备上运行的应用能够帮助管理计算设备的资源向与该应用相关联的前台进程和一个或多个后台进程的分配的另一方法的流程图1300。

如图13中所示,流程图1300开始于步骤1302,其中资源管理器132向与应用相关联的前台进程发送指示资源使用预算的至少一个消息。

在步骤1304,资源管理器132接收来自前台进程的至少一个消息,该至少一个消息指定该资源使用预算的要被分配给该前台进程的第一部分以及该资源使用预算的要被分配该与该应用相关联的至少一个后台任务的第二部分。

在步骤1306,资源管理器132向该前台进程分配该资源的等于该资源使用预算的第一部分的一部分并向该至少一个后台任务分配该资源的等于该资源使用预算的第二部分的一部分。

在一个实施例中,被发送给该前台进程的该至少一个消息和被发送给该资源管理器的该至少一个消息是经由共享API发送的。

在另一实施例中,资源使用预算包括正在前台执行的应用的资源使用预算,且指示该资源使用预算的该至少一个消息包括该应用正在前台执行的通知。

在又一实施例中,资源使用预算包括被挂起或终止的应用的资源使用预算,且指示该资源使用预算的该至少一个消息包括该应用将被挂起或终止的通知。

在一进一步实施例中,资源管理器132在预定时间段之后确定被该前台进程使用的资源量和被该至少一个后台进程使用的资源量的总和是否超出该资源使用预算,并且响应于确定该总和超出该资源使用预算,引起该前台进程和该至少一个后台进程中的一个或多个被终止。

IV.示例移动设备实现

图14是可实现本文描述的各实施例的示例移动设备1402的框图。如图14中显示的,移动设备1402包括各种任选的硬件和软件组件。移动设备1402中的任何组件可与任何其他组件通信,但出于容易例示的目的而未示出所有连接。移动设备1402可以是各种计算设备(例如,蜂窝电话、智能电话、手持式计算机、个人数字助理(PDA)等)中的任一个,并且可允许与诸如蜂窝或卫星网络的一个或多个移动通信网络1404或与局域网或广域网进行无线双向通信。

图示的移动设备1402可以包括用于执行任务的控制器或处理器1410(例如,信号处理器、微处理器、ASIC或者其他控制和处理逻辑电路),所述任务诸如信号编码、数据处理、输入/输出处理、功率控制、和/或其他功能。操作系统1412可控制对移动设备1402的分配和使用,并提供对一个或多个应用程序1414(也称为“应用”、“app”等)的支持。应用程序1414可包括公共移动计算应用程序(例如,电子邮件应用程序、日历、联系人管理器、web浏览器、消息接发应用程序)、或任何其他计算应用(例如文字处理应用、绘图应用、媒体播放器应用)。

图示的移动设备1402可以包括存储器1420。存储器1420可以包括不可移动存储器1422和/或可移动存储器1424。不可移动存储器1422可包括RAM、ROM、闪存、硬盘、或其他众所周知的存储器设备或技术。可移动存储器1424可包括闪存或在GSM通信系统中公知的用户身份模块(SIM)卡,或者其他诸如“智能卡”之类的公知存储器设备或技术。存储器1420可用于存储数据和/或用于运行操作系统1412和应用1414的代码。示例数据可包括经由一个或多个有线或无线网络发送给和/或接收自一个或多个网络服务器或其它设备的网页、文本、图像、声音文件、视频数据、或其它数据集。存储器1420可用于存储诸如国际移动订户身份(IMSI)等订户标识符,以及诸如国际移动设备标识符(IMEI)等设备标识符。这种标识符可以被发射至网络服务器以标识用户和设备。

移动设备1402可支持诸如触摸屏1432、话筒1434、相机1436、物理键盘1438和/或跟踪球1440的一个或多个输入设备1430,以及诸如扬声器1452和显示器1454的一个或多个输出设备1450。诸如触摸屏1432等触摸屏可以不同方式检测输入。例如,电容式触摸屏在物体(例如,指尖)使流过表面的电流变形或中断时检测到触摸输入。作为另一示例,触摸屏可使用光学传感器,在来自光学传感器的光束被中断时检测到触摸输入。对于通过某些触摸屏被检测到的输入来说,与屏幕表面的物理接触并不是必需的。

其他可能的输出设备(未示出)可以包括压电或其他触觉输出设备。一些设备可以用于多于一个输入/输出功能。例如,触摸屏1432和显示器1454可被组合在单个输入/输出设备中。输入设备1430可以包括自然用户界面(NUI)。

无线调制解调器1460可被耦合到天线(未示出),并可支持处理器1410和外部设备之间的双向通信,如本领域中清楚理解的。调制解调器1460被一般性地示出,并且可以包括用于与移动通信网络1404通信的蜂窝调制解调器1466和/或其它基于无线电的调制解调器(例如蓝牙1464和/或Wi-Fi 1462)。无线调制解调器1460的至少之一通常被配置用于与一个或多个蜂窝网络(诸如,用于在单个蜂窝网络内、蜂窝网络之间、或移动设备与公共交换电话网络(PSTN)之间的数据和语音通信的GSM网络)进行通信。

移动设备1402还可包括至少一个输入/输出端口1480、电源1482、诸如全球定位系统(GPS)接收机之类的卫星导航系统接收机1484、加速计1486、和/或物理连接器1490,该物理连接器1490可以是USB端口、IEEE 1394(火线)端口、和/或RS-232端口。所示的移动设备1402的各组件并非是必需或者涵盖全部的,因为如本领域技术人员所理解地,任何组件可不存在且附加地其它组件可存在。

在一实施例中,移动设备402的某些组件被配置成执行本文描述的与执行基于因设备而异或因用户而异的资源使用简档的资源管理以及允许多进程应用的动态资源管理有关的功能。例如,在一个实施例中,操作系统1412包括操作系统104的使得操作系统104能够执行基于因设备而异的或因用户而异的资源使用简档的资源管理的特征。作为进一步示例,操作系统1412和至少一个应用1414可包括操作系统104和应用102的使得那些组件能够执行针对多进程应用的动态资源管理的特征。然而,这只是示例并且可以由不同的组件执行不同的功能。

用于执行本文公开的涉及执行基于因设备而异或因用户而异的资源使用简档的资源管理以及允许针对多进程应用的动态资源管理的功能的计算机程序逻辑可被存储在存储器1420中并由处理器1410执行。通过执行这种计算机程序逻辑,可使得处理器1410实现上面参考图1描述的计算设备100的任意组件的任何特征。同样,通过执行这种计算机程序逻辑,可使得处理器1410执行图2-13中描绘的任何或全部流程图中的任何或全部步骤。

V.示例计算机系统实现

图15描绘了可以被用来实现本文描述的各实施例的示例性的基于处理器的计算机系统1500。例如,系统1500可被用于实现以上参考图1描述的计算设备100的任意组件。系统1500还可被用于实现在图2-13中描绘的任何或全部流程图中的任何或全部步骤。对此处所提供的系统1500的描述只是为了说明,并非旨在进行限制。各实施例也可以在相关领域的技术人员所知的其它类型的计算机系统中实现。

如图15所示,系统1500包括处理单元1502、系统存储器1504,以及将包括系统存储器1504的各种系统组件耦合到处理单元1502的总线1506。处理单元1502可包括一个或多个微处理器或微处理器核心。总线1506表示若干类型的总线结构中的任何一种总线结构的一个或多个,包括存储器总线或存储器控制器、外围总线、加速图形端口,以及处理器或使用各种总线体系结构中的任何一种的局部总线。系统存储器1504包括只读存储器(ROM)1508和随机存取存储器(RAM)1510。基本输入/输出系统1512(BIOS)储存在ROM 1508中。

系统1500还具有一个或多个以下驱动器:用于读写硬盘的硬盘驱动器1514、用于读或写可移动磁盘1518的磁盘驱动器1516、以及用于读或写诸如CD ROM、DVD ROM、蓝光TM盘或其他光介质之类的可移动光盘1522的光盘驱动器1520。硬盘驱动器1514、磁盘驱动器1516,以及光驱动器1520分别通过硬盘驱动器接口1524、磁盘驱动器接口1526,以及光盘驱动器接口1528连接到总线1506。驱动器以及它们相关联的计算机可读介质为计算机提供了对计算机可读指令、数据结构、程序模块,及其他数据的非易失存储器。虽然描述了硬盘、可移动磁盘和可移动光盘,但是,也可以使用诸如闪存卡、数字视频盘、随机存取存储器(RAM)、只读存储器(ROM)等等之类的其他类型的计算机可读存储设备和存储结构来储存数据。

数个程序模块可被储存在硬盘、磁盘、光盘、ROM或RAM上。这些程序模块包括操作系统1530、一个或多个应用程序1532、其他程序模块1534以及程序数据1536。根据各个实施例,这些程序模块可包括处理单元1502可执行来执行以上参考图1来描述的计算设备100的任何或所有功能和特征的计算机程序逻辑。程序模块还可包括当被处理单元1502执行时执行参考图2-13的流程图示出或描述的任何步骤或操作的计算机程序逻辑。

用户可以通过诸如键盘1538和定点设备1540之类的输入设备向系统1500中输入命令和信息。其它输入设备(未示出)可包括话筒、操纵杆、游戏控制器、扫描仪等等。在一个实施例中,结合显示器1544提供触摸屏以允许用户通过向触摸屏上的一个或多个点施加触摸(例如通过手指或指示笔)来提供用户输入。这些及其他输入设备常常通过耦合到总线1506的串行端口接口1542连接到处理单元1502,但是,也可以通过其他接口,诸如并行端口、游戏端口、通用串行总线(USB)端口,来进行连接。这样的接口可以是有线或无线接口。

显示器1544还通过诸如视频适配器1546之类的接口连接到总线1506。除了显示器1544之外,系统1500还可包括其他外围输出设备(未示出),如扬声器和打印机。

系统1500通过网络接口或适配器1550、调制解调器1552或其它用于在网络上建立通信的适当手段连接到网络1548(例如,局域网或诸如因特网之类的广域网)。调制解调器1552(可以是内置的或外置的)通过串行端口接口1542连接到总线1506。

如此处所用的,术语“计算机程序介质”、“计算机可读介质”以及“计算机可读存储介质”被用于泛指存储设备或存储结构,诸如与硬盘驱动器1514相关联的硬盘、可移动磁盘1518、可移动光盘1522,以及其他存储器设备或存储结构,诸如闪存卡、数字视频盘、随机读取存储器(RAM)、只读存储器(ROM)等。这些计算机可读存储介质与通信介质(不包括通信介质)相区别且不重叠。通信介质通常在诸如载波等已调制数据信号中承载计算机可读指令、数据结构、程序模块或者其它数据。术语“已调制数据信号”是指使得以在信号中编码信息的方式来设置或改变其一个或多个特性的信号。作为示例而非限制,通信介质包括无线介质,如声学、RF、红外和其它无线介质。实施例也针对这些通信介质。

如上文所指示的,计算机程序和模块(包括应用程序1532及其他程序模块1534)可被储存在硬盘、磁盘、光盘、ROM或RAM上。这样的计算机程序也可以通过网络接口1550、串行端口接口1542或任何其他接口类型来接收。这样的计算机程序,当由应用执行或加载时,使得计算机1500能实现此处所讨论的本发明的实施例的特征。因此,这样的计算机程序表示系统1500的控制器。

实施例还涉及包括存储在任何计算机可用介质上的软件的计算机程序产品。这样的软件,当在一个或多个数据处理设备中执行时,使数据处理设备如此处所描述的那样操作。本发明的各实施例使用现在已知的或将来已知的任何计算机可使用或计算机可读介质。计算机可读介质的示例包括,但不仅限于,诸如RAM、硬盘驱动器、软盘、CD ROM、DVDROM、zip磁盘、磁带、磁存储设备、光存储设备、MEM、基于纳米技术的存储设备等等之类的存储设备和存储结构。

在替换的实现中,系统1500可被实现为硬件逻辑/电子线路或固件。根据进一步实施例,这些组件中的一个或多个可被实现在片上系统(SoC)中。SoC可包括集成电路芯片,该集成电路芯片包括以下一个或多个:处理器(如微控制器、微处理器、数字信号处理器(DSP)等等)、存储器、一个或多个通信接口、和/或用于执行其功能的进一步的电路和/或嵌入的固件。

VI.结语

虽然以上描述了不同的实施例,但应当理解的是它们只是作为示例而非限制。对于相关领域的技术人员显而易见的是,可以对其做出各种改变而不背离本发明的精神和范围。因此,此处所公开的本发明的宽度和范围不应被上述所公开的示例性实施例所限制,而应当仅根据所附权利要求书及其等同替换来定义。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号