CN106104485A - 针对多进程应用的动态资源管理 - Google Patents

针对多进程应用的动态资源管理 Download PDF

Info

Publication number
CN106104485A
CN106104485A CN201580013419.3A CN201580013419A CN106104485A CN 106104485 A CN106104485 A CN 106104485A CN 201580013419 A CN201580013419 A CN 201580013419A CN 106104485 A CN106104485 A CN 106104485A
Authority
CN
China
Prior art keywords
resource
application
budget
explorer
foreground
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
Application number
CN201580013419.3A
Other languages
English (en)
Inventor
T·M·库尔茨曼
D·A·怀特沙贝尔
A·格巴德格辛
A·M·特鲁芬尼斯库
J·P·鲁滨逊
S·H·沙阿
A·卡扎
A·克林尼克
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 Technology Licensing LLC
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 Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN106104485A publication Critical patent/CN106104485A/zh
Pending legal-status Critical Current

Links

Classifications

    • 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
    • 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
    • G06F9/5016Allocation 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 the resource being the memory
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/504Resource capping
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

描述了允许在计算设备上执行的应用动态地控制计算设备的资源的被分配部分将如何在与该应用相关联的多个进程间划分的技术。例如,在该计算设备上执行的应用可与计算设备的操作系统交互来动态地控制计算设备的资源的被分配的部分将如何在与该应用相关联的前台进程和与该应用相关联的一个或多个后台进程之间划分。

Description

针对多进程应用的动态资源管理
背景
当今的移动设备,特别是当今的低端移动设备,受到多任务场景的严重挑战。情形经常是,为了大规模具有竞争力,移动设备必须使用低端和/或低功率部件来制造。用于实现移动设备的存储器尤其如此,该存储器包括随机存取存储器(RAM)、多媒体卡(MMC)、以及安全数字(SD)卡。这一点的净效应是,依赖于用于存储器管理的分页(paging)的传统移动设备在尝试并行运行的多个进程时跌落得非常快。这导致非常差的用户体验和受困的多任务场景。当为移动设备开发的应用和操作系统变得越来越大,同时市场需要降低的制造成本时,这一问题变得尤为重大。
以前,不具有足以支持移动设备上的多个进程的并行执行的存储器的问题是按以下方式中的一种或多种来处理的:使用用于存储器管理的分页;在移动设备上提供更多存储器;以及对应用和操作系统的大小施加限制。如同上面指出的,分页可导致非常差的用户体验和受困的多任务场景。提供更多存储器使得移动设备的成本、复杂度和功耗上升。对应用和操作系统的大小施加限制使得向用户开发和递送期望的功能极为困难。出于至少这些原因,用于移动设备的现有存储器管理解决方案是不足的。需要更好的存储器管理技术来使得当今的移动设备能够按照不对用户体验带来负面影响并且允许各种各样的多任务场景的方式来并行执行多个进程。
概述
本文描述了允许在计算设备上执行的应用动态地控制计算设备的资源的被分配部分将如何在与该应用相关联的多个进程间划分的系统、方法、装置和计算机程序产品。例如,在该计算设备上执行的应用可与计算设备的操作系统交互来动态地控制计算设备的资源的被分配的部分将如何在与该应用相关联的前台进程和与该应用相关联的一个或多个后台进程之间划分。通过向应用提供此能力,本文描述的实施例有利地允许应用适于改变的资源分配和更好地与计算设备上可能正在执行的其它进程共存,由此更好地允许各种多任务场景。
具体而言,本文描述了在计算设备上实现的系统。该系统包括至少一个处理器和能被该至少一个处理器访问并存储用于由该至少一个处理器执行的组件的存储器。该组件包括资源管理器。该资源管理器能操作以维持与应用相关联的资源使用预算,以向与该应用相关联的前台进程发送指示该资源使用预算的至少一个消息,以及以从该前台进程接收指定该资源使用预算的要被分配给该前台进程的第一部分以及该资源使用预算的要被分配给与该应用相关联的至少一个后台任务的第二部分的至少一个消息。该资源使用预算指示该计算设备中的多少资源可被该应用在其执行期间使用。该资源可包括例如易失性或非易失性存储器资源、中央处理单元(CPU)资源、输入/输出(I/O)资源、网络资源、电力资源、或传感器资源。
在前述系统的一实施例中,所述资源管理器进一步能操作以向所述前台进程分配所述资源的等于所述资源使用预算的所述第一部分的一部分并向所述至少一个后台任务分配所述资源的等于所述资源使用预算的所述第二部分的一部分。
在另一实施例中,发送至所述前台进程的所述至少一个消息和从所述前台进程接收的所述至少一个消息是经由共享应用编程接口(API)来传递的。
在又一实施例中,资源使用预算包括正在前台执行的应用的资源使用预算,且指示该资源使用预算的该至少一个消息包括该应用正在前台执行的通知。
在又一实施例中,资源使用预算包括被挂起或终止的应用的资源使用预算,且指示该资源使用预算的该至少一个消息包括该应用将被挂起或终止的通知。
在一进一步实施例中,该资源管理器进一步能操作以在预定时间段之后确定被该前台进程使用的资源量和被该至少一个后台进程使用的资源量的总和是否超出该资源使用预算,并且响应于确定该总和超出该资源使用预算,引起该前台进程和该至少一个后台进程中的一个或多个被终止。
本文还描述了一种由计算设备实现的方法。根据该方法,资源管理器向与应用相关联的前台进程发送所述应用正在前台执行的通知。该资源管理器接收来自前台进程的至少一个消息,该至少一个消息指定第一资源使用预算的要被分配给该前台进程的第一部分以及第一资源使用预算的要被分配该与该应用相关联的至少一个后台任务的第二部分。该第一资源使用预算包括与在前台执行的应用相关联的资源使用预算。所述资源管理器向所述前台进程分配资源的等于所述第一资源使用预算的所述第一部分的一部分并向所述至少一个后台任务分配所述资源的等于所述第一资源使用预算的所述第二部分的一部分。所述资源可包括例如易失性或非易失性存储器资源、CPU资源、I/O资源、网络资源、电力资源、以及传感器资源。
在前述方法的一个实施例中,所述发送和接收步骤是经由共享API执行的。
在另一实施例中,该方法进一步包括多个附加步骤。根据附加步骤,所述资源管理器向所述后台进程发送所述应用将被挂起或终止的通知。该资源管理器接收来自前台进程的至少一个消息,该至少一个消息指定第二资源使用预算的要被分配给该前台进程的第一部分以及第二资源使用预算的要被分配该与该应用相关联的至少一个后台任务的第二部分。所述第二资源使用预算包括与被挂起或终止的应用相关联的资源使用预算并且可小于该第一资源预算。所述资源管理器向所述前台进程分配所述资源的等于所述第二资源使用预算的所述第一部分的一部分并向所述至少一个后台任务分配所述资源的等于所述第二资源使用预算的所述第二部分的一部分。
进一步根据此实施例,可进一步包括在预定时间段之后确定被该前台进程使用的资源量和被该至少一个后台进程使用的资源量的总和是否超出该第二资源使用预算,并且响应于确定该总和超出该第二资源使用预算,引起该前台进程和该至少一个后台进程中的一个或多个被终止。
此处还描述了一种计算机程序产品。该计算机程序产品包括具有存储于其上的计算机程序逻辑的计算机可读介质,该计算机程序逻辑在被计算设备的至少一个处理器执行时引起该至少一个处理器执行操作。所述操作包括从资源管理器向与应用相关联的前台进程发送至是资源使用预算的至少一个消息,并且由该资源管理器从该前台进程接收指定该资源使用预算的要被分配给前台进程的第一部分以及该资源使用预算的要被分配该与该应用相关联的至少一个后台任务的第二部分的至少一个消息。所述资源可包括易失性或非易失性存储器资源、CPU资源、I/O资源、网络资源、电力资源、以及传感器资源。
在前述计算机程序产品的一个实施例中,所述操作进一步包括由所述资源管理器向所述前台进程分配所述资源的等于所述资源使用预算的所述第一部分的一部分并向所述至少一个后台任务分配所述资源的等于所述资源使用预算的所述第二部分的一部分。
在另一实施例中,指示所述资源使用预算的所述至少一个消息和指定所述资源使用预算的要被分配该所述前台进程的第一部分和所述资源使用预算的要被分配给与所述应用相关联的至少一个后台任务的第二部分的所述至少一个消息是经由共享API发送的。
在又一实施例中,资源使用预算包括正在前台执行的应用的资源使用预算,且指示该资源使用预算的该至少一个消息包括该应用正在前台执行的通知。
在又一实施例中,资源使用预算包括被挂起或终止的应用的资源使用预算,且指示该资源使用预算的该至少一个消息包括该应用将被挂起或终止的通知。
在一进一步实施例中,所述操作进一步包括由所述资源管理器在预定时间段之后确定被该前台进程使用的资源量和被该至少一个后台进程使用的资源量的总和是否超出该资源使用预算,并且响应于确定该总和超出该资源使用预算,由所述资源管理器引起该前台进程和该至少一个后台进程中的一个或多个被终止。
提供本概述以便以简化的形式介绍以下在详细描述中进一步描述的一些概念。本发明内容并不旨在标识所要求保护主题的关键特征或必要特征,也不旨在用于限制所要求保护主题的范围。此外,注意到所要求保护的主题不限于在详细描述和/或本文的其它章节中所述的特定实施例。本文呈现这些实施例仅用于说明性的用途。基于本文所包含的描述,其它实施例对于相关领域的技术人员将是显而易见的。
附图说明
合并在此并作为说明书一部分的附图与说明书一起示出了本发明的实施例,且进一步用于解释本发明的原理的作用,并且使相关领域的技术人员能够实现并使用本发明。
图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的存储器中并在该计算设备上由通信地连接至存储器的处理器(例如,微处理器或能操作以执行软件指令的其它电路)执行的软件组件。仅为简单,该存储器和处理器在图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可预测性地确定与应用102相关联的一个或多个后台进程的启动将引起总资源使用超出第二资源使用预算。基于此预测,资源管理器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.结语
虽然以上描述了不同的实施例,但应当理解的是它们只是作为示例而非限制。对于相关领域的技术人员显而易见的是,可以对其做出各种改变而不背离本发明的精神和范围。因此,此处所公开的本发明的宽度和范围不应被上述所公开的示例性实施例所限制,而应当仅根据所附权利要求书及其等同替换来定义。

Claims (10)

1.一种在计算设备上实现的系统,所述系统包括:
至少一个处理器;以及
能被所述至少一个处理器访问的存储器,所述存储器存储用于由所述至少一个处理器执行的组件,所述组件包括:
资源管理器,所述资源管理器能操作以维持与应用相关联的资源使用预算,所述资源使用预算指示所述计算设备的资源中的多少资源能被所述应用在所述应用的执行期间使用,将指示所述资源使用预算的至少一个消息发送至与所述应用相关联的前台进程,以及从所述前台进程接收指定所述资源使用预算中将被分配给所述前台进程的第一部分以及所述资源使用预算中将被分配给与所述应用相关联的至少一个后台任务的第二部分的至少一个消息。
2.如权利要求1所述的系统,其特征在于,所述资源管理器进一步能操作以向所述前台进程分配所述资源的等于所述资源使用预算的所述第一部分的一部分并向所述至少一个后台任务分配所述资源的等于所述资源使用预算的所述第二部分的一部分。
3.如权利要求6所述的系统,其特征在于,所述资源包括:
易失性或非易失性存储器资源;
中央处理单元(CPU)资源;
输入/输出(I/O)资源;
网络资源;
电力资源;或
传感器资源。
4.如权利要求1所述的系统,其特征在于,被发送至所述前台进程的所述至少一个消息和从所述前台进程接收的所述至少一个消息是经由共享应用编程接口来传递的。
5.如权利要求1所述的系统,其特征在于,所述资源使用预算包括针对正在前台执行的应用的资源使用预算,且指示所述资源使用预算的所述至少一个消息包括所述应用正在前台执行的通知。
6.如权利要求1所述的系统,其特征在于,所述资源使用预算包括被挂起或终止的应用的资源使用预算,且指示所述资源使用预算的所述至少一个消息包括所述应用将被挂起或终止的通知。
7.如权利要求6所述的系统,其特征在于,所述资源管理器进一步能操作以在预定时间段之后确定被所述前台进程使用的资源量和被所述至少一个后台进程使用的资源量的总和是否超出所述资源使用预算,并且响应于确定所述总和超出所述资源使用预算,引起所述前台进程和所述至少一个后台进程中的一个或多个被终止。
8.一种由计算设备实现的方法,包括:
从资源管理器向与应用相关联的前台进程发送所述应用正在前台执行的通知;
由所述资源管理器从所述前台进程接收指定第一资源使用预算的要被分配给所述前台进程的第一部分以及所述第一资源使用预算的要被分配给与所述应用相关联的至少一个后台任务的第二部分的至少一个消息,所述第一资源使用预算包括与正在前台执行的应用相关联的资源使用预算;以及
由所述资源管理器向所述前台进程分配资源的等于所述第一资源使用预算的所述第一部分的一部分并向所述至少一个后台任务分配所述资源的等于所述第一资源使用预算的所述第二部分的一部分。
9.如权利要求8所述的方法,其特征在于,所述资源包括:
易失性或非易失性存储器资源;
中央处理单元(CPU)资源;
输入/输出(I/O)资源;
网络资源;
电力资源;或
传感器资源。
10.如权利要求8所述的方法,其特征在于,进一步包括:
从所述资源管理器向所述前台进程发送所述应用将被挂起或终止的通知;
由所述资源管理器从所述前台进程接收指定第二资源使用预算的要被分配给所述前台进程的第一部分以及所述第二资源使用预算的要被分配给与所述应用相关联的所述至少一个后台任务的第二部分的至少一个消息,所述第二资源使用预算包括与被挂起或终止的应用相关联的资源使用预算;以及
由所述资源管理器向所述前台进程分配所述资源的等于所述第二资源使用预算的所述第一部分的一部分并向所述至少一个后台任务分配所述资源的等于所述第二资源使用预算的所述第二部分的一部分。
CN201580013419.3A 2014-03-10 2015-02-27 针对多进程应用的动态资源管理 Pending CN106104485A (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201461950614P 2014-03-10 2014-03-10
US61/950,614 2014-03-10
US14/264,735 2014-04-29
US14/264,735 US9678797B2 (en) 2014-03-10 2014-04-29 Dynamic resource management for multi-process applications
PCT/US2015/017889 WO2015138150A1 (en) 2014-03-10 2015-02-27 Dynamic resource management for multi-process applications

Publications (1)

Publication Number Publication Date
CN106104485A true CN106104485A (zh) 2016-11-09

Family

ID=54017466

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580013419.3A Pending CN106104485A (zh) 2014-03-10 2015-02-27 针对多进程应用的动态资源管理

Country Status (10)

Country Link
US (1) US9678797B2 (zh)
EP (1) EP3117316A1 (zh)
JP (1) JP2017514209A (zh)
KR (1) KR20160132432A (zh)
CN (1) CN106104485A (zh)
AU (1) AU2015229883A1 (zh)
CA (1) CA2939511A1 (zh)
MX (1) MX2016011541A (zh)
RU (1) RU2016136180A (zh)
WO (1) WO2015138150A1 (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108834157A (zh) * 2018-04-27 2018-11-16 努比亚技术有限公司 网络带宽分配方法、移动终端及计算机可读存储介质
CN109753236A (zh) * 2017-11-08 2019-05-14 爱思开海力士有限公司 存储系统及其操作方法
CN110297780A (zh) * 2018-03-22 2019-10-01 东芝存储器株式会社 存储装置及计算机系统
US11221931B2 (en) 2019-01-15 2022-01-11 SK Hynix Inc. Memory system and data processing system
US11636014B2 (en) 2017-10-31 2023-04-25 SK Hynix Inc. Memory system and data processing system including the same

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10191771B2 (en) * 2015-09-18 2019-01-29 Huawei Technologies Co., Ltd. System and method for resource management
US10169078B2 (en) 2015-10-16 2019-01-01 International Business Machines Corporation Managing thread execution in a multitasking computing environment
CN105740078B (zh) * 2016-01-29 2020-09-08 华为技术有限公司 一种内存管理方法、装置及终端
US10313429B2 (en) * 2016-04-11 2019-06-04 Huawei Technologies Co., Ltd. Distributed resource management method and system
US10541879B2 (en) * 2016-07-29 2020-01-21 Microsoft Technology Licensing, Llc Multi-channel resource control system
WO2018053717A1 (en) * 2016-09-21 2018-03-29 Accenture Global Solutions Limited Dynamic resource allocation for application containers
CN107220077B (zh) 2016-10-20 2019-03-19 华为技术有限公司 应用启动的管控方法和管控设备
US20180129537A1 (en) * 2016-11-10 2018-05-10 Microsoft Technology Licensing, Llc Managing memory usage using soft memory targets
CN108399102A (zh) * 2017-02-08 2018-08-14 阿里巴巴集团控股有限公司 一种资源分配方法和装置
KR102298947B1 (ko) 2017-04-28 2021-09-08 삼성전자주식회사 음성 데이터 처리 방법 및 이를 지원하는 전자 장치
US10884656B2 (en) * 2017-06-16 2021-01-05 Microsoft Technology Licensing, Llc Performing background functions using logic integrated with a memory
US10445208B2 (en) * 2017-06-23 2019-10-15 Microsoft Technology Licensing, Llc Tunable, efficient monitoring of capacity usage in distributed storage systems
KR102387181B1 (ko) 2017-10-31 2022-04-19 에스케이하이닉스 주식회사 컴퓨팅 디바이스 및 그것의 동작방법
KR102455880B1 (ko) 2018-01-12 2022-10-19 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
CN110046032A (zh) * 2018-01-12 2019-07-23 广东欧珀移动通信有限公司 应用程序处理方法和装置、电子设备、计算机可读存储介质
US10963310B2 (en) * 2018-07-19 2021-03-30 International Business Machines Corporation Intelligent contentionless processing resource reduction in a multiprocessing system
CN109891513B (zh) * 2018-08-03 2023-09-19 上海联影医疗科技股份有限公司 为医疗应用分配计算资源的系统和方法
CN109669780B (zh) * 2018-12-25 2020-02-14 上海极链网络科技有限公司 一种视频解析方法及系统
WO2020231196A1 (en) * 2019-05-14 2020-11-19 Samsung Electronics Co., Ltd. Method and system for predicting and optimizing resource utilization of ai applications in an embedded computing system
US11200094B2 (en) * 2020-01-20 2021-12-14 Dell Products L.P. Artificial intelligence-based application guard
US11494236B2 (en) * 2020-05-06 2022-11-08 EMP IP Holding Company, LLC System and method for sharing central processing unit (CPU) resources with unbalanced applications
US11275668B2 (en) * 2020-08-10 2022-03-15 Dell Products L.P. Dynamically enhancing the performance of a foreground application
KR102418991B1 (ko) * 2020-11-26 2022-07-08 성균관대학교산학협력단 적응형 i/o 완료 방법 및 이를 수행하기 위한 컴퓨터 프로그램
US20230100163A1 (en) * 2021-09-24 2023-03-30 Google Llc Allocating computing device resources
KR20230080535A (ko) * 2021-11-30 2023-06-07 삼성전자주식회사 메모리 회수 방법 및 장치
US11941254B2 (en) 2021-12-14 2024-03-26 Micron Technology, Inc. Test memory sub-systems through validation of responses to proof of space challenges
US11960756B2 (en) 2021-12-14 2024-04-16 Micron Technology, Inc. Management of storage space in solid state drives to support proof of space activities
US12015706B2 (en) 2021-12-14 2024-06-18 Micron Technology, Inc. Combined cryptographic key management services for access control and proof of space
US11775188B2 (en) * 2022-02-02 2023-10-03 Micron Technology, Inc. Communications to reclaim storage space occupied by proof of space plots in solid state drives
US11977742B2 (en) 2022-02-02 2024-05-07 Micron Technology, Inc. Solid state drives configurable to use storage spaces of remote devices in activities involving proof of space

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7673189B2 (en) * 2006-02-06 2010-03-02 International Business Machines Corporation Technique for mapping goal violations to anamolies within a system
US20100131959A1 (en) * 2008-11-26 2010-05-27 Spiers Adam Z Proactive application workload management
CN101849395A (zh) * 2007-11-05 2010-09-29 高通股份有限公司 调度算法的后台和前台算法划分
US8112755B2 (en) * 2006-06-30 2012-02-07 Microsoft Corporation Reducing latencies in computing systems using probabilistic and/or decision-theoretic reasoning under scarce memory resources
CN102866903A (zh) * 2011-09-01 2013-01-09 微软公司 将后台工作和前台工作解耦合
US20130191541A1 (en) * 2012-01-20 2013-07-25 Microsoft Corporation Background task resource control
CN103559080A (zh) * 2011-02-14 2014-02-05 微软公司 移动设备上的后台应用代码的受约束执行
US20140068624A1 (en) * 2012-09-04 2014-03-06 Microsoft Corporation Quota-based resource management

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6910106B2 (en) 2002-10-04 2005-06-21 Microsoft Corporation Methods and mechanisms for proactive memory management
KR20060008896A (ko) 2003-04-14 2006-01-27 코닌클리케 필립스 일렉트로닉스 엔.브이. 자원 관리 방법 및 장치
US7900092B2 (en) 2003-07-11 2011-03-01 Computer Associates Think, Inc. Kernel-level method of flagging problems in applications
US7631138B2 (en) 2003-12-30 2009-12-08 Sandisk Corporation Adaptive mode switching of flash memory address mapping based on host usage characteristics
US7529903B2 (en) 2005-07-05 2009-05-05 International Business Machines Corporation Systems and methods for memory migration
US7827358B2 (en) 2007-01-07 2010-11-02 Apple Inc. Memory management methods and systems
EP1970804A1 (en) 2007-03-05 2008-09-17 Slipstream Data, Inc. System and method for dynamic memory allocation
US20090028127A1 (en) * 2007-07-26 2009-01-29 Gordon Kent Walker Methods and apparatus for providing computational load allocation in a network environment
US8510743B2 (en) 2007-10-31 2013-08-13 Google Inc. Terminating computer applications
US8321703B2 (en) 2009-12-12 2012-11-27 Microsoft Corporation Power aware memory allocation
US8843526B2 (en) 2009-12-18 2014-09-23 Sap Ag Application specific memory consumption and analysis
US8464023B2 (en) 2010-08-27 2013-06-11 International Business Machines Corporation Application run-time memory optimizer
US20120324481A1 (en) 2011-06-16 2012-12-20 Samsung Electronics Co. Ltd. Adaptive termination and pre-launching policy for improving application startup time
US9218206B2 (en) 2011-06-20 2015-12-22 Microsoft Technology Licensing, Llc Memory management model and interface for new applications
US8843912B2 (en) 2012-02-20 2014-09-23 International Business Machines Corporation Optimization of an application to reduce local memory usage
US8924437B2 (en) 2012-03-13 2014-12-30 Microsoft Corporation Memory usage data collection and analysis for dynamic objects

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7673189B2 (en) * 2006-02-06 2010-03-02 International Business Machines Corporation Technique for mapping goal violations to anamolies within a system
US8112755B2 (en) * 2006-06-30 2012-02-07 Microsoft Corporation Reducing latencies in computing systems using probabilistic and/or decision-theoretic reasoning under scarce memory resources
CN101849395A (zh) * 2007-11-05 2010-09-29 高通股份有限公司 调度算法的后台和前台算法划分
US20100131959A1 (en) * 2008-11-26 2010-05-27 Spiers Adam Z Proactive application workload management
CN103559080A (zh) * 2011-02-14 2014-02-05 微软公司 移动设备上的后台应用代码的受约束执行
CN102866903A (zh) * 2011-09-01 2013-01-09 微软公司 将后台工作和前台工作解耦合
US20130191541A1 (en) * 2012-01-20 2013-07-25 Microsoft Corporation Background task resource control
US20140068624A1 (en) * 2012-09-04 2014-03-06 Microsoft Corporation Quota-based resource management

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
MURTHY V.DEVARKONDA: "Predictability of Process Resource Usage: A Measurement-Based Study on UNIX", 《IEEE TRANSACTIONS ON SOFTWARE ENGINEERING》 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11636014B2 (en) 2017-10-31 2023-04-25 SK Hynix Inc. Memory system and data processing system including the same
CN109753236A (zh) * 2017-11-08 2019-05-14 爱思开海力士有限公司 存储系统及其操作方法
CN109753236B (zh) * 2017-11-08 2022-05-31 爱思开海力士有限公司 存储系统及其操作方法
CN110297780A (zh) * 2018-03-22 2019-10-01 东芝存储器株式会社 存储装置及计算机系统
CN110297780B (zh) * 2018-03-22 2023-08-25 铠侠股份有限公司 存储装置及计算机系统
CN108834157A (zh) * 2018-04-27 2018-11-16 努比亚技术有限公司 网络带宽分配方法、移动终端及计算机可读存储介质
US11221931B2 (en) 2019-01-15 2022-01-11 SK Hynix Inc. Memory system and data processing system

Also Published As

Publication number Publication date
US9678797B2 (en) 2017-06-13
JP2017514209A (ja) 2017-06-01
US20150254108A1 (en) 2015-09-10
AU2015229883A1 (en) 2016-09-08
CA2939511A1 (en) 2015-09-17
RU2016136180A (ru) 2018-03-14
WO2015138150A1 (en) 2015-09-17
EP3117316A1 (en) 2017-01-18
MX2016011541A (es) 2016-11-29
KR20160132432A (ko) 2016-11-18

Similar Documents

Publication Publication Date Title
CN106104485A (zh) 针对多进程应用的动态资源管理
CN106104484A (zh) 基于因设备而异或因用户而异的资源使用简档的资源管理
CN110869909B (zh) 应用机器学习算法来计算健康分数以进行工作负载调度的系统和方法
US8887169B2 (en) Task assignment in cloud computing environment
CN105183565B (zh) 计算机、服务质量控制方法及装置
CN104813327A (zh) 用于移动通信和计算的装置及方法
JP2014517434A5 (zh)
CN108038236A (zh) 文件共享方法、装置、系统及可读存储介质
CN114598665A (zh) 资源调度方法、装置和计算机可读存储介质及电子设备
Malensek et al. Minerva: proactive disk scheduling for QoS in multitier, multitenant cloud environments
US20140189121A1 (en) Apparatus and method for a thin form-factor technology for use in handheld smart phone and tablet devices
CN114327862B (zh) 一种内存分配方法、装置、电子设备及存储介质
CN111475277A (zh) 一种资源分配方法、系统、设备及机器可读存储介质
CN113741918A (zh) 云上应用部署的方法及应用
CN117891618B (zh) 人工智能模型训练平台的资源任务处理方法及装置
US10026140B2 (en) Using a scalable graphics system to enable a general-purpose multi-user computer system
CN116483740B (zh) 内存数据的迁移方法、装置、存储介质及电子装置
CN116107761B (zh) 性能调优方法、系统、电子设备及可读存储介质
CN117851071A (zh) 应用的资源分配方法、装置、计算机设备和存储介质
US20180004552A1 (en) Systems and Methods for Emulating Resources Using Abstract Containerization with Abstract Categorization and Policy Setting
CN117170863A (zh) 一种内存分配方法、装置、设备及存储介质
KR101678975B1 (ko) 파일 저장 서비스 제공 장치 및 방법

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20161109

WD01 Invention patent application deemed withdrawn after publication