CN109923524A - 使用软存储器目标管理存储器使用 - Google Patents

使用软存储器目标管理存储器使用 Download PDF

Info

Publication number
CN109923524A
CN109923524A CN201780069070.4A CN201780069070A CN109923524A CN 109923524 A CN109923524 A CN 109923524A CN 201780069070 A CN201780069070 A CN 201780069070A CN 109923524 A CN109923524 A CN 109923524A
Authority
CN
China
Prior art keywords
memory
application
soft
target
processor
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.)
Withdrawn
Application number
CN201780069070.4A
Other languages
English (en)
Inventor
T·库兹曼
J·P·罗宾逊
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 CN109923524A publication Critical patent/CN109923524A/zh
Withdrawn 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
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Memory System (AREA)

Abstract

用于管理存储器使用的示例系统,包括存储器和处理器,该处理器被配置为发布针对多个应用中的每个应用的软存储器目标,其中软存储器目标将至少基于每个应用的检测到的执行状态和系统的存储器的大小而被静态地预先确定。处理器还将检测应用超过软存储器目标。此外,处理器将检测系统的总存储器使用超过阈值量。处理器还将至少部分地基于检测到的软存储器目标被超过并且响应于检测到系统的总存储器使用超过阈值量来终止应用。

Description

使用软存储器目标管理存储器使用
背景技术
资源受限设备上的应用可以共享有限的存储器量。为了向用户提供一致且可预测的体验,应用可以因此调整其存储器使用以良好适应并且与在系统中运行的其他应用协作。
发明内容
以下呈现简化的发明内容,以便提供对本文所描述的一些方面的基本理解。本发明内容不是对所要求保护的主题的广泛概述。本发明内容不旨在标识所要求保护的主题的关键元素或者重要元素,也不旨在描绘所要求保护的主题的范围。本发明内容的唯一目的是以简化形式呈现所要求保护的主题的一些概念作为稍后呈现的更详细的描述的序言。
本文所描述的实施例包括用于管理存储器使用的系统。该系统包括存储器和处理器,该处理器被配置为发布针对多个应用中的每个应用的软存储器目标。软存储器目标可以至少基于每个应用的检测到的执行状态和系统的存储器的大小而被静态地预先确定。处理器还可以检测应用超过软存储器目标。此外,处理器还可以检测系统的总存储器使用超过阈值量。处理器然后可以至少部分地基于检测到的软存储器目标被超过并且响应于检测到系统的总存储器使用超过阈值量来终止应用。
本文所描述的另一实施例包括用于管理存储器使用的方法。该方法可以包括:发布针对多个应用的软存储器目标。软存储器目标可以至少基于多个应用的执行状态和总可用系统存储器而被静态地预先确定。该方法还可以包括:基于针对每个应用的终止分数,生成针对多个应用的终止优先级列表。针对每个应用的终止分数可以至少基于每个应用的检测到的执行状态以及针对每个应用的软存储器目标是否被超过而被计算。该方法还可以包括:响应于检测到总可用系统存储器的存储器使用超过阈值量,终止具有超过终止优先级列表中的其他应用的终止分数的终止分数的应用。
本文所描述的另一实施例包括用于管理存储器使用的另一系统。该系统可以包括存储器和处理器,该处理器被配置为基于执行状态和系统的总存储器大小来静态地预先确定软存储器目标。该处理器还可以被配置为向应用发布软存储器目标。该处理器还可以被配置为基于应用存储器使用向应用分配终止分数。该处理器还可以被配置为检测应用超过软存储器目标。该处理器还可以被进一步配置为响应于检测到应用超过软存储器目标而增加应用的终止分数。该处理器还可以被配置为检测系统的总存储器使用超过阈值量。该处理器可以被配置为终止具有比其他应用更高的终止分数的应用。
本文所描述的另一实施例包括用于管理存储器使用的另一方法。该方法可以包括:基于执行状态和系统的总存储器大小来静态地预先确定软存储器目标。该方法还可以包括:向应用发布软存储器目标。该方法还可以包括:基于应用存储器使用向应用分配终止分数。该方法还可以包括:检测应用超过软存储器目标。该方法还可以包括:响应于检测到超过软存储器目标而增加应用的终止分数。该方法还可以进一步包括:检测设备的总存储器使用超过阈值量。该方法可以包括:终止具有比其他应用更高的终止分数的应用。
以下说明和附图详细阐述了所要求保护的主题的某些说明性方面。然而,这些方面指示了可以采用本创新的原理的各种方式中的一些方式,并且所要求保护的主题旨在包括所有这样的方面及其等效物。当结合附图考虑以下对本创新的详细说明时,所要求保护的主题的其他优点和新颖特征将变得显而易见。
附图说明
通过参考附图可以更好地理解以下的具体实施方式,附图包含所公开的主题的许多特征的具体示例。
图1是可以使用软存储器目标管理存储器使用的计算系统的示例的框图;
图2是用于使用软存储器目标管理存储器使用的示例方法的过程流程图;
图3是用于使用软存储器目标管理存储器使用的另一示例方法的过程流程图;以及
图4是可以使用软存储器目标管理存储器使用的示例计算机可读存储介质的框图。
具体实施方式
在一些示例中,操作系统可以允许应用在没有任何存储器上限的情况下运行,但是应用可以被随时终止。如本文所使用的,存储器上限指的是被指派给每个应用的预设存储器量。例如,可以终止超过硬存储器上限的应用。例如,可以在系统存储器使用超过阈值时终止应用。在一些示例中,操作系统可以在进程上放置硬存储器上限。例如,基于进程的状态,可以发布硬存储器上限,应用必须保持在该硬存储器上限下。如果应用试图指派比相关硬存储器上限更多的存储器,则该指派可能失败并且可能导致应用崩溃或者终止。
然而,一些应用特征可以在较短的时间段内使用更多的存储器。虽然存储器上限可以防止设备进入存储器不足状态,但是存在可以并不总是符合这些存储器限制的应用。例如,在较复杂的互联网协议语音(VoIP)场景中,在少于预先确定的存储器量的情况下,应用可能不被执行。在另一示例中,当运行包括分路段导航的应用时,在下载新地图时可能存在应用的存储器使用的瞬时峰值。如果设备没有尝试同时运行这些任务,则系统可能能够支持正试图运行的任务的额外存储器使用。
在本文所描述的实施例中,系统可以使用软存储器目标来管理存储器使用。如本文所提到的,软存储器目标可以包括可以由处于特定执行状态下的应用使用的被静态地预先确定的存储器量。例如,针对前台应用的软存储器目标可以大于针对在后台中运行的相同应用的软存储器目标。本文所描述的系统可以发布针对多个应用的软存储器目标,其中将至少基于每个应用的检测到的执行状态和系统的存储器的大小来静态地预先确定软存储器目标。例如,系统可以向每个应用提供针对一组执行状态的一组软存储器目标。系统然后可以检测应用超过软存储器目标。在一些实施例中,系统可以响应于检测到应用超过软存储器目标而向应用发送指示软存储器目标被超过的通知。系统还可以检测系统的总存储器使用超过阈值量。系统然后可以至少部分地基于检测到软存储器目标被超过并且响应于检测到系统的总存储器使用超过阈值量来终止应用。例如,处理器可以基于终止分数来终止应用。终止分数可以基于应用的存储器使用和检测到软存储器目标被超过。例如,超过相关软存储器目标的应用可以具有更高的终止分数,且因此在总系统存储器使用超过阈值量时具有更高的被终止的可能性。否则,处理器可以响应于检测到系统的总存储器使用未超过阈值量而允许应用在软存储器目标被超过的情况下继续运行。
在一些实施例中,应用可以响应于接收到指示软存储器目标被超过的通知而减少应用存储器使用。例如,应用可以将应用存储器使用减少到软存储器目标之下,以降低其终止分数,且因此降低被终止的可能性。因此,本技术实现了更灵活的存储器使用,并且允许应用在增加的存储器可用性和增加的终止可能性的选项之间操作。在一些示例中,相同应用可能能够在具有较大存储器的设备上提供附加特征,同时还能够在具有较少存储器资源的设备上更高效地操作。
作为引文,一些附图在一个或多个结构部件的上下文中描述概念,该结构部件被称为功能、模块、特征、元件等。附图中所示的各种部件可以以任何方式来实施,例如,通过软件、硬件(例如,离散逻辑部件等)、固件等或这些实施方式的任何组合。在一个实施例中,各种部件可以反映实际实施方式中的对应部件的使用。在其他实施例中,附图中所图示的任何单个部件可以通过一定数目的实际部件来实施。附图中的任何两个或更多个单独部件的描绘可以反映由单个实际部件执行的不同功能。下面讨论的图1提供了关于可以用于实施附图中所示的功能的不同系统的细节。
其他附图以流程图形式描述了概念。在这种形式中,将某些操作描述为以特定顺序被执行的组成的不同框。这样的实施方式是示例性的而非限制性的。本文所描述的某些框可以被组合在一起并且在单个操作中被执行,某些框可以被分离成多个部件框,并且某些框可以以与本文所图示的顺序不同的顺序来执行,包括以执行框的并行方式来执行。流程图中所示的框可以通过软件、硬件、固件等或这些实施方式的任何组合来实施。如本文所使用的,硬件可以包括计算机系统、离散逻辑部件(诸如专用集成电路(ASIC))等以及其任何组合。
针对术语,短语“被配置为”包含可以将任何类型的结构部件构造成执行所标识的操作的任何方式。结构部件可以被配置为使用软件、硬件、固件等或者其任何组合来执行操作。例如,短语“被配置为”可以是指用于实施相关联的功能的硬件元件的逻辑电路结构。短语“被配置为”还可以指用于实施固件或者软件的相关联的功能的编码设计的硬件元件的逻辑电路结构。术语“模块”是指可以使用任何合适的硬件(例如,处理器等)、软件(例如,应用等)、固件或者硬件、软件和固件的任何组合来实施的结构元件。
术语“逻辑”包含用于执行任务的任何功能。例如,流程图中所图示的每个操作与用于执行该操作的逻辑相对应。可以使用软件、硬件、固件等或者其任何组合来执行操作。
如本文所使用的,术语“部件”、“系统”、“客户端”等旨在是指与计算机相关的实体,不管是硬件、(例如,执行中的)软件和/或固件还是其组合。例如,部件可以是在处理器上运行的进程、对象、可执行程序、程序、函数、库、子例程和/或计算机,或者软件和硬件的组合。作为说明,在服务器上运行的应用和服务器两者都可以是部件。一个或多个部件可以驻留在进程内,并且部件可以位于一台计算机上和/或分布在两台或更多台计算机之间。
此外,可以使用标准编程和/或工程技术将所要求的主题实施为方法、设备或者制品,以产生软件、固件、硬件或者其任何组合来控制计算机以实现所公开的主题。如本文所使用的,术语“制品”旨在包含从任何有形的计算机可读设备或者介质可访问的计算机程序。
计算机可读存储介质可以包括但不限于磁性存储设备(例如,硬盘、软盘和磁条等)、光盘(例如,光盘(CD)和数字通用磁盘(DVD)等)、智能卡以及闪速存储器设备(例如,卡、棒和键驱动等)。相反,计算机可读介质(即,非存储介质)通常可以附加地包括通信介质,诸如用于无线信号的传输介质等。
图1是可以使用软存储器目标管理存储器使用的计算系统的示例的框图。示例系统100包括计算设备102。计算设备102包括处理单元104、系统存储器106和系统总线108。在一些示例中,计算设备102可以是游戏控制台、个人计算机(PC)、配件控制台、游戏控制器以及其他计算设备。在一些示例中,计算设备102可以是云网络中的节点。
系统总线108将包括但不限于系统存储器106的系统部件耦合至处理单元104。处理单元104可以是各种可用处理器中的任何一个。还可以采用双微处理器和其他多处理器架构作为处理单元104。
系统总线108可以是若干类型的总线结构中的任何一种,包括使用本领域的普通技术人员已知的各种可用总线架构的任何一种的存储器总线或存储器控制器、外围总线或外部总线、以及本地总线。系统存储器106包括计算机可读存储介质,该计算机可读存储介质包括易失性存储器110和非易失性存储器112。
基本输入/输出系统(BIOS)被存储在非易失性存储器112中,该基本输入/输出系统包含用以诸如在启动期间在计算机102内的元件之间传输信息的基本例程。作为说明而非限制,非易失性存储器112可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪速存储器。
易失性存储器110包括用作外部高速缓存存储器的随机存取存储器(RAM)。作为说明而非限制,RAM可以以多种形式可用,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双倍数据速率SDRAM(DDR SDRAM)、增强型SDRAM(ESDRAM)、SynchLinkTM DRAM(SLDRAM)、直接RAM(RDRAM)、直接动态RAM(DRDRAM)以及动态RAM(RDRAM)。
计算机102还包括其他计算机可读介质,诸如可移除/不可移除、易失性/非易失性计算机存储介质。图1示出了例如磁盘存储装置114。磁盘存储装置114包括但不限于如磁盘驱动器、软盘驱动器、磁带驱动器、Jaz驱动器、Zip驱动器、LS-210驱动器、闪速存储器卡或记忆棒的设备。
此外,磁盘存储装置114可以单独地或者以与其他存储介质组合的形式包括存储介质,存储介质包括但不限于:光盘驱动器,诸如光盘ROM设备(CD-ROM)、CD可记录驱动器(CD-R驱动器)、CD可重写驱动器(CD-RW驱动器)或者数字通用磁盘ROM驱动器(DVD-ROM)。为了便于将磁盘存储设备114连接至系统总线108,通常使用可移除接口或者不可移除接口,诸如接口116。
应该理解,图1描述了充当用户与在合适的操作环境100中描述的基本计算机资源之间的中间件的软件。这种软件包括操作系统118。可以被存储在磁盘存储装置114上的操作系统118用于控制并且指派计算机102的资源。
系统应用120利用由操作系统118通过被存储在系统存储器106中或者磁盘存储装置114上的程序模块122和程序数据124进行的资源管理。应该理解,所公开的主题可以用各种操作系统或者操作系统的组合来实施。
用户通过输入设备126将命令或者信息输入到计算机102中。输入设备126包括但不限于诸如鼠标、轨迹球、触控笔等的指向设备、键盘、麦克风、操纵杆、卫星天线、扫描器、TV调谐卡、数字相机、数字摄像机、网络相机等。在一些示例中,输入设备可以包括自然用户界面(NUI)设备。NUI是指使用户能够以“自然”方式与设备交互的任何接口技术,而不受由诸如鼠标、键盘、遥控器等的输入设备施加的人为限制。在一些示例中,NUI设备包括依赖于语音识别、触摸识别和触控笔识别、屏幕上和屏幕附近的姿势识别、隔空姿势、头部和眼睛追踪、声音和语音、视觉、触摸、姿势以及机器智能的设备。例如,NUI设备可以包括触摸敏感显示器、声音和语音识别、意图和目的理解,以及使用深度相机(诸如立体相机系统、红外相机系统、RGB相机系统以及这些相机系统的组合)的运动姿势检测。NUI设备还可以包括使用加速度计或者陀螺仪的运动姿势检测、面部识别、三维(3D)显示、头部、眼睛和注视追踪、沉浸式增强现实和虚拟现实系统,所有这些都提供更自然的接口。NUI设备还可以包括用于使用电场感测电极来感测大脑活动的技术。例如,NUI设备可以使用脑电图(EEG)和相关方法来检测大脑的电活动。输入设备126经由接口端口128通过系统总线108连接到处理单元104。接口端口128包括例如串行端口、并行端口、游戏端口以及通用串行总线(USB)。
输出设备130使用与输入设备126相同类型的一些端口。因此,例如,USB端口可以用于向计算机102提供输入并且用于将信息从计算机102输出至输出设备130。
输出适配器132被提供以说明存在一些输出设备130,比如监视器、扬声器和打印机以及经由适配器可访问的其他输出设备130。作为说明而非限制,输出适配器132包括提供输出设备130与系统总线108之间的连接方式的视频和声卡。可以注意,其他设备和设备系统提供输入能力和输出能力两者,诸如远程计算设备134。
计算机102可以是使用与一个或多个远程计算机(诸如远程计算设备134)的逻辑连接来主存网络环境中的各种软件应用的服务器。远程计算设备134可以是被配置有网络浏览器、PC应用、移动电话应用等的客户端系统。远程计算设备134可以是个人计算机、服务器、路由器、网络PC、工作站、基于微处理器的装置、移动电话、对等设备或者其他公共网络节点等,并且通常包括相对于计算机102描述的许多元件或者所有元件。
远程计算设备134可以通过网络接口136被逻辑连接到计算机102,并且然后经由通信连接138进行连接,该通信连接可以是无线的。网络接口136包含无线通信网络,诸如局域网(LAN)和广域网(WAN)。LAN技术包括光纤分布式数据接口(FDDI)、铜缆分布式数据接口(CDDI)、以太网、令牌环等。WAN技术包括但不限于点对点链路、电路交换网络(比如综合业务数字网络(ISDN)及其变体)、分组交换网络以及数字用户线(DSL)。
通信连接138是指用于将网络接口136连接到总线108的硬件/软件。虽然为了说明清楚而在计算设备102内示出了通信连接138,但是该通信连接也可以在计算设备102外部。出于示例性目的,用于连接到网络接口136的硬件/软件可以包括内部技术和外部技术,诸如移动电话交换机、调制解调器(包括常规电话级调制解调器、电缆调制解调器和DSL调制解调器)、ISDN适配器和以太网卡。
计算机102包括一个或多个模块122,诸如目标发布器模块140、记分器模块142以及终止器模块144。在一些实施例中,目标发布器模块140可以发布针对多个应用的软存储器目标。在一些示例中,记分器模块142可以至少基于每个应用的检测到的执行状态和易失性存储器110的大小来静态地预先确定软存储器目标。例如,可以基于历史数据来静态地预先确定软存储器目标,该历史数据关于处于给定状态或者特定类型的代表性范围的应用实际使用的存储器量。在一些示例中,可以基于设备类型来静态地预先确定软存储器目标。在一些示例中,可以基于设备存储器配置来静态地预先确定软存储器目标。记分器模块142可以检测应用超过软存储器目标。在一些实施例中,记分器模块142可以基于每个应用的执行状态来向应用分配终止分数。在一些示例中,记分器模块142可以基于每个应用的存储器使用来调整应用的终止分数。在一些实施例中,记分器模块142可以响应于检测到应用超过软存储器目标而向应用发送指示软存储器目标被超过的通知。在一些示例中,应用可以响应于接收到指示软存储器目标被超过的通知而减少应用存储器使用。在一些实施例中,记分器模块142可以响应于检测到超过软存储器目标而增加应用的终止分数。
终止器模块144可以检测系统的总存储器使用超过阈值量。终止器模块144可以至少部分地基于检测到软存储器目标被超过并且响应于检测到系统的总存储器使用超过阈值量来终止应用。例如,终止器模块144可以基于终止分数来终止应用。终止分数可以基于应用存储器使用和检测到软存储器目标被超过。例如,终止器模块144可以终止具有比其他应用更高的终止分数的应用。在一些示例中,终止器模块144可以另外响应于检测到系统的总存储器使用未超过阈值量而允许应用在软存储器目标被超过的情况下继续运行。
应该理解,图1的框图不旨在指示计算设备102将包括图1所示的所有部件。相反,计算系统102可以包括更少的部件或图1中未图示的附加部件(例如,附加应用、附加模块、附加存储器设备、附加网络接口等)。此外,目标发布器模块140、记分器模块142以及终止器模块144的任何功能可以部分地或者完全地在硬件中和/或在处理器104中被实施。例如,功能可以利用专用集成电路来实现,可以在处理器104中实现的逻辑中实现,或者可以在任何其他设备中实现。
图2是用于使用软存储器目标管理存储器使用的示例方法的过程流程图。方法200可以利用任何合适的计算设备(诸如图1的计算系统102)来实现。
在框202处,处理器基于执行状态和系统的总存储器大小来静态地预先确定软存储器目标。例如,执行状态可以包括前台执行状态、后台执行状态、冻结状态、预启动状态以及其他可能状态。例如,预启动状态可以是应用在技术上正在后台中运行但是不执行任何任务的状态。在一些示例中,针对前台执行状态,处理器可以分配比后台执行状态更大的软存储器目标。在一些示例中,处理器可以基于附加因素来预先确定软存储器目标,诸如关于处于给定状态或者特定类型的代表性范围的应用实际上使用的存储器量的历史数据、设备类型、设备存储器配置或其任何组合。在一些示例中,可以在特定设备上本地采集历史数据,并且历史数据可以包括用户对设备的特定使用。例如,前台应用可以在显示用户界面(UI)时接收高的软存储器目标,而不具有任何UI显示的后台任务可以接收较低的软存储器目标。在另一示例中,在电话上运行的应用可以接收与在台式PC上运行的相同应用不同的软存储器目标,并且同样地,在游戏系统或者其他设备上接收不同的软存储器目标。设备存储器配置可以包括例如1GB设备、2GB设备、4GB设备等。
在框204处,处理器向应用发布软存储器目标。例如,处理器可以向应用提供回调,该回调将被用以确定存储器量以及软目标是否已经被超过。在一些示例中,处理器可以基于应用的执行状态的检测到的变化来更新针对应用的软存储器目标。
在框206处,处理器基于执行状态向应用分配终止分数。在一些示例中,处理器然后可以基于存储器使用来调整针对应用的终止分数。可以使用终止分数来确定用于终止目的的应用的优先级。例如,具有较高存储器使用的应用可以接收较高终止分数。在一些示例中,终止分数可以是优先级级别。例如,可以向正在显示UI并且用户正在与其交互的前台应用分配更高的优先级级别。当用户切换至另一应用时,第一应用可以继续执行但是现在被分配中等优先级级别。在一些示例中,如果用户最小化应用,则优先级可以降得更低。在另一示例中,在计时器事件到期时被触发并且不显示任何UI的后台任务可能具有甚至更低的优先级。在一些示例中,处理器可以基于存储器使用的变化来调整应用的终止分数。例如,应用可以减少其存储器使用以降低其终止分数并且降低被终止的可能性。
在决策菱形框208处,处理器确定应用所使用的存储器是否超过软存储器目标。例如,处理器可以将应用所使用的存储器量与针对应用所分配的软存储器目标进行比较。如果处理器检测到应用所使用的存储器量超过软存储器目标,则方法可以在框210处继续。如果处理器检测到应用所使用的存储器量不超过软存储器目标,则方法可以在框212处继续。
在框210处,处理器增加应用的终止分数。例如,应用可以在一定时间段内超过软存储器目标以便执行存储器密集的进程。然后,应用可以具有增加的终止分数,并且因此如果总系统存储器使用超过阈值水平则具有增加的被终止的可能性。在一些示例中,应用然后可以被放置在终止列表中的更高位置,且因此具有更高的被终止的可能性。
在框212处,处理器不增加应用的终止分数。例如,应用可以在终止列表中保持相同优先级,且因此具有相同的被终止的可能性。
在决策菱形框214处,处理器确定系统的总存储器使用是否超过阈值量。例如,可以将阈值量预先定义为总系统存储器的百分比或者总系统存储器的预先确定的量。如果处理器检测到系统的总存储器使用超过阈值量,则方法可以在框216处继续。如果处理器检测到系统的总存储器使用不超过阈值量,则方法可以在框206处继续。
在框216处,处理器终止具有比其他应用更高的终止分数的应用。例如,正超过其软存储器目标的应用可以具有比其他应用更高的终止分数,且因此相应地被选择为终止。在一些示例中,根据终止分数被排在列表的顶部的应用可以一次一个地被终止,直到系统存储器使用低于阈值量为止。
在一个实施例中,图2的过程流程图旨在指示方法200的步骤将以特定顺序被执行。备选地,在其他实施例中,可以以任何合适的顺序来执行方法200的步骤,并且可以包括方法200的任何合适数目的步骤。此外,取决于特定应用,可以在方法200内包括任何数目的附加步骤。例如,可以基于执行状态或者可用系统存储器的变化来改变软存储器目标。在一些示例中,应用和进程内框架可以监测来自处理器的通知,以基于与更新的软存储器目标相关的应用的存储器使用来确定是否释放存储器。在一些示例中,如果系统想要运行新应用,并且启动该应用将使总存储器使用超过该阈值量,则系统可以比较尚未启动的应用的终止分数,并且查看尚未启动的应用是否比当前运行的应用更加重要,并且如果更加重要,则系统可以执行一个或多个当前运行的应用的终止。
图3是图示用于使用软存储器目标管理存储器使用的示例方法的过程流程图。方法300可以利用任何合适的计算设备(诸如图1的计算系统102)来实现。
在框302处,处理器发布针对多个应用的软存储器目标。例如,可以至少基于多个应用的执行状态和总可用系统存储器来静态地预先确定软存储器目标。在一些示例中,处理器可以基于应用的执行状态的检测到的变化来更新应用的软存储器目标。例如,应用可能已经从前台状态改变为后台状态,或者已经从后台状态改变为具有UI的前台状态。
在框304处,处理器基于针对每个应用的终止分数来生成针对多个应用的终止优先级列表。例如,至少基于应用的检测到的执行状态以及软存储器目标是否被超过来计算针对每个应用的终止分数。在一些示例中,处理器可以基于应用的存储器使用的变化来调整针对应用的终止分数。在一些示例中,可以将终止分数实施为被静态地预定义的优先级。例如,前台应用可以接收比最小化的应用更高的优先级。类似地,最小化的应用可以接收比后台应用更高的优先级。
在框306处,处理器响应于检测到总可用系统存储器的存储器使用超过阈值量而终止具有超过终止优先级列表中的其他应用的终止分数的终止分数的应用。例如,处理器可以响应于检测到总可用系统存储器的存储器使用超过阈值量而终止高于终止优先级列表中的其他应用的应用。例如,系统可能具有正在运行的其他应用和进程,且因此在总系统存储器使用超过阈值量时,可以为这些应用和进程释放附加存储器。以这种方式,具有较高优先级且因此在终止优先级列表中较低的应用可以继续运行而不受系统的有限存储器的影响。
在一个实施例中,图3的过程流程图旨在指示方法300的步骤将以特定顺序来执行。备选地,在其他实施例中,可以以任何合适的顺序来执行方法300的步骤,并且可以包括方法300的任何合适数目的步骤。此外,取决于特定应用,可以在方法300内包括任何数目的附加步骤。例如,处理器还可以响应于检测到应用的软目标被超过而向应用发送通知。然后,应用可以相应地调整其存储器使用以降低终止的可能性。在一些示例中,处理器可以向应用提供回调,该回调将被用来基于软存储器目标来确定要释放的存储器量。在一些示例中,进程还可以响应于检测到软目标不再被超过而向应用发送通知。
图4是可以使用软存储器目标管理存储器使用的示例计算机可读存储介质的框图。有形的计算机可读存储介质400可以由处理器402通过计算机总线404访问。此外,有形的计算机可读存储介质400可以包括用以指示处理器402执行当前方法的步骤的代码。
如图4中所指示的,可以将本文所讨论的各种软件部件存储在有形的计算机可读存储介质400上。例如,有形的计算机可读存储介质400可以包括目标发布器模块406、记分器模块408以及终止器模块410。在一些实施例中,目标发布器模块406可以发布针对多个应用的软存储器目标。在一些示例中,记分器模块408可以至少基于每个应用的检测到的执行状态和存储器的大小来静态地预先确定软存储器目标。例如,可以基于历史数据来静态地预先确定软存储器目标,该历史数据关于处于给定状态或者特定类型的代表性范围的应用实际使用的存储器量。在一些示例中,可以基于设备类型来静态地预先确定软存储器目标。在一些示例中,可以基于设备存储器配置来静态地预先确定软存储器目标。记分器模块408可以检测应用超过软存储器目标。在一些实施例中,记分器模块408可以基于应用存储器使用向应用分配终止分数。在一些实施例中,记分器模块408可以响应于检测到应用超过软存储器目标而向应用发送指示软存储器目标被超过的通知。在一些示例中,应用可以响应于接收到指示软存储器目标被超过的通知而减少应用存储器使用。在一些实施例中,记分器模块408可以响应于检测到超过软存储器目标而增加应用的终止分数。
终止器模块410可以检测系统的总存储器使用超过阈值量。终止器模块410可以至少部分地基于检测到的软存储器目标被超过并且响应于检测到系统的总存储器使用超过阈值量来终止应用。例如,终止器模块410可以基于终止分数来终止应用。终止分数可以基于应用存储器使用和检测到的软存储器目标被超过。例如,终止器模块410可以终止具有比其他应用更高的终止分数的应用。在一些示例中,终止器模块410可以另外响应于检测到系统的总存储器使用未超过阈值量而允许应用在软存储器目标被超过的情况下继续运行。
应该理解,取决于特定应用,可以将图4中未示出的任何数目的附加软件部件包括在有形的计算机可读存储介质400内。
示例1
该示例提供用于呈现搜索结果的示例系统。示例系统包括存储器和处理器,该处理器被配置为发布针对多个应用的软存储器目标,其中将至少基于每个应用的检测到的执行状态和系统的存储器的大小来静态地预先确定软存储器目标。处理器可以被配置为检测应用超过软存储器目标。处理器还可以被配置为检测系统的总存储器使用超过阈值量。处理器还可以被进一步配置为将至少部分地基于检测到的软存储器目标被超过并且响应于检测到系统的总存储器使用超过阈值量来终止应用。备选地或附加地,处理器可以响应于检测到应用超过软存储器目标而向应用发送指示软存储器目标被超过的通知。备选地或附加地,处理器可以基于终止分数来终止应用,其中终止分数基于执行状态、应用存储器使用以及检测到的软存储器目标被超过。备选地或附加地,处理器可以响应于检测到系统的总存储器使用未超过阈值量而允许应用在软存储器目标被超过的情况下继续运行。备选地或附加地,应用可以响应于接收到指示软存储器目标被超过的通知而减少应用存储器使用。
示例2
该示例提供用于管理存储器使用的方法。示例方法包括:发布针对多个应用的软存储器目标,其中软存储器目标将至少基于多个应用的执行状态和总可用系统存储器而被静态地预先确定。该方法还包括:基于针对每个应用的终止分数,生成针对多个应用的终止优先级列表,其中针对每个应用的终止分数至少基于每个应用的检测到的执行状态以及针对每个应用的软存储器目标是否被超过而被计算。该方法还进一步包括:响应于检测到总可用系统存储器的存储器使用超过阈值量,终止具有超过终止优先级列表中的其他应用的终止分数的终止分数的应用。备选地或附加地,该方法还可以包括:响应于检测到应用的软目标被超过而向应用发送通知。备选地或附加地,该方法还可以包括:基于应用的执行状态的检测到的变化来更新针对应用的软存储器目标。备选地或附加地,该方法还可以包括:基于应用的存储器使用的变化来调整应用的终止分数。备选地或附加地,该方法可以包括:向应用提供回调,该回调将被用来基于软存储器目标来确定要释放的存储器量。
示例3
该示例提供用于呈现搜索结果的示例系统。该示例系统包括存储器和处理器,该处理器被配置为基于执行状态和系统的总存储器大小来静态地预先确定软存储器目标。处理器可以被配置为向应用发布软存储器目标。处理器还可以被进一步配置为基于执行状态向应用分配终止分数。处理器还可以被进一步配置为检测应用超过软存储器目标。处理器还可以被进一步配置为响应于检测到应用超过软存储器目标而增加应用的终止分数。处理器还可以被进一步配置为检测系统的总存储器使用超过阈值量。处理器还可以被进一步配置为终止具有比其他应用更高的终止分数的应用。备选地或附加地,处理器可以向应用发送指示软存储器目标被超过的通知。备选地或附加地,将基于历史数据来静态地预先确定软存储器目标,该历史数据关于处于给定状态或者特定类型的代表性范围的应用实际使用的存储器量。备选地或附加地,将基于设备类型来静态地预先确定软存储器目标。备选地或附加地,将基于设备存储器配置来静态地预先确定软存储器目标。
示例4
该示例提供用于管理存储器使用的方法。示例方法包括:基于执行状态和系统的总存储器大小来静态地预先确定软存储器目标。该方法还包括:向应用发布软存储器目标。该方法还进一步包括:基于执行状态向应用分配终止分数。该方法还进一步包括:检测应用超过软存储器目标。该方法还进一步包括:响应于检测到超过软存储器目标而增加应用的终止分数。该方法还进一步包括:检测设备的总存储器使用超过阈值量。该方法还进一步包括:终止具有比其他应用更高的终止分数的应用。备选地或附加地,该方法还可以包括:检测应用不超过软存储器目标,并且响应于检测到软存储器目标未被超过而降低应用的终止分数。备选地或附加地,该方法可以包括:基于应用的存储器使用的变化来调整应用的终止分数。备选地或附加地,该方法还可以包括:基于应用的执行状态的检测到的变化来更新针对应用的软存储器目标。备选地或附加地,该方法还可以进一步包括:基于关于处于给定状态或特定类型的代表性范围的应用实际上使用的存储器量的历史数据、设备类型、设备存储器配置或其任何组合来静态地预先确定软存储器目标。
示例5
该示例提供用于使用软存储器目标管理存储器使用的示例计算机可读存储设备。该示例计算机可读存储设备包括可执行指令,该可执行指令可以由处理器执行以使处理器发布针对多个应用的软存储器目标。该可执行指令可以由处理器执行以至少基于每个应用的检测到的执行状态和存储器的大小来静态地预先确定软存储器目标。该可执行指令可以由处理器执行以检测应用超过软存储器目标。该可执行指令可以由处理器执行以检测系统的总存储器使用超过阈值量。该可执行指令可以由处理器执行以至少部分地基于检测到的软存储器目标被超过并且响应于检测到系统的总存储器使用超过阈值量来终止应用。该可执行指令可以由处理器执行以基于终止分数来终止应用。备选地或附加地,可以基于历史数据来静态地预先确定软存储器目标,该历史数据关于处于给定状态或者特定类型的代表性范围的应用实际使用的存储器量。备选地或附加地,可以基于设备类型来静态地预先确定软存储器目标。备选地或附加地,可以基于设备存储器配置来静态地预先确定软存储器目标。备选地或附加地,该可执行指令可以由处理器执行以响应于检测到应用超过软存储器目标而向应用发送指示软存储器目标被超过的通知。
特定于且对于由上述部件、设备、电路、系统等执行的各种功能,除非另有说明,否则用于描述这些部件的术语(包括对“方式”的引用)旨在与执行所描述的部件的指定功能的任何部件(例如,功能性等效物)相对应,即使该部件在结构上不等同于所公开的结构,但部件执行所要求保护的主题在本文中所图示的示例性方面中的功能。在这方面,还将认识到,本创新包括系统以及计算机可读存储介质,该计算机可读存储介质具有用于执行所要求保护的主题的各种方法的动作和事件的计算机可执行指令。
存在实现所要求保护的主题的多种方式,例如,使应用和服务能够使用本文所描述的技术的适当的API、工具包、驱动器代码、操作系统、控件、单机式软件对象或可下载软件对象等。所要求保护的主题考虑从API(或者其他软件对象)的角度以及从根据本文阐述的技术操作的软件对象或者硬件对象的角度的使用。因此,本文所描述的所要求保护的主题的各种实施方式可以具有完全处于硬件中、部分处于硬件中且部分处于软件中以及处于软件中的各方面。
已经关于若干部件之间的交互描述了上述系统。可以理解,这样的系统和部件可以包括那些部件或者指定的子部件、一些指定的部件或子部件以及附加部件,并且根据前述的各种排列和组合。还可以将子部件实施为通信地耦合至其他部件而不是被包括在父部件(层级结构)内的部件。
此外,可以注意,一个或多个部件可以被组合成提供聚合功能的单个部件或者被划分成若干单独的子部件,并且可以提供任何一个或多个中间层(诸如管理层)以通信地耦合至这些子部件以便提供集成功能。本文所描述的任何部件还可以与本文并未具体描述但本领域的技术人员通常已知的一个或多个其他部件交互。
此外,虽然可能已经关于若干实施方式中的一个实施方式公开了所要求保护的主题的特定特征,但是这样的特征可以与其他实施方式的一个或多个其他特征组合,该其他实施方式对于任何给定应用或者特定应用可能是需要的且有利的。此外,就在具体实施方式或者权利要求书中使用的术语“包括”、“包括了”、“具有”、“包含”、其变型和其他类似词语而言,这些术语旨在作为开放过渡词以与术语“构成”类似的方式是包括性的,而不排除任何附加或者其他元素。

Claims (15)

1.一种用于管理存储器使用的系统,所述系统包括:
存储器;以及
处理器,所述处理器被配置为:
发布针对多个应用的软存储器目标,其中所述软存储器目标将至少基于每个应用的检测到的执行状态和所述系统的所述存储器的大小而被静态地预先确定;
检测应用超过所述软存储器目标;
检测所述系统的总存储器使用超过阈值量;以及
至少部分地基于检测到的所述软存储器目标被超过并且响应于检测到所述系统的所述总存储器使用超过所述阈值量,终止所述应用。
2.根据权利要求1所述的系统,其中所述处理器将响应于检测到所述应用超过所述软存储器目标而向所述应用发送指示所述软存储器目标被超过的通知。
3.根据权利要求1所述的系统,其中所述处理器将基于终止分数来终止所述应用,其中所述终止分数基于执行状态、应用存储器使用以及检测到的所述软存储器目标被超过。
4.一种用于管理存储器使用的方法,包括:
发布针对多个应用的软存储器目标,其中所述软存储器目标将至少基于所述多个应用的执行状态和总可用系统存储器而被静态地预先确定;
基于针对每个应用的终止分数,生成针对所述多个应用的终止优先级列表,其中针对每个应用的所述终止分数至少基于每个应用的检测到的所述执行状态以及针对每个应用的所述软存储器目标是否被超过而被计算;以及
响应于检测到所述总可用系统存储器的存储器使用超过阈值量,终止具有超过所述终止优先级列表中的其他应用的所述终止分数的所述终止分数的应用。
5.根据权利要求4所述的方法,还包括:响应于检测到针对所述应用的所述软目标被超过而向所述应用发送通知。
6.根据权利要求4所述的方法,还包括:基于所述应用的执行状态的检测到的变化来更新针对所述应用的所述软存储器目标。
7.一种用于管理存储器使用的系统,所述系统包括:
存储器;以及
处理器,所述处理器被配置为:
基于执行状态和所述系统的总存储器大小来静态地预先确定软存储器目标;
向所述应用发布所述软存储器目标;
基于执行状态向所述应用分配终止分数;
检测应用超过软存储器目标;
响应于检测到所述应用超过所述软存储器目标,增加所述应用的所述终止分数;
检测所述系统的总存储器使用超过阈值量;以及
终止具有比其他应用更高的终止分数的应用。
8.根据权利要求7所述的系统,其中所述处理器将向所述应用发送指示所述软存储器目标被超过的通知。
9.根据权利要求7所述的系统,其中所述软存储器目标将基于历史数据而被静态地预先确定,所述历史数据关于由处于给定状态的或特定类型的代表性范围的应用实际使用的存储器量。
10.根据权利要求7、8或9所述的系统,其中所述软存储器目标将基于设备类型而被静态地预先确定。
11.根据权利要求1、2或3所述的系统,其中所述处理器将响应于检测到所述系统的所述总存储器使用未超过所述阈值量而允许所述应用在所述软存储器目标被超过的情况下继续运行。
12.根据权利要求1、2或3所述的系统,其中所述应用将响应于接收到指示所述软存储器目标被超过的通知而减少应用存储器使用。
13.根据权利要求4、5或6所述的方法,还包括:基于所述应用的存储器使用的变化来调整所述应用的所述终止分数。
14.根据权利要求4、5或6所述的方法,还包括:向所述应用提供回调,所述回调将被用以基于所述软存储器目标来确定要释放的存储器量。
15.根据权利要求7、8或9所述的系统,其中所述软存储器目标将基于设备存储器配置而被静态地预先确定。
CN201780069070.4A 2016-11-10 2017-11-07 使用软存储器目标管理存储器使用 Withdrawn CN109923524A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/348,744 US20180129537A1 (en) 2016-11-10 2016-11-10 Managing memory usage using soft memory targets
US15/348,744 2016-11-10
PCT/US2017/060259 WO2018089317A1 (en) 2016-11-10 2017-11-07 Managing memory usage using soft memory targets

Publications (1)

Publication Number Publication Date
CN109923524A true CN109923524A (zh) 2019-06-21

Family

ID=60452767

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780069070.4A Withdrawn CN109923524A (zh) 2016-11-10 2017-11-07 使用软存储器目标管理存储器使用

Country Status (4)

Country Link
US (1) US20180129537A1 (zh)
EP (1) EP3538995A1 (zh)
CN (1) CN109923524A (zh)
WO (1) WO2018089317A1 (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11095743B2 (en) 2014-07-16 2021-08-17 Tensera Networks Ltd. Optimized content-delivery network (CDN) for the wireless last mile
US9575837B2 (en) 2015-02-03 2017-02-21 Uber Technologies, Inc. System and method for introducing functionality to an application for use with a network service
US11533226B2 (en) 2015-10-13 2022-12-20 Uber Technologies, Inc. Application service configuration system
US10158528B2 (en) 2015-10-13 2018-12-18 Uber Technologies, Inc. Application service configuration system
US11922187B2 (en) 2018-03-05 2024-03-05 Tensera Networks Ltd. Robust application preloading with accurate user experience
WO2019171237A1 (en) 2018-03-05 2019-09-12 Tensera Networks Ltd. Application preloading in the presence of user actions
US11204806B2 (en) * 2018-06-03 2021-12-21 Apple Inc. Systems and methods for user adaptive resource management
US10977105B2 (en) 2018-12-14 2021-04-13 Uber Technologies, Inc. Memory crash prevention for a computing device
CN112306371A (zh) 2019-07-30 2021-02-02 伊姆西Ip控股有限责任公司 存储管理的方法、设备和计算机程序产品
WO2021019415A1 (en) * 2019-07-30 2021-02-04 Tensera Networks Ltd. Pre-rendering of application user-interfaces in user devices
US11595193B2 (en) * 2020-07-10 2023-02-28 Vmware, Inc. Secure data storage for anonymized contact tracing
CN116670646A (zh) 2020-12-03 2023-08-29 腾赛拉网络有限公司 预加载具有现有任务的应用
WO2023066505A1 (en) * 2021-10-22 2023-04-27 Telefonaktiebolaget Lm Ericsson (Publ) Multiple resource limits specifications for container orchestration system
US11966588B2 (en) * 2021-10-26 2024-04-23 Google Llc Flash memory usage management

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7028298B1 (en) * 1999-09-10 2006-04-11 Sun Microsystems, Inc. Apparatus and methods for managing resource usage
US20080313639A1 (en) * 2007-06-13 2008-12-18 Krishna Kumar Policy based scheduling of software applications
US8010659B2 (en) * 2008-09-24 2011-08-30 International Business Machines Corporation Executing resource consumption control limits
US8620879B2 (en) * 2009-10-13 2013-12-31 Google Inc. Cloud based file storage service
US8296783B1 (en) * 2010-05-28 2012-10-23 Adobe Systems Incorporated Media player instance managed resource reduction
US20120324481A1 (en) * 2011-06-16 2012-12-20 Samsung Electronics Co. Ltd. Adaptive termination and pre-launching policy for improving application startup time
US9104480B2 (en) * 2012-11-15 2015-08-11 International Business Machines Corporation Monitoring and managing memory thresholds for application request threads
CN103914322A (zh) * 2013-01-05 2014-07-09 腾讯科技(深圳)有限公司 终端加速方法及终端
US9871741B2 (en) * 2014-03-10 2018-01-16 Microsoft Technology Licensing, Llc Resource management based on device-specific or user-specific resource usage profiles
US9678797B2 (en) * 2014-03-10 2017-06-13 Microsoft Technology Licensing, Llc Dynamic resource management for multi-process applications
US10552179B2 (en) * 2014-05-30 2020-02-04 Apple Inc. Resource management with dynamic resource policies
US10133601B2 (en) * 2016-03-31 2018-11-20 Intel Corporation Memory management
US10552320B2 (en) * 2016-04-01 2020-02-04 Intel Corporation Using a projected out of memory score to selectively terminate a process without transitioning to a background mode

Also Published As

Publication number Publication date
US20180129537A1 (en) 2018-05-10
WO2018089317A1 (en) 2018-05-17
EP3538995A1 (en) 2019-09-18

Similar Documents

Publication Publication Date Title
CN109923524A (zh) 使用软存储器目标管理存储器使用
US20200379560A1 (en) Implicitly adaptive eye-tracking user interface
US10606609B2 (en) Context-based discovery of applications
RU2668984C2 (ru) Атрибуция действия пользователя на основе биометрической идентификации
US10203838B2 (en) Avatar personalization in a virtual environment
CN108273265A (zh) 虚拟对象的显示方法及装置
KR102001293B1 (ko) 로봇 상의 소프트웨어 애플리케이션 실행하기
CN111741033B (zh) 一种账号跨设备登录管理的方法、装置、设备和介质
US11281760B2 (en) Method and apparatus for performing user authentication
US11580734B1 (en) Distinguishing real from virtual objects in immersive reality
CN109806590B (zh) 对象控制方法和装置、存储介质及电子装置
CN109572239B (zh) 一种美甲装置的打印方法、系统、美甲设备和介质
CN111324275B (zh) 显示画面中元素的播报方法及装置
CN104854574A (zh) 在实时通信和共享体验会话期间更新服务
CN108762497A (zh) 体感交互方法、装置、设备及可读存储介质
KR20210023703A (ko) 상호 작용-레벨 기반의 디지털 현실 내 원격 측정 및 추적을 위한 시스템 및 방법
WO2021208432A1 (zh) 交互方法、装置、交互系统、电子设备及存储介质
CN112965773B (zh) 用于信息显示的方法、装置、设备和存储介质
CN103218124A (zh) 基于深度摄像头的菜单控制方法及系统
CN108449643A (zh) 一种跨应用控制方法及装置
WO2024066977A1 (zh) 基于掌部的人机交互方法、装置、设备、介质及程序产品
US9384013B2 (en) Launch surface control
JP2021140409A (ja) コンピュータプログラム、方法及びサーバ装置
CN118079377A (zh) 游戏的显示控制方法、装置、电子设备和存储介质
CN116633889A (zh) 应用于3d场景的社交距离处理方法、装置及可读存储介质

Legal Events

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

Application publication date: 20190621