RU2683509C2 - Диспетчеризация ресурсов на основании профилей использования ресурсов, зависящих от устройства или зависящих от пользователя - Google Patents

Диспетчеризация ресурсов на основании профилей использования ресурсов, зависящих от устройства или зависящих от пользователя Download PDF

Info

Publication number
RU2683509C2
RU2683509C2 RU2016136181A RU2016136181A RU2683509C2 RU 2683509 C2 RU2683509 C2 RU 2683509C2 RU 2016136181 A RU2016136181 A RU 2016136181A RU 2016136181 A RU2016136181 A RU 2016136181A RU 2683509 C2 RU2683509 C2 RU 2683509C2
Authority
RU
Russia
Prior art keywords
resource
application
computing device
value
instance
Prior art date
Application number
RU2016136181A
Other languages
English (en)
Other versions
RU2016136181A (ru
RU2016136181A3 (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 RU2016136181A publication Critical patent/RU2016136181A/ru
Publication of RU2016136181A3 publication Critical patent/RU2016136181A3/ru
Application granted granted Critical
Publication of RU2683509C2 publication Critical patent/RU2683509C2/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
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2457Query processing with adaptation to user needs
    • G06F16/24578Query processing with adaptation to user needs using ranking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/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
    • 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/5061Partitioning or combining of resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/83Admission control; Resource allocation based on usage prediction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5019Workload prediction
    • 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 Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Computational Linguistics (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Telephone Function (AREA)

Abstract

Изобретение относится к способу и системе для диспетчеризации ресурса вычислительного устройства. Технический результат заключается в обеспечении диспетчеризации ресурса вычислительного устройства. В способе определяют первую величину ресурса, который используется первым экземпляром приложения, посредством определения величины ресурса, используемого процессом переднего плана, связанным с первым экземпляром приложения, и фоновыми задачами, связанными с первым экземпляром приложения, вычисляют и сохраняют первую прогнозируемую величину использования ресурсов для приложения на основании первой величины ресурса, определяют вторую величину ресурса для выделения второму экземпляру приложения на основании первой прогнозируемой величины использования ресурсов, причем приложение, выполняющееся на вычислительном устройстве, взаимодействует с диспетчером ресурсов вычислительного устройства для динамического управления тем, как выделяемая часть ресурса вычислительного устройства должна быть разделена между процессом переднего плана, связанным с приложением и одним или более фоновыми процессами, связанными с приложением. 3 н. и 8 з.п. ф-лы, 15 ил.

Description

УРОВЕНЬ ТЕХНИКИ
[0001] Современные мобильные устройства, в особенности, современные низкопроизводительные мобильные устройства, с трудом справляются с многозадачными сценариями. Часто бывает так, что в условиях конкуренции, мобильные устройства приходится изготавливать с использованием низкопроизводительных и/или маломощных деталей. Это справедливо, в частности, в отношении памяти, используемой для реализации мобильных устройств, которая включает в себя как оперативную память (RAM), так и мультимедийные карты (MMC). В конечном итоге, традиционные мобильные устройства, которые опираются на подкачку для диспетчеризации памяти, очень быстро отказывают при попытке одновременно выполнять несколько процессов. Это приводит к очень плохим ощущениям пользователя и неполноценным многозадачным сценариям. Эта проблема приобретает особую значимость по мере того, как приложения и операционные системы, разрабатываемые для мобильных устройств, увеличиваются в размерах, в то время как рынок требует снижения производственных затрат.
[0002] Прежде проблема недостатка памяти для поддержки одновременного выполнения нескольких процессов на мобильном устройстве решалась одним или более из следующих способов: использования подкачки для диспетчеризации памяти; обеспечения дополнительной памяти на мобильном устройстве; и установления ограничений на размер приложений и операционных систем. Как упомянуто выше, подкачка может приводить к очень плохим ощущениям пользователя и неполноценным многозадачным сценариям. Обеспечение дополнительной памяти повышает стоимость, сложность и энергопотребление мобильного устройства. Установление ограничений на размер приложений и операционных систем чрезвычайно усложняет разработку и предоставление пользователям желаемых функциональных возможностей. Хотя бы по этим причинам, существующих решений по диспетчеризации памяти для мобильных устройств недостаточно. Усовершенствованные методы диспетчеризации памяти необходимы, чтобы современные мобильные устройства могли одновременно выполнять несколько процессов, не оказывая при этом негативного влияния на ощущения пользователя, и для обеспечения самых разнообразных многозадачных сценариев.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
[0003] Здесь описаны системы, способы, устройства и компьютерные программные продукты, которые позволяют отслеживать использование различных ресурсов, например, энергозависимой и энергонезависимой памяти, центрального процессора (CPU), ввода/вывода (I/O), сети, питания и датчиков, приложениями, выполняющимися на вычислительном устройстве, например, мобильном вычислительном устройстве. Преимущество описанных здесь методов состоит в возможности отслеживать использование ресурсов для приложения путем отслеживания ресурсов, используемых процессом переднего плана, связанным с приложением (например, процесс, который в данный момент обеспечивает пользовательский интерфейс для приложения и занимает, по меньшей мере, часть дисплея связанный с вычислительным устройством), а также одной или более фоновыми задачами, связанными с приложением, которые выполняются как отдельные процессы на вычислительном устройстве. Исторические данные, относящиеся к использованию ресурсов приложением, применяются для прогнозирования величины использования ресурсов для приложения, которая затем сохраняется. Последующий запуск приложения может осуществляться в зависимости от того, доступна ли прогнозируемая величина использования ресурсов. Если прогнозируемая величина использования ресурсов доступна, она может выделяться приложению, и приложение может запускаться. Если приложение использует ресурсы сверх прогнозируемой величины, другие процессы, выполняющиеся одновременно с ним, могут завершаться для освобождения ресурсов. Независимо от того, как осуществляется приложение, получаются новые данные использования ресурсов для приложения, которые затем используются для корректировки прогнозируемой величины использования ресурсов. Таким образом, выделение ресурсов для приложения может автоматически точно подстраиваться под пользователя в течение времени на основании его схем использования, и вычислительное устройство способно обеспечивать улучшенные ощущения пользователя и повышенную производительность, особенно в многозадачных сценариях. Для вычислительного устройства, которое поддерживает несколько пользователей, прогнозируемые величины использования ресурсов могут сохраняться для каждой комбинации пользователь/приложение.
[0004] Описанные здесь системы, способы, устройства и компьютерные программные продукты также способны отслеживать другую информацию, относящуюся к использованию ресурсов приложением и/или пользователем, например, времена, положения и события, связанные с конкретными режимами использования ресурсов. Такую информацию можно преимущественно использовать для прогностического выделения ресурсов вычислительного устройства приложению даже до того, как пользователь попытается запустить его. Кроме того, приложения и/или данные приложения можно загружать в память в момент времени, предшествующий предполагаемому обращению к ним пользователя.
[0005] В частности, здесь описан способ, осуществляемый вычислительным устройством для диспетчеризации его ресурса. Ресурс может содержать, например, по меньшей мере, один из ресурса энергозависимой или энергонезависимой памяти, ресурса CPU, ресурса I/O, сетевого ресурса, ресурса питания и ресурса датчика. В соответствии со способом, определяется первая величина ресурса, который используется первым экземпляром приложения, выполняющегося на вычислительном устройстве. Определение первой величины может включать в себя определение величины ресурса, который используется процессом переднего плана, связанным с первым приложением и одной или более фоновыми задачами, связанными с первым экземпляром приложения. Первая прогнозируемая величина использования ресурсов для приложения вычисляется на основании, по меньшей мере, первой величины. Первая прогнозируемая величина использования ресурсов сохраняется в хранилище данных. Затем вторая величина ресурса, подлежащего выделению второму экземпляру приложения, подлежащего выполнению вычислительным устройством, определяется на основании, по меньшей мере, первой прогнозируемой величины использования ресурсов, хранящейся в хранилище данных.
[0006] В одном варианте осуществления вышеупомянутого способа, вычисление первой прогнозируемой величины использования ресурсов для приложения на основании, по меньшей мере, первой величины включает в себя получение максимальной величины использования ресурсов для приложения путем сравнения первой величины с одной или более ранее определенных величин, связанных с одним или более ранее выполненными экземплярами приложения, и вычисление первой прогнозируемой величины использования ресурсов на основании максимальной величины использования ресурсов.
[0007] В альтернативном варианте осуществления, вычисление первой прогнозируемой величины использования ресурсов для приложения на основании, по меньшей мере, первой величины включает в себя получение средней величины использования ресурсов для приложения на основании первой величины и одной или более ранее определенных величин, связанных с ранее выполненными экземплярами приложения, и вычисление первой прогнозируемой величины использования ресурсов на основании средней величины использования ресурсов. Также в соответствии с этим вариантом осуществления, получение средней величины использования ресурсов для приложения может включать в себя умножение первой величины на первый весовой коэффициент для получения первого произведения, умножение величины скользящего среднего, полученной на основании, по меньшей мере, одной или более ранее определенных величин, на второй весовой коэффициент для получения второго произведения, и суммирование первого произведения и второго произведения. Первый весовой коэффициент может быть больше, меньше или равен второму весовому коэффициенту в зависимости от реализации.
[0008] Вышеупомянутый способ также может включать в себя определение, что вторая величина ресурса в данный момент недоступна, и, в соответствии с этим, осуществление некоторых действий, например, воспрепятствования выполнению второго экземпляра приложения и/или завершения одного или более процессов, которые в данный момент выполняются на вычислительном устройстве.
[0009] Вышеупомянутый способ может дополнительно включать в себя определение, что величина ресурса, используемого вторым экземпляром приложения, выполняющегося на вычислительном устройстве, превышает вторую величину, и, в соответствии с этим, завершение одного или более процессов, которые одновременно выполняются на вычислительном устройстве.
[0010] В другом варианте осуществления вышеупомянутого способа, этапы определения, вычисления и сохранения включают в себя определение первой величины ресурса, который используется первым экземпляром приложения, выполняющегося на вычислительном устройстве со стороны первого пользователя, вычисление первой прогнозируемой величины использования ресурсов для приложения и первого пользователя на основании, по меньшей мере, первой величины, сохранение первой прогнозируемой величины использования ресурсов в хранилище данных и определение второй величины ресурса, подлежащего выделению второму экземпляру приложения, подлежащего выполнению вычислительным устройством со стороны первого пользователя на основании, по меньшей мере, первой прогнозируемой величины использования ресурсов, хранящейся в хранилище данных. В соответствии с этим вариантом осуществления, способ дополнительно включает в себя определение третьей величины ресурса, который используется третьим экземпляром приложения, выполняющегося на вычислительном устройстве со стороны второго пользователя, вычисление второй прогнозируемой величины использования ресурсов для приложения и второго пользователя на основании, по меньшей мере, третьей величины, сохранение второй прогнозируемой величины использования ресурсов в хранилище данных и определение четвертой величины ресурса, подлежащего выделению четвертому экземпляру приложения, подлежащего выполнению вычислительным устройством со стороны второго пользователя на основании, по меньшей мере, второй прогнозируемой величины использования ресурсов, хранящейся в хранилище данных.
[0011] Здесь также описан компьютерный программный продукт. Компьютерный программный продукт включает в себя компьютерно-считываемую память, в которой записана компьютерная программная логика, которая при выполнении, по меньшей мере, одним процессором вычислительного устройства, предписывает, по меньшей мере, одному процессору осуществлять операции. Операции включают в себя прием запроса на запуск приложения, получение прогнозируемой величины использования ресурсов для приложения, причем прогнозируемая величина использования ресурсов основана на отслеживаемом использовании ресурса вычислительного устройства в ходе одного или более предыдущих выполнений приложения вычислительным устройством, определение, доступна ли достаточная величина ресурса, путем сравнения прогнозируемой величины использования ресурсов с величиной ресурса, которая доступна в данный момент, и разрешение приложению запускаться в соответствии с, по меньшей мере, определением, что доступна достаточная величина ресурса. Ресурс может содержать один из ресурс энергозависимой или энергонезависимой памяти, ресурса CPU, ресурса I/O, сетевого ресурса, ресурса питания и ресурса датчика. Отслеживаемое использование ресурса для приложения может предполагать отслеживаемое использование ресурса процессом переднего плана, связанным с приложением, и одной или более фоновыми задачами, связанными с приложением.
[0012] В одном варианте осуществления вышеупомянутого компьютерного программного продукта, операции дополнительно включают в себя запрещение приложению запускаться в соответствии с, по меньшей мере, определением, что доступна недостаточная величина ресурса.
[0013] В другом варианте осуществления, операции дополнительно включают в себя предписание одному или более процессам завершаться в соответствии с, по меньшей мере, определением, что доступна недостаточная величина ресурса.
[0014] В еще одном варианте осуществления, операции дополнительно включают в себя, в ответ на определение, что величина ресурса, используемого приложением после запуска, превышает прогнозируемую величину использования ресурсов, завершение одного или более процессов, которые одновременно выполняются на вычислительном устройстве.
[0015] В еще одном варианте осуществления, этап приема включает в себя прием запроса на запуск приложения со стороны первого пользователя, и этап получения включает в себя получение прогнозируемой величины использования ресурсов для приложения и первого пользователя.
[0016] Здесь также описана система, реализованная на вычислительном устройстве. Система включает в себя, по меньшей мере, один процессор и память, к которой может осуществлять доступ, по меньшей мере, один процессор. В памяти хранятся компоненты для выполнения, по меньшей мере, одним процессором. Компоненты включают в себя диспетчер ресурсов, выполненный с возможностью отслеживания схемы использования, по меньшей мере, одного ресурса вычислительного устройства одним или более приложением и пользователем, для сохранения информации, связанной со схемой использования, и использования сохраненной информации для прогностического выделения, по меньшей мере, части ресурса, по меньшей мере, одному процессу до его выполнения, по меньшей мере, одним процессором. По меньшей мере, один ресурс может включать в себя ресурс энергозависимой или энергонезависимой памяти, ресурс CPU, ресурс I/O, сетевой ресурс, ресурс питания и ресурс датчика.
[0017] В одном варианте осуществления вышеупомянутой системы, диспетчер ресурсов выполнен с возможностью прогностического выделения, по меньшей мере, части ресурса приложению до того, как пользователь вычислительного устройства или какой-либо другой субъект запустит приложение. В другом варианте осуществления вышеупомянутой системы, в которой, по меньшей мере, один ресурс содержит память, диспетчер ресурсов дополнительно выполнен с возможностью загрузки, по меньшей мере, части приложения или данных, связанных с приложением, в прогностически выделяемую память до того, как пользователь вычислительного устройства или какой-либо другой субъект запустит приложение.
[0018] Эта сущность изобретения призвана представлять в упрощенной форме основные принципы, которые дополнительно описаны в нижеследующем подробном описании. Эта сущность изобретения не призвана идентифицировать ключевые признаки или существенные признаки заявленного изобретения, а также не подлежит использованию для ограничения объема заявленного изобретения. Кроме того, заметим, что заявленный предмет изобретения не ограничивается конкретными вариантами осуществления, описанными в подробном описании и/или других разделах этого документа. Такие варианты осуществления представлены здесь исключительно в целях иллюстрации. Дополнительные варианты осуществления будут очевидны специалистам в данной области техники на основании изложенных здесь принципов.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0019] Прилагаемые чертежи, которые включены сюда и образуют часть описания изобретения, иллюстрируют варианты осуществления настоящего изобретения и, совместно с описанием, дополнительно служат для объяснения принципов изобретения и для того, чтобы специалист в данной области техники мог использовать изобретение.
[0020] Фиг. 1 - блок-схема вычислительного устройства, которое осуществляет диспетчеризацию ресурсов на основании профилей использования ресурсов, зависящих от устройства или зависящих от пользователя, в соответствии с вариантом осуществления.
[0021] Фиг. 2 - блок-схема операций способа, осуществляемого вычислительным устройством для диспетчеризации его ресурса в соответствии с профилем использования ресурсов, зависящим от устройства или зависящим от пользователя, в соответствии с вариантом осуществления.
[0022] Фиг. 3 - блок-схема операций способа вычисления прогнозируемой величины использования ресурсов для приложения в соответствии с одним вариантом осуществления.
[0023] Фиг. 4 - блок-схема операций способа вычисления прогнозируемой величины использования ресурсов для приложения в соответствии с другим вариантом осуществления.
[0024] Фиг. 5 - блок-схема операций способа получения средней величины использования ресурсов для приложения в соответствии с вариантом осуществления.
[0025] Фиг. 6 - блок-схема операций дополнительных этапов, которые могут осуществляться в соответствии со способом, представленным в блок-схеме операций, показанной на фиг. 2.
[0026] Фиг. 7 - блок-схема операций дополнительных этапов, которые могут осуществляться в соответствии со способом, представленным в блок-схеме операций, показанной на фиг. 2.
[0027] Фиг. 8 - блок-схема операций дополнительных этапов, которые могут осуществляться в соответствии со способом, представленным в блок-схеме операций, показанной на фиг. 2.
[0028] Фиг. 9 - блок-схема операций способа, осуществляемого вычислительным устройством для диспетчеризации его ресурса в соответствии с профилем использования ресурсов, зависящим от пользователя, в соответствии с вариантом осуществления.
[0029] Фиг. 10 - блок-схема операций способа диспетчеризации запуска приложения в соответствии с профилем использования ресурсов, зависящим от устройства или зависящим от пользователя, в соответствии с вариантом осуществления.
[0030] Фиг. 11 - блок-схема операций способа для использования отслеживаемого использования ресурсов схемы пользователя в отношении ресурсов вычислительного устройства и выведенной из него информации для прогностического выделения ресурсов процессам.
[0031] Фиг. 12 - блок-схема операций одного способа позволяющего приложению, выполняющемуся на вычислительном устройстве, помогать в диспетчеризации выделения ресурсов вычислительного устройства процессу переднего плана и одной или более фоновым задачам, связанным с приложением.
[0032] Фиг. 13 - блок-схема операций другого способа позволяющего приложению, выполняющемуся на вычислительном устройстве, помогать в диспетчеризации выделения ресурсов вычислительного устройства процессу переднего плана и одной или более фоновым задачам, связанным с приложением.
[0033] Фиг. 14 - блок-схема иллюстративного мобильного устройства, которое можно использовать для реализации различных вариантов осуществления.
[0034] Фиг. 15 - блок-схема иллюстративной процессорной компьютерной системы, которую можно использовать для реализации различных вариантов осуществления.
[0035] Признаки и преимущества настоящего изобретения явствуют из изложенного ниже подробного описания, приведенного совместно с чертежами, в котором аналогичные ссылочные позиции идентифицируют соответствующие элементы на всем своем протяжении. В чертежах, аналогичные ссылочные позиции, в общем случае, указывают идентичные, функционально аналогичные и/или структурно аналогичные элементы. Чертеж, в котором впервые появляется элемент, указан самой(ыми) левой(ыми) цифрой(ами) в соответствующей ссылочной позиции.
ПОДРОБНОЕ ОПИСАНИЕ
I. ВВЕДЕНИЕ
[0036] Нижеследующее подробное описание приведено со ссылкой на прилагаемые чертежи, где представлены иллюстративные варианты осуществления настоящего изобретения. Однако объем настоящего изобретения не ограничивается этими вариантами осуществления, но, вместо этого, задается нижеследующей формулой изобретения. Таким образом, варианты осуществления помимо представленных в прилагаемых чертежах, например, модифицированные версии проиллюстрированных вариантов осуществления, тем не менее, могут охватываться настоящим изобретением.
[0037] В описании изобретения ссылки на "один вариант осуществления", "вариант осуществления", "иллюстративный вариант осуществления" и т.п., указывают, что описанный вариант осуществления может включать в себя конкретный признак, структура или характеристику, но не обязательно, чтобы каждый вариант осуществления включал в себя конкретный признак, структуру или характеристику. Кроме того, такие выражения не обязательно относятся к одному и тому же варианту осуществления. Кроме того, когда конкретный признак, структура или характеристика описан(а) в связи с вариантом осуществления, считается, что специалистам в данной области техники известно, как реализовать такой(ую) признак, структуру или характеристику в связи с другими вариантами осуществления, даже если они в явном виде не описаны.
[0038] Здесь описаны системы, способы, устройства и компьютерные программные продукты, которые позволяют отслеживать использование различных ресурсов, например, энергозависимой и энергонезависимой памяти, CPU, I/O, сети, питания и датчиков, приложениями, выполняющимися на вычислительном устройстве, например, мобильном вычислительном устройстве. Преимущество описанных здесь методов состоит в возможности отслеживать использование ресурсов для приложения путем отслеживания ресурсов, используемых процессом переднего плана, связанным с приложением (например, процесс, который обеспечивает пользовательский интерфейс с приложением и может исключительно занимать дисплей, связанный с вычислительным устройством), а также одной или более фоновыми задачами, связанными с приложением, которые выполняются как отдельные процессы на вычислительном устройстве. Исторические данные, относящиеся к использованию ресурсов приложением, применяются для прогнозирования величины использования ресурсов для приложения, которая затем сохраняется. Последующий запуск приложения может осуществляться в зависимости от того, доступна ли прогнозируемая величина использования ресурсов. Если прогнозируемая величина использования ресурсов доступна, она может выделяться приложению, и приложение может запускаться. Если приложение использует ресурсы сверх прогнозируемой величины, другие процессы, выполняющиеся одновременно с ним, могут завершаться для освобождения ресурсов. Независимо от того, как осуществляется приложение, получаются новые данные использования ресурсов для приложения, которые затем используются для корректировки прогнозируемой величины использования ресурсов. Таким образом, выделение ресурсов для приложения может автоматически точно подстраиваться под пользователя в течение времени на основании его схем использования, и вычислительное устройство способно обеспечивать улучшенные ощущения пользователя и повышенную производительность, особенно в многозадачных сценариях. Для вычислительного устройства, которое поддерживает несколько пользователей, прогнозируемые величины использования ресурсов могут сохраняться для каждой комбинации пользователь/приложение.
[0039] Описанные здесь системы, способы, устройства и компьютерные программные продукты также способны отслеживать другую информацию, относящуюся к использованию ресурсов приложением и/или пользователь, например, времена, положения и события, связанные с конкретными режимами использования ресурсов. Такую информацию можно преимущественно использовать для прогностического выделения ресурсов вычислительного устройства приложению даже до того, как пользователь попытается запустить его. Кроме того, приложения и/или данные приложения можно загружать в память в момент времени, предшествующий предполагаемому обращению к ним пользователя.
[0040] В разделе II описано иллюстративное вычислительное устройство, которое осуществляет диспетчеризацию ресурсов на основании профилей использования ресурсов, зависящих от устройства или зависящих от пользователя, в соответствии с вариантом осуществления, а также соответствующие способы. В разделе III описано, как иллюстративное вычислительное устройство, описанное в разделе II, также может обеспечивать динамическую диспетчеризацию ресурсов для многопроцессных приложений. В разделе IV описано иллюстративное мобильное устройство, которое может осуществлять описанные здесь признаки диспетчеризации ресурсов. В разделе V описан иллюстративный настольный компьютер, который может осуществлять описанные здесь признаки диспетчеризации ресурсов. В разделе VI приведены некоторые замечания.
II. Иллюстративные система и способы осуществления диспетчеризация ресурсов на основании профилей использования ресурсов, зависящих от устройства или зависящих от пользователя
[0041] На фиг. 1 показана блок-схема вычислительного устройства 100, которое осуществляет диспетчеризацию ресурсов на основании профилей использования ресурсов, зависящих от устройства или зависящих от пользователя, в соответствии с вариантом осуществления. Вычислительное устройство 100, в общем случае, предназначено для представления процессорного электронного устройства, которое способно выполнять приложения со стороны пользователя. В одном варианте осуществления, вычислительное устройство 100 содержит мобильное вычислительное устройство, например мобильный телефон (например, смартфон), портативный компьютер, планшетный компьютер или нетбук. Вычислительное устройство 100, предположительно, может содержать другие типы мобильных вычислительных устройств, например, носимый компьютер (например, наголовный компьютер), портативный медиапроигрыватель, карманный персональный компьютер, персональный навигатор, карманную игровую консоль или любое другое мобильное устройство, способное выполнять приложения со стороны пользователя. Один пример мобильного устройства, которое может воплощать в себе функциональные возможности вычислительного устройства 100, будет рассмотрен ниже со ссылкой на фиг. 14. В другом варианте осуществления, вычислительное устройство 100 содержит настольный компьютер или другую немобильную вычислительную платформу, которая способна выполнять приложения со стороны пользователя. Иллюстративный настольный компьютер, которое может воплощать в себе функциональные возможности вычислительного устройства 100, будет рассмотрен ниже со ссылкой на фиг. 15.
[0042] Как показано на фиг. 1, вычислительное устройство 100 включает в себя приложение 102, операционную систему 104 и хранилище 106 данных. В одном варианте осуществления, каждое из приложения 102 и операционной системы 104 содержат программные компоненты, которые хранятся в памяти вычислительного устройства 100 и выполняются из нее процессором (например, микропроцессором или другой схемой, выполненной с возможностью выполнения команд), которое подключено с возможностью передачи данных к памяти. Такие память и процессор содержат часть вычислительного устройства 100, но не показаны на фиг. 1 исключительно для простоты. Также в соответствии с таким вариантом осуществления, приложение 102 и операционная система 104 могут постоянно храниться в энергонезависимой памяти вычислительного устройства 100 и затем временно переноситься в энергозависимую память вычислительного устройства 100 для выполнения из нее процессором при подаче питания на вычислительное устройство 100.
[0043] Приложение 102 предназначено для представления любой из самых разнообразных компьютерных программ, которые могут быть установлены и выполняться на вычислительном устройстве 100 для осуществления функций и/или обеспечения признаков со стороны его пользователя. Приложение 102 может представлять собой, в порядке примера и без какого бы то ни было ограничения, приложение телефонии, приложение электронной почты, приложение обмена сообщениями, приложение веб-обозревания, приложение календаря, приложение коммунальных услуг, игровое приложение, приложение социальной сети, музыкальное приложение, приложение производительности, приложение стиля жизни, приложение ссылки, приложение путешествия, спортивное приложение, навигационное приложение, приложение здравоохранения и фитнеса, новостное приложение, приложение фотографии, финансовое приложение, деловое приложение, образовательное приложение, приложение прогноза погоды, приложение электронной книги, медицинское приложение и т.п.
[0044] Операционная система 104 содержит набор компьютерных программ, которые совместно диспетчеризуют ресурсы и обеспечивают общие службы для приложений, выполняющихся на вычислительном устройстве 100. Как показано на фиг. 1, операционная система 104 включает в себя драйверы 110, ядро 120 и системные службы 130. Драйверы 110 содержат компоненты которые позволяют операционной системе 104 взаимодействовать с различными аппаратными ресурсами вычислительного устройства 100, например, CPU, системной памятью и устройствами I/O. Ядро 120 использует драйверы 110 для диспетчеризации таких аппаратных ресурсов и других ресурсов вычислительного устройства 100 и для того, чтобы другие программы могли выполняться и использовать эти ресурсы. Ядро 120 может осуществлять такие операции, как выделение процессов CPU, выделение системной памяти конкретному процессу и выделение запросов I/O надлежащим устройствам. Системные службы 130 представляют собой компоненты, которые действуют для обслуживания запросов от приложений для различных ресурсов, которые могут выделяться ядром 120.
[0045] Как показано на фиг. 1, ядро 120 включает в себя диспетчер 122 памяти. Диспетчер 122 памяти управляет тем, как системная память вычислительного устройства 100 используется и осуществляет операции, которые позволяют другим процессам, при необходимости, обращаться к системной памяти. Помимо других операций, диспетчер 122 памяти может поддерживать схему виртуальной адресации и осуществлять подкачку, чтобы процессы могли использовать больше системной памяти, чем физически доступно. Для диспетчеризации системной памяти, диспетчер 122 памяти взаимодействует с драйвером 112 памяти, который является одним из драйвером 110.
[0046] Как дополнительно показано на фиг. 1, системные службы 130 включают в себя диспетчер 132 ресурсов. Как будет рассмотрено здесь более подробно, диспетчер 132 ресурсов представляет собой компонент, который действует для определения величины ресурса, подлежащего выделению приложению, причем такое определение может базироваться на профиле использования ресурсов для приложения и для выделения величины ресурса, если он доступен. В нижеследующем описании, предполагается, что ресурс, подлежащий выделению приложению, является системной памятью, однако следует понимать, что описанные здесь методы диспетчеризации ресурсов легко расширить на любой другой ресурс вычислительного устройства 100, в том числе, но без ограничения CPU, энергозависимую память, отличную от системной памяти, энергонезависимую память, сетевой ресурс, ресурс I/O, ресурс питания (например, батарейное питание или питание от какого-либо другого источника питания), и ресурс датчика (например, камеру или микрофон).
[0047] Хранилище 106 данных содержит совокупность данных, которые хранятся в энергозависимой или энергонезависимой памяти вычислительного устройства 100. Как объяснено здесь, хранилище 106 данных используется диспетчером 132 ресурсов для сохранения профили использования ресурсов для приложений, которые могут устанавливаться и выполняться на вычислительном устройстве 100. В соответствии с некоторыми иллюстративными реализациями, хранилище 106 данных может содержать регистр или базы данных.
[0048] Когда нужно запустить приложение 102 (например, в соответствии с его активацией пользователем или каким-либо другим событием), один или более вызовов системной службы совершаются со стороны приложения 102 системным службам 130 для запрашивания, чтобы приложению 102 выделялись ресурсы, которые необходимы для правильного выполнения приложения 102. В соответствии с вызовом(ами), диспетчер 132 ресурсов действует для определения, если необходимые ресурсы доступны, и, если такие ресурсы доступны, для предписания их выделения приложению 102.
[0049] В случае системной памяти, диспетчер 132 ресурсов определяет величину системной памяти для выделения приложению 102 при попытке осуществления доступа к профилю использования ресурсов для приложения 102, который может храниться в хранилище 106 данных. Согласно варианту осуществления, такой профиль использования ресурсов для приложения 102 включает в себя прогнозируемую величину использования ресурсов, которая указывает величину системной памяти, которую приложение 102, предположительно, будет использовать при выполнении. Альтернативно, профиль использования ресурсов для приложения 102 может включать в себя данные, из которых можно вывести такую прогнозируемую величину использования ресурсов. В дополнительном варианте осуществления, в отсутствие профиля использования ресурсов для приложения 102 в хранилище 106 данных, принятая по умолчанию прогнозируемая величина использования ресурсов может быть назначена приложению 102. Такая принятая по умолчанию прогнозируемая величина использования ресурсов могут быть одинакова для всех приложений или может изменяться в зависимости от типа приложения.
[0050] Как только диспетчер 132 ресурсов определяет прогнозируемую величину использования ресурсов для приложения 102, диспетчер 132 ресурсов осуществляет связь с диспетчером 122 памяти для определения, доступна ли прогнозируемая величина использования ресурсов в данный момент. Если прогнозируемая величина использования ресурсов в данный момент доступна, то диспетчер 132 ресурсов выделяет прогнозируемую величину использования ресурсов приложению 102, и выполнение приложения 102 может быть разрешено. Однако, если прогнозируемая величина использования ресурсов в данный момент недоступна, то диспетчер 132 ресурсов может препятствовать выполнению приложения 102. Кроме того, если прогнозируемая величина использования ресурсов в данный момент недоступна, диспетчер 132 ресурсов также может завершать один или более других процессов, которые в данный момент выполняются на вычислительном устройстве для освобождения системной памяти для приложения 102. Такие другие процессы могут быть процессами, которым назначен более низкий приоритет, чем приложению 102 в соответствии со схемой приоритетов процессов. Как только таким образом возвращена достаточная системная память, диспетчер 132 ресурсов может разрешать выполнение приложения 102.
[0051] После начала выполнения приложения 102, диспетчер 132 ресурсов отслеживает, насколько системная память фактически используется приложением 102. Таким образом, диспетчер 132 ресурсов может определить, что приложение 102 использует больше системной памяти, чем первоначально выделено ему в соответствии с прогнозируемой величиной использования ресурсов. В этом случае, диспетчер 132 ресурсов может попытаться завершить один или более процессов, которые одновременно выполняются на вычислительном устройстве 100, чтобы гарантировать, что для правильного выполнения, приложению 102 доступна достаточная системная память. Диспетчер 132 ресурсов также может завершать выполнение приложения 102, если он определяет, что приложение 102 использует системную память сверх заранее заданного верхнего предела, или же определяет, что величина использования системной памяти приложением 102 недопустима.
[0052] Диспетчер 132 ресурсов также будет использовать информацию, полученную отслеживанием, насколько системная память используется приложением 102 для обновления прогнозируемой величины использования ресурсов, хранящейся в хранилище 106 данных для приложения 102. Различные алгоритмы для обновления прогнозируемой величины использования ресурсов будут подробно описаны ниже. Таким образом, диспетчер 132 ресурсов может автоматически точно настраивать выделение ресурсов для приложения 102 в течение времени в соответствии с тем, как приложение 102 ведет себя и используется пользователем вычислительного устройства 100. Это благоприятно позволяет вычислительному устройству 100 обеспечивать улучшенные ощущения пользователя и повышенную производительность, особенно в многозадачных сценариях.
[0053] Каким образом диспетчер 132 ресурсов действует для диспетчеризации ресурса вычислительного устройства 100 в соответствии с профилем использования ресурсов, зависящим от устройства или зависящим от пользователя, будет описано ниже со ссылкой на блок-схему 200 операций, показанной на фиг. 2. Хотя этапы блок-схемы 200 операций будут описаны по-прежнему со ссылкой на компоненты вычислительного устройства 100, показанные на фиг. 1, следует понимать, что способ может осуществляться совершенно другими компонентами.
[0054] Как показано на фиг. 2, способ согласно блок-схеме 200 операций начинается с этапа 202, на котором диспетчер 132 ресурсов определяет первую величину ресурса, который используется первым экземпляром приложения, выполняющегося на вычислительном устройстве 100. Например, как упомянуто выше, диспетчер 132 ресурсов может определять первую величину системной памяти, которая используется первым экземпляром приложения 102, в то время как первый экземпляр приложения 102 выполняется вычислительным устройством 100.
[0055] Согласно варианту осуществления, диспетчер 132 ресурсов определяет первую величину путем определения величины ресурса, который используется процессом переднего плана, связанным с первым экземпляром приложения, и одной или более фоновыми задачами, связанными с первым экземпляром приложения. Процесс переднего плана может быть процессом, который в данный момент обеспечивает пользовательский интерфейс для первого экземпляра приложения и занимает, по меньшей мере, часть дисплея связанный с вычислительное устройство 100. Однако выполнение многих современных приложений также предполагает выполнение одного или более фоновых процессов (также именуемых здесь фоновыми задачами). Такие фоновые задачи могут выполняться одновременно с процессом переднего плана и в ряде случаев могут инициироваться процессом переднего плана. Примеры таких фоновых задач включают в себя, но без каких-либо ограниченный, генерирование фонового аудиосигнала, осуществление голосового вызова по интернет-протоколу (VoIP), синхронизацию электронной почты, обобществление контента и т.п. Как и процесс переднего плана, эти фоновые задачи расходуют системные ресурсы. Однако традиционные указания использования ресурсов приложением обычно не охватывают ресурсы, расходуемые такими фоновыми задачами. Вариант осуществления, преимущественно, решают эту проблему путем отслеживания использования ресурсов как процессом переднего плана, связанным с выполняющимся приложением, и одной или более фоновыми задачами, связанными с тем же приложением, и объединения обоих типов использования ресурсов для получения суммарной величины использования ресурсов для приложения.
[0056] На этапе 204, диспетчер 132 ресурсов вычисляет первую прогнозируемую величину использования ресурсов для приложения на основании, по меньшей мере, первой величины. Например, диспетчер 132 ресурсов может вычислять первую прогнозируемую величину использования системной памяти для приложения 102 на основании, по меньшей мере, первой величины. Различные иллюстративные алгоритмы будут представлены ниже для демонстрации, как может осуществляться этот этап.
[0057] На этапе 206, диспетчер 132 ресурсов сохраняет первую прогнозируемую величину использования ресурсов в хранилище 106 данных. Например, диспетчер 132 ресурсов может сохранять первую прогнозируемую величину использования системной памяти для приложения 102 в хранилище 106 данных.
[0058] Некоторое время спустя после осуществления этапа 206, диспетчер 132 ресурсов сообщается, что второй экземпляр приложения подлежит выполнению на вычислительном устройстве 100. На этапе 208, диспетчер 132 ресурсов определяет вторую величину ресурса, подлежащего выделению второму экземпляру приложения на основании, по меньшей мере, первой прогнозируемой величины использования ресурсов, хранящейся в хранилище 106 данных. Например, диспетчер 132 ресурсов может определять вторую величину системной памяти подлежащий выделению второму экземпляру приложения 102 на основании, по меньшей мере, первой прогнозируемой величины использования системной памяти, сохраненной для приложения 102 в хранилище 106 данных. Определение второй величины системной памяти может содержать, например, задание второй величины системной памяти равной первой прогнозируемой величине использования системной памяти.
[0059] Различные способы можно использовать для вычисления первой прогнозируемой величины использования ресурсов для приложения на этапе 204. Например, в одном варианте осуществления, первая прогнозируемая величина использования ресурсов вычисляется на основании максимальной величины ресурса, которая использовалась приложением, сверх некоторого количества выполнений. Этот подход представлен блок-схемой 300 операций, показанной на фиг. 3.
[0060] В частности, на фиг. 3 изображена блок-схема 300 операций способа вычисления прогнозируемой величины использования ресурсов для приложения в соответствии с вариантом осуществления. Как показано на фиг. 3, способ согласно блок-схеме 300 операций начинается с этапа 302, на котором диспетчер 132 ресурсов получает максимальную величину использования ресурсов для приложения путем сравнения первой величины, определенной на этапе 202, с одной или более ранее определенных величин, связанных с одним или более ранее выполненными экземплярами приложения. На этапе 304, диспетчер 132 ресурсов вычисляет первую прогнозируемую величину использования ресурсов на основании максимальной величины использования ресурсов.
[0061] Рассмотрим пример этого подхода. В соответствии с этим примером, диспетчер 132 ресурсов отслеживает использование системной памяти приложением 102 в ходе пяти отдельных его выполнений и выбирает максимальное использование системной памяти приложением 102 из таких выполнений в качестве прогнозируемой величины использования ресурсов. Например, предположим, что в ходе последних четырех выполнений приложения 102, приложение 102 использовало 100 МБ, 120 МБ, 160 МБ и 140 МБ системной памяти, соответственно. Затем на этапе 202, диспетчер 132 ресурсов определяет, что выполняющийся в данный момент экземпляр приложения 102 использует 150 МБ системной памяти. В этом случае, диспетчер 132 ресурсов может устанавливать первую прогнозируемую величину использования ресурсов равной 160 МБ (или, возможно, 160 МБ плюс некоторая буферная величина), поскольку это максимальное использование системной памяти приложением 102 из последних пяти его выполнении.
[0062] В другом варианте осуществления, первая прогнозируемая величина использования ресурсов вычисляется на основании среднее величины ресурса, используемого приложением, сверх некоторого количества выполнений. Этот подход представлен блок-схемой 400 операций на фиг. 4.
[0063] В частности, фиг. 4 изображена блок-схема 400 операций способа вычисления прогнозируемой величины использования ресурсов для приложения в соответствии с вариантом осуществления. Как показано на фиг. 4, способ согласно блок-схеме 400 операций начинается с этапа 402, на котором диспетчер 132 ресурсов получает среднюю величину использования ресурсов для приложения на основании первой величины, определенной на этапе 202, и одной или более ранее определенных величин, связанных с одним или более ранее выполненными экземплярами приложения. На этапе 404, диспетчер 132 ресурсов вычисляет первую прогнозируемую величину использования ресурсов на основании средней величины использования ресурсов.
[0064] Рассмотрим пример этого подхода. В соответствии с этим примером, диспетчер 132 ресурсов отслеживает использование системной памяти приложением 102 в ходе пяти отдельных его выполнений, вычисляет среднее этих значений, и затем использует среднее значение в качестве прогнозируемой величины использования ресурсов. Например, предположим, что в ходе последних четырех выполнений приложения 102, приложение 102 использовало 100 МБ, 120 МБ, 160 МБ и 140 МБ системной памяти, соответственно. Затем на этапе 202, диспетчер 132 ресурсов определяет, что выполняющийся в данный момент экземпляр приложения 102 использует 150 МБ системной памяти. В этом случае, диспетчер 132 ресурсов определит, что средняя величина использования ресурсов для приложения 102 равна ((100 МБ+120 МБ+160 МБ+140 МБ+150 МБ)/5), что равно 134 МБ. Следовательно, диспетчер 132 ресурсов может устанавливать первую прогнозируемую величину использования ресурсов равной 134 МБ (или, возможно, 134 МБ плюс некоторая буферная величина).
[0065] Ниже будет описан другой способ получения средней величины использования ресурсов, описанного на этапе 402. В соответствии с этим подходом, скользящее среднее величины использования ресурсов комбинируется с самой недавней величиной использования ресурсов для получения нового долгосрочного скользящего среднего. Комбинация может взвешиваться таким образом, что более высокий весовой коэффициент применяется либо к старому долгосрочному скользящему среднему, либо к самой недавнее величине использования ресурсов. Альтернативно, обе величины могут взвешиваться одинаково. Этот подход можно представить с использованием следующего уравнения:
Figure 00000001
где
Figure 00000002
представляет новое скользящее среднее величины использования ресурсов,
Figure 00000003
представляет старое скользящее среднее величины использования ресурсов,
Figure 00000004
представляет наиболее недавно наблюдаемую величину использования ресурсов, и
Figure 00000005
- переменная, которая определяет взвешивание.
[0066] Например, предположим, что старое скользящее среднее величины использования ресурсов,
Figure 00000003
, равно 130 МБ, наиболее недавно наблюдаемая величина использования ресурсов,
Figure 00000002
, равна 160 МБ, и весовой коэффициент
Figure 00000005
равен 0,25. В этом случае, новое скользящее среднее величины использования ресурсов,
Figure 00000002
, будет равно ((0,25 * 130 МБ)+(0,75 * 160 МБ)), то есть 152,5 МБ. Следовательно, диспетчер 132 ресурсов может устанавливать первую прогнозируемую величину использования ресурсов равной 152,5 МБ (или, возможно, 152,5 МБ плюс некоторая буферная величина).
[0067] Вышеупомянутый способ получения средней величины использования ресурсов для приложения с использованием скользящих средних изображен на блок-схеме 500 операций на фиг. 5. Как показано на фиг. 5, способ согласно блок-схеме 500 операций начинается с этапа 502, на котором диспетчер 132 ресурсов умножает первую величину, полученную на этапе 202 (т.е. наиболее недавно наблюдаемую величину использования ресурсов) на первый весовой коэффициент. На этапе 504, диспетчер 132 ресурсов умножает величину скользящего среднего использования ресурсов, полученную на основании, по меньшей мере, одной или более ранее определенных величин (т.е. ранее наблюдаемых величин использования ресурсов) на второй весовой коэффициент для получения второго произведения. На этапе 506, диспетчер 132 ресурсов суммирует первое произведение и второе произведение для получения новой средней величины использования ресурсов.
[0068] Как упомянуто выше со ссылкой на фиг. 2, на этапе 208 блок-схемы 200 операций, диспетчер 132 ресурсов определяет вторую величину ресурса (например, системной памяти), подлежащего выделению второму экземпляру приложения, подлежащего выполнению вычислительным устройством 100 на основании, по меньшей мере, первой прогнозируемой величины использования ресурсов. Поскольку вторая величина оценивается на основании прогностического алгоритма, всегда возможно, что второй экземпляр приложения может расходовать больше выделяемой второй величины. Чтобы справиться с этим сценарием, диспетчер 132 ресурсов может быть выполнен с возможностью определения, что второй экземпляр приложения расходует больше, чем выделяемая ему квота ресурсов и, в соответствии с этим, может завершать другие процессы, которые одновременно выполняются на вычислительном устройстве 100, для освобождения ресурсов. Например, диспетчер 132 ресурсов может предписывать завершение некоторых процессов, которым назначен более низкий приоритет, чем приложению, в соответствии со схемой приоритетов процессов.
[0069] Этот процесс изображен на блок-схеме 600 операций на фиг. 6. В частности, как показано на фиг. 6, способ согласно блок-схеме 600 операций начинается с этапа 602, на котором диспетчер 132 ресурсов определяет, что величина ресурса, используемого вторым экземпляром приложения, выполняющегося на вычислительном устройстве 100 превышает вторую величину. В соответствии с этим определением, на этапе 604, диспетчер 132 ресурсов завершает один или более процессов, которые одновременно выполняются на вычислительном устройстве. Дополнительно или альтернативно, диспетчер 132 ресурсов может осуществлять связь с одним или более из процессов, которые одновременно выполняются на вычислительном устройстве 100, и предписывать этим процессам снижать их расходование ресурса.
[0070] Кроме того, диспетчер 132 ресурсов может определять посредством связи с диспетчером 122 памяти или каким-либо другим средством, что вторая величина ресурса, подлежащего выделению второму экземпляру приложения, в данный момент недоступна. В этом случае, диспетчер 132 ресурсов может препятствовать выполнению второго экземпляра приложения.
[0071] Этот процесс изображен на блок-схеме 700 операций на фиг. 7. В частности, как показано на фиг. 7, способ согласно блок-схеме 700 операций начинается с этапа 702, на котором диспетчер 132 ресурсов определяет, что вторая величина ресурса в данный момент недоступна. В соответствии с этим определением, на этапе 704, диспетчер 132 ресурсов препятствует выполнению второго экземпляра приложения.
[0072] В случае, когда диспетчер 132 ресурсов определяет, что вторая величина ресурса, подлежащего выделению второму экземпляру приложения, в данный момент недоступна, диспетчер 132 ресурсов также может завершать один или более процессов, которые выполняются на вычислительном устройстве 100, для освобождения ресурса. Например, диспетчер 132 ресурсов может предписывать завершение некоторых процессов, которым назначен более низкий приоритет, чем приложению, в соответствии со схемой приоритетов процессов. После снижения расходования ресурсов такими другими процессам диспетчер 132 ресурсов может разрешить выполнение второго экземпляра приложения.
[0073] Этот процесс изображен на блок-схеме 800 операций на фиг. 8. В частности, как показано на фиг. 8, способ согласно блок-схеме 800 операций начинается с этапа 802, на котором диспетчер 132 ресурсов определяет, что вторая величина ресурса в данный момент недоступна. В соответствии с этим определением, на этапе 804, диспетчер 132 ресурсов завершает один или более процессов, которые в данный момент выполняются на вычислительном устройстве 100. Дополнительно или альтернативно, диспетчер 132 ресурсов может осуществлять связь с одним или более из процессов, которые в данный момент выполняются на вычислительном устройстве 100, и предписывать этим процессам снижать их расходование ресурса.
[0074] Для многих вычислительных устройств, например, смартфонов, типичной моделью использования является один пользователь на вычислительное устройство. В этом случае, сохранение профилей использования ресурсов для вычислительного устройства, по существу, идентично сохранению профилей использования ресурсов для конкретного пользователя. Однако вычислительные устройства также можно использовать для поддержки нескольких пользователей. Например, несколько разных членов одной семьи могут использовать один планшетный компьютер, настольный компьютер или игровую консоль для выполнения приложений. Каждый из этих пользователей может использовать разные приложения или может использовать одно и то же приложение по-разному, что приводит к изменению уровней расходования ресурсов. Чтобы справиться с этим сценарием, некоторые варианты осуществления предусматривают сохранение профилей использования ресурсов на вычислительном устройстве как приложением, так и пользователем, чтобы адаптировать прогностическое выделение ресурсов к конкретному пользователю, который в данный момент использует вычислительное устройство. Эти профили использования ресурсов можно рассматривать как профили использования ресурсов, зависящие от пользователя (в отличие от ранее описанных профилей использования ресурсов, зависящих от устройства).
[0075] На фиг. 9 изображена блок-схема 900 операций способа, осуществляемого вычислительным устройством для диспетчеризации его ресурса в соответствии с профилем использования ресурсов, зависящим от пользователя, в соответствии с вариантом осуществления. Способ согласно блок-схеме 900 операций будет описан ниже по-прежнему со ссылкой на компоненты вычислительного устройства 100, описанные выше со ссылкой на фиг. 1. Однако способ не ограничивается этим вариантом осуществления.
[0076] Как показано на фиг. 9, способ согласно блок-схеме 900 операций начинается с этапа 902, на котором диспетчер 132 ресурсов определяет первую величину ресурса, который используется первым экземпляром приложения, выполняющегося на вычислительном устройстве 100 со стороны первого пользователя. Например, диспетчер 132 ресурсов может определять первую величину системной памяти, которая используется первым экземпляром приложения 102, в то время как первый экземпляр приложения 102 выполняется вычислительным устройством 100 со стороны первого пользователя. Тот факт, что первый экземпляр приложения 102 выполняется со стороны первого пользователя можно определять самыми разнообразными средствами. Согласно варианту осуществления, в котором пользователь может выполнять вход в вычислительное устройство 100, для осуществления определения можно использовать текущую информацию входа. Однако этот пример не следует рассматривать в качестве ограничения, и можно использовать любой подходящий способ определения личности пользователя вычислительного устройства.
[0077] На этапе 904, диспетчер 132 ресурсов вычисляет первую прогнозируемую величину использования ресурсов для приложения и первого пользователя на основании, по меньшей мере, первой величины. Например, диспетчер 132 ресурсов может вычислять первую прогнозируемую величину использования системной памяти для приложения 102 и первого пользователя на основании, по меньшей мере, первой величины. Различные иллюстративные алгоритмы были представлены для демонстрации, как может осуществляться этот этап.
[0078] На этапе 906, диспетчер 132 ресурсов сохраняет первую прогнозируемую величину использования ресурсов в хранилище 106 данных. Например, диспетчер 132 ресурсов может сохранять первую прогнозируемую величину использования системной памяти для приложения 102 и первого пользователя в хранилище 106 данных.
[0079] Некоторое время спустя после осуществления этапа 906, диспетчер 132 ресурсов сообщается, что второй экземпляр приложения подлежит выполнению на вычислительном устройстве 100 со стороны первого пользователя. На этапе 908, диспетчер 132 ресурсов определяет вторую величину ресурса, подлежащего выделению второму экземпляру приложения на основании, по меньшей мере, первой прогнозируемой величины использования ресурсов, хранящейся в хранилище 106 данных. Например, диспетчер 132 ресурсов может определять вторую величину системной памяти подлежащий выделению второму экземпляру приложения 102 на основании, по меньшей мере, первой прогнозируемой величины использования системной памяти, сохраненной для приложения 102 и первого пользователя в хранилище 106 данных. Определение второй величины системной памяти может содержать, например, задание второй величины системной памяти равной первой прогнозируемой величине использования системной памяти.
[0080] На этапе 910, диспетчер 132 ресурсов определяет третью величину ресурса, который используется третьим экземпляром приложения, выполняющегося на вычислительном устройстве 100 со стороны второго пользователя, причем второй пользователь отличается от первого пользователя. Например, диспетчер 132 ресурсов может определять третью величину системной памяти, которая используется третьим экземпляром приложения 102, в то время как третий экземпляр приложения 102 выполняется вычислительным устройством 100 со стороны второго пользователя. Тот факт, что третий экземпляр приложения 102 выполняется со стороны второго пользователя можно определять самыми разнообразными средствами. Согласно варианту осуществления, в котором пользователь может выполнять вход в вычислительное устройство 100, для осуществления определения можно использовать текущую информацию входа. Однако этот пример не следует рассматривать в качестве ограничения, и можно использовать любой подходящий способ определения личности пользователя вычислительного устройства.
[0081] На этапе 912, диспетчер 132 ресурсов вычисляет вторую прогнозируемую величину использования ресурсов для приложения и второго пользователя на основании, по меньшей мере, третьей величины. Например, диспетчер 132 ресурсов может вычислять первую прогнозируемую величину использования системной памяти для приложения 102 и второго пользователя на основании, по меньшей мере, третьей величины. Различные иллюстративные алгоритмы были представлены для демонстрации, как может осуществляться этот этап.
[0082] На этапе 914, диспетчер 132 ресурсов сохраняет вторую прогнозируемую величину использования ресурсов в хранилище 106 данных. Например, диспетчер 132 ресурсов может сохранять вторую прогнозируемую величину использования системной памяти для приложения 102 и второго пользователя в хранилище 106 данных.
[0083] Некоторое время спустя после осуществления этапа 914, диспетчер 132 ресурсов сообщается, что четвертый экземпляр приложения подлежит выполнению на вычислительном устройстве 100 со стороны второго пользователя. На этапе 916, диспетчер 132 ресурсов определяет четвертую величину ресурса, подлежащего выделению четвертому экземпляру приложения на основании, по меньшей мере, второй прогнозируемой величины использования ресурсов, хранящейся в хранилище 106 данных. Например, диспетчер 132 ресурсов может определять четвертую величину системной памяти подлежащий выделению четвертому экземпляру приложения 102 на основании, по меньшей мере, второй прогнозируемой величины использования системной памяти, сохраненной для приложения 102 и второго пользователя в хранилище 106 данных. Определение четвертой величины системной памяти может содержать, например, задание четвертой величины системной памяти равной второй прогнозируемой величине использования системной памяти.
[0084] На фиг. 10 изображена блок-схема 1000 операций способа диспетчеризации запуска приложения в соответствии с профилем использования ресурсов, зависящим от устройства или зависящим от пользователя, в соответствии с вариантом осуществления. Способ согласно блок-схеме 1000 операций будет описан ниже по-прежнему со ссылкой на компоненты вычислительного устройства 100, описанные выше со ссылкой на фиг. 1. Однако способ не ограничивается этим вариантом осуществления.
[0085] Как показано на фиг. 10, способ согласно блок-схеме 1000 операций начинается с этапа 1002, на котором принимается запрос на запуск приложения. Например, запрос на запуск приложения 102 может приниматься, например, системными службами 130 и/или диспетчером 132 ресурсов.
[0086] На этапе 1004, диспетчер 132 ресурсов получает прогнозируемую величину использования ресурсов для приложения. Например, диспетчер 132 ресурсов может получать прогнозируемую величину использования ресурсов для приложения 102. Прогнозируемая величина использования ресурсов основана на отслеживаемом использовании ресурса вычислительного устройства 100 в ходе одного или более предыдущих выполнений приложения вычислительным устройством 100. Прогнозируемая величина использования ресурсов или информация, необходимая для вычисления такой прогнозируемой величины использования ресурсов, может быть получена из профиля использования ресурсов для приложения, который может храниться в хранилище 206 данных. Ресурс может включать в себя один или более из ресурса энергозависимой или энергонезависимой памяти, ресурса CPU, ресурса I/O, сетевого ресурса, ресурса питания и ресурса датчика. Прогнозируемая величина использования ресурсов может базироваться на отслеживании использования ресурса вычислительного устройства 100 процессом переднего плана, связанным с приложением, и одной или более фоновыми задачами, связанными с приложением.
[0087] На этапе 1006 принятия решения, диспетчер 132 ресурсов определяет, доступна ли достаточная величина ресурса, путем сравнения прогнозируемой величины использования ресурсов с величиной ресурса, которая доступна в данный момент. Например, согласно варианту осуществления, в котором ресурсом является системная память, диспетчер 132 ресурсов может получать величину системной памяти, которая доступна в данный момент, от диспетчера 122 памяти и затем сравнивать прогнозируемую величину использования системной памяти для приложения с доступной в данный момент системной памятью для определения, достаточная ли величина системной памяти доступна.
[0088] Если диспетчер 132 ресурсов, по меньшей мере, определяет, что доступна достаточная величина ресурса, то диспетчер 132 ресурсов разрешает запуск приложения, как показано на этапе 1008. Например, если диспетчер 132 ресурсов, по меньшей мере, определяет, что доступно достаточно системной памяти, то диспетчер 132 ресурсов разрешает запуск приложения 102. Заметим, что возможны другие условия, которым нужно удовлетворять, чтобы диспетчер 132 ресурсов разрешил запуск приложения.
[0089] Если диспетчер 132 ресурсов определяет, что доступна недостаточная величина ресурса, то диспетчер 132 ресурсов запрещает запуск приложения, как показано на этапе 1010. Например, если диспетчер 132 ресурсов определяет, что доступно недостаточно системной памяти, то диспетчер 132 ресурсов запрещает запуск приложения 102. Дополнительно, диспетчер 132 ресурсов может стремиться освободить ресурсы, предписывая одному или более выполняющимся в данный момент процессам завершиться или иным образом снизить свое использование ресурсов.
[0090] Согласно варианту осуществления, диспетчер 132 ресурсов также способен отслеживать другую информацию, относящуюся к использованию ресурсов приложением и/или пользователем, например, времена, положения и события, связанные с конкретными режимами использования ресурсов. Такую информацию можно преимущественно использовать для прогностического выделения ресурсов вычислительного устройства приложению даже до того, как пользователь попытается запустить его. Кроме того, приложения и/или данные приложения можно загружать в память в момент времени, предшествующий предполагаемому обращению к ним пользователя.
[0091] Например, если удается определить, что пользователь обычно запускает конкретное приложение в конкретное время, в конкретном месте или в связи с конкретным событием, то диспетчер 132 ресурсов может действовать таким образом, чтобы гарантировать доступность достаточных ресурсов, подлежащих выделению приложению, до и, возможно, непосредственно до предполагаемого запуска приложения пользователем. Кроме того, такой прогностический анализ фактически можно использовать для загрузки приложения или контента приложения в системную память, чтобы пользователь мог получать непосредственный доступ к приложению и его признакам.
[0092] Чтобы проиллюстрировать это, на фиг. 11 изображена блок-схема 1100 операций способа для использования отслеживаемого использования ресурсов схемы пользователя в отношении ресурсов вычислительного устройства и выведенной из него информации для прогностического выделения ресурсов процессам. Способ согласно блок-схеме 1100 операций будет описан ниже по-прежнему со ссылкой на компоненты вычислительного устройства 100, описанные выше со ссылкой на фиг. 1. Однако способ не ограничивается этим вариантом осуществления.
[0093] Как показано на фиг. 11, способ согласно блок-схеме 1100 операций начинается с этапа 1102, на котором диспетчер 132 ресурсов отслеживает схему использования, по меньшей мере, одного ресурса вычислительного устройства 100 приложением и/или пользователем. Как рассмотрено ранее, отслеживание схемы использования может предполагать отслеживание использования ресурсов приложением и/или пользователем, а также отслеживание другой информации, связанной с таким использованием ресурсов, например, времен, положений и событий, связанных с конкретными режимами использования ресурсов.
[0094] На этапе 1104, диспетчер 132 ресурсов сохраняет информацию, связанную со схемой использования. Диспетчер 132 ресурсов может сохранять такую информацию, например, в хранилище 106 данных.
[0095] На этапе 1106, диспетчер 132 ресурсов использует сохраненную информацию для прогностического выделения, по меньшей мере, части, по меньшей мере, одного ресурса, по меньшей мере, одному процессу до его выполнения вычислительным устройством 100. В одном иллюстративном варианте осуществления, на этапе 1106, диспетчер 132 ресурсов прогностически выделяет, по меньшей мере, часть ресурса приложению до того, как пользователь вычислительного устройства 100 или какой-либо другой субъект запустит приложение. В другом иллюстративном варианте осуществления, в котором, по меньшей мере, один ресурс включает в себя системную память, диспетчер 132 ресурсов может загружать, по меньшей мере, часть приложения или данных, связанных с приложением, в прогностически выделяемую системную память до того, как пользователь вычислительного устройства 100 или какой-либо другой субъект запустит приложение. Эти примеры приведены исключительно в порядке иллюстрации, но не ограничения. Специалистам в данной области техники очевидно, что можно использовать другие методы для обеспечения информации схемы использования ресурсов для осуществления дополнительных задач диспетчеризации ресурсов.
III. ИЛЛЮСТРАТИВНЫЕ СИСТЕМА И СПОСОБЫ ДИНАМИЧЕСКОЙ ДИСПЕТЧЕРИЗАЦИИ РЕСУРСОВ ДЛЯ МНОГОПРОЦЕССНЫХ ПРИЛОЖЕНИЙ
[0096] Согласно варианту осуществления, вычислительное устройство 100, показанное на фиг. 1, позволяет выполняющемуся на нем приложению (например, приложению 102) динамически управлять разделением выделяемой части ресурса вычислительного устройства 100 между несколькими процессами, связанными с приложением. Например, приложение 102, выполняющееся на вычислительном устройстве 100, может взаимодействовать с диспетчером 132 ресурсов для динамического управления разделением выделяемой части ресурса вычислительного устройства 100 между процессом переднего плана, связанным с приложением, и одним или более фоновыми процессами, связанными с приложением. Благодаря предоставлению приложению такой способности, описанные здесь варианты осуществления, преимущественно, позволяют приложениям адаптироваться к изменяющимся выделениям ресурса и лучше сосуществовать с другими процессами, которые могут выполняться на вычислительном устройстве, таким образом лучше обеспечивая самые разнообразные многозадачные сценарии.
[0097] Один способ, которым приложение 102 и диспетчер 132 ресурсов могут взаимодействовать для осуществления такой динамической диспетчеризации ресурсов, будет описан ниже со ссылкой на блок-схему операций 1200 на фиг. 12. Как показано на фиг. 12, способ согласно блок-схеме операций 1200 начинается с этапа 1202, на котором диспетчер ресурсов 1202 отправляет процессу переднего плана, связанному с приложением 102, извещение, что приложение выполняется на переднем плане.
[0098] На этапе 1204, диспетчер 132 ресурсов принимает от процесса переднего плана, по меньшей мере, одно сообщение, указывающее первую часть первого бюджета использования ресурсов, который подлежит выделению процессу переднего плана, и вторую часть первого бюджета использования ресурсов, который подлежит выделению, по меньшей мере, одной фоновой задаче, связанной с приложением.
[0099] На этапе 1206, диспетчер 132 ресурсов выделяет часть ресурса, которая равна первой части первого бюджета использования ресурсов, процессу переднего плана и выделяет часть ресурса, которая равна второй части первого бюджета использования ресурсов, по меньшей мере, одной фоновой задаче. Ресурс может содержать, в порядке примера, но не ограничения, энергозависимую или энергонезависимую память, CPU, ресурс I/O, сетевой ресурс, ресурс питания, ресурс датчика.
[0100] На этапе 1208, диспетчер 132 ресурсов отправляет процессу переднего плана извещение, что приложение будет приостановлено или завершено.
[0101] На этапе 1210, диспетчер 132 ресурсов принимает от процесса переднего плана, по меньшей мере, одно сообщение, указывающее первую часть второго бюджета использования ресурсов, который подлежит выделению процессу переднего плана, и вторую часть второго бюджета использования ресурсов, который подлежит выделению, по меньшей мере, одной фоновой задаче, связанной с приложением. Второй бюджет использования ресурсов может быть меньше первого бюджета использования ресурсов.
[0102] На этапе 1212, диспетчер 132 ресурсов выделяет часть ресурса, которая равна первой части второго бюджета использования ресурсов, процессу переднего плана и выделяет часть ресурса, которая равна второй части второго бюджета использования ресурсов, по меньшей мере, одной фоновой задаче. По прошествии заранее определенного периода времени, диспетчер 132 ресурсов может затем определять превышает ли сумма величины ресурса, используемого процессом переднего плана, и величины ресурса, используемого, по меньшей мере, одним фоновым процессом, второй бюджет использования ресурсов. В ответ на определение, что сумма превышает второй бюджет использования ресурсов, диспетчер 132 ресурсов может предписывать завершение одного или более из процесса переднего плана и, по меньшей мере, одного фонового процесса.
[0103] В одном варианте осуществления, связь между диспетчером 132 ресурсов и процессом переднего плана согласно вышеупомянутому способу осуществляется посредством совместно используемого API. Такой API может быть открыт разработчикам приложений, чтобы такие разработчики могли разрабатывать приложения, которые могут пользоваться преимуществом этих признаков.
[0104] На фиг. 13 изображена блок-схема 1300 операций другого способа позволяющего приложению, выполняющемуся на вычислительном устройстве, помогать в диспетчеризации выделения ресурсов вычислительного устройства процессу переднего плана и одной или более фоновым задачам, связанным с приложением.
[0105] Как показано на фиг. 13, блок-схема 1300 операций начинается с этапа 1302, на котором диспетчер 132 ресурсов отправляет процессу переднего плана, связанный с приложением, по меньшей мере, одно сообщение, которое указывает бюджет использования ресурсов.
[0106] На этапе 1304, диспетчер 132 ресурсов принимает от процесса переднего плана, по меньшей мере, одно сообщение, указывающее первую часть бюджета использования ресурсов, которая подлежит выделению процессу переднего плана, и вторую часть бюджета использования ресурсов, которая подлежит выделению, по меньшей мере, одной фоновой задаче, связанной с приложением.
[0107] На этапе 1306, диспетчер 132 ресурсов выделяет часть ресурса, которая равна первой части бюджета использования ресурсов, процессу переднего плана и выделяет часть ресурса, которая равна второй части бюджета использования ресурсов, по меньшей мере, одной фоновой задаче.
[0108] Согласно варианту осуществления, по меньшей мере, одно сообщение, отправляемое процессу переднего плана, и, по меньшей мере, одно сообщение, отправляемое диспетчеру ресурсов отправляются посредством совместно используемого API.
[0109] В другом варианте осуществления, бюджет использования ресурсов содержит бюджет использования ресурсов для приложения, которое выполняется на переднем плане, и, по меньшей мере, одно сообщение, которое указывает бюджет использования ресурсов, содержит извещение, что приложение выполняется на переднем плане.
[0110] В еще одном варианте осуществления, бюджет использования ресурсов содержит бюджет использования ресурсов для приложения, которое приостановлено или завершено, и, по меньшей мере, одно сообщение, которое указывает бюджет использования ресурсов, содержит извещение, что приложение будет приостановлено или завершено.
[0111] В дополнительном варианте осуществления, диспетчер 132 ресурсов определяет, по прошествии заранее определенного периода времени, превышает ли сумма величины ресурса, используемого процессом переднего плана, и величины ресурса, используемого, по меньшей мере, одним фоновым процессом, бюджет использования ресурсов, и, в ответ на определение, что сумма превышает бюджет использования ресурсов, предписывает завершение одного или более из процесса переднего плана и, по меньшей мере, одного фонового процесса.
IV. ИЛЛЮСТРАТИВНАЯ РЕАЛИЗАЦИЯ МОБИЛЬНОГО УСТРОЙСТВА
[0112] На фиг. 14 показана блок-схема иллюстративного мобильного устройства 1402, которое может реализовать описанные здесь варианты осуществления. Как показано на фиг. 14, мобильное устройство 1402 включает в себя различные необязательные аппаратные и программные компоненты. Любой компонент мобильного устройства 1402 может осуществлять связь с любым другим компонентом, хотя для простоты иллюстрации показаны не все соединения. Мобильное устройство 1402 может представлять собой любое из различных вычислительных устройств (например, сотовый телефон, смартфон, карманный компьютер, карманный персональный компьютер (PDA) и т.д.) и может обеспечивать беспроводную двустороннюю связь с одной или более сетями 1404 мобильной связи, например, сотовой или спутниковой сетью, или с локальной или глобальной сетью.
[0113] Иллюстрируемое мобильное устройство 1402 может включать в себя контроллер или процессор 1410 (например, процессор сигнала, микропроцессор, ASIC, или другую логическую схему управления и обработки) для осуществления таких задач, как кодирование сигнала, обработка данных, обработка ввода/вывода, управление питанием и/или другие функции. Операционная система 1412 может управлять выделением и использованием компонентов мобильного устройства 1402 и обеспечивать поддержку одной или более прикладных программ 1414 (также именуемых “приложениями”). Прикладные программы 1414 может включать в себя обычные мобильные вычислительные приложения (например, приложения электронной почты, календари, диспетчеры контактов, веб-браузеры, приложения обмена сообщениями) и любые другие вычислительные приложения (например, приложения редактирования текста, картографические приложения, приложения медиапроигрывателя).
[0114] Иллюстрируемое мобильное устройство 1402 может включать в себя память 1420. Память 1420 может включать в себя стационарную память 1422 и/или сменную память 1424. Стационарная память 1422 может включать в себя RAM, ROM, флэш-память, жесткий диск, или другие общеизвестные запоминающие устройства или технологии. Сменная память 1424 может включать в себя флэш-память или карту модуля идентификации абонента (SIM), которые общеизвестны в системах связи GSM, или другие общеизвестные запоминающие устройства или технологии, например "смарт-карты". Память 1420 можно использовать для хранения данных и/или кода для выполнения операционной системы 1412 и приложений 1414. Иллюстративные данные могут включать в себя веб-страницы, текст, изображения, звуковые файлы, видеоданные или другие данные, подлежащие отправке на и/или приему от одного или более сетевых серверов или других устройств через одну или более проводных или беспроводных сетей. Память 1420 можно использовать для сохранения идентификатора абонента, например, международного идентификатора абонента мобильной связи (IMSI) и идентификатора оборудования, например международный идентификатор мобильного оборудования (IMEI). Такие идентификаторы могут передаваться на сетевой сервер для идентификации пользователей и оборудования.
[0115] Мобильное устройство 1402 может поддерживать одно или более устройств 1430 ввода, например, сенсорный экран 1432, микрофон 1434, камеру 1436, физическую клавиатуру 1438 и/или шаровой манипулятор 1440 и одно или более устройств 1450 вывода, например, громкоговоритель 1452 и дисплей 1454. Сенсорные экраны, например, сенсорный экран 1432, могут регистрировать ввод по-разному. Например, емкостные сенсорные экраны регистрируют тактильный ввод, когда объект (например, кончик пальца) искажается или прерывает электрический ток, текущий по поверхности. В порядке другого примера, сенсорные экраны могут использовать оптические датчики для регистрации тактильного ввода, когда прерываются пучки от оптических датчиков. Физический контакт с поверхностью экрана не требуется для регистрации ввода некоторыми сенсорными экранами.
[0116] Другие возможные устройства вывода (не показаны) могут включать в себя пьезоэлектрические или другие тактильные устройства вывода. Некоторые устройства могут выполнять более одной функции ввода/вывода. Например, сенсорный экран 1432 и дисплей 1454 можно объединять в единое устройство ввода/вывода. Устройства 1430 ввода могут включать в себя естественный пользовательский интерфейс (NUI).
[0117] Беспроводной(ые) модем(ы) 1460 может(ут) быть подключен(ы) к антенне(ми) (не показана(ы)) и может(ут) поддерживать двустороннюю связь между процессором 1410 и внешними устройствами, что хорошо понятно в уровне техники. Модем(ы) 1460 показан(ы) в целом и может(ут) включать в себя сотовый модем 1466 для осуществления связи с сетью 1404 мобильной связи и/или другие радиомодемы (например, Bluetooth 1464 и/или Wi-Fi 1462). По меньшей мере, один из беспроводных модемов 1460 обычно выполнен с возможностью осуществления связи с одной или более сотовыми сетями, например, сетью GSM для передачи данных и голоса в единой сотовой сети, между сотовыми сетями, или между мобильным устройством и коммутируемой телефонной сетью общего пользования (PSTN).
[0118] Мобильное устройство 1402 может дополнительно включать в себя, по меньшей мере, один порт 1480 ввода/вывода, источник 1482 питания, приемник 1484 спутниковой навигационной системы, например, приемник глобальной системы позиционирования (GPS), акселерометр 1486 и/или физический соединитель 1490, которым может быть порт USB, порт IEEE 1394 (FireWire) и/или порт RS-232. Проиллюстрированные компоненты мобильного устройства 1402 не являются необходимыми или всеобъемлющими, поскольку можно удалять любые компоненты и можно добавлять другие компоненты, что очевидно специалисту в данной области техники.
[0119] Согласно варианту осуществления, некоторые компоненты мобильного устройства 1402 выполнены с возможностью осуществления описанных здесь функций, относящихся к осуществлению диспетчеризации ресурсов на основании профилей использования ресурсов, зависящих от устройства или зависящих от пользователя, и обеспечивающих динамическую диспетчеризацию ресурсов для многопроцессных приложений. Например, в одном варианте осуществления, операционная система 1412 включает в себя признаки операционной системы 104, которые позволяют операционной системе 104 осуществлять диспетчеризацию ресурсов на основании профилей использования ресурсов, зависящих от устройства или зависящих от пользователя. В качестве дополнительного примера, операционная система 1412 и, по меньшей мере, одно из приложений 1414 может включать в себя признаки операционной системы 104 и приложения 102, которые позволяют этим компонентам осуществлять динамическую диспетчеризацию ресурсов для многопроцессных приложений. Однако это лишь пример, и разные функции могут осуществляться разными компонентами.
[0120] Компьютерная программная логика для осуществления описанных здесь функций, относящихся к осуществлению диспетчеризации ресурсов на основании профилей использования ресурсов, зависящих от устройства или зависящих от пользователя, и обеспечивающих динамическую диспетчеризацию ресурсов для многопроцессных приложений могут сохраняться в памяти 1420 и выполняться процессором 1410. Благодаря выполнению такой компьютерной программной логики, процессору 1410 может быть предписано реализовать любой из признаков любого из компонентов вычислительного устройства 100, описанные выше со ссылкой на фиг. 1. Также, благодаря выполнению такой компьютерной программной логики, процессору 1410 может быть предписано осуществлять некоторые или все из этапов некоторых или всех из блок-схем операций, изображенных на фиг. 2-13.
V. ИЛЛЮСТРАТИВНАЯ РЕАЛИЗАЦИЯ КОМПЬЮТЕРНОЙ СИСТЕМЫ
[0121] На фиг. 15 изображена иллюстративная процессорная компьютерная система 1500, которая может использоваться для реализации различных описанных здесь вариантов осуществления. Например, систему 1500 можно использовать для реализации любого из компонентов вычислительного устройства 100, описанных выше со ссылкой на фиг. 1. Систему 1500 также можно использовать для реализации некоторых или всех из этапов некоторых или всех из блок-схем операций, изображенных на фиг. 2-13. Приведенное здесь описание системы 1500 служит для иллюстрации, но не ограничения. Варианты осуществления могут быть реализованы в дополнительных типах компьютерных систем, что очевидно специалистам в данной области техники.
[0122] Как показано на фиг. 15, система 1500 включает в себя блок 1502 обработки, системную память 1504 и шину 1506 которая подключает различные системные компоненты, включая системную память 1504, к блоку 1502 обработки. Блок 1502 обработки может содержать один или более микропроцессоров или ядер микропроцессора. Шина 1506 представляет один или более из любого из нескольких типов шинных структур, включающих в себя шину памяти или контроллер памяти, периферийную шину, ускоренный графический порт, и процессор или локальная шина с использованием любой из различных шинных архитектур. Системная память 1504 включает в себя постоянную память (ROM) 1508 и оперативную память (RAM) 1510. Базовая система 1512 ввода/вывода (BIOS) хранится в ROM 1508.
[0123] Система 1500 также имеет один или более из следующих приводы: привод 1514 жесткого диска для считывания с и записи на жесткий диск, привод 1516 магнитных дисков для считывания с или записи на сменный магнитный диск 1518 и привод 1520 оптический дисков для считывания с или записи на сменный оптический диск 1522, например, диск CD ROM, DVD ROM, BLU-RAY™ или другие оптические носители. Привод 1514 жесткого диска, привод 1516 магнитных дисков и привод 1520 оптический дисков подключены к шине 1506 интерфейсом 1524 привода жесткого диска, интерфейсом 1526 привода магнитных дисков и интерфейсом 1528 оптического привода, соответственно. Приводы и их соответствующие компьютерно-считываемые носители обеспечивают энергонезависимое хранение машиночитаемых инструкций, структур данных, программных модулей и других данных для компьютера. Хотя описаны жесткий диск, сменный магнитный диск и сменный оптический диск, для хранения данных можно использовать другие типы компьютерно-считываемых запоминающих устройств и запоминающих структур, например, карты флэш-памяти, цифровые видеодиски, блоки оперативной памяти (RAM), блоки постоянной памяти (ROM) и пр.
[0124] Некоторые программные модули могут храниться на жестком диске, магнитном диске, оптическом диске, ROM или RAM. Эти программные модули включают в себя операционную систему 1530, одну или более прикладных программ 1532, другие программные модули 1534 и программные данные 1536. В соответствии с различными вариантами осуществления, программные модули могут включать в себя компьютерную программную логику, которая может выполняться блоком 1502 обработки для осуществления некоторых или всех из функций и признаков вычислительного устройства 100, как описано выше со ссылкой на фиг. 1. Программные модули также могут включать в себя компьютерную программную логику, которая, при выполнении блоком 1502 обработки, осуществляет любой из этапов или операций, показанных или описанных со ссылкой на блок-схемы операций на фиг. 2-13.
[0125] Пользователь может вводить команды и информацию в систему 1500 через устройства ввода, например, клавиатуру 1538 и указательное устройство 1540. Другие устройства ввода (не показаны) могут включать в себя микрофон, джойстик, игровой контроллер, сканер и т.п. В одном варианте осуществления, сенсорный экран обеспечен совместно с дисплеем 1544, чтобы пользователь мог обеспечивать пользовательский ввод посредством прикосновение (например, пальцем или стилусом) к одной или более точкам на сенсорном экране. Эти и другие устройства ввода часто подключаются к блоку 1502 обработки через интерфейс 1542 последовательного порта, который подключен к шине 1506, но может подключаться другими интерфейсами, например, параллельным портом, игровым портом или универсальной последовательной шиной (USB). Такие интерфейсы могут быть проводными или беспроводными интерфейсами.
[0126] Дисплей 1544 также подключен к шине 1506 через интерфейс, например видеоадаптер 1546. Помимо дисплея 1544, система 1500 может включать в себя другие периферийные устройства вывода (не показаны), например, громкоговорители и принтеры.
[0127] Система 1500 подключена к сети 1548 (например, локальной сети или глобальной сети, например, интернету) через сетевой интерфейс или адаптер 1550, модем 1552 или другое подходящее средство для установления связи по сети. Модем 1552, который может быть внутренним или внешним, подключен к шине 1506 через интерфейс 1542 последовательного порта.
[0128] Используемые здесь термины "носитель компьютерной программы", "компьютерно-считываемый носитель" и “компьютерно-считываемая среда хранения” используются, в общем случае, для обозначения запоминающих устройств или запоминающих структур, например, жесткого диска, связанного с приводом 1514 жесткого диска, сменного магнитного диска 1518, сменного оптического диска 1522, а также других запоминающих устройств или запоминающих структур, например, карт флэш-памяти, цифровых видеодисков, блоков оперативной памяти (RAM), блоков постоянной памяти (ROM) и пр. Такие компьютерно-считываемые среды хранения отличаются от и не перекрываются со средами передачи данных (не включают в себя среды передачи данных). Среды передачи данных обычно воплощают машиночитаемые инструкции, структуры данных, программные модули или другие данные в модулированном сигнале данных, например, несущей волне. Термин “модулированный сигнал данных” означает сигнал, одна или более из характеристик которого устанавливается или изменяется таким образом, чтобы кодировать информацию в сигнале. В порядке примера, но не ограничения, среды передачи данных включают в себя беспроводные среды передачи данных, например акустические, RF, инфракрасные и другие беспроводные среды передачи данных. Варианты осуществления также относятся к таким средам передачи данных.
[0129] Как упомянуто выше, компьютерные программы и модули (включающие в себя прикладные программы 1532 и другие программные модули 1534) могут храниться на жестком диске, магнитном диске, оптическом диске, ROM или RAM. Такие компьютерные программы также могут приниматься через сетевой интерфейс 1550, интерфейс 1542 последовательного порта или интерфейс любого другого типа. Такие компьютерные программы, при выполнении или загрузке приложением, позволяют компьютеру 1500 реализовать признаки рассмотренных здесь вариантов осуществления настоящего изобретения. Соответственно, такие компьютерные программы представляют контроллеры системы 1500.
[0130] Варианты осуществления также относятся к компьютерным программным продуктам, содержащим программное обеспечение, хранящееся на любом компьютерном носителе. Такое программное обеспечение, при выполнении на одном или более устройствах обработки данных, предписывает устройству(ам) обработки данных действовать описанным здесь образом. Варианты осуществления настоящего изобретения используют любой компьютерно-используемый или компьютерно-считываемый носитель, известный или перспективный. Примеры компьютерно-считываемых носителей включают в себя, но без ограничения запоминающие устройства и запоминающие структуры, например, RAM, жесткие диски, флоппи-диски, CD ROM, DVD ROM, zip-диски, ленты, магнитные запоминающие устройства, оптические запоминающие устройства, MEM, запоминающие устройства на основе нанотехнологии и пр.
[0131] В альтернативных реализациях, система 1500 может быть реализована в виде аппаратной логики/электрической схемы или программно-аппаратного обеспечения. В соответствии с дополнительными вариантами осуществления, один или более из этих компонентов может быть реализован в однокристальной системе (SoC). SoC может включать в себя кристалл интегральной схемы, который включает в себя один или более из процессора (например, микроконтроллера, микропроцессора, цифрового сигнального процессора (DSP) и т.д.), памяти, одного или более интерфейсов связи и/или дополнительных схем и/или встроенного программно-аппаратного обеспечения для осуществления их функций.
VI. ЗАКЛЮЧЕНИЕ
[0132] Хотя выше были описаны различные варианты осуществления, следует понимать, что они были представлены исключительно в порядке примера, но не ограничения. Специалистам в данной области техники будет очевидно, что возможны различные изменения, касающиеся формы и деталей, не выходящие за рамки сущности и объема изобретения. Таким образом, объем настоящего изобретения не подлежит ограничению никаким из вышеописанных иллюстративных вариантов осуществления, но определяется только в соответствии с нижеследующей формулой изобретения и ее эквивалентами.

Claims (43)

1. Способ, осуществляемый вычислительным устройством, для диспетчеризации его ресурса, содержащий этапы, на которых:
определяют первую величину ресурса, который используется первым экземпляром приложения, выполняющегося на вычислительном устройстве, причем определение включает в себя определение величины ресурса, который используется процессом переднего плана, связанным с первым экземпляром приложения, и одной или более фоновыми задачами, связанными с первым экземпляром приложения;
вычисляют первую прогнозируемую величину использования ресурсов для приложения на основании, по меньшей мере, первой величины ресурса;
сохраняют первую прогнозируемую величину использования ресурсов в хранилище данных;
определяют вторую величину ресурса, подлежащего выделению второму экземпляру приложения, подлежащего выполнению вычислительным устройством на основании, по меньшей мере, первой прогнозируемой величины использования ресурсов, хранящейся в хранилище данных, причем приложение, выполняющееся на вычислительном устройстве, взаимодействует с диспетчером ресурсов вычислительного устройства для динамического управления тем, как выделяемая часть ресурса вычислительного устройства должна быть разделена между процессом переднего плана, связанным с приложением и одним или более фоновыми процессами, связанными с приложением.
2. Способ по п. 1, в котором ресурс содержит, по меньшей мере, один из:
ресурса энергозависимой или энергонезависимой памяти;
ресурса центрального процессора (CPU);
ресурса ввода/вывода (I/O);
сетевого ресурса;
ресурса питания; и
ресурса датчика.
3. Способ по п. 1, в котором вычисление первой прогнозируемой величины использования ресурсов для приложения на основании, по меньшей мере, первой величины ресурса содержит этапы, на которых:
получают максимальную величину использования ресурсов для приложения путем сравнения первой величины ресурса с одной или более ранее определенных величин ресурса, связанных с одним или более ранее выполненными экземплярами приложения; и
вычисляют первую прогнозируемую величину использования ресурсов на основании максимальной величины использования ресурсов.
4. Способ по п. 1, в котором вычисление первой прогнозируемой величины использования ресурсов для приложения на основании, по меньшей мере, первой величины ресурса содержит этапы, на которых:
получают среднюю величину использования ресурсов для приложения на основании первой величины ресурса и одной или более ранее определенных величин ресурса, связанных с ранее выполненными экземплярами приложения; и
вычисляют первую прогнозируемую величину использования ресурсов на основании средней величины использования ресурсов.
5. Способ по п. 4, в котором получение средней величины использования ресурсов для приложения на основании первой величины ресурса и одной или более ранее определенных величин ресурса, связанных с ранее выполненными экземплярами приложения, содержит этапы, на которых:
умножают первую величину ресурса на первый весовой коэффициент для получения первого произведения;
умножают величину скользящего среднего, полученную на основании, по меньшей мере, одной или более ранее определенных величин ресурса, на второй весовой коэффициент для получения второго произведения; и
суммируют первое произведение и второе произведение.
6. Способ по п. 1, дополнительно содержащий этапы, на которых:
в ответ на определение, что величина ресурса, используемого вторым экземпляром приложения, выполняющегося на вычислительном устройстве, превышает вторую величину ресурса, завершают один или более процессов, которые одновременно выполняются на вычислительном устройстве.
7. Способ по п. 1, дополнительно содержащий этап, на котором:
в ответ на определение, что вторая величина ресурса в данный момент недоступна, препятствуют выполнению второго экземпляра приложения.
8. Способ по п. 1, дополнительно содержащий этап, на котором:
в ответ на определение, что вторая величина ресурса в данный момент недоступна, завершают один или более процессов, которые в данный момент выполняются на вычислительном устройстве.
9. Способ по п. 1, в котором этапы определения, вычисления и сохранения содержат:
определение первой величины ресурса, который используется первым экземпляром приложения, выполняющегося на вычислительном устройстве со стороны первого пользователя;
вычисление первой прогнозируемой величины использования ресурсов для приложения и первого пользователя на основании, по меньшей мере, первой величины ресурса;
сохранение первой прогнозируемой величины использования ресурсов в хранилище данных; и
определение второй величины ресурса, подлежащего выделению второму экземпляру приложения, подлежащего выполнению вычислительным устройством со стороны первого пользователя на основании, по меньшей мере, первой прогнозируемой величины использования ресурсов, хранящейся в хранилище данных;
причем способ дополнительно содержит:
определение третьей величины ресурса, который используется третьим экземпляром приложения, выполняющегося на вычислительном устройстве со стороны второго пользователя;
вычисление второй прогнозируемой величины использования ресурсов для приложения и второго пользователя на основании, по меньшей мере, третьей величины ресурса;
сохранение второй прогнозируемой величины использования ресурсов в хранилище данных; и
определение четвертой величины ресурса, подлежащего выделению четвертому экземпляру приложения, подлежащего выполнению вычислительным устройством со стороны второго пользователя на основании, по меньшей мере, второй прогнозируемой величины использования ресурсов, хранящейся в хранилище данных.
10. Система, реализованная на вычислительном устройстве, для диспетчеризации его ресурса, содержащая:
по меньшей мере, один процессор; и
память, к которой может осуществлять доступ, по меньшей мере, один процессор, причем в памяти хранятся компоненты для выполнения, по меньшей мере, одним процессором, причем компоненты включают в себя:
диспетчер ресурсов, выполненный с возможностью осуществлять способ по п. 1.
11. Система по п. 10, в которой диспетчер ресурсов дополнительно выполнен с возможностью отслеживания схемы использования, по меньшей мере, одного ресурса вычислительного устройства одним или более приложением и пользователем, для сохранения информации, связанной со схемой использования, и использования сохраненной информации для прогностического выделения, по меньшей мере, части ресурса, по меньшей мере, одному процессу до его выполнения, по меньшей мере, одним процессором.
RU2016136181A 2014-03-10 2015-02-27 Диспетчеризация ресурсов на основании профилей использования ресурсов, зависящих от устройства или зависящих от пользователя RU2683509C2 (ru)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201461950620P 2014-03-10 2014-03-10
US61/950,620 2014-03-10
US14/264,838 US9871741B2 (en) 2014-03-10 2014-04-29 Resource management based on device-specific or user-specific resource usage profiles
US14/264,838 2014-04-29
PCT/US2015/017892 WO2015138152A1 (en) 2014-03-10 2015-02-27 Resource management based on device-specific or user-specific resource usage profiles

Publications (3)

Publication Number Publication Date
RU2016136181A RU2016136181A (ru) 2018-03-15
RU2016136181A3 RU2016136181A3 (ru) 2018-10-02
RU2683509C2 true RU2683509C2 (ru) 2019-03-28

Family

ID=54018574

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2016136181A RU2683509C2 (ru) 2014-03-10 2015-02-27 Диспетчеризация ресурсов на основании профилей использования ресурсов, зависящих от устройства или зависящих от пользователя

Country Status (11)

Country Link
US (2) US9871741B2 (ru)
EP (1) EP3117317B1 (ru)
JP (1) JP6509895B2 (ru)
KR (1) KR102275114B1 (ru)
CN (1) CN106104484B (ru)
AU (1) AU2015229885B2 (ru)
BR (1) BR112016020148B1 (ru)
CA (1) CA2939568C (ru)
MX (1) MX2016011616A (ru)
RU (1) RU2683509C2 (ru)
WO (1) WO2015138152A1 (ru)

Families Citing this family (73)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2495058B (en) 2010-07-26 2014-03-05 Seven Networks Inc Context aware traffic management for resource conservation in a wireless network
WO2013015835A1 (en) 2011-07-22 2013-01-31 Seven Networks, Inc. Mobile application traffic optimization
CN108400946B (zh) 2013-06-11 2019-09-17 杭州硕文软件有限公司 一种用于减少网络通信量的方法、装置、***及介质
EP3207762A4 (en) * 2014-10-17 2018-04-04 Seven Networks, LLC Collaborative policy management strategies at a mobile device
EP3062142B1 (en) 2015-02-26 2018-10-03 Nokia Technologies OY Apparatus for a near-eye display
US9983887B2 (en) * 2015-06-05 2018-05-29 Apple Inc. Memory management of data processing systems
US10275279B2 (en) * 2015-07-09 2019-04-30 International Business Machines Corporation Increasing the efficiency of scheduled and unscheduled computing tasks
US10296383B2 (en) * 2015-07-10 2019-05-21 Samsung Electronics Co., Ltd. Computing system with resource management mechanism and method of operation thereof
US9805324B2 (en) * 2015-09-16 2017-10-31 Sas Institute Inc. Computer-implemented system for modeling an allocated resource
US10552219B2 (en) * 2016-02-19 2020-02-04 Microsoft Technology Licensing, Llc Computing resource management of computing devices
EP4171105A1 (en) * 2016-03-29 2023-04-26 Huawei Technologies Co., Ltd. Resource statistics collection method and terminal
US10289347B2 (en) * 2016-04-26 2019-05-14 Servicenow, Inc. Detection and remediation of memory leaks
US10541879B2 (en) * 2016-07-29 2020-01-21 Microsoft Technology Licensing, Llc Multi-channel resource control system
CN107885591A (zh) * 2016-09-27 2018-04-06 华为技术有限公司 为应用分配***资源的方法和终端
CN107220077B (zh) 2016-10-20 2019-03-19 华为技术有限公司 应用启动的管控方法和管控设备
US20180129537A1 (en) * 2016-11-10 2018-05-10 Microsoft Technology Licensing, Llc Managing memory usage using soft memory targets
US20180173560A1 (en) * 2016-12-21 2018-06-21 Apple Inc. Processing circuit hardware resource allocation system
US10650552B2 (en) 2016-12-29 2020-05-12 Magic Leap, Inc. Systems and methods for augmented reality
EP4300160A3 (en) 2016-12-30 2024-05-29 Magic Leap, Inc. Polychromatic light out-coupling apparatus, near-eye displays comprising the same, and method of out-coupling polychromatic light
US11171854B2 (en) * 2017-01-13 2021-11-09 International Business Machines Corporation Application workload prediction
KR101884404B1 (ko) 2017-01-17 2018-08-02 부산대학교 산학협력단 중앙 집중식 제어 구조 서버를 갖는 포그 컴퓨팅 운용을 위한 시스템 및 그의 제어 방법
US10318888B2 (en) 2017-03-06 2019-06-11 International Business Machines Corporation Pre-backing virtual storage using historical learned data
CN107066336B (zh) * 2017-03-30 2021-05-18 联想(北京)有限公司 一种任务处理方法及电子设备、资源管理装置
CN106850692B (zh) * 2017-03-30 2020-03-20 成都长天信息技术有限公司 一种流媒体播放模式确定方法及装置
US10445208B2 (en) * 2017-06-23 2019-10-15 Microsoft Technology Licensing, Llc Tunable, efficient monitoring of capacity usage in distributed storage systems
US10447924B2 (en) * 2017-06-30 2019-10-15 Microsoft Technology Licensing, Llc Camera usage notification
US10578870B2 (en) 2017-07-26 2020-03-03 Magic Leap, Inc. Exit pupil expander
CN107402808B (zh) * 2017-07-31 2020-03-27 Oppo广东移动通信有限公司 进程管理方法、装置、存储介质及电子设备
US10810141B2 (en) * 2017-09-29 2020-10-20 Intel Corporation Memory control management of a processor
CN109697115B (zh) * 2017-10-20 2023-06-06 伊姆西Ip控股有限责任公司 用于调度应用的方法、装置以及计算机可读介质
CN109697121B (zh) * 2017-10-20 2023-05-05 伊姆西Ip控股有限责任公司 用于向应用分配处理资源的方法、设备和计算机可读介质
US10652308B2 (en) 2017-11-08 2020-05-12 International Business Machines Corporation Cognitive storage management for a mobile computing device
WO2019094771A1 (en) * 2017-11-10 2019-05-16 R-Stor Inc. System and method for scaling provisioned resources
US10733015B2 (en) 2017-11-21 2020-08-04 International Business Machines Corporation Prioritizing applications for diagonal scaling in a distributed computing environment
US10887250B2 (en) 2017-11-21 2021-01-05 International Business Machines Corporation Reducing resource allocations and application instances in diagonal scaling in a distributed computing environment
US10893000B2 (en) * 2017-11-21 2021-01-12 International Business Machines Corporation Diagonal scaling of resource allocations and application instances in a distributed computing environment
US10812407B2 (en) 2017-11-21 2020-10-20 International Business Machines Corporation Automatic diagonal scaling of workloads in a distributed computing environment
US10721179B2 (en) 2017-11-21 2020-07-21 International Business Machines Corporation Adaptive resource allocation operations based on historical data in a distributed computing environment
US10635501B2 (en) 2017-11-21 2020-04-28 International Business Machines Corporation Adaptive scaling of workloads in a distributed computing environment
CN111448497B (zh) 2017-12-10 2023-08-04 奇跃公司 光波导上的抗反射涂层
KR20200100720A (ko) 2017-12-20 2020-08-26 매직 립, 인코포레이티드 증강 현실 뷰잉 디바이스용 인서트
CN109947497B (zh) * 2017-12-20 2021-06-08 Oppo广东移动通信有限公司 应用程序预加载方法、装置、存储介质及移动终端
US10755676B2 (en) 2018-03-15 2020-08-25 Magic Leap, Inc. Image correction due to deformation of components of a viewing device
JP7114980B2 (ja) 2018-03-28 2022-08-09 株式会社リコー 情報処理システム、情報処理装置、情報処理方法及びプログラム
EP3803488A4 (en) 2018-05-30 2021-07-28 Magic Leap, Inc. COMPACT VARIABLE FOCUS CONFIGURATIONS
WO2019231850A1 (en) 2018-05-31 2019-12-05 Magic Leap, Inc. Radar head pose localization
WO2019236495A1 (en) 2018-06-05 2019-12-12 Magic Leap, Inc. Homography transformation matrices based temperature calibration of a viewing system
WO2019237099A1 (en) 2018-06-08 2019-12-12 Magic Leap, Inc. Augmented reality viewer with automated surface selection placement and content orientation placement
US11579441B2 (en) 2018-07-02 2023-02-14 Magic Leap, Inc. Pixel intensity modulation using modifying gain values
US11510027B2 (en) 2018-07-03 2022-11-22 Magic Leap, Inc. Systems and methods for virtual and augmented reality
US11856479B2 (en) 2018-07-03 2023-12-26 Magic Leap, Inc. Systems and methods for virtual and augmented reality along a route with markers
US10771619B1 (en) 2018-07-09 2020-09-08 Life360, Inc. Systems and methods for context-aware application and content access control
WO2020023543A1 (en) 2018-07-24 2020-01-30 Magic Leap, Inc. Viewing device with dust seal integration
JP7426982B2 (ja) 2018-07-24 2024-02-02 マジック リープ, インコーポレイテッド 移動検出デバイスの温度依存較正
US10735258B2 (en) * 2018-07-24 2020-08-04 Avaya Inc. System for self-allocating resources
US11112862B2 (en) 2018-08-02 2021-09-07 Magic Leap, Inc. Viewing system with interpupillary distance compensation based on head motion
WO2020028191A1 (en) 2018-08-03 2020-02-06 Magic Leap, Inc. Unfused pose-based drift correction of a fused pose of a totem in a user interaction system
US12016719B2 (en) 2018-08-22 2024-06-25 Magic Leap, Inc. Patient viewing system
CN109446048B (zh) * 2018-10-30 2023-12-22 深圳市科华通诚科技有限公司 一种后台管控方法、设备及计算机可读存储介质
CN117111304A (zh) 2018-11-16 2023-11-24 奇跃公司 用于保持图像清晰度的图像尺寸触发的澄清
CN112997150B (zh) * 2018-12-29 2023-12-08 深圳市欢太科技有限公司 应用程序的管理方法、装置、存储介质及电子设备
US11425189B2 (en) * 2019-02-06 2022-08-23 Magic Leap, Inc. Target intent-based clock speed determination and adjustment to limit total heat generated by multiple processors
US11762623B2 (en) 2019-03-12 2023-09-19 Magic Leap, Inc. Registration of local content between first and second augmented reality viewers
CN110069328B (zh) * 2019-03-25 2021-11-09 维沃移动通信有限公司 应用关闭方法及终端设备
EP3963565A4 (en) 2019-05-01 2022-10-12 Magic Leap, Inc. CONTENT DELIVERY SYSTEM AND PROCEDURES
JP2022542363A (ja) 2019-07-26 2022-10-03 マジック リープ, インコーポレイテッド 拡張現実のためのシステムおよび方法
KR20210023073A (ko) * 2019-08-22 2021-03-04 삼성전자주식회사 전자장치 및 그 제어방법
WO2021097323A1 (en) 2019-11-15 2021-05-20 Magic Leap, Inc. A viewing system for use in a surgical environment
CN111078404B (zh) * 2019-12-09 2023-07-11 腾讯科技(深圳)有限公司 一种计算资源确定方法、装置、电子设备及介质
KR20220046811A (ko) * 2020-10-08 2022-04-15 조선대학교산학협력단 클라우드 무선 접속 네트워크의 동적 리소스를 할당하는 장치 및 방법
KR20220102405A (ko) * 2021-01-13 2022-07-20 삼성전자주식회사 전자 장치 및 전자 장치의 동작 방법
CN113535398B (zh) * 2021-07-14 2024-02-27 广州虎牙科技有限公司 资源分配调整方法、装置、电子设备和可读存储介质
KR20230080535A (ko) * 2021-11-30 2023-06-07 삼성전자주식회사 메모리 회수 방법 및 장치

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040117380A1 (en) * 2002-12-13 2004-06-17 Perrow Michael S. System and method for command line prediction
US20070220371A1 (en) * 2006-02-06 2007-09-20 International Business Machines Corporation Technique for mapping goal violations to anamolies within a system
US20080005736A1 (en) * 2006-06-30 2008-01-03 Microsoft Corporation Reducing latencies in computing systems using probabilistic and/or decision-theoretic reasoning under scarce memory resources
US20100131959A1 (en) * 2008-11-26 2010-05-27 Spiers Adam Z Proactive application workload management
US20120110582A1 (en) * 2010-10-29 2012-05-03 International Business Machines Corporation Real-time computing resource monitoring
US20120144017A1 (en) * 2010-12-03 2012-06-07 International Business Machines Corporation Modeling and Reducing Power Consumption in Large IT Systems
US20120210326A1 (en) * 2011-02-14 2012-08-16 Microsoft Corporation Constrained Execution of Background Application Code on Mobile Devices
US20130097601A1 (en) * 2011-10-12 2013-04-18 International Business Machines Corporation Optimizing virtual machines placement in cloud computing environments

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100949420B1 (ko) * 2002-10-31 2010-03-24 파나소닉 주식회사 통신장치, 통신 시스템 및 알고리즘 선택방법
JP2006285871A (ja) * 2005-04-04 2006-10-19 Canon Inc 情報処理装置、制御方法、プログラム、及び記憶媒体
KR100690854B1 (ko) 2005-11-08 2007-03-09 엘지전자 주식회사 멀티태스킹이 가능한 휴대용 단말기 및 그의 멀티태스킹처리방법
WO2007071286A1 (en) 2005-12-21 2007-06-28 Real Enterprise Solutions Development B.V. Method of assigning a user session to one of a set of application servers
US8959515B2 (en) 2006-01-18 2015-02-17 International Business Machines Corporation Task scheduling policy for limited memory systems
KR100801894B1 (ko) 2006-06-15 2008-02-12 삼성전자주식회사 휴대용 단말기에서 메모리 용량을 고려한 프로그램 실행을위한 장치 및 방법
US8826281B2 (en) * 2006-11-07 2014-09-02 Microsoft Corporation Managing document publication using time-driven job scheduling
US20080115141A1 (en) * 2006-11-15 2008-05-15 Bharat Welingkar Dynamic resource management
US8584131B2 (en) * 2007-03-30 2013-11-12 International Business Machines Corporation Method and system for modeling and analyzing computing resource requirements of software applications in a shared and distributed computing environment
US8042119B2 (en) * 2007-05-14 2011-10-18 Teradata Us, Inc. States matrix for workload management simplification
US20090025004A1 (en) * 2007-07-16 2009-01-22 Microsoft Corporation Scheduling by Growing and Shrinking Resource Allocation
US8139533B2 (en) * 2007-11-05 2012-03-20 Qualcomm Incorporated Division of the scheduling algorithm into background and foreground algorithms
KR20100021725A (ko) 2008-08-18 2010-02-26 삼성전자주식회사 이동통신 단말기의 메모리 재할당 장치 및 방법
KR101403808B1 (ko) * 2010-08-23 2014-06-11 한국전자통신연구원 이용 패턴에 따라 어플리케이션 서비스를 실행하는 모바일 단말 장치 및 그의 어플리케이션 서비스 실행 방법
WO2012031799A1 (en) 2010-09-09 2012-03-15 Siemens Aktiengesellschaft A system to manage power consumption of a processor at run time
US8635630B2 (en) 2010-10-25 2014-01-21 Microsoft Corporation Application lifetime management
JP2012094030A (ja) * 2010-10-28 2012-05-17 Hitachi Ltd 計算機システム及び処理制御方法
KR20120077265A (ko) 2010-12-30 2012-07-10 주식회사 팬택 이동 단말기 및 이동 단말기의 제어 방법
CN103443770B (zh) * 2011-03-19 2017-12-12 富士通株式会社 终端装置、进程管理方法以及进程管理程序
EP2538327A1 (en) 2011-06-16 2012-12-26 Samsung Electronics Co., Ltd. Adaptive Termination and Pre-Launching Policy for Improving Application Startup Time
US9032413B2 (en) * 2011-09-01 2015-05-12 Microsoft Technology Licensing, Llc Decoupling background work and foreground work
US8578394B2 (en) 2011-09-09 2013-11-05 Microsoft Corporation Exempting applications from suspension
CN103024825B (zh) 2011-09-26 2015-07-01 ***通信集团公司 终端多应用间网络资源分配方法及其设备
US9164803B2 (en) * 2012-01-20 2015-10-20 Microsoft Technology Licensing, Llc Background task resource control
US9118520B1 (en) * 2012-04-20 2015-08-25 Symantec Corporation Systems and methods for monitoring application resource usage on mobile computing systems
US8725800B1 (en) * 2012-10-02 2014-05-13 Nextbit Systems Inc. Mobile photo application migration to cloud computing platform
US9992301B2 (en) * 2013-06-26 2018-06-05 Sap Se Prioritized throttling in a multiusage environment
US20150244645A1 (en) * 2014-02-26 2015-08-27 Ca, Inc. Intelligent infrastructure capacity management

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040117380A1 (en) * 2002-12-13 2004-06-17 Perrow Michael S. System and method for command line prediction
US20070220371A1 (en) * 2006-02-06 2007-09-20 International Business Machines Corporation Technique for mapping goal violations to anamolies within a system
US20080005736A1 (en) * 2006-06-30 2008-01-03 Microsoft Corporation Reducing latencies in computing systems using probabilistic and/or decision-theoretic reasoning under scarce memory resources
US20100131959A1 (en) * 2008-11-26 2010-05-27 Spiers Adam Z Proactive application workload management
US20120110582A1 (en) * 2010-10-29 2012-05-03 International Business Machines Corporation Real-time computing resource monitoring
US20120144017A1 (en) * 2010-12-03 2012-06-07 International Business Machines Corporation Modeling and Reducing Power Consumption in Large IT Systems
US20120210326A1 (en) * 2011-02-14 2012-08-16 Microsoft Corporation Constrained Execution of Background Application Code on Mobile Devices
US20130097601A1 (en) * 2011-10-12 2013-04-18 International Business Machines Corporation Optimizing virtual machines placement in cloud computing environments

Also Published As

Publication number Publication date
BR112016020148A2 (pt) 2017-08-15
BR112016020148B1 (pt) 2022-08-30
EP3117317A1 (en) 2017-01-18
JP6509895B2 (ja) 2019-05-08
CA2939568A1 (en) 2015-09-17
BR112016020148A8 (pt) 2021-06-15
EP3117317B1 (en) 2020-11-25
RU2016136181A (ru) 2018-03-15
US9871741B2 (en) 2018-01-16
AU2015229885A1 (en) 2016-09-08
KR20160132439A (ko) 2016-11-18
JP2017511940A (ja) 2017-04-27
CA2939568C (en) 2021-11-02
AU2015229885B2 (en) 2019-09-12
RU2016136181A3 (ru) 2018-10-02
MX2016011616A (es) 2016-11-29
US20150256476A1 (en) 2015-09-10
WO2015138152A1 (en) 2015-09-17
CN106104484B (zh) 2020-04-03
KR102275114B1 (ko) 2021-07-07
US10182018B2 (en) 2019-01-15
CN106104484A (zh) 2016-11-09
US20180102981A1 (en) 2018-04-12

Similar Documents

Publication Publication Date Title
RU2683509C2 (ru) Диспетчеризация ресурсов на основании профилей использования ресурсов, зависящих от устройства или зависящих от пользователя
US9678797B2 (en) Dynamic resource management for multi-process applications
CN110678844B (zh) 基于租户排名来控制租户服务
EP2893444B1 (en) Quota-based resource management
CN106415296B (zh) 自适应电池寿命延长
CN108139933B (zh) 优化物理和虚拟电话移动性的方法、设备、***和介质
US9519490B2 (en) Adaptive data synchronization
EP3418888A1 (en) Task scheduling method and electronic device for implementing same
JP2017529585A (ja) マルチテナント・システムにおける処理変更
US11431182B2 (en) Resource statistics collection method and apparatus and terminal
WO2019128571A1 (zh) 资源管理方法、装置、移动终端及计算机可读存储介质
CN113439263A (zh) 应用清理方法、装置、存储介质及电子设备
JP2016115212A (ja) ソフトウェア決定装置、端末装置、ソフトウェア決定方法、ソフトウェア決定プログラムおよび通信システム
CN112035324A (zh) 批量作业执行情况监控方法及装置
US20230342218A1 (en) Automated dynamic resource configuration for hard provisioned virtual machines
US20230342170A1 (en) Automated analysis and dynamic resource configuration for hard provisioned virtual machines