ДИНАМИЧЕСКОЕ УПРАВЛЕНИЕ РЕСУРСАМИ ДЛЯ МНОГОЗАДАЧНЫХ ПРИЛОЖЕНИЙ

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