RU2599967C2 - Управление жизненным циклом приложений - Google Patents

Управление жизненным циклом приложений Download PDF

Info

Publication number
RU2599967C2
RU2599967C2 RU2013119123/08A RU2013119123A RU2599967C2 RU 2599967 C2 RU2599967 C2 RU 2599967C2 RU 2013119123/08 A RU2013119123/08 A RU 2013119123/08A RU 2013119123 A RU2013119123 A RU 2013119123A RU 2599967 C2 RU2599967 C2 RU 2599967C2
Authority
RU
Russia
Prior art keywords
applications
computing device
application
threshold value
satisfied
Prior art date
Application number
RU2013119123/08A
Other languages
English (en)
Other versions
RU2013119123A (ru
Inventor
Ананд Б. АЙЕР
Майкл Х. КРОС
Хасиб АХМЕД
Юньфей ШАН
Камнеджер Т. ЗИЛЕЛЕМ
Зинаида А. ПОУЗЕН
Хой ХУАН
Яу Н. ЧИН
Original Assignee
МАЙКРОСОФТ ТЕКНОЛОДЖИ ЛАЙСЕНСИНГ, ЭлЭлСи
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 МАЙКРОСОФТ ТЕКНОЛОДЖИ ЛАЙСЕНСИНГ, ЭлЭлСи filed Critical МАЙКРОСОФТ ТЕКНОЛОДЖИ ЛАЙСЕНСИНГ, ЭлЭлСи
Publication of RU2013119123A publication Critical patent/RU2013119123A/ru
Application granted granted Critical
Publication of RU2599967C2 publication Critical patent/RU2599967C2/ru

Links

Images

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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • 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
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • 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/5022Mechanisms to release resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/482Application
    • 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)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Quality & Reliability (AREA)
  • Human Resources & Organizations (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Economics (AREA)
  • Strategic Management (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Stored Programmes (AREA)
  • Power Sources (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Telephone Function (AREA)
  • User Interface Of Digital Computer (AREA)
  • Electric Propulsion And Braking For Vehicles (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

Изобретение относится к технологиям управления жизненным циклом приложения. Техническим результатом является управление завершением работы выбранного приложения, в зависимости от порогового значения, связанного с приложением. Предложен способ управления жизненным циклом приложений в вычислительном устройстве, выполняющем многочисленные приложения. Способ содержит этап, на котором определяют многочисленные пороговые значения, каждое из упомянутых многочисленных пороговых значений связано либо с характеристикой одного из упомянутых многочисленных приложений, либо с характеристикой ресурса вычислительного устройства. Далее, согласно способу, подстраивают упомянутые многочисленные пороговые значения, основываясь, по меньшей мере частично, на том, работает ли вычислительное устройство как система с питанием от сети или система с питанием от батареи. И осуществляют проверку, удовлетворено ли пороговое значение из упомянутых многочисленных пороговых значений. 3 н. и 16 з.п. ф-лы, 5 ил., 2 табл.

Description

Уровень техники
[0001] Вычислительные устройства могут выполнять несколько приложений одновременно. С ростом числа одновременно выполняющихся приложений, использование различных ресурсов вычислительного устройства (например, процессоров, памяти и т.д.) также может расти. Эти приложения могут продолжать использовать ресурсы вычислительного устройства, даже если приложения активно не используются пользователем вычислительного устройства. Это может быть проблематичным, поскольку использование ресурсов вычислительного устройства несколькими одновременно выполняющимися приложениями может ухудшить производительность вычислительного устройства, что может привести к раздражению и неприятным впечатлениям пользователя.
Сущность изобретения
[0002] Этот раздел обеспечен для введения подборки понятий в упрощенной форме, которые дополнительно описаны ниже по тексту в Подробном Описании. Этот раздел не предназначен для идентификации ключевых признаков или существенных признаков заявленного изобретения и не предназначена для использования, чтобы ограничивать объем заявленного изобретения.
[0003] В соответствии с одним или более аспектами в вычислительном устройстве, выполняющем несколько приложений, осуществляют проверку, удовлетворено ли пороговое значение из нескольких пороговых значений. Каждое из нескольких пороговых значений связано с характеристикой одного из упомянутых нескольких приложений или характеристикой ресурса вычислительного устройства. Если пороговое значение не удовлетворено, то упомянутым нескольким приложениям позволяют продолжать выполнение на вычислительном устройстве. Однако, если пороговое значение удовлетворено, то выбирают одно или более из упомянутых нескольких приложений для завершения работы, основываясь, по меньшей мере частично, на характеристике, связанной с пороговым значением, которое было удовлетворено, и завершают работу выбранного приложения.
[0004] В соответствии с одним или более аспектами генерируется список приложений заднего плана (фоновых приложений), выполняющихся на вычислительном устройстве. Список фоновых приложений приоритизируется, основываясь, по меньшей мере частично, на использовании ресурса вычислительного устройства фоновыми приложениями в списке. Выбирается приложение в списке фоновых приложений и завершается работа выбранного приложения.
Краткое описание чертежей
[0005] Идентичные числовые обозначения используются на всех чертежах для ссылки на одинаковые признаки.
[0006] Фиг. 1 иллюстрирует примерное вычислительное устройство, реализующее управление жизненным циклом приложений в соответствии с одним или более вариантами осуществления.
[0007] Фиг. 2 иллюстрирует примерную систему, реализующую управление жизненным циклом приложений в соответствии с одним или более вариантами осуществления.
[0008] Фиг. 3 представляет собой блок-схему последовательности операций, иллюстрирующую примерный процесс для устройства, реализующего управление жизненным циклом приложений в соответствии с одним или более вариантами осуществления.
[0009] Фиг. 4 представляет собой блок-схему последовательности операций, иллюстрирующую примерный процесс для выбора одного или более приложений для завершения их работы в соответствии с одним или более вариантами осуществления.
[0010] Фиг. 5 иллюстрирует примерное вычислительное устройство, которое может быть сконфигурировано для реализации управления жизненным циклом приложений в соответствии с одним или более вариантами осуществления.
Подробное Описание
[0011] В данном документе рассматривается управление жизненным циклом приложений. Контролируются различные характеристики приложений и/или ресурсов вычислительного устройства, такие как время существования приложения, использование процессора, использование памяти и т.п. Каждая из этих контролируемых характеристик имеет связанное пороговое значение и, если по меньшей мере одно из пороговых значений удовлетворено, то одно или более приложений выбираются для автоматического завершения работы. Одно или более приложений, которые выбраны для автоматического завершения работы, основаны, по меньшей мере частично, на пороговом значении, которое было удовлетворено, и характеристике, связанной с пороговым значением.
[0012] Фиг. 1 иллюстрирует примерное вычислительное устройство 100, реализующее управление жизненным циклом приложений в соответствии с одним или более вариантами осуществления. Вычислительное устройство 100 может представлять собой ряд различных типов устройств. Например, вычислительное устройство 100 может быть настольным компьютером, нетбуком или переносным компьютером, компьютером в виде записной книжки или планшетным компьютером, мобильной станцией, развлекательным устройством, телевизионной абонентской приставкой, подключенной с возможностью связи к устройству отображения, телевизором, сотовым или другим беспроводным телефоном, игровой консолью, автоматизированным компьютером и т.п. Таким образом, вычислительное устройство 100 может относиться к устройствам от устройства с полным ресурсом с существенными ресурсами памяти и процессора (например, персональные компьютеры, игровые консоли) до устройства с низким ресурсом с ограниченными ресурсами памяти и/или обработки (например, традиционные телевизионные абонентские приставки, карманные игровые консоли).
[0013] Вычислительное устройство 100 запитывается одним или более источниками питания. Эти источники питания могут представлять собой внешний источник питания или подключаемый источник питания и при работе на питании от такого источника питания вычислительное устройство 100 рассматривается как работающее в качестве системы или устройства с питанием от сети. Эти источники питания также могут представлять собой внутренний источник питания, такой как батарея, и при работе на питании от такого источника питания вычислительное устройство 100 рассматривается как работающее в качестве системы или устройства с питанием от батареи. Многие типы устройств могут представлять собой системы с питанием от сети или системы с питанием от батареи в разные моменты времени в зависимости от источника питания, от которого устройство работает в любой конкретный момент времени. Другие типы устройств, однако, могут быть лишь системами с питанием от сети (не имеющими внутреннего источника питания) или лишь системами с питанием от батареи (не использующими внешний источник питания).
[0014] Вычислительное устройство 100 включает в себя операционную систему 102 и одно или более приложений 104. Во время работы операционная система 102 и приложения 104 работают на вычислительном устройстве 100 с операционной системой 102, управляющей приложениями 104. Управление приложениями 104 включает в себя автоматическое завершение работы одного или более приложений 104, что рассмотрено более детально ниже по тексту. Жизненный цикл или продолжительность существования приложения 104 относится к временному периоду, когда выполняется приложение, начинается, когда приложение начинает выполняться, и заканчивается, когда приложение завершает работу.
[0015] Операционная система 102 включает в себя модуль 106 сбора системной информации и модуль 108 управления жизненным циклом приложений. Несмотря на то, что модуль 106 сбора системной информации и модуль 108 управления жизненным циклом приложений проиллюстрированы в качестве части операционной системы 102, в качестве альтернативы один или оба из модуля 106 и модуля 108 могут быть реализованы отдельно от операционной системы 102.
[0016] Модуль 106 сбора системной информации собирает различную информацию, касающуюся характеристик приложений 104 и/или ресурсов вычислительного устройства 100. Информация, касающаяся характеристик приложений 104, включает в себя, например, время существования каждого приложения 104. Время существования приложения 104 относится к тому, как давно (например, в исчислении на минуты, часы, дни и т.д.) приложение 104 последний раз было на переднем плане. Приложение находится на переднем плане, когда оно отображается или иным образом представляется через пользовательский интерфейс вычислительного устройства. Приложения, которые были свернуты (и, необязательно, приложения, имеющие свои окна отображения, покрытыми окнами отображения других приложений) не находятся на переднем плане и рассматриваются как фоновые приложения (фоновые приложения). Информация, касающаяся характеристик приложений 104, также может включать в себя другие свойства приложений 104, например подсчет того, сколько приложений 104 выполняются на вычислительном устройстве 100.
[0017] Ресурсы вычислительного устройства 100 включают в себя аппаратные и/или программные ресурсы вычислительного устройства 100, например процессоры и/или ядра процессора, память, сетевые соединения и т.д. Информация, касающаяся характеристик ресурсов вычислительного устройства 100, включает в себя, например информацию, касающуюся использования ресурсов вычислительного устройства 100, информацию, описывающую свойства ресурсов вычислительного устройства 100 и т.п. Например, характеристики ресурсов вычислительного устройства 100 могут включать в себя, насколько процессор (или ядро процессора) вычислительного устройства 100 используется всеми приложениями 104 в совокупности, насколько каждый процессор (или каждое ядро процессора) вычислительного устройства 100 используется каждым отдельным приложением 104, средний жизненный цикл страниц памяти из списка ожидания, тип сетевого соединения (например, является ли конкретное сетевое соединение сотовым беспроводным соединением, беспроводным соединением локальной сети (например Wi-Fi) и т.д.) и т.п.
[0018] Модуль 108 управления жизненным циклом приложений включает в себя модуль 112 отслеживания информации приложений, триггерный модуль 114, модуль 116 выбора приложения и модуль 118 завершения работы. Модуль 112 отслеживания информации приложений принимает информацию, касающуюся характеристик приложений 104 и/или ресурсов вычислительного устройства 100 от модуля 106 сбора системной информации. Триггерный модуль 114 контролирует информацию, принимаемую модулем 112 отслеживания информации приложений, и определяет, когда пороговое значение, связанное с конкретной характеристикой приложения 104 и/или ресурса вычислительного устройства 100 удовлетворено. Когда пороговое значение, связанное с конкретной характеристикой приложения 104 и/или ресурса вычислительного устройства 100 удовлетворено, модуль 116 выбора приложения выбирает одно или более приложений 104 для завершения работы. Модуль 118 завершения работы управляет завершением работы одного или более приложений, выбранных модулем 116 выбора приложения. Модуль 108 завершения работы автоматически завершает работу одного или более приложений, выбранных модулем 116 выбора приложения - при этом отсутствует необходимость приема ввода пользователя или подтверждения приложения для модуля 108 завершения работы для завершения работы выбранного одного или более приложений.
[0019] Модуль 112 отслеживания информации приложений поддерживает информацию, касающуюся различных характеристик приложений 104 и/или ресурсов вычислительного устройства 100 из модуля 106 сбора системной информации. Модуль 112 отслеживания информации приложений может запрашивать эту информацию через регулярные или нерегулярные интервалы (например, каждые пять секунд) из модуля 106 сбора системной информации или, в качестве альтернативы, может принимать эту информацию от модуля 106 другими способами (например, модуль 112 может регистрироваться в модуле 106 для приема сообщений или других обновлений с этой информацией).
[0020] В одном или более вариантах осуществления информация, поддерживаемая модулем 112 отслеживания информации приложений, включает в себя время существования каждого приложения 104, использование ядра процессора (Центрального Процессора или CPU) для каждого ядра процессора в вычислительном устройстве 100, использование памяти, использование запоминающего устройства (например, жесткого диска) для каждого запоминающего устройства в вычислительном устройстве 100 и использование сетевого соединения для каждого сетевого соединения, используемого вычислительным устройством 100. Использование ядра процессора является, например объединенным использованием мощности ядра процессора (например в качестве процента от полной мощности ядра процессора) всеми приложениями 104 и/или индивидуальным использованием мощности процессора (например в качестве процента от полной мощности ядра процессора) каждым приложением 104. Такое использование ядра процессора (либо всеми приложениями либо индивидуальными приложениями) может быть определено, например усреднением использования за конкретные интервалы (например каждые пять секунд) по конкретному числу интервалов (например 12 интервалов).
[0021] Использование памяти, например является объединенным использованием памяти всеми приложениями 104 и/или индивидуальным использованием памяти каждым приложением 104. Такое использование памяти (либо всеми приложениями либо индивидуальными приложениями) может быть определено, например посредством определения среднего жизненного цикла страниц памяти (например, за конкретный временной период, такой как предшествующая минута, продолжительность существования приложения и т.п.) в списке ожидания, поддерживаемом диспетчером памяти операционной системы 102. Такое использование памяти также может быть определено различными способами, например посредством определения среднего числа страниц памяти (например, за конкретный временной период, такой как предшествующая минута, продолжительность существования приложения и т.п.) в рабочем наборе страниц памяти для приложения.
[0022] Использование запоминающего устройства является, например объединенным использованием запоминающего устройства всеми приложениями 104 и/или индивидуальным использованием запоминающего устройства каждым приложением 104. Использование запоминающего устройства (либо всеми приложениями либо индивидуальными приложениями) может быть определено, например посредством усреднения частоты доступов к запоминающему устройству (например за конкретный временной период, такой как предшествующая минута, продолжительность существования приложения и т.п.). Такое использование запоминающего устройства также может быть определено различными способами, например посредством определения объема данных, передаваемых к и/или от запоминающего устройства (например, за конкретный временной период, такой как предшествующая минута, продолжительность существования приложения и т.п.).
[0023] Использование сетевого соединения является, например объединенным использованием сетевого соединения всеми приложениями 104 и/или индивидуальным использованием сетевого соединения каждым приложением 104. Использование сетевого соединения (либо всеми приложениями либо индивидуальными приложениями) может быть определено, например, посредством определения средней частоты передачи (отправления или приема) данных по сетевому соединению (например за конкретный временной период, такой как предшествующая минута, продолжительность существования приложения и т.п.). Такое использование сетевого соединения также может быть определено различными способами, например посредством определения среднего объема данных, передаваемых (отправляемых или принимаемых) по сетевому соединению (например, за конкретный временной период, такой как предшествующая минута, продолжительность существования приложения и т.п.).
[0024] Триггерный модуль 114 использует информацию, поддерживаемую модулем 112 отслеживания информации приложений для определения, когда пороговое значение, связанное с конкретной характеристикой приложения 104 и/или ресурса вычислительного устройства 100 было удовлетворено. В одном или более вариантах осуществления каждая характеристика, для которой поддерживается информация модулем 112 отслеживания информации приложений, имеет свое собственное пороговое значение (хотя следует отметить, что несколько таких пороговых значений могут быть одним и тем же значением). Пороговые значения, используемые триггерным модулем 114, могут быть предварительно сконфигурированы в триггерном модуле 114, или, в качестве альтернативы, могут быть обеспечены или иным образом получены триггерным модулем 114 от другого компонента или модуля (вычислительного устройства 100 или другого устройства).
[0025] В одном или более вариантах осуществления пороговое значение удовлетворяется, если связанная характеристика имеет значение, которое равно или превышает пороговое значение. В других вариантах осуществления пороговое значение может быть удовлетворено другими способами, например, если связанная характеристика имеет значение, которое превышает пороговое значение.
[0026] Пороговые значения могут быть установлены посредством ряда различных способов и в одном или более вариантах осуществления установлены, чтобы поддерживать высокую степень скорости ответа системы, а также длительный срок службы батареи. Завершая работу некоторых приложений, когда некоторые характеристики удовлетворяют некоторым пороговым значениям, модуль 108 управления жизненным циклом приложений пытается поддерживать высокую степень скорости ответа системы, а также длительный срок службы батареи. Конкретные пороговые значения могут быть установлены, например, на основе эмпирического анализа работы разных устройств.
[0027] Таблица I включает в себя примеры пороговых значений, которые могут быть использованы для конкретных характеристик приложения 104 и/или ресурса вычислительного устройства 100. Следует принять во внимание, что примеры, включенные в Таблицу I, являются примерами, и что другие пороговые значения и/или другие характеристики могут быть использованы в качестве альтернативы. Таблица I иллюстрирует примеры пороговых значений, связанных с конкретными характеристиками для систем с питанием от сети.
Таблица I
Характеристика Пороговое значение
Время существования приложения 3 часа (с момента, когда приложение последний раз было на переднем плане)
Использование процессора 75% (общее использование мощности ядра процессора всеми приложениями) более 20 секунд; и/или
25% (использование мощности ядра процессора одним приложением) более 20 секунд
Использование памяти Быстрое обновление/подкачка каждые 300 секунд (средний жизненный цикл страниц памяти в списке ожидания, поддерживаемом диспетчером памяти)
Использование диска 75% (использование диска всеми ядрами процессора на любом одном диске в системе) более 20 секунд
[0028] Таблица II включает в себя дополнительные примеры пороговых значений, которые могут быть использованы для конкретных характеристик приложения 104 и/или ресурса вычислительного устройства 100. Следует отметить, что примеры, включенные в Таблицу II, являются примерами, и что другие пороговые значения и/или другие характеристики могут быть использованы в качестве альтернативы. Таблица II иллюстрирует примеры пороговых значений, связанных с конкретными характеристиками для систем с питанием от батареи.
Таблица II
Характеристика Пороговое значение
Время существования приложения 3 часа (с момента, когда приложение последний раз было на переднем плане)
Использование процессора 75% (общее использование мощности ядра процессора всеми приложениями) более 5 секунд; и/или
более 50% в интервалах (запись использования ядра процессора по каждому приложению каждые 5 секунд в последовательной истории из 12 интервалов; запуск если использование является ненулевым в более чем 50% интервалов)
Использование памяти Быстрое обновление/подкачка каждые 300 секунд (средний жизненный цикл страниц памяти в списке ожидания, поддерживаемом диспетчером памяти)
Периодическое использование диска Ненулевая активность в следующих друг за другом интервалах (для каждого приложения, использование диска записывается в 5 минутных интервалах)
Периодическое использование сети Ненулевая активность в следующих друг за другом интервалах (для каждого приложения, использование сети записывается в 5 минутных интервалах)
[0029] Модуль 116 выбора приложения в ответ на определение триггерным модулем 114, что пороговое значение удовлетворено, выбирает одно или более приложений 104 для завершения работы. Этот выбор основан, по меньшей мере частично, на характеристике, связанной с конкретным пороговым значением, которое было превышено, и таким образом, также основан, по меньшей мере частично, на конкретном пороговом значении, которое было превышено. Модуль 116 выбора приложения выбирает одно или более из приложений 104 для завершения работы, когда по меньшей мере одно пороговое значение удовлетворено. Например, модуль 116 выбора приложения выбирает одно или более из приложений 104 для завершения работы, если пороговое значение для одного ресурса (например, использование процессора, использование памяти и т.д.) удовлетворено.
[0030] В одном или более вариантах осуществления модуль 116 выбора приложения выбирает приложение 104, подлежащее завершению работы, и обеспечивает указание выбранного приложения 104 модулю 118 завершения работы. Модуль 118 завершения работы завершает работу выбранного приложения 104 любым из ряда способов, например передавая запрос к выбранному приложению 104, чтобы оно завершило свою работу, осуществляя связь с другими компонентами или модулями операционной системы 102 для завершения исполнения выбранного приложения 104 и т.п. После того, как выбранное приложение 104 завершило работу, триггерный модуль 114 проверяет, является ли пороговое значение, которое было ранее удовлетворено (и привело к завершению работы выбранного приложения 104), все еще удовлетворенным. Если пороговое значение все еще удовлетворено, то модуль 116 выбора приложения выбирает другое приложение 104, подлежащее завершению работы. Однако, если значение приложения еще не удовлетворено, то нет необходимости завершения работы дополнительных приложений.
[0031] В качестве альтернативы вместо того, чтобы выбирать приложения одно за другим, модуль 116 выбора приложения может выбирать несколько приложений, которые подлежат завершению работы. Например, модуль 116 выбора приложения может определить конкретное число приложений, которые должны быть сохранены выполняющимися, основываясь на конкретном ресурсе вычислительного устройства 100 (например, конкретном объеме оперативной памяти (RAM) в вычислительном устройстве, конкретном числе ядер процессора в вычислительном устройстве 100 и т.п.). Одно или более приложений выбирают так, что лишь конкретное число приложений сохраняются выполняющимися.
[0032] Модуль 116 выбора приложения может выбирать, работу какого приложения 104 следует завершить, множеством разных способов. В одном или более вариантах осуществления модуль 116 выбора приложения выбирает приложение, подлежащее завершению работы, из набора приложений, который включает в себя приложения, выполняющиеся на заднем плане. Приложения, выполняющиеся на переднем плане (и таким образом, возможно, имеющие отображаемые пользовательские интерфейсы, которые могут быть видимы пользователю) не находятся в наборе, из которого выбирается приложение, подлежащее завершению работы. Выполняется ли приложение на переднем плане или на заднем плане, является характеристикой приложения, которая поддерживается посредством и может быть извлечена модулем 108 управления жизненным циклом приложений из модуля 106 сбора системной информации.
[0033] Дополнительно в одном или более вариантах осуществления характеристики приложений 104 и ресурсов вычислительного устройства 100, поддерживаемые модулем 112 отслеживания информации приложений получают с помощью модуля 116 выбора приложения. Для характеристики, связанной с пороговым значением, которое было удовлетворено, осуществляется приоритизация набора приложений, выполняющихся на заднем плане, основываясь на его значении для этой характеристики. Модуль 116 выбора приложения выбирает из набора приложений, выполняющихся на заднем плане, наиболее проблемное приложение 104. Наиболее проблемное приложение 104 представляет собой приложение, имеющее наибольшее или наивысшее значение для этой характеристики. Например, приложение 104, имеющее наивысшее использование ресурса, приложение 104, имеющее наибольшее значение времени существования (например, приложение 104, имеющее самое длительное время существования) и т.п. Наименее проблемным приложением 104 следовательно является приложение 104, имеющее наименьшее использование ресурса, приложение, имеющее самое короткое время существования и т.п. Например, если порог использования процессора удовлетворен, то модуль 116 выбора приложения выбирает приложение, имеющее наибольшее использование процессора в качестве наиболее проблемного приложения, и выбирает это приложение в качестве приложения, подлежащего завершению работы. Например, если имеется пять выполняющихся приложений 104, имеющих использования процессора 20%, 5%, 4%, 4% и 3% соответственно, то приложение, имеющее использование процессора 20% является приложением, имеющим наивысшее использование процессора, и является приложением, которое выбирается для завершения работы. В качестве альтернативы, несколько приложений могут быть выбраны для завершения работы (например, приложение имеющее использование процессора 20% и приложение, имеющее использование процессора 5%).
[0034] В качестве альтернативы, другие технологии могут быть использованы для выбора из набора приложений, выполняющихся на заднем плане, приложения для завершения работы. Например, может быть осуществлена приоритизация набора приложений, выполняющихся на заднем плане, основываясь на том, как часто используется каждое приложение (например, какой процент времени, во время выполнения приложения, приложение выполняется на переднем плане), основываясь на том, насколько давно каждое приложение последний раз было на переднем плане и т.п. Приложение, выбранное в качестве приложения для завершения работы, может быть приложением, которое наименее часто используется, приложением, которое наиболее давно не было на переднем плане и т.п.
[0035] Кроме того в одном или более вариантах осуществления один или более разных типов приложений исключаются из выбора модулем 116 выбора приложения в качестве приложения, подлежащего завершению работы. Модуль 116 выбора приложения может быть сконфигурирован с или в качестве альтернативы может получать от другого модуля или устройства указание этих одного или более типов приложений, которые исключены из выбора модулем 116 выбора приложения в качестве приложения, подлежащего завершению работы. Конкретные типы приложений, выбор которых модулем 116 выбора приложения в качестве приложения, подлежащего завершению работы, исключен, могут быть определены различными способами на основе пожеланий конструктора модуля 116 выбора приложения или администратора или пользователя вычислительного устройства 100.
[0036] Следует отметить что, хотя различные примеры характеристик приложений 104 и/или ресурсов вычислительного устройства 100 и связанные пороговые значения рассмотрены в данном документе, они представляют собой лишь примеры, и другие характеристики могут быть использованы в качестве альтернативы с технологиями, рассмотренными в данном документе. Например, такие характеристики, как число приложений 104, выполняющихся на вычислительном устройстве 100, могут быть использованы, и триггерный модуль 114 может определять, что пороговое значение было удовлетворено, если по меньшей мере пороговое число приложений 104 выполняются на вычислительном устройстве 100. В качестве другого примера разные пороговые значения могут быть связаны с разными типами сетевых соединений, например, одно пороговое значение для использования сотового беспроводного сетевого соединения и другое пороговое значение для использования сетевого Wi-Fi соединения.
[0037] Фиг. 2 иллюстрирует пример системы 200, реализующей управление жизненным циклом приложений в соответствии с одним или более вариантами осуществления. Система 200 может быть реализована, например вычислительным устройством 100 согласно фиг. 1. Система 200 включает в себя модуль 202 управления жизненным циклом приложений, который может быть, например модулем 108 управления жизненным циклом приложений согласно фиг. 1.
[0038] Модуль 202 управления жизненным циклом приложений принимает характеристики 204 ресурса и/или приложения от модуля 206 сбора системной информации. Эти характеристики ресурса и/или приложения могут представлять собой, например информацию, касающуюся различных характеристик приложений 104 и/или ресурсов вычислительного устройства 100, принимаемую модулем 112 отслеживания информации приложений согласно фиг. 1. Эти характеристики 204 ресурса и/или приложения могут быть приняты через другой компонент или модуль, например модуль 106 сбора системной информации согласно фиг. 1.
[0039] Модуль 202 управления жизненным циклом приложений также принимает идентификаторы 208 приложений от модуля 210 управления пользовательским интерфейсом. Идентификаторы 208 приложений идентифицируют приложения, которые, например, выполняются в текущий момент на переднем плане. Модуль 210 управления пользовательским интерфейсом поддерживает запись приложений, которые выполняются в текущий момент на переднем плане и обеспечивает приложения в этой записи в качестве идентификаторов 208 приложений. Эти идентификаторы приложений могут быть приняты через другой компонент или модуль, например модуль 106 сбора системной информации согласно фиг. 1.
[0040] Модуль 202 управления жизненным циклом приложений использует одну или более характеристик 204 ресурса/приложения и идентификаторы 208 приложений для выбора одного или более приложений 212, подлежащих завершению работы. Эти одно или более приложений могут быть выбраны различными способами, как рассмотрено выше по тексту. Эти приложения 212 могут быть, например одним или более приложениями 104 согласно фиг. 1. Модуль 202 управления жизненным циклом приложений передает команду 214 или запрос завершения работы одному или более приложениям 212.
[0041] Фиг. 3 представляет собой блок-схему последовательности операций, иллюстрирующую примерный процесс 300 для устройства, реализующего управление жизненным циклом приложений, в соответствии с одним или более вариантами осуществления. Процесс 300 выполняется вычислительным устройством, таким как вычислительное устройство 100 согласно фиг. 1 и может быть реализован в программном обеспечении, аппаратно-программном обеспечении или в их комбинации. Процесс 300 показан в качестве набора этапов и не ограничен порядком, показанным для выполнения операций различных этапов. Процесс 300 является примерным процессом для устройства, реализующего управление жизненным циклом приложений; дополнительные рассмотрения по реализации управления жизненным циклом приложений включены в данный документе со ссылкой на разные чертежи.
[0042] В процессе 300 проверку выполняют относительно того, превышено ли пороговое значение (этап 302). Как рассмотрено выше по тексту, это пороговое значение является пороговым значением, связанным с характеристикой приложения, выполняющегося на вычислительном устройстве и/или ресурсом вычислительного устройства.
[0043] Если отсутствует превышенное пороговое значение, то приложениям, выполняющимся на вычислительном устройстве, позволяют продолжать выполнение на вычислительном устройстве (этап 304). Этап 302 затем повторяют (например, через регулярные или нерегулярные интервалы).
[0044] Однако, если пороговое значение превышено, то выбирают одно или более приложений для завершения работы (этап 306). Эти одно или более приложений могут быть выбраны различными способами, как рассмотрено выше по тексту.
[0045] Завершают работу одного или более приложений, выбранных на этапе 306(этап 308). Этап 302 затем повторяют (например с регулярным или нерегулярными интервалами).
[0046] Фиг. 4 представляет собой блок-схему, иллюстрирующую примерный процесс 400 для выбора одного или более приложений, подлежащих завершению работы в соответствии с одним или более вариантами осуществления. Процесс 400 выполняется вычислительным устройством, таким как вычислительное устройство 100 согласно фиг. 1, и может быть реализован в программном обеспечении, аппаратно-программном обеспечении, аппаратном обеспечении или в их комбинациях. Процесс 400 показан как набор этапов и не ограничен порядком, показанным для выполнения операций различных этапов. Процессом 400 является примерный процесс для выбора одного или более приложений, подлежащих завершению работы; дополнительные рассмотрения выбора одного или более приложений, подлежащих завершению работы, включены в данный документ со ссылкой на разные фигуры.
[0047] Процесс 400 типично инициируют в ответ на удовлетворение порогового значения, связанного с характеристикой приложения, выполняющегося на вычислительном устройстве и/или ресурса вычислительного устройства. В процессе 400 генерируется список фоновых приложений (этап 402). Фоновые приложения являются приложениями, которые выполняются на вычислительном устройстве на заднем плане.
[0048] Необязательно, одно или более приложений, завершение работы которых исключено, удаляются из сгенерированного списка (этап 404). Различные типы приложений могут быть исключены из завершения работы, как рассмотрено выше по тексту.
[0049] Осуществляют приоритизацию (этап 406) приложений, оставшихся в сгенерированном списке. Приоритизация приложений может быть осуществлена разными способами, например согласно использованию конкретного ресурса (например, ресурса, связанного с пороговым значением, которое было удовлетворено), времени существования, частоты использования и т.п.
[0050] Выбирают (этап 408) приложение в сгенерированном списке. Приложение, выбранное на этапе 408, является приложением, приоритет которого определен как наивысший (например, имеет наивысшее использование ресурса, имеет самое длительное время существования, имеет наименьшую частоту использования и т.п.).
[0051] Завершают работу выбранного приложения (этап 410). Работа выбранного приложения может быть завершена разными способами, как рассмотрено выше по тексту.
[0052] Проверка затем выполняется относительно того, удовлетворено ли пороговое значение (этап 412). Если пороговое значение все еще удовлетворено, то процесс 400 возвращается к этапу 408 для выбора другого приложения. В качестве альтернативы, процесс 400 может возвращаться к этапу 402 для повторного генерирования списка фоновых приложений.
[0053] Если пороговое значение еще (уже) не удовлетворено, то процесс 400 выполнен (этап 414). Дополнительно если все приложения, работа которых может быть завершена (например, все фоновые приложения, все приложения, завершение работы которых не исключено и т.д.) завершили работу, процесс 400 выполнен (этап 414) даже если пороговое значение все еще удовлетворено.
[0054] Процесс 400 рассматривается со ссылкой на генерирование списка и удаление из списка приложений, завершение работы которых исключено. В качестве альтернативы может быть осуществлено генерирование и приоритизация списка фоновых приложений, выбор приложения в сгенерированном списке и затем завершение работы приложения, только если завершение работы выбранного приложения не исключено.
[0055] Технологии, рассмотренные в данном документе, поддерживают различные сценарии использования. Например, если конкретное фоновое приложение использует большую величину мощности процессора (или памяти), это конкретное фоновое приложение может быть выбрано в качестве приложения, подлежащего завершению работы. Таким образом, фоновое приложение, которое не было на переднем плане и в текущий момент не используется пользователем устройства 100, автоматически завершает работу и ресурсы, используемые фоновым приложением, освобождаются для использования другими приложениями. Вместо того чтобы просто завершать работу наиболее давно неиспользуемого приложения, приложение, имеющее высокую вероятность освобождения ресурсов для использования другими приложениями, является приложением, которое завершает работу.
[0056] Следует отметить, что технологии управления жизненным циклом приложений, рассмотренные в данном документе, уменьшают нагрузку на пользователя по управлению несколькими приложениями на его или ее вычислительном устройстве. Пользователь может запускать приложения так, как он или она желает, не заботясь о завершении работы этих приложений, когда он или она больше не использует эти приложения. Точнее технологии управления жизненным циклом приложений, рассмотренные в данном документе, автоматически завершают работу приложения для пользователя, принимая меры по завершению работы фоновых приложений, а не приложений, которые в текущий момент используются пользователем.
[0057] Фиг. 5 иллюстрирует примерное вычислительное устройство 500, которое может быть сконфигурировано для реализации управления жизненным циклом приложений, в соответствии с одним или более вариантами осуществления. Вычислительное устройство 500 может быть, например, вычислительным устройством согласно фиг. 1.
[0058] Вычислительное устройство 500 включает в себя один или более процессоров или обрабатывающих блоков 502 (каждый из которых может включать в себя одно или более ядер процессора), один или более считываемых компьютером носителей 504, которые могут включать в себя один или более компонентов 506 памяти и/или хранения, одно или более устройств 508 ввода/вывода (I/O) и шину 510, которая позволяет различным компонентам и устройствам осуществлять связь друг с другом. Считываемые компьютером носители 504 и/или одно или более устройств 508 I/O могут быть включены в качестве части или в качестве альтернативы могут быть подключены к вычислительному устройству 500. Шина 510 представляет один или более нескольких типов шинных структур, в том числе шину памяти или контроллер памяти, шину периферийных компонентов, ускоренный графический порт, процессор или локальную шину и т.п. с использованием рада различных шинных архитектур. Шина 510 может включать в себя проводную и/или беспроводную шины.
[0059] Компонент 506 памяти/хранения представляет один или более компьютерных запоминающих носителей. Компонент 506 может включать в себя энергозависимые носители (например оперативную память (RAM)) и/или энергонезависимые носители (например постоянную память (ROM), флэш-память, оптические диски, магнитные диски и т.п.). Компонент 506 может включать в себя несъемные носители (например RAM, ROM, несъемный накопитель на жестком диске и т.д.), а также съемные носители (например, флэш-память, съемный накопитель на жестком диске, оптический диск и т.п.).
[0060] Технологии, рассмотренные в данном документе, могут быть реализованы в программном обеспечении с исполнением инструкций одним или более обрабатывающими блоками 502. Следует отметить, что разные инструкции могут быть сохранены в разных компонентах вычислительного устройства 500, например в обрабатывающем блоке 502, в разных кэш-памятях обрабатывающего блока 502, в других кэш-памятях устройства 500 (не показано), на других считываемых компьютером носителях и т.п. Дополнительно следует отметить, что местоположение, где хранятся инструкции в вычислительном устройстве 500, может меняться со временем.
[0061] Одно или более устройств 508 ввода/вывода позволяют пользователю вводить команды и информацию в вычислительное устройство 500 и также позволяют представлять информацию пользователю и/или другим компонентам или устройствам. Примеры устройств ввода включают в себя клавиатуру, устройство управления курсором (например мышь), микрофон, сканер и т.п. Примеры устройств вывода включают в себя устройство отображения (например монитор или проектор), громкоговорители, принтер, сетевую карту и т.п.
[0062] Различные технологии могут быть описаны в данном документе в общем контексте программного обеспечения или программных модулей. В общем, программное обеспечение включает в себя подпрограммы, программы, объекты, компоненты, структуры данных и т.п., которые выполняют конкретные задачи или реализуют конкретные абстрактные типы данных. Реализация этих модулей и технологий может быть сохранена на или передана на некоторой форме считываемых компьютером носителей. Считываемые компьютером носители могут быть любым доступным носителем или носителями, к которым может быть осуществлен доступ вычислительным устройством. Посредством примера, и не ограничения, считываемые компьютером носители могут содержать «компьютерные запоминающие носители» и «носители связи».
[0063] «Компьютерные запоминающие носители» включают в себя энергозависимые и энергонезависимые, съемные и несъемные носители, реализованные в любом способе или технологии для хранения информации, такой как считываемые компьютером инструкции, структуры данных, программные модули или другие данные. Компьютерные запоминающие носители включают в себя, но не ограничены этим, RAM, ROM, EEPROM, флэш-память или другую технологию памяти, CD-ROM, универсальные цифровые диски (DVD) или другое оптическое запоминающее устройство, магнитные кассеты, магнитную ленту, магнитное дисковое запоминающее устройство или другие магнитные запоминающие устройства, или любой другой носитель, который может быть использован для хранения желаемой информации и к которому может быть осуществлен доступ компьютером.
[0064] «Носители связи» типично воплощают считываемые компьютером инструкции, структуры данных, программные модули или другие данные в модулированном сигнале данных, например несущая волна или другой механизм транспортировки. Носители связи также включают в себя любые носители доставки информации. Термин «модулированный сигнал данных» означает сигнал, который имеет одну или более из своих характеристик установленной или измененной таким образом, чтобы кодировать информацию в сигнале. Посредством примера, и не ограничения, носители связи включают в себя проводные носители, например проводную сеть или прямое проводное соединение и беспроводные носители, например акустические, RF, инфракрасные и другие беспроводные носители. Комбинации любого из вышеперечисленного также включены в объем считываемых компьютером носителей.
[0065] В общем, любая из функций или технологий, описанных в данном документе, может быть реализована с использованием программного обеспечения, аппаратно-программного обеспечения, аппаратного обеспечения (например фиксированная логическая схема), ручной обработки, или комбинации этих реализаций. Термин «модуль» и «компонент», которые используются в данном документе, в общем представляют программное обеспечение, программно-аппаратное обеспечение, аппаратное обеспечение, или их комбинации. В случае программной реализации модуль или компонент представляет программный код, который выполняет конкретные задачи при исполнении на процессоре (например, CPU или нескольких CPU). Программный код может быть сохранен в одном или более считываемых компьютером устройств памяти, дополнительное описание которых может быть найдено со ссылкой на Фиг. 5. Признаки технологий управления жизненным циклом приложений, описанных в данном документе, являются независимыми от платформы, что означает, что технологии могут быть реализованы на ряде доступных для приобретения вычислительных платформ, имеющих ряд процессоров.
[0066] Несмотря на то, что изобретение описано на языке характерном для структурных признаков и/или методологических этапов, следует понимать, что изобретение, определенное в приложенной формуле изобретения не обязательно ограничено конкретными признаками или этапами, описанными выше по тексту. Наоборот, конкретные признаки и этапы, описанные выше по тексту раскрыты в качестве примеров форм реализации формулы изобретения.

Claims (19)

1. Способ управления жизненным циклом приложений в вычислительном устройстве, выполняющем многочисленные приложения, причем способ содержит этапы, на которых:
определяют многочисленные пороговые значения, каждое из упомянутых многочисленных пороговых значений связано либо с характеристикой одного из упомянутых многочисленных приложений, либо с характеристикой ресурса вычислительного устройства;
подстраивают упомянутые многочисленные пороговые значения, основываясь, по меньшей мере частично, на том, работает ли вычислительное устройство как система с питанием от сети или система с питанием от батареи;
проверяют, удовлетворено ли пороговое значение из упомянутых многочисленных пороговых значений, при этом пороговое значение связано с величиной периодического использования сети вычислительного устройства;
позволяют, если пороговое значение не было удовлетворено, упомянутым многочисленным приложениям продолжать выполнение на вычислительном устройстве; и
если пороговое значение было удовлетворено, то:
выбирают, основываясь, по меньшей мере частично, на величине периодического использования сети вычислительного устройства, одно или более из упомянутых многочисленных приложений для завершения работы; и
завершают работу этих одного или более приложений.
2. Способ по п. 1, дополнительно содержащий этапы, на которых:
проверяют, удовлетворено ли пороговое значение, связанное с использованием ядра процессора вычислительного устройства упомянутыми многочисленными приложениями; и
если пороговое значение, связанное с использованием ядра процессора упомянутыми многочисленными приложениями, было удовлетворено, выбирают, основываясь, по меньшей мере частично, на использовании процессора, одно или более дополнительных приложений из упомянутых многочисленных приложений для завершения работы и завершают работу этих одного или более дополнительных приложений.
3. Способ по п. 1, дополнительно содержащий этапы, на которых:
проверяют, удовлетворено ли пороговое значение, связанное с использованием ядра процессора вычислительного устройства одним приложением из упомянутых многочисленных приложений; и
если пороговое значение, связанное с использованием ядра процессора этим одним приложением, было удовлетворено, завершают работу этого одного приложения.
4. Способ по п. 1, дополнительно содержащий этапы, на которых:
проверяют, удовлетворено ли пороговое значение, связанное с использованием памяти вычислительного устройства; и
если пороговое значение, связанное с использованием памяти, было удовлетворено, выбирают, основываясь, по меньшей мере частично, на использовании памяти, одно или более дополнительных приложений из упомянутых многочисленных приложений для завершения работы и завершают работу этих одного или более дополнительных приложений.
5. Способ по п. 1, дополнительно содержащий этапы, на которых:
проверяют, удовлетворено ли пороговое значение, связанное с использованием запоминающего устройства вычислительного устройства; и
если пороговое значение, связанное с использованием запоминающего устройства, было удовлетворено, выбирают, основываясь, по меньшей мере частично, на использовании запоминающего устройства, одно или более дополнительных приложений из упомянутых многочисленных приложений для завершения работы и завершают работу этих одного или более дополнительных приложений.
6. Способ по п. 1, дополнительно содержащий этапы, на которых:
проверяют, удовлетворено ли пороговое значение, связанное с временем существования одного из упомянутых многочисленных приложений, при этом время существования этого одного из упомянутых многочисленных приложений указывает, как давно это одно из упомянутых многочисленных приложений последний раз было на переднем плане; и
если пороговое значение, связанное с временем существования этого одного из упомянутых многочисленных приложений, было удовлетворено, завершают работу этого одного из упомянутых многочисленных приложений.
7. Способ по п. 1, в котором выбор одного или более из упомянутых многочисленных приложений для завершения работы содержит:
идентификацию по меньшей мере одного из упомянутых многочисленных приложений, завершение работы которого исключено, при этом упомянутое по меньшей мере одно из упомянутых многочисленных приложений включает в себя приложения, которые выполняются на переднем плане; и
выбор в качестве этого одного или более из упомянутых многочисленных приложений для завершения работы одного или более приложений, отличных от упомянутого по меньшей мере одного из упомянутых многочисленных приложений.
8. Способ по п. 1, дополнительно содержащий этапы, на которых:
проверяют, удовлетворено ли пороговое значение, связанное с ресурсом вычислительного устройства, отличным от периодического использования сети; и
выбирают одно или более дополнительных приложений из упомянутых многочисленных приложений, имеющее наибольшее использование ресурса, и завершают работу этого одного или более дополнительных приложений.
9. Компьютерная память, хранящая многочисленные инструкции, которые при исполнении одним или более процессорами вычислительного устройства, побуждают этот один или более процессоров выполнять операции, содержащие:
генерирование списка фоновых приложений, выполняющихся на вычислительном устройстве;
определение порогового значения, связанного с периодическим использованием сети вычислительного устройства, причем пороговое значение имеет первое пороговое значение, если вычислительное устройство работает как система с питанием от батареи, и второе пороговое значение, если вычислительное устройство работает как система с питанием от сети, причем первое пороговое значение и второе пороговое значение имеют разные пороговые значения;
приоритизацию фоновых приложений в списке так, чтобы фоновые приложения, которые превышают величину периодического использования сети, имели более низкий приоритет;
выбор приложения с низким приоритетом в списке фоновых приложений;
автоматическое завершение работы выбранного приложения; и
повторение выбора приложения и завершение работы выбранного приложения до тех пор, пока периодическое использование сети вычислительного устройства не удовлетворит пороговое значение, определенное посредством упомянутого определения.
10. Компьютерная память по п. 9, при этом выбор приложения в списке содержит выбор приложения в списке, имеющего наибольшую величину периодического использования сети.
11. Компьютерная память по п. 9, при этом выбор приложения содержит выбор многочисленных приложений в списке фоновых приложений, и при этом завершение работы выбранного приложения содержит завершение работы упомянутых многочисленных выбранных приложений.
12. Компьютерная память по п. 9, при этом фоновые приложения в списке дополнительно подвергаются приоритизации, основываясь, по меньшей мере частично, на использовании ядра процессора вычислительного устройства.
13. Компьютерная память по п. 9, при этом фоновые приложения в списке дополнительно подвергаются приоритизации, основываясь, по меньшей мере частично, на использовании запоминающего устройства вычислительного устройства.
14. Компьютерная память по п. 9, при этом пороговое значение является третьим пороговым значением, если периодическое использование сети происходит в беспроводной сети сотовой связи, и четвертым пороговым значением, если периодическое использование сети происходит в Wi-Fi сети, при этом третье пороговое значение и четвертое пороговое значения являются разными пороговыми значениями.
15. Компьютерная память по п. 9, при этом фоновые приложения в списке дополнительно подвергаются приоритизации, основываясь, по меньшей мере частично, на использовании памяти вычислительного устройства.
16. Компьютерная память по п. 9, при этом фоновые приложения в списке дополнительно подвергаются приоритизации, основываясь, по меньшей мере частично, на времени существования фоновых приложений, при этом время существования фоновых приложений указывает, как давно эти фоновые приложения последний раз были на переднем плане.
17. Способ управления жизненным циклом приложений в вычислительном устройстве, выполняющем многочисленные приложения, причем способ содержит этапы, на которых:
определяют многочисленные пороговые значения, включающие в себя:
первое пороговое значение, связанное с временем существования одного из упомянутых многочисленных приложений,
второе пороговое значение, связанное с использованием ядра процессора вычислительного устройства,
третье пороговое значение, связанное с использованием запоминающего устройства вычислительного устройства, и
четвертое пороговое значение, связанное с периодическим использованием сети вычислительного устройства;
подстраивают упомянутые многочисленные пороговые значения, основываясь, по меньшей мере частично, на том, работает ли вычислительное устройство как система с питанием от сети или система с питанием от батареи;
проверяют, удовлетворено ли пороговое значение из упомянутых многочисленных пороговых значений;
позволяют, если никакое из упомянутых многочисленных пороговых значений не было удовлетворено, упомянутым многочисленным приложениям продолжать выполнение на вычислительном устройстве; и
если первое пороговое значение было удовлетворено, то выбирают первое приложение из упомянутых многочисленных приложений, имеющее наибольшее время существования, и завершают работу этого первого приложения;
если второе пороговое значение было удовлетворено, то выбирают второе приложение из упомянутых многочисленных приложений, имеющее наибольшее использование ядра процессора, и завершают работу этого второго приложения;
если третье пороговое значение было удовлетворено, то выбирают третье приложение из упомянутых многочисленных приложений, имеющее наибольшее использование запоминающего устройства, и завершают работу этого третьего приложения; и
если четвертое пороговое значение было удовлетворено, то выбирают четвертое приложение из упомянутых многочисленных приложений, имеющее наибольшую величину периодического использования сети, и завершают работу этого четвертого приложения.
18. Способ по п. 17, дополнительно содержащий этап, на котором:
выполняют эмпирический анализ на вычислительном устройстве; и
при этом определение упомянутых многочисленных пороговых значений основано, по меньшей мере частично, на упомянутом эмпирическом анализе.
19. Способ по п. 17, дополнительно содержащий этап на, котором:
подстраивают четвертое пороговое значение, основываясь, по меньшей мере частично, на том, происходит ли периодическое использование сети в беспроводной сети сотовой связи, или на том, происходит ли периодическое использование сети в Wi-Fi сети.
RU2013119123/08A 2010-10-25 2011-10-02 Управление жизненным циклом приложений RU2599967C2 (ru)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/911,450 2010-10-25
US12/911,450 US8635630B2 (en) 2010-10-25 2010-10-25 Application lifetime management
PCT/US2011/054514 WO2012060955A2 (en) 2010-10-25 2011-10-02 Application lifetime management

Publications (2)

Publication Number Publication Date
RU2013119123A RU2013119123A (ru) 2014-10-27
RU2599967C2 true RU2599967C2 (ru) 2016-10-20

Family

ID=45974105

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2013119123/08A RU2599967C2 (ru) 2010-10-25 2011-10-02 Управление жизненным циклом приложений

Country Status (10)

Country Link
US (1) US8635630B2 (ru)
EP (1) EP2633406A4 (ru)
JP (1) JP5984824B2 (ru)
KR (1) KR101827030B1 (ru)
CN (1) CN102436605B (ru)
AU (1) AU2011323985B2 (ru)
CA (1) CA2814604C (ru)
RU (1) RU2599967C2 (ru)
TW (1) TWI533205B (ru)
WO (1) WO2012060955A2 (ru)

Families Citing this family (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008049871A1 (en) * 2006-10-27 2008-05-02 Cecure Gaming Limited Online gaming system
US20120209413A1 (en) 2011-02-14 2012-08-16 Microsoft Corporation Background Audio on Mobile Devices
US9176759B1 (en) * 2011-03-16 2015-11-03 Google Inc. Monitoring and automatically managing applications
JP5659066B2 (ja) * 2011-03-31 2015-01-28 Kddi株式会社 サービス制御装置およびサービス制御プログラム
US9465427B2 (en) * 2011-06-30 2016-10-11 International Business Machines Corporation Software-centric power management by indirectly determining that user is not actively using computer program running on computing device
US8997171B2 (en) 2011-08-19 2015-03-31 Microsoft Technology Licensing, Llc Policy based application suspension and termination
US9032413B2 (en) * 2011-09-01 2015-05-12 Microsoft Technology Licensing, Llc Decoupling background work and foreground work
US8892710B2 (en) 2011-09-09 2014-11-18 Microsoft Corporation Keep alive management
US8806250B2 (en) 2011-09-09 2014-08-12 Microsoft Corporation Operating system management of network interface devices
US9049660B2 (en) 2011-09-09 2015-06-02 Microsoft Technology Licensing, Llc Wake pattern management
US8578394B2 (en) * 2011-09-09 2013-11-05 Microsoft Corporation Exempting applications from suspension
US8990534B2 (en) 2012-05-31 2015-03-24 Apple Inc. Adaptive resource management of a data processing system
US11237719B2 (en) * 2012-11-20 2022-02-01 Samsung Electronics Company, Ltd. Controlling remote electronic device with wearable electronic device
US10185416B2 (en) 2012-11-20 2019-01-22 Samsung Electronics Co., Ltd. User gesture input to wearable electronic device involving movement of device
US11157436B2 (en) 2012-11-20 2021-10-26 Samsung Electronics Company, Ltd. Services associated with wearable electronic device
US10423214B2 (en) 2012-11-20 2019-09-24 Samsung Electronics Company, Ltd Delegating processing from wearable electronic device
US10551928B2 (en) 2012-11-20 2020-02-04 Samsung Electronics Company, Ltd. GUI transitions on wearable electronic device
US9477313B2 (en) 2012-11-20 2016-10-25 Samsung Electronics Co., Ltd. User gesture input to wearable electronic device involving outward-facing sensor of device
US8994827B2 (en) 2012-11-20 2015-03-31 Samsung Electronics Co., Ltd Wearable electronic device
US11372536B2 (en) 2012-11-20 2022-06-28 Samsung Electronics Company, Ltd. Transition and interaction model for wearable electronic device
CN102946486A (zh) * 2012-11-20 2013-02-27 惠州Tcl移动通信有限公司 一种基于手机的后台应用自动清理方法及手机
CN103902357A (zh) * 2012-12-27 2014-07-02 富泰华工业(深圳)有限公司 应用程序管理***及方法
KR102083316B1 (ko) * 2013-04-24 2020-04-14 삼성전자주식회사 사용자 디바이스의 메모리 관리 방법 및 장치
US9749209B2 (en) * 2013-11-01 2017-08-29 The Nielsen Company (Us), Llc Methods and apparatus to credit background applications
JP2015106167A (ja) * 2013-11-28 2015-06-08 ソニー株式会社 情報処理装置、情報処理方法および記憶媒体
KR102148948B1 (ko) * 2013-12-06 2020-08-27 삼성전자주식회사 전자 장치의 멀티 태스킹 방법 및 그 전자 장치
US10691332B2 (en) 2014-02-28 2020-06-23 Samsung Electronics Company, Ltd. Text input on an interactive display
US9871741B2 (en) 2014-03-10 2018-01-16 Microsoft Technology Licensing, Llc Resource management based on device-specific or user-specific resource usage profiles
US9760138B2 (en) 2014-04-25 2017-09-12 Microsoft Technology Licensing, Llc Load scheduling in multi-battery devices
US10552179B2 (en) 2014-05-30 2020-02-04 Apple Inc. Resource management with dynamic resource policies
US9690685B2 (en) * 2014-05-30 2017-06-27 Apple Inc. Performance management based on resource consumption
CN104239094B (zh) * 2014-08-29 2017-12-08 小米科技有限责任公司 后台应用程序的控制方法、装置及终端设备
US9696782B2 (en) 2015-02-09 2017-07-04 Microsoft Technology Licensing, Llc Battery parameter-based power management for suppressing power spikes
US10158148B2 (en) 2015-02-18 2018-12-18 Microsoft Technology Licensing, Llc Dynamically changing internal state of a battery
US9748765B2 (en) 2015-02-26 2017-08-29 Microsoft Technology Licensing, Llc Load allocation for multi-battery devices
US9465734B1 (en) 2015-04-08 2016-10-11 Apple Inc. Coalition based memory management
US9983887B2 (en) 2015-06-05 2018-05-29 Apple Inc. Memory management of data processing systems
EP3268859A1 (en) * 2015-07-27 2018-01-17 Hewlett-Packard Enterprise Development LP Scheduling heterogenous processors
US9971664B2 (en) * 2015-08-27 2018-05-15 Vmware, Inc. Disaster recovery protection based on resource consumption patterns
US9939862B2 (en) 2015-11-13 2018-04-10 Microsoft Technology Licensing, Llc Latency-based energy storage device selection
US10061366B2 (en) 2015-11-17 2018-08-28 Microsoft Technology Licensing, Llc Schedule-based energy storage device selection
US9793570B2 (en) 2015-12-04 2017-10-17 Microsoft Technology Licensing, Llc Shared electrode battery
CN107291549B (zh) * 2016-03-31 2020-11-24 阿里巴巴集团控股有限公司 一种管理应用程序的方法及装置
CN107766128B (zh) 2016-08-17 2021-01-29 华为技术有限公司 一种启动应用的方法及装置
US10169576B2 (en) * 2016-11-15 2019-01-01 International Business Machines Corporation Malware collusion detection
CN106791152B (zh) * 2016-12-30 2019-08-27 Oppo广东移动通信有限公司 一种通信方法及移动终端
KR102365227B1 (ko) * 2017-03-21 2022-02-22 삼성전자 주식회사 전자장치 및 그 제어방법
US11243899B2 (en) * 2017-04-28 2022-02-08 International Business Machines Corporation Forced detaching of applications from DMA-capable PCI mapped devices
US10397096B2 (en) 2017-04-28 2019-08-27 International Business Machines Corporation Path resolution in InfiniBand and ROCE networks
US10778767B2 (en) 2017-04-28 2020-09-15 International Business Machines Corporation Persistent memory replication in RDMA-capable networks
WO2018214083A1 (zh) * 2017-05-25 2018-11-29 深圳配天智能技术研究院有限公司 一种程序文件显示方法、终端及计算机存储介质
CN107222914B (zh) * 2017-06-14 2020-09-29 Oppo广东移动通信有限公司 应用控制方法及相关产品
US11531569B2 (en) 2017-11-10 2022-12-20 Core Scientific Operating Company System and method for scaling provisioned resources
KR102492996B1 (ko) * 2018-06-08 2023-01-31 삼성전자주식회사 외부 입력을 이용하여 백그라운드 태스크를 처리하는 전자 장치 및 그 저장 매체
US11966588B2 (en) * 2021-10-26 2024-04-23 Google Llc Flash memory usage management
KR20230080535A (ko) * 2021-11-30 2023-06-07 삼성전자주식회사 메모리 회수 방법 및 장치

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2369898C2 (ru) * 2003-10-10 2009-10-10 Конинклейке Филипс Электроникс Н.В. Java-модель жизненного цикла для bd-дисков

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4224664A (en) 1976-05-07 1980-09-23 Honeywell Information Systems Inc. Apparatus for detecting when the activity of one process in relation to a common piece of information interferes with any other process in a multiprogramming/multiprocessing computer system
US5944829A (en) 1996-09-30 1999-08-31 Intel Corporation Adjusting software characteristics by user interface based upon battery level and the amount of time the user wants the battery to last
US6910210B1 (en) 1998-11-24 2005-06-21 Microsoft Corp. System and method for terminating applications
US6834386B1 (en) 1999-07-16 2004-12-21 Microsoft Corporation Method and system for regulating background tasks using performance measurements
US20030187857A1 (en) 2002-03-29 2003-10-02 Ford Daniel E. Computer resource access system and method
US7538762B2 (en) * 2003-09-30 2009-05-26 Intel Corporation Switching display update properties upon detecting a power management event
US8275802B2 (en) 2004-06-17 2012-09-25 International Business Machines Corporation Optimized least recently used lookup cache
US20060136882A1 (en) 2004-12-17 2006-06-22 Nokia Corporation System and method for background JAVA application resource control
JP4060322B2 (ja) * 2005-03-28 2008-03-12 三菱電機株式会社 アプリケーション管理装置およびそのソフトウェアを格納した記憶媒体
JP2007013315A (ja) * 2005-06-28 2007-01-18 Toshiba Corp 情報処理装置および動画像再生方法
WO2007007397A1 (ja) 2005-07-12 2007-01-18 Fujitsu Limited 共用管理プログラム、共用管理方法、端末装置、及び共用管理システム
US20070245163A1 (en) 2006-03-03 2007-10-18 Yung-Hsiang Lu Power management in computer operating systems
US7584376B2 (en) 2006-08-23 2009-09-01 Palm, Inc. Method and apparatus for power management
US8954045B2 (en) * 2006-09-29 2015-02-10 Qualcomm Incorporated Method and apparatus for managing resources at a wireless device
WO2008049871A1 (en) 2006-10-27 2008-05-02 Cecure Gaming Limited Online gaming system
US7827358B2 (en) 2007-01-07 2010-11-02 Apple Inc. Memory management methods and systems
US7853812B2 (en) 2007-02-07 2010-12-14 International Business Machines Corporation Reducing power usage in a software application
US7890959B2 (en) 2007-03-30 2011-02-15 Sap Ag System and method for message lifetime management
US9003394B2 (en) 2007-07-10 2015-04-07 Ricoh Company, Ltd. Program determining apparatus and program determining method
US8510743B2 (en) 2007-10-31 2013-08-13 Google Inc. Terminating computer applications
US9027027B2 (en) 2008-06-09 2015-05-05 Microsoft Technology Licensing, Llc Thread management based on device power state
US8566565B2 (en) 2008-07-10 2013-10-22 Via Technologies, Inc. Microprocessor with multiple operating modes dynamically configurable by a device driver based on currently running applications
US8706863B2 (en) * 2008-07-18 2014-04-22 Apple Inc. Systems and methods for monitoring data and bandwidth usage
US8510577B2 (en) 2008-07-28 2013-08-13 Microsoft Corporation Reducing power consumption by offloading applications
US8479202B2 (en) 2009-02-06 2013-07-02 International Business Machines Corporation Method and system for autonomic application program spawning in a computing environment
US8769139B2 (en) 2010-01-29 2014-07-01 Clarendon Foundation, Inc. Efficient streaming server
US20120144331A1 (en) 2010-12-03 2012-06-07 Ari Tolonen Method for Arranging Application Windows on a Display
US8997171B2 (en) 2011-08-19 2015-03-31 Microsoft Technology Licensing, Llc Policy based application suspension and termination

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2369898C2 (ru) * 2003-10-10 2009-10-10 Конинклейке Филипс Электроникс Н.В. Java-модель жизненного цикла для bd-дисков

Also Published As

Publication number Publication date
US8635630B2 (en) 2014-01-21
CN102436605B (zh) 2014-10-22
WO2012060955A2 (en) 2012-05-10
TWI533205B (zh) 2016-05-11
WO2012060955A3 (en) 2012-07-19
TW201220180A (en) 2012-05-16
AU2011323985B2 (en) 2014-10-09
EP2633406A4 (en) 2016-05-04
CN102436605A (zh) 2012-05-02
CA2814604C (en) 2018-10-23
CA2814604A1 (en) 2012-05-10
US20120102504A1 (en) 2012-04-26
EP2633406A2 (en) 2013-09-04
RU2013119123A (ru) 2014-10-27
KR101827030B1 (ko) 2018-02-07
AU2011323985A1 (en) 2013-05-02
JP2013542530A (ja) 2013-11-21
JP5984824B2 (ja) 2016-09-06
KR20130127445A (ko) 2013-11-22

Similar Documents

Publication Publication Date Title
RU2599967C2 (ru) Управление жизненным циклом приложений
US10289183B2 (en) Methods and apparatus to manage jobs that can and cannot be suspended when there is a change in power allocation to a distributed computer system
US9405563B2 (en) Resource management method and apparatus for virtual machine system, and virtual machine system
US8997171B2 (en) Policy based application suspension and termination
US7945797B2 (en) System and method for portable power source management
CN110389816B (zh) 用于资源调度的方法、装置以及计算机可读介质
US9477460B2 (en) Non-transitory computer-readable storage medium for selective application of update programs dependent upon a load of a virtual machine and related apparatus and method
US9898061B2 (en) Resource capacity management in a cluster of host computers using power management analysis
US20100274621A1 (en) Method and System for Integration of Systems Management with Project and Portfolio Management
US10114438B2 (en) Dynamic power budgeting in a chassis
US20090168092A1 (en) Job management and scheduling method for network system
CN111107429A (zh) 提高电视***性能的方法、装置及计算机可读存储介质
TWI465889B (zh) 休眠管理方法及相關裝置
CN109656708B (zh) Android的动画播放限制方法、存储介质、电子设备及***
CN105573920A (zh) 存储空间管理方法和装置
JP2019109600A (ja) 情報処理装置、計算機制御方法、および計算機制御プログラム
US20230342192A1 (en) Distributed, decentralized traffic control for worker processes in limited-coordination environments
CN112416454A (zh) 控制磁盘启动的方法及装置
CN116700971A (zh) 一种作业调度方法、装置、电子设备及存储介质
CN114647494A (zh) 进程管控方法、装置、存储介质及电子设备
CN116700950A (zh) 一种集群中节点调度方法、装置、存储介质及终端
CN115982130A (zh) 数据库的性能优化方法、存储介质与计算机设备
CN116501568A (zh) 监控频率调整方法及装置
JP2013080346A (ja) 情報処理装置、保守作業支援方法および保守作業支援用プログラム

Legal Events

Date Code Title Description
HZ9A Changing address for correspondence with an applicant