иерархическая инфраструктура планирования резервирования ресурсов
Классы МПК: | G06F9/50 Распределение ресурсов, например центрального процессора (ЦП) |
Автор(ы): | ПАПАЕФСТАТИУ Ефстатиос (US), ТРАУБРИДЖ Шон Е. (US), ТРИББЛ Эрик Дин (US), ОКС Станислав А. (US) |
Патентообладатель(и): | МАЙКРОСОФТ КОРПОРЕЙШН (US) |
Приоритеты: |
подача заявки:
2008-10-07 публикация патента:
10.05.2013 |
Изобретение относится к области планирования и резервирования системных ресурсов. Техническим результатом является повышение эффективности планирования системных ресурсов. Выполняется обращение к политике планирования системных ресурсов для операций планирования в рабочей нагрузке. Политика задается на основе рабочей нагрузки таким образом, чтобы политика зависела от рабочей нагрузки. Системные ресурсы резервируются для рабочей нагрузки согласно политике. Резервирования могут иметь иерархическую природу, причем рабочие нагрузки также иерархически упорядочены. Кроме того, механизмы диспетчеризации для диспетчеризации рабочих нагрузок на системные ресурсы можно реализовать независимо от политик. Обратную связь в отношении использования системных ресурсов можно использовать для определения выбора политики для управления механизмами диспетчеризации. 3 н. и 16 з.п. ф-лы, 8 ил.
Формула изобретения
1. Реализуемый в вычислительном окружении способ планирования системных ресурсов, содержащий этапы, на которых
назначают политику планирования системных ресурсов для операций планирования в рабочей нагрузке, причем эта политика задается на основе рабочей нагрузки таким образом, чтобы данная политика зависела от этой рабочей нагрузки, при этом политика содержит основывающуюся на скорости политику, определяющую процентную долю системных ресурсов, которая должна быть выделена для выполнения операций, связанных с основывающейся на скорости политикой; и
реализуют резервирование рабочей нагрузки посредством резервирования системных ресурсов для рабочей нагрузки согласно основывающейся на скорости политике, при этом при реализации резервирования рабочей нагрузки назначают два пороговых параметра мощности для резервирования рабочей нагрузки, включая мягкое требование по мощности и жесткое требование по мощности, причем мягкое требование по мощности определяет мощность системных ресурсов, требующуюся для достижения конкретного уровня рабочих характеристик во время выполнения рабочей нагрузки, а жесткое требование по мощности определяет минимальную мощность системных ресурсов, необходимую для выполнения рабочей нагрузки.
2. Способ по п.1, дополнительно содержащий этап, на котором резервируют, по меньшей мере, часть оставшихся незапланированных системных ресурсов для других рабочих нагрузок с использованием политики планирования системы по умолчанию.
3. Способ по п.1, в котором упомянутая рабочая нагрузка иерархически ниже другой рабочей нагрузки, при этом резервирование системных ресурсов для упомянутой рабочей нагрузки осуществляется согласно как упомянутой политике для рабочей нагрузки, так и политике для упомянутой другой рабочей нагрузки, иерархически более высокой, чем упомянутая рабочая нагрузка.
4. Способ по п.1, дополнительно содержащий этап, на котором выполняют планирование в отношении, по меньшей мере, другой политики, определяющей резервирование ресурсов по мощности или определяющей резервирование ресурсов по предельному сроку.
5. Способ по п.1, в котором системные ресурсы представляют собой по меньшей мере одно из ресурсов процессора, сетевых ресурсов, ресурсов памяти и дисковых ресурсов.
6. Способ по п.1, в котором при резервировании системных ресурсов для рабочей нагрузки согласно политике:
сверяются с планами выполнения для совокупности системных ресурсов, причем каждый системный ресурс из этой совокупности системных ресурсов содержит устройство одного и того же типа; и
на основе этих планов выполнения резервируют системные ресурсы с ориентацией на выравнивание нагрузки рабочих нагрузок в упомянутой совокупности системных ресурсов.
7. Способ по п.1, в котором при резервировании системных ресурсов для рабочей нагрузки согласно политике:
сверяются с планами выполнения для совокупности системных ресурсов, причем каждый системный ресурс из этой совокупности системных ресурсов содержит устройство одного и того же типа; и
на основе этих планов выполнения резервируют системные ресурсы с ориентацией на перемещение рабочих нагрузок от одного устройства к другому устройству.
8. Способ по п.1, в котором при резервировании системных ресурсов для рабочей нагрузки согласно политике:
сверяются с планами выполнения для совокупности системных ресурсов, причем каждый системный ресурс из этой совокупности системных ресурсов содержит устройство одного и того же типа; и
на основе этих планов выполнения резервируют системные ресурсы с ориентацией на применение ограничительных квот.
9. Способ по п.1, дополнительно содержащий этапы, на которых
система управления резервированием пытается удовлетворить мягкому требованию по мощности для резервирования рабочей нагрузки;
системе управления резервированием не удается удовлетворить мягкому требованию по мощности; и
система управления резервированием пытается удовлетворить жесткому требованию по мощности вместо мягкого требования по мощности.
10. Способ по п.9, дополнительно содержащий этапы, на которых
системе управления резервированием не удается удовлетворить жесткому требованию по мощности; и
система управления резервированием воздерживается от исполнения приложения, ассоциированного с рабочей нагрузкой, в качестве реакции на то, что не удалось удовлетворить жесткому требованию по мощности.
11. Реализуемый в вычислительном окружении способ выполнения рабочих нагрузок с использованием системных ресурсов, причем системные ресурсы резервируются для рабочих нагрузок согласно политикам, зависящим от системы, и при этом резервирование используется рабочими нагрузками для применения политик, зависящих от рабочей нагрузки, причем способ содержит этапы, на которых
(a) выбирают основывающуюся на скорости политику для операций планирования в рабочей нагрузке, при этом основывающаяся на скорости политика определяет процентную долю системных ресурсов, которая должна быть выделена для выполнения основывающейся на скорости политики;
(b) используют основывающуюся на скорости политику для назначения резервирования рабочей нагрузки для системных ресурсов и для диспетчеризации рабочей нагрузки в отношении системных ресурсов на основе резервирования рабочей нагрузки, при этом резервирование рабочей нагрузки включает в себя два пороговых параметра мощности, включая мягкое требование по мощности и жесткое требование по мощности, причем мягкое требование по мощности определяет мощность системных ресурсов, требующуюся для достижения конкретного уровня рабочих характеристик во время выполнения рабочей нагрузки, а жесткое требование по мощности определяет минимальную мощность системных ресурсов, необходимую для выполнения рабочей нагрузки;
(c) принимают обратную связь, включающую в себя информацию об использованиях системы при выполнении рабочей нагрузки; и
(d) принимают решения по политикам на основе этой обратной связи для дополнительной диспетчеризации рабочих нагрузок в отношении системных ресурсов.
12. Способ по п.11, дополнительно содержащий этап, на котором повторяют этапы (b)-(d) для выполнения совокупности рабочих нагрузок согласно разным политикам, заданным для рабочих нагрузок.
13. Способ по п.11, в котором системные ресурсы представляют собой по меньшей мере одно из ресурсов процессора, сетевых ресурсов, ресурсов памяти и дисковых ресурсов.
14. Способ по п.11, в котором при использовании политики для диспетчеризации рабочей нагрузки в отношении системного ресурса
принимают на диспетчере, реализованном отдельно от политики, благодаря чему диспетчер действует независимо от любой конкретной политики, информацию из политики, указывающую рабочую нагрузку, подлежащую выполнению системными ресурсами, и
на диспетчере выбирают рабочую нагрузку и предписывают системным ресурсам выполнять рабочую нагрузку.
15. Способ по п.11, в котором при принятии решений по политикам на основе обратной связи для дополнительной диспетчеризации рабочих нагрузок в отношении системного ресурса выбирают новую политику или ту же самую политику на основе упомянутой обратной связи.
16. Реализуемый в вычислительном окружении способ выполнения рабочих нагрузок на системном ресурсе, содержащий этапы, на которых
обращаются к одной или нескольким политикам планирования системного ресурса, причем эти политики предназначены для операций планирования в одной или нескольких рабочих нагрузках, причем упомянутые политики задаются на основе рабочей нагрузки таким образом, чтобы заданная политика зависела от заданной рабочей нагрузки, при этом по меньшей мере одна из этих политик содержит основывающуюся на скорости политику, определяющую процентную долю системных ресурсов, которая должна быть выделена для выполнения этой основывающейся на скорости политики;
составляют план выполнения, который указывает резервирования системного ресурса согласно упомянутым политикам, при этом при составлении плана выполнения добавляют упомянутую основывающуюся на скорости политику в план выполнения, когда определено, что в пределах плана выполнения существует интервал, имеющий достаточную длительность и частоту для удовлетворения требования касающегося заранее заданного интервала упомянутой, основывающейся на скорости политики, при этом каждое из резервирований включает в себя
мягкое требование по мощности, определяющее мощность системных ресурсов, требующуюся для достижения конкретного уровня рабочих характеристик во время выполнения рабочей нагрузки, и
жесткое требование по мощности, определяющее минимальную мощность системных ресурсов, необходимую для выполнения рабочей нагрузки; и
диспетчеризуют рабочие нагрузки на системный ресурс на основе плана выполнения.
17. Способ по п.16, в котором при составлении плана выполнения включают требование, касающееся заранее заданного интервала для выполнения основывающейся на скорости политики и основывающееся на мощности резервирование, которое отличается от основывающегося на скорости резервирования, в один и тот же план выполнения.
18. Способ по п.16, в котором при составлении плана выполнения включают резервирования на основе политик, которые иерархически связаны между собой.
19. Способ по п.16, в котором при диспетчеризации рабочих нагрузок в отношении системного ресурса на основе плана выполнения на диспетчере, реализованном отдельно от политики, благодаря чему диспетчер действует независимо от любой конкретной политики, принимают указание рабочей нагрузки, подлежащей выполнению системными ресурсами, и на диспетчере выбирают рабочую нагрузку и предписывают системным ресурсам выполнять рабочую нагрузку.
Описание изобретения к патенту
Предшествующий уровень техники
Компьютеры и вычислительные системы влияют на практически каждый аспект современной жизни. Компьютеры широко применяются на рабочих местах, в местах отдыха, учреждениях здравоохранения, на транспорте, в развлекательных целях, для ведения домашнего хозяйства и т.д. Многие компьютеры, в том числе компьютеры общего назначения, например домашние компьютеры, рабочие станции на предприятиях и другие системы осуществляют самые разнообразные операции. Операции можно группировать в рабочие нагрузки, где рабочая нагрузка задает набор операций для решения конкретной задачи или достижения конкретной цели. Например, одна рабочая нагрузка может иметь своей целью реализацию приложения медиаплеера. Другая рабочая нагрузка может иметь своей целью реализацию приложения текстового редактора. Прочие рабочие нагрузки могут иметь своей целью реализацию службы календаря, электронной почты или других приложений управления. Как указано выше, несколько разных рабочих нагрузок могут совместно действовать в системе.
Чтобы рабочие нагрузки могли совместно действовать в системе, системные ресурсы нужно правильно планировать и выделять разным рабочим нагрузкам. Например, один системный ресурс включает в себя процессор. Процессор может иметь способность осуществлять декодирование цифровых мультимедийных данных для приложения медиаплеера, хинтовку шрифтов и другие функции отображения для приложения текстового редактора, и алгоритмические вычисления для приложений управления персоналом. Однако один процессор обычно может единовременно выполнять одно или ограниченное количество заданий в любой момент времени. Таким образом, алгоритм планирования может планировать потребление системных ресурсов, например процессора, чтобы системные ресурсы могли распределяться между различными рабочими нагрузками.
Обычно планирование системных ресурсов осуществляется с использованием алгоритма общего назначения для всех рабочих нагрузок независимо от природы разных рабочих нагрузок. Другими словами, для заданной системы планирование системных ресурсов осуществляется с использованием общесистемных политик, независимых от рабочей нагрузки.
Заявленное изобретение не ограничивается вариантами осуществления, которые позволяют преодолеть те или иные недостатки уровня техники или реализуются только в вышеописанных окружениях. Напротив, это описание предшествующего уровня техники призвано лишь иллюстрировать одну из областей технологии, где можно практически использовать некоторые описанные здесь варианты осуществления.
Сущность изобретения
Один описанный здесь вариант осуществления включает в себя способ планирования системных ресурсов. Способ включает в себя этап, на котором назначают политику планирования системных ресурсов для рабочей нагрузки. Политика предназначена для планирования операций рабочей нагрузки в рабочей нагрузке. Политика задается на основе рабочей нагрузки таким образом, чтобы политика зависела от рабочей нагрузки. Системные ресурсы резервируются для рабочей нагрузки согласно политике.
Другой вариант осуществления включает в себя способ выполнения рабочих нагрузок с использованием системных ресурсов. Системные ресурсы резервируются в резервированиях для рабочих нагрузок согласно политикам, зависящим от системы, причем резервирования используются рабочими нагрузками для применения политик, зависящих от рабочей нагрузки. Способ включает в себя этап, на котором выбирают политику. Политика предназначена для планирования операций рабочей нагрузки в рабочей нагрузке. Политика используется для диспетчеризации рабочей нагрузки по отношению к системному ресурсу. Принимается обратная связь, включающая в себя информацию об использованиях системы при выполнении рабочей нагрузки. Решения по политикам принимаются на основании этой обратной связи для дополнительной диспетчеризации рабочих нагрузок по отношению к системному ресурсу.
В еще одном варианте осуществления реализован способ выполнения рабочих нагрузок на системном ресурсе. Способ включает в себя этап, на котором обращаются к одной или нескольким политикам планирования системного ресурса для одной или нескольких рабочих нагрузок. Политики предназначены для планирования операций рабочей нагрузки в рабочей нагрузке и задаются на основе рабочей нагрузки таким образом, чтобы заданная политика зависела от заданной рабочей нагрузки. Составляется план выполнения, который указывает резервирования системного ресурса согласно политикам. Рабочие нагрузки диспечеризуются по отношению к системному ресурсу на основании плана выполнения.
Это краткое изложение сущности изобретения призвано обозначить в упрощенном виде основные концепции, которые дополнительно описаны ниже в подробном описании. Это краткое изложение сущности изобретения не призвано выявлять ключевые признаки или существенные признаки заявленного изобретения и никоим образом не определяет объем заявленного изобретения.
Дополнительные признаки и преимущества изложены в нижеследующем описании и частично могут быть поняты из описания или могут быть изучены путем практического применения идей изобретения. Признаки и преимущества изобретения можно реализовать и получить посредством инструментов и комбинаций, конкретно указанных в формуле изобретения. Признаки настоящего изобретения можно лучше понять из нижеследующего описания и формулы изобретения или можно изучить путем практического применения изобретения согласно изложенному ниже.
Краткое описание чертежей
Для описания того, каким образом можно получить вышеописанные и другие преимущества и признаки изобретения, более конкретное описание изобретения, кратко изложенного выше, будет представлено со ссылкой на конкретные варианты его осуществления, которые проиллюстрированы в прилагаемых чертежах. С учетом того, что эти чертежи изображают лишь типичные варианты осуществления изобретения и, таким образом, не призваны ограничивать его объем, изобретение будет описано и объяснено с дополнительной степенью конкретизации и детализации с использованием прилагаемых чертежей, в которых:
фиг.1 - иерархическая структура рабочих нагрузок и политик;
фиг.2 - план выполнения, демонстрирующий резервирования системных ресурсов;
фиг.3 - схема, демонстрирующая систему управления ресурсами и системные ресурсы;
фиг.4 - иллюстративная схема управления процессором;
фиг.5 - схема менеджера ресурсов устройств;
фиг.6 - блок-схема способа резервирования системных ресурсов;
фиг.7 - блок-схема способа управления системными ресурсами согласно резервированиям; и
фиг.8 - иллюстративное окружение, где можно реализовать некоторые варианты осуществления.
Подробное описание
Некоторые описанные здесь варианты осуществления могут содержать компьютер специального назначения или общего назначения, включающий в себя различное компьютерное оборудование, более подробно рассмотренное ниже. Некоторые варианты осуществления также могут включать в себя различные этапы способа.
Можно реализовать варианты осуществления, где политики резервирования системных ресурсов для операций рабочей нагрузки применяются согласно политике, зависящей от рабочей нагрузки. Другими словами, резервирование ресурсов осуществляется согласно не общим, многоцелевым политикам, применимым, в целом, ко всем рабочим нагрузкам, запланированным с системными ресурсами, но системные ресурсы планируются на основании политики, заданной специально для заданной рабочей нагрузки. Кроме того, можно реализовать варианты осуществления, где резервирования для рабочих нагрузок могут осуществляться согласно иерархически применяемым политикам. На фиг.1 показаны некоторые принципы, демонстрирующие один вариант осуществления, реализующий различные признаки и аспекты, которые можно применять к некоторым вариантам осуществления.
На фиг.1 показаны системные ресурсы 100. Системные ресурсы могут включать в себя, например, аппаратные ресурсы, например ресурсы обработки, ресурсы сетевого адаптера, ресурсы памяти, дисковые ресурсы и т.д. Системные ресурсы могут выполнять рабочие нагрузки. Рабочие нагрузки включают в себя служебные запросы, генерируемые программами, к системным ресурсам. Например, рабочие нагрузки, пригодные для процессоров, включают в себя, например, запросы на осуществление процессорных вычислений. Рабочие нагрузки, пригодные для ресурсов сетевого адаптера, включают в себя, например, сетевые операции передачи и приема, использование полосы пропускания сети и т.д. Рабочие нагрузки, пригодные для ресурсов памяти, включают в себя, например, операции чтения из памяти и записи в память. Рабочие нагрузки, пригодные для дисковых ресурсов, включают в себя, например, операции чтения с диска и записи на диск.
В зависимости от контекста, рабочая нагрузка может относиться к шаблонам запроса, генерируемым программами в результате действий пользователя или другой программы, и может представлять разные уровни детализации запроса. Например, рабочая нагрузка электронной торговли может распространяться на множественные серверы и предусматривает определенный шаблон запроса ресурса, генерируемый конечными пользователями или другими бизнес-функциями.
Рабочие нагрузки можно задавать в единицах объектов выполнения. Объект выполнения является экземпляром абстракции рабочей нагрузки, которая потребляет ресурсы. Например, объектом выполнения может быть поток выполнения, который потребляет ресурсы процессора и памяти, сокет, который потребляет полосу NIC, дескриптор файла, который потребляет емкость диска, и т.д.
Системные ресурсы могут резервироваться для рабочих нагрузок. Две рабочие нагрузки, показанные на фиг.1, включают в себя рабочую нагрузку 102 медиаплеера и рабочую нагрузку 104 текстового редактора. Каждая из этих рабочих нагрузок задает операции, используемые в реализации приложений медиаплеера и текстового редактора соответственно. На фиг.1 дополнительно показано, что с этими двумя рабочими нагрузками связаны разные политики 106 и 108 соответственно. Эти политики указывают, как следует резервировать системные ресурсы 100 для планирования для выполнения рабочих нагрузок 102 и 104.
Можно реализовать различные политики. Например, одна политика является основывающейся на скорости политикой резервирования. Резервирования на основе скорости включают в себя повторяющиеся резервирования в виде процента емкости системного ресурса с заранее определенными интервалами. Например, политика резервирования на основе скорости может указывать, что следует резервировать квант циклов процессора. Например, политика резервирования на основе скорости может указывать, что 2000 из каждого 1000000 циклов процессора нужно выделять рабочей нагрузке, к которой применяется эта политика. Этот тип резервирования обычно пригоден для интерактивных рабочих нагрузок. Пример этой политики проиллюстрирован для рабочей нагрузки 102 медиаплеера, где политика 106 указывает, что 1 мс из каждых 10 мс следует резервировать для рабочей нагрузки 102 медиаплеера.
Другая политика относится к резервированиям на основе мощности. Резервирования на основе мощности указывают процент мощности устройства без ограничений на временные рамки, в течение которых мощность должна быть доступной. Эти типы политик можно планировать более гибко в качестве гарантии того, что резервирование не имеет временных рамок. Пример этого проиллюстрирован для рабочей нагрузки 104 текстового редактора, где политика 108 указывает, что 10% системных ресурсов 100 следует резервировать для рабочей нагрузки 104 текстового редактора.
Примечательно, что политики 106 и 108 зависят от их соответствующих приложений, в том смысле, что политики задаются для конкретного приложения. Связь с конкретным приложением может осуществляться путем специального связывания каждого приложения с политикой. В других вариантах осуществления типы приложений могут быть связаны с политикой. В объеме раскрытых здесь вариантов осуществления также можно реализовать другие группировки.
Согласно фиг.1 каждое резервирование может дополнительно делиться на субрезервирования. Используя резервирование и субрезервирования, можно создать древовидную иерархию резервирований и используемых по умолчанию политик. Концевые узлы иерархии включают в себя политики резервирования. Например, на фиг.1 показано, что рабочая нагрузка 110 кодека и рабочая нагрузка 112 дисплея иерархически ниже рабочей нагрузки 102 медиаплеера. С этими рабочими нагрузками связаны политики 114 и 116 соответственно. Эти политики 114 и 116 иерархически ниже политики 106 для рабочей нагрузки 102 медиаплеера. На фиг.1 дополнительно показаны другие иерархически упорядоченные рабочие нагрузки и политики. Например, рабочие нагрузки 118, 120 и 122 кодека иерархически ниже рабочей нагрузки 110 кодека. Аналогично, политики 124, 126 и 128 иерархически ниже политики 114. На фиг.1 также показано, что рабочие нагрузки 130 и 132 иерархически ниже рабочей нагрузки 104 и что политики 134 и 136 иерархически ниже политики 108.
На фиг.1 показано, что политики, в этом примере, могут указывать резервирования в отношении резервирования на основе мощности, указывающего процент ресурсов, например показано, что рабочая нагрузка 104 текстового редактора составляет 10% суммарных системных ресурсов 100. Показано, что это резервирование 10% суммарных системных ресурсов можно распределить между иерархически более низким рабочими нагрузками, например, показанными на фиг.1, где политика 134 указывает, что 6% суммарных системных ресурсов следует резервировать для рабочей нагрузки 134 UI, и политика 136 указывает, что 2% суммарных системных ресурсов следует резервировать для рабочей нагрузки 132 хинтовки шрифтов. На фиг.1 дополнительно показано, что политика 106 указывает политику на основе скорости, где политика 106 указывает, что 1 мс из каждых 10 мс следует резервировать для рабочей нагрузки 102 медиаплеера.
Резервирования можно осуществлять в некоторых вариантах осуществления с двумя пороговыми параметрами мощности, а именно мягким и жестким. Мягкий параметр указывает более высокие или равные требования к системному ресурсу по отношению к жесткой мощности. Мягкое значение - это запрашиваемая мощность для достижения оптимальных рабочих характеристик. Жесткое значение - это минимальное значение резервирования, необходимое для выполнения рабочей нагрузки. В некоторых вариантах осуществления система управления резервированием пытается удовлетворять мягкому требованию к мощности, но если мягкое требование к мощности невозможно удовлетворить, система управления резервированием попытается использовать вместо него жесткое значение. Система управления резервированием может сокращать резервирование, например сокращая объем ресурсов, резервируемых для операций. В отсутствие мощности в устройстве для жесткого значения мощности, в некоторых вариантах осуществления система управления резервированием не будет запускать приложение.
Помимо порогов, резервирования могут быть связаны со срочностью резервирования. Срочность резервирования - это метрика, которая определяет надлежащий приоритет для резервирований. Срочность резервирования применима, когда система перегружена, и система управления резервированием может выделять ресурсы только части ожидающих резервирований. При попытке выполнения резервирования более высокой срочности, система управления резервированием извещает приложение с резервированием более низкой срочности, чем оно должно освободить свое резервирование. Извещение доходит до завершения приложения, если резервирование не освобождается. Заметим, что срочность резервирования не обязательно подразумевает механизм планирования с вытеснением, но может предусматривать приоритет выделения, который применяется при запросе нового резервирования и отсутствии доступных ресурсов.
Любой объект выполнения, не имеющий требований к резервированию для политики, зависящих от объекта, можно планировать с использованием политики по умолчанию. На фиг.1 показан ряд политик по умолчанию, включая политики 138, 140 и 142. Система управления резервированием назначает все временные слоты, не зарезервированные с помощью резервирований на основе скорости, либо резервированию на основе мощности, либо политике по умолчанию. Политики по умолчанию для всех устройств могут быть одинаковыми в пределах системы. Это делается для упрощения операций выравнивания нагрузки. Заметим, что политики по умолчанию могут включать в себя более чем просто любую оставшуюся мощность. Например, в то время как политика 108 указывает резервирование 10% и политика 106 указывает резервирование 10% на основании номинальной мощности, используется по умолчанию политика планирования 138, в отсутствие каких-либо других резервирований, будет иметь, по меньшей мере, 80% системных ресурсов, которые можно планировать. Доступные ресурсы для политики 138 по умолчанию могут превышать 80%, если можно определить, что одна или обе из рабочей нагрузки 102 медиаплеера и рабочей нагрузки 104 текстового редактора не требуют своего полного резервирования, и, таким образом, участки резервирований системного ресурса возвращаются для использования политикой планирования 138 по умолчанию.
Используемое по умолчанию резервирование может быть связано с политикой в плане манипулирования остатком выделения ресурсов. По аналогии с корневым узлом, каждое субрезервирование может включать в себя используемую по умолчанию политику размещения для объектов выполнения, которые будут работать в ее контексте и не будут иметь дополнительных требований к резервированию. Например, политики 140 и 142 по умолчанию используются для планирования субрезервирований по умолчанию.
План выполнения представляет собой абстракцию, используемую компонентами системы управления ресурсами для получения информации, касающейся резервирований и мощности устройства. В частности, план выполнения представляет собой низкоуровневый план, который представляет ресурс резервирования, который будет задействован диспетчером. Иллюстративный план выполнения представлен на фиг.2. План выполнения 200 демонстрирует планирование системных ресурсов согласно резервированиям. Показанный план выполнения 200 представляет собой план выполнения на основе времени для системных ресурсов, например процессоров. Хотя в этом примере показан план выполнения на основе времени, очевидно, что для других устройств можно реализовать другие планы выполнения. Например, план выполнения для сетевых устройств можно представить в виде последовательности пакетов, которые будут передаваться по тракту связи. Другие примеры включают в себя фрагменты кучи для памяти, блоки для дисков и т.д. Возвращаясь к примеру на основе времени, план выполнения является последовательностью фрагментов времени, управляемых согласно отдельной политике, отвечающей за расходование фрагмента времени. Политика, обладающая фрагментом времени резервирования, может использовать кванты для дополнительной фрагментации резервирования по времени на более короткие интервалы для мультиплексирования между объектами выполнения, которыми она управляет. Размер фрагмента зависит от контекста устройства, например процессор может зависеть от разрешения таймера, NIC - от размера пакета, память - от размера кучи, диски - от блоков и т.д.
План выполнения 200 демонстрирует первое резервирование 202 для рабочей нагрузки 102 медиаплеера и второе резервирование 204 для рабочей нагрузки 104 текстового редактора. План выполнения 200, в показанном примере, демонстрирует временные периоды ресурсов, которые зарезервированы для конкретной рабочей нагрузки. Хотя в этом примере показано, что резервирования 202 и 204 повторно возникают на периодической основе, также можно реализовать другие выделения в зависимости от политики, используемой для планирования резервирования. Например, резервирование 202 должно быть более периодическим по своей природе, ввиду требования, чтобы 1 мс из каждых 10 мс резервировалась для рабочей нагрузки 102 медиаплеера. Однако резервирование 204 может обладать большей гибкостью, поскольку политика для планирования рабочей нагрузки просто указывает 10% системных ресурсов.
План выполнения можно использовать для нескольких функций. В одном примере план выполнения можно использовать для оценивания того, достаточна ли имеющаяся мощность устройства для нового резервирования. Например, план выполнения 200 включает в себя указание 206 имеющихся системных ресурсов на основе времени. При приеме запроса резервирования, можно сверяться с этим указанием 206 для определения того, можно ли обслужить этот запрос резервирования.
План выполнения также можно использовать для оценивания того, имеется ли интервал для удовлетворения требования к резервированию на основе скорости. Устройство должно иметь достаточную мощность, чтобы удовлетворять требованию к резервированию, но может не оказаться соответствующего слота, отвечающего частоте и длительности резервирования, при наличии состязания с существующим резервированием на основе скорости.
План выполнения также можно использовать для создания последовательности операций, которую менеджер (средство управления) резервирования может эффективно проходить для выбора контекста новой политики. Это более подробно рассмотрено ниже в связи с описанием фиг.3.
Вычисление плана выполнения зачастую является дорогостоящей операцией, которая имеет место при назначении устройству нового резервирования или смене конфигурации резервирования. В одном варианте осуществления план вычисляется менеджером ресурсов устройств.
Резервирования используют метрику мощности, которая зависит от типа устройства. Эта метрика должна быть не зависимой от ресурсов и конфигурации операционной системы. Однако операционная система может предоставлять информацию о мощности устройства.
Резервирования на основе мощности можно планировать либо статически как часть плана выполнения, либо динамически в порядке выделения фрагментов времени менеджером резервирования. Статические резервирования могут включать в себя, например, назначение предварительно назначаемых подразделений ресурсов, в отличие от динамического оценивания и назначения ресурсов. Статическое выделение имеет преимущество в снижении служебной нагрузки менеджера ресурсов. Динамическое выделение обеспечивает более высокую гибкость при манипулировании нагрузками, действующими в используемой по умолчанию политике на одном и том же уровне иерархии планирования.
На фиг.3 показана система архитектуры управления резервированием 300. Вышеописанная иерархия планирования может представлять собой общую парадигму планирования, справедливую для всех устройств. Однако глубина и ширина иерархии и сложность политики будет отличаться от устройства к устройству.
Компоненты системы 300 архитектуры управлением резервированием делятся на две категории: хранилища и процедуры. Компоненты связаны с политикой, типом устройства или являются глобальными. Согласно фиг.3 компоненты политики группируются друг с другом. Все остальные процедуры зависят от типа устройства. Хранилища, за исключением хранилища состояний политики 302, являются общими для всех устройств системы. Следующая последовательность операций выполняется в типичном сеансе планирования, начиная с введения нового объекта выполнения в систему 300 управления резервированием.
Как показано в позиции 1, новый объект выполнения вводится в систему 300 управления резервированием согласно политике 304-1. Алгоритм 306 размещения перемещает объект выполнения в одну из очередей, хранящихся в хранилище 302 состояний политики. В хранилище 302 состояний политики хранится внутреннее состояние политики, включая очереди, которые могут представлять приоритеты или состояния выполнения.
Как показано в позиции 2, алгоритм 306 размещения вызывает алгоритм 308 диспетчеризации политики, который берет следующий объект выполнения для выполнения.
В позиции 3, вызывается диспетчер 310 устройств для переключения контекста на объект выполнения, выбранный для выполнения. Диспетчер 310 реализован отдельно и независимо от политики 304-1 или любой из политик 304-1 - 304-N. В частности, диспетчер 310 можно использовать независимо от применяемой политики.
В позиции 4, диспетчер 310 системы 300 управления резервированием предписывает системным ресурсам 312 выполнять объект выполнения. Заметим, что системные ресурсы 312 могут быть отдельными от системы 300 управления резервированием. В зависимости от контекста устройства, выполнение объекта выполнения будет приостанавливаться или завершаться. Например, в иллюстративном процессоре выделенный фрагмент времени для процессора истекает, объект выполнения переходит в состояние ожидания и блокируется, или объект выполнения самопроизвольно заканчивается.
Как показано в позиции 5, вызывается процедура 314 перехода между состояниями политики, и состояние объекта выполнения обновляется в хранилище 316 объектов выполнения и хранилище 302 состояний политики.
Как показано в позиции 6, процедура 318 учета времени обновляет статистику использования объекта выполнения с использованием хранилища 320 контейнеров ресурсов. Контейнер ресурсов представляет собой абстракцию, которая логически содержит системные ресурсы, используемые рабочей нагрузкой для выполнения задания. Например, контейнер ресурсов можно задать для всех компонентов вмещаемого приложения. В контейнере ресурсов хранится учетная информация, касающаяся использования ресурсов приложением.
В позиции 7, менеджер 322 резервирования будет определять, чем является следующее резервирование, и вызывает надлежащий компонент планирования для выполнения следующей политики. Это достигается в одном варианте осуществления проходом по плану выполнения, например плану выполнения, показанному на фиг.2. В примере, показанном на фиг.3, существует два потенциальных исхода этой операции. Первый состоит в том, что фрагмент, например один из фрагментов времени, показанный на фиг.2, или другой фрагмент, например фрагмент пакета, фрагмент кучи, фрагмент блока и т.д., в зависимости от потребности, назначается в текущей политике текущего уровня иерархии планирования. Алгоритм 308 диспетчеризации текущей политики будет вызываться, как показано в позиции 8B на фиг.3. Второй исход включает в себя переход к другому резервированию с использованием другой политики, например политики 304-2 или любой другой политики до 304-N, где N - количество представленных политик. Менеджер 322 резервирования переключается на план выполнения нового резервирования (что показано в позиции 8A на схеме) и осуществляет ту же операцию с новым планом.
Общее хранилище 316 объектов выполнения может не быть доступно из политики планирования (например, 304-1), но вид объектов выполнения, которые в данный момент управляются политикой, является видимым. Помимо потенциальных выигрышей в рабочих характеристиках, это гарантирует, что политики не будут пытаться изменить состояние объектов выполнения, которые не запланированы в их контексте. Операции выравнивания нагрузки между устройствами могут осуществляться путем перемещения объектов выполнения между резервированиями, действующими на разных устройствах. Процедура 314 перехода между состояниями и процедура 310 диспетчера могут регистрировать несоответствия между хранилищем 302 состояний политики и хранилищем 316 объектов выполнения и предпринимать корректирующее действие, которое в большинстве случаев предусматривает выполнение дополнительной операции планирования.
На фиг.4 показана возможная реализация планировщика процессора. Заметим, что можно реализовать другие реализации, а также другие реализации для разных системных ресурсов, например сетевых ресурсов, ресурсов памяти, дисковых ресурсов и т.д. В схеме планирования, представленной на фиг.4, процессор подвергается планированию множественными политиками планирования, скоординированными общей инфраструктурой. На фиг.4 показаны компоненты планирования процессора, которые обеспечены инфраструктурой и обеспечены политикой. В контексте процессора реализуются следующие функции: поддержка таймера, переключение контекста и извещение о блокировке.
Компоненты планирования процессора должны иметь возможность задавать произвольную длительность прерывания таймера (в отличие от фиксированного кванта). Контекст прерывания таймера может представлять собой либо резервирование, либо дополнительное подразделение резервирования из политики, которая обслуживает резервирование. Например, политика на основе приоритета может задавать фиксированные кванты в контексте текущего резервирования. В конкретный момент существуют множественные предельные сроки таймера и компонент планирования процессора должен иметь возможность управлять различными прерываниями таймера, указывая следующий предельный срок, задавая контекст и вызывая соответствующий компонент планирования для обслуживания прерывания. Менеджер 404 временных интервалов поддерживает стек контекстов времени планировщика и планирует прерывание таймера с использованием ближайшего следующего фрагмента времени в стеке. Контекст таймера включает в себя несколько фрагментов информации. Например, контекст таймера включает в себя информацию, касающуюся типа контекста. Это, в частности, относится к фрагменту времени резервирования или объекта выполнения, заданному политикой планирования. Контекст таймера включает в себя информацию, относящуюся к временному интервалу, который будет отсчитываться прерыванием таймера. Контекст таймера включает в себя указатель либо на текущий менеджер 400 резервирования для резервирований, либо на менеджер 412 переходов между состояниями для политики планирования. Контекст таймера включает в себя указатель на текущий план выполнения для резервирований.
Диспетчер 408 прерываний таймера инициируется прерыванием таймера и, в зависимости от типа приоритета и контекста таймера, вызывает точку входа планирования для функции планирования. Если фрагмент времени для объекта выполнения истек или объект выполнения заблокирован, вызывается текущий менеджер переходов между состояниями, в результате чего в контексте резервирования планируется следующий объект выполнения. Если истекает фрагмент времени для резервирования, менеджер резервирования вызывается с контекстом текущего плана выполнения для выбора следующего резервирования и политики.
На фиг.4 показана типичная схема операций компонентов планирования процессора. Как показано в случае нового резервирования в позиции 1A, менеджер 400 резервирования создает новый объект контекста таймера, который включает в себя временной интервал резервирования, указатель на его собственную точку входа обратного вызова и ссылку на текущий план выполнения. В случае планирования объектов выполнения в позиции 1B, диспетчер 402 создает контекст с временным интервалом объекта выполнения и указателем на функцию обратного вызова менеджера переходов между состояниями. Как показано в позиции 2, менеджер 404 временных интервалов вводит контекст, представляющий интерес, в стек 406 контекста таймера. В позиции 3, менеджер 404 временных интервалов находит ближайший фрагмент времени, задает контекст для диспетчера 408 прерываний таймера и программирует таймер 410. В позиции 4, прерывание таймера из таймера 410 запускает и вызывает диспетчер 408 прерываний таймера. В позиции 5, диспетчер 408 прерываний таймера проверяет свой контекст и вызывает функцию обратного вызова менеджера 400 резервирования, по истечении резервирования или менеджер 412 переходов между состояниями по истечении фрагмента времени объекта выполнения. В позиции 6, после вызова менеджера 412 переходов между состояниями, выполняется последовательно поток операций планирования объектов выполнения и диспетчер 402 вызывается для другой итерации в процессе.
Ранее описание было сосредоточено на конструкции инфраструктуры планирования единичного устройства. Однако варианты осуществления могут включать в себя функции, позволяющие менеджеру ресурсов устройств управлять множественными устройствами. Это может быть особенно полезно с учетом недавнего преобладания многоядерных устройств, использующих множественные совместно используемые процессоры и гипервизорные технологии для множественных операционных систем.
В одном варианте осуществления менеджер ресурсов устройств отвечает за выполнение заданий с использованием однотипных устройств. Операции, например, назначение резервирований устройствам, выравнивание нагрузки и миграция нагрузки, являются типичными операциями, осуществляемыми менеджером ресурсов устройств. В некоторых вариантах осуществления это можно осуществлять, изменяя планы выполнения для разных устройств, в том числе перемещая резервирования из одного плана выполнения в другой. Менеджер ресурсов устройств представляет собой компонент, вызываемый с относительно низкой частотой по сравнению с компонентами планировщика устройств. Поэтому он может осуществлять относительно дорогостоящие операции.
Операции, осуществляемые менеджером ресурсов устройств, могут в некоторых вариантах осуществления делиться на четыре категории, которые мы рассмотрим. Первая - это назначение резервирований устройствам и создание планов выполнения для планировщиков устройств. Назначение резервирований имеет место при запросе нового резервирования приложением, или имеет место конфигурация резервирования. Менеджер ресурсов устройств первоначально проверяет доступную мощность устройств и выделяет резервирование устройству. Помимо мощности, существуют другие возможные факторы, которые нужно учитывать, например состояние энергопотребления устройства, которые могут препятствовать выполнению определенных рабочих нагрузок, и рабочие характеристики. Менеджер ресурсов устройств отвечает за применение политики срочности резервирования. Это применимо в случае отсутствия ресурсов для резервирования. Срочность резервирования для нового резервирования сравнивается с существующим(и) резервированием(ями), и менеджер ресурсов устройств сообщает приложению(ям) резервирования более низкой срочности для отбора их резервирований или прекращает их, если они не согласуются в определенных временных рамках. Квоты - это политики особого рода. Квоты представляют собой статические политики, проводимые системой, целью которых является ограничение использования ресурсов для рабочей нагрузки. Два конкретных типа квот включают в себя ограничения и накопления. Ограничения действуют как пороги, которые ограничивают использование ресурса определенным пределом. Например, приложение может иметь 10%-ное ограничение на использование мощности процессора. Накопления - это пределы совокупного использования ресурса в течение более длительных периодов времени. Например, одно накопление может указывать, что вмещаемый web-сайт не должен использовать более 5 ГБ полосы пропускания сети в течение периода тарификации. То же извещение, которое используется в накопительных квотах, можно применять в случае приоритетного резервирования. Запросы резервирования, которые не выполняются вследствие недостатка ресурсов и низкой релевантной срочности, можно ставить в очередь и выполнять по мере освобождения ресурсов.
После определения выделения резервирования, менеджеру ресурсов устройств придется повторно вычислить план выполнения для устройства. В некоторых вариантах осуществления требуется только повторное вычисление корневого плана выполнения в иерархии планирования устройств. Менеджер ресурсов устройств также предоставляет услуги вычисления плана выполнения планировщикам, которые нуждаются в дополнительном разделении резервирований первого порядка на уровнях, отличных от корневого, в иерархии планирования устройств.
Менеджер ресурсов устройств должен иметь возможность поддерживать групповое планирование, где одно и то же резервирование должно иметь место во множественных устройствах с одинаковым начальным временем. Этот признак особенно полезен для сред выполнения с параллелизмом, которые могут требовать одновременного выполнения потоков, которые могут требовать синхронизации. Благодаря одновременному выполнению всех потоков на разных устройствах стоимость координации минимизируется, поскольку все они выполняются при наличии синхронизации.
Менеджер ресурсов устройств также отвечает за выравнивание нагрузки объектов выполнения, которые выполняются в используемой по умолчанию политике планирования для корневого узла иерархии планирования устройств. Операция предусматривает перемещение объектов выполнения между планами выполнения путем перемещения объектов выполнения между хранилищами состояний политики разных устройств. Это достигается путем изменения вида объекта выполнения устройств, участвующих в операции. Принятие решения относительно выравнивания нагрузки может осуществляться на эвристической основе в операционной системах, например, из соображений латентности.
Менеджер ресурсов устройств отслеживает системные ресурсы и применяет пороги ограничительной квоты. Это операция, которая требует взаимодействия менеджера ресурсов устройств с диспетчером политик. Менеджер ресурсов устройств приостанавливает объекты выполнения на заранее определенные периоды, удаляя объекты выполнения из вида объекта выполнения, представляемого политике.
В данном примере менеджер ресурсов устройств использует службу операционной системы для перечисления устройств, проверки конфигураций устройств, определения мощности и наличия. Службы, используемые операционной системой для работы менеджера ресурсов устройств, организованы в компонент, именуемый здесь менеджером системных ресурсов. Менеджер ресурсов устройств подписывается на систему оповещения о событиях менеджера системных ресурсов в отношении отказа оборудования, «горячей» замены и т.д., которые требуют специальных операций, касающихся инициирования и прекращения работы планировщиков устройств, и операций выравнивания нагрузки.
На фиг.5 показаны компоненты системы управления 500. Менеджер 510 ресурсов устройств в этом примере, осуществляет четыре примечательные операции. Первая включает в себя вычисление плана выполнения. Для нового резервирования, как показано в позиции 1, калькулятор сродства 502 выбирает надлежащее устройство, на котором будет выполняться резервирование. Калькулятор сродства 502 резервирований вызывает калькулятор 504 плана выполнения для вывода нового плана выполнения для устройства, который затем поступает на менеджер резервирования 506 выбранного устройства. В случае изменения конфигурации резервирования или дополнительного деления существующего резервирования вычисление сродства пропускается.
Вторая операция относится к изменениям оборудования. Как показано в позиции 2, менеджер 508 программных ресурсов извещает менеджер 510 ресурсов устройств, посредством процедуры 512 миграции резервирования и объекта выполнения, о произошедшем изменении. Затем менеджер 510 ресурсов устройств перемещает резервирования и объекты выполнения, назначенные в данный момент устройству, в зависимости от изменения оборудования. Например, если устройство готово перейти в режим пониженного энергопотребления, объекты выполнения и резервирования можно повторно выделить другим устройствам. Калькулятор 504 плана выполнения вызывается для повторного вычисления планов выполнения затронутых устройств.
Третья операция относится к выравниванию нагрузки. Как показано в позиции 3, выравниватель 514 нагрузки объектов выполнения повторно выделяет объекты выполнения, выполняющиеся со стандартной политикой в корне иерархии планирования устройств путем изменения видов объекта выполнения задействованных устройств.
Четвертая операция относится к применению ограничительной квоты. Как показано в позиции 4, подсистема 516 ограничительных квот определяет, превысил ли объект выполнения свой порог. При обнаружении нарушения, состояние объекта выполнения изменяется в хранилище 518 объектов выполнения. Объект выполнения приостанавливается на заранее определенный промежуток времени путем удаления объекта выполнения из вида объекта выполнения политики. Подсистема 516 ограничительных квот переустанавливает объект выполнения в виде политики. Если объект выполнения в данный момент выполняется, подсистема 516 ограничительных квот помечает объект выполнения, и изменение вида осуществляется компонентом учета времени политики.
На фиг.6 представлен способ 600. Способ 600 может включать в себя этапы планирования системных ресурсов. Способ включает в себя этап, на котором обращаются к политике планирования системных ресурсов на предмет рабочей нагрузки (этап 602). Политика предназначена для операций планирования рабочей нагрузки и задается на основе рабочей нагрузки таким образом, чтобы политика зависела от рабочей нагрузки. Например, согласно примерам, приведенным на фиг.1, политика 106 зависит от рабочей нагрузки 102. В одном варианте осуществления рабочая нагрузка может использовать системные политики для планирования резервирований для рабочей нагрузки на основании политик, зависящих от рабочей нагрузки, используемых для выполнения рабочей нагрузки.
Способ 600 дополнительно включает в себя этап резервирования системных ресурсов для рабочей нагрузки согласно политике (этап 604). Пример этого проиллюстрирован в плане выполнения 200, где резервирования 202 и 204 реализуются для политик, зависящих от рабочей нагрузки.
Способ 600 может дополнительно включать в себя этап, на котором резервируют, по меньшей мере, часть оставшихся незапланированных системных ресурсов для других рабочих нагрузок с использованием политики планирования системы по умолчанию. На фиг.2 показано резервирование с использованием политики планирования системы по умолчанию в позиции 206.
В некоторых вариантах осуществления способа 600 рабочая нагрузка иерархически ниже другой рабочей нагрузки. Например, на фиг.1 показано, помимо других примеров, что рабочие нагрузки 110 и 112 иерархически ниже рабочей нагрузки 102. В одном варианте осуществления резервирование системных ресурсов для рабочей нагрузки (этап 604) осуществляется согласно политике для рабочей нагрузки и политике для другой рабочей нагрузки, иерархически более высокой, чем рабочая нагрузка. В порядке иллюстрации, резервирования для рабочей нагрузки 110 можно планировать на основании политики 114 и политики 106.
Политики можно задавать посредством нескольких различных параметров. Например, политика может указывать резервирование ресурсов по скорости, резервирование ресурсов по мощности или указывать резервирование ресурсов по предельному сроку.
В одном варианте осуществления резервирование системных ресурсов для рабочей нагрузки согласно политике (этап 604) включает в себя этап, на котором сверяются с планами выполнения для совокупности системных ресурсов, причем каждый системный ресурс из совокупности системных ресурсов содержит устройство одного и того же типа. Например, система может включать в себя несколько разных процессоров. На основании планов выполнения, резервирование системных ресурсов осуществляется с ориентацией на выравнивание нагрузки рабочих нагрузок в совокупности системных ресурсов. В альтернативных вариантах осуществления резервирование системных ресурсов осуществляется с ориентацией на перемещение рабочих нагрузок от одного устройства к другому устройству. Например, если устройство подлежит удалению из системы, или устройство переходит в состояние пониженного энергопотребления с меньшей мощностью, или по другим причинам, может быть желательно перемещать рабочие нагрузки от такого устройства на другое устройство с имеющейся мощностью. В еще одном альтернативном варианте осуществления резервирование системных ресурсов осуществляется с ориентацией на применение ограничительных квот.
На фиг.7 показан вариант осуществления другого способа 700. Способ 700 можно практически осуществлять, например, в вычислительном окружении. Способ включает в себя этапы выполнения рабочих нагрузок с использованием системных ресурсов. Системные ресурсы резервируются для рабочих нагрузок согласно политикам, зависящим от системы. Политики предназначены для операций планирования рабочих нагрузок. Способ включает в себя этапы, на которых выбирают политику, причем политика зависит от рабочей нагрузки (этап 702), используют политику для диспетчеризации рабочей нагрузки на системный ресурс для выполнения рабочей нагрузки согласно политике (этап 704), принимают обратную связь, включающую в себя информацию об использованиях системы при выполнении рабочей нагрузки (этап 706), и принимают решения по политикам на основании обратной связи для дополнительной диспетчеризации рабочих нагрузок на системный ресурс (этап 708). Пример этого проиллюстрирован на фиг.3, где показано, как политики 304-1 - 304-N используются совместно с диспетчерами 310, чтобы рабочие нагрузки выполнялись системными ресурсами 312.
Согласно способу 700 принятие решений по политикам (этап 708) может осуществляться на основании плана выполнения. План выполнения задает резервирования системных ресурсов для рабочих нагрузок. Например, после выполнения рабочей нагрузки на системных ресурсах 312, можно сверяться с планами выполнения, например планом выполнения 200 для определения того, нужно ли производить изменения политики, на основании продолжительности времени, когда рабочая нагрузка выполнялась на системных ресурсах 312, по сравнению с резервированием, например одним из резервирований 202 и 204.
Некоторые из описанных здесь вариантов осуществления могут обеспечивать одно или несколько преимуществ над ранее реализованным планированием системы. Например, некоторые варианты осуществления допускают специализацию. В частности, планирование системных ресурсов должно быть настраиваемым, чтобы удовлетворять требованиям к рабочей нагрузке. Единая политика планирования может не удовлетворять всем требованиям к рабочей нагрузке. В некоторых изложенных здесь вариантах осуществления рабочая нагрузка имеет возможность использовать стандартные политики или задавать новые политики планирования, специально разработанные для приложения.
Некоторые варианты осуществления допускают расширение. С использованием описанных здесь вариантов осуществления политику планирования можно расширять для получения требований к рабочей нагрузке. Этот атрибут позволяет желаемым образом реализовать специализацию. Помимо стандартных политик, поставляемых системой, инфраструктура управления ресурсами может обеспечивать архитектуру подключаемых политик, чтобы рабочие нагрузки могли задавать свои политики, а не просто выбирать из уже существующих политик.
Некоторые варианты осуществления допускают согласованность. Одну и ту же инфраструктуру управления ресурсами можно использовать для разных ресурсов. Алгоритмы планирования обычно являются специализированными, удовлетворяя требованиям устройств того или иного типа. Процессорные, сетевые и дисковые планировщики могут использовать разные алгоритмы и могут быть реализованы в разных частях операционной системы. Однако в некоторых вариантах осуществления все планировщики могут использовать одну и ту же модель для описания компонентов и одну и ту же инфраструктуру учета и квотирования.
Некоторые варианты осуществления допускают прогнозируемость. Чувствительность подмножества рабочих нагрузок может не зависеть от нагрузки системы и политик планирования. Операционная система должна иметь возможность гарантировать заранее определенную часть системных ресурсов приложениям, чувствительным к латентностям.
Некоторые варианты осуществления допускают адаптивность. Политики планирования можно изменять для получения динамического поведения системы. Подключаемая модель для политик планирования позволяет высокоуровневым системным компонентам и приложениям регулировать политики для настройки рабочих характеристик своей системы.
Варианты осуществления также могут включать в себя компьютерно-считываемые носители для переноса или хранения компьютерно-выполняемых инструкций или структур данных, сохраненных на них. Такие компьютерно-считываемые носители могут представлять собой любые доступные носители, к которым может обращаться компьютер общего назначения или специального назначения. В порядке примера, но не ограничения, такие компьютерно-считываемые носители могут содержать ОЗУ, ПЗУ, ЭСППЗУ, CD-ROM или другое оптическое дисковое запоминающее устройство, магнитное дисковое запоминающее устройство или другие магнитные запоминающие устройства, или любой другой носитель, который можно использовать для переноса или хранения желаемого средства программного кода в виде компьютерно-выполняемых инструкций или структур данных, и к которому может обращаться компьютер общего назначения или специального назначения. При переносе или обеспечении информации посредством сетевого или другого коммуникационного соединения (проводного, беспроводного или комбинированного) на компьютер, компьютер рассматривает соединение как компьютерно-считываемый носитель. Таким образом, любое такое соединение справедливо именовать компьютерно-считываемым носителем. Комбинации вышеприведенных примеров также подлежат включению в понятие компьютерно-считываемых носителей.
Компьютерно-выполняемые инструкции содержат, например, инструкции и данные, которые предписывают компьютеру общего назначения, компьютеру специального назначения или устройству обработки специального назначения осуществлять определенную функцию или группу функций. Хотя изобретение было описано в отношении структурных признаков и/или этапов способа, следует понимать, что изобретение, заданное в формуле изобретения, не ограничивается конкретными признаками или этапами, описанными выше. Напротив, конкретные признаки или этапы, описанные выше, раскрыты в качестве примеров реализации формулы изобретения.
Фиг.8 и нижеследующее рассмотрение призваны обеспечивать краткое, общее описание подходящего вычислительного окружения, в котором можно реализовать изобретение. Хотя это и не требуется, изобретение будет описано в общем контексте компьютерно-выполняемых инструкций, например программных модулей, выполняемых компьютерами в сетевых окружениях. В общем случае программные модули включают в себя процедуры, программы, объекты, компоненты, структуры данных и т.д., которые выполняют конкретные задания или реализуют те или иные абстрактные типы данных. Компьютерно-выполняемые инструкции, соответствующие структуры данных и программные модули представляют примеры средств программного кода для выполнения раскрытых здесь этапов способов. Конкретная последовательность таких выполняемых инструкций или соответствующих структур данных представляет примеры соответствующих этапов для реализации функций, описанных на этих этапах.
Специалистам в данной области техники очевидно, что изобретение можно осуществлять на практике в сетевых вычислительных окружениях, содержащих конфигурации компьютерной системы различных типов, включая персональные компьютеры, карманные устройства, многопроцессорные системы, бытовые электронные приборы на основе микропроцессора или с возможностью программирования, сетевые ПК, миникомпьютеры, универсальные компьютеры и пр. Изобретение также можно осуществлять на практике в распределенных вычислительных окружениях, где задания выполняются локальными и удаленными устройствами обработки, которые связаны друг с другом (проводными, беспроводными или комбинированными линиями связи) через сеть связи. В распределенном вычислительном окружении программные модули могут размещаться на локальных и удаленных запоминающих устройствах.
Согласно фиг.8 иллюстративная система для реализации изобретения включает в себя вычислительное устройство общего назначения в форме компьютера 820, включающего в себя процессор 821, который может включать в себя несколько процессоров, как показано, системную память 822 и системную шину 823, которая подключает различные компоненты системы, в том числе системную память 822, к процессору 821. Системная шина 823 может относиться к любому из нескольких типов шинных структур, включая шину памяти или контроллер памяти, периферийную шину и локальную шину, использующую любую из различных шинных архитектур. Системная память включает в себя постоянную память (ПЗУ) 824 и оперативную память (ОЗУ) 825. Базовая система ввода-вывода (BIOS) 826, содержащая основные процедуры, которые помогают переносить информацию между элементами в компьютере 820, например, при запуске, может храниться в ПЗУ 824.
Компьютер 820 также может включать в себя накопитель 827 на магнитных жестких дисках для осуществления чтения и записи в отношении магнитного жесткого диска 839, магнитный дисковод 828 для осуществления чтения и записи в отношении сменного магнитного диска 829 и оптический дисковод 830 для осуществления чтения и записи в отношении сменного оптического диска 831, например CD-ROM или другого оптического носителя. Накопитель 827 на магнитных жестких дисках, магнитный дисковод 828 и оптический дисковод 830 подключены к системной шине 823 через интерфейс 832 накопителя на жестких дисках, интерфейс 833 магнитного дисковода и интерфейс 834 оптического дисковода соответственно. Накопители и дисководы и связанные с ними компьютерно-считываемые носители обеспечивают энергонезависимое хранилище компьютерно-выполняемых инструкций, структур данных, программных модулей и других данных для компьютера 820. Хотя в описанной здесь иллюстративной среде применяются магнитный жесткий диск 839, сменный магнитный диск 829 и сменный оптический диск 831, можно использовать другие типы компьютерно-считываемых носителей для хранения данных, включая магнитные кассеты, карты флэш-памяти, цифровые универсальные диски, картриджи Бернулли, ОЗУ, ПЗУ и пр.
Средства программного кода, содержащие один или несколько программных модулей, могут храниться на магнитном жестком диске 839, сменном магнитном диске 829, сменном оптическом диске 831, ПЗУ 824 или ОЗУ 825 и включать в себя операционную систему 835, одну или несколько прикладных программ 836, другие программные модули 837 и программные данные 838. Пользователь может вводить команды и информацию в компьютер 820 через клавиатуру 840, указательное устройство 842 или другие устройства ввода (не показаны), например микрофон, джойстик, игровую панель, спутниковую антенну, сканер и пр. Эти и другие устройства ввода часто подключаются к процессору 821 через интерфейс 846 последовательного порта, подключенный к системной шине 823. Альтернативно, устройства ввода могут подключаться посредством других интерфейсов, например параллельного порта, игрового порта или универсальной последовательной шины (USB). Монитор 847 или другое устройство отображения также подключен(о) к системной шине 823 через интерфейс, например видеоадаптер 848. Помимо монитора, персональные компьютеры обычно включают в себя другие периферийные устройства вывода (не показаны), например громкоговорители и принтеры.
Компьютер 820 может работать в сетевом окружении с использованием логических соединений к одному или нескольким удаленным компьютерам, например удаленным компьютерам 849a и 849b. Каждый из удаленных компьютеров 849a и 849b может быть другим персональным компьютером, сервером, маршрутизатором, сетевым ПК, одноранговым устройством или другим общим сетевым узлом и обычно включает в себя многие или все из элементов, описанных выше в отношении компьютера 820, хотя на фиг.8 показаны только запоминающие устройства 850a и 850b и связанные с ними прикладные программы 36a и 36b. Логические соединения, изображенные на фиг.8, включают в себя локальную сеть (LAN) 851 и глобальную сеть (WAN) 852, которые представлены здесь в порядке примера, но не ограничения. Такие сетевые окружения широко распространены в компьютерных сетях учреждений и предприятий, интрасетях и в интернете.
При использовании в сетевом окружении LAN, компьютер 820 подключается к локальной сети 851 через сетевой интерфейс или адаптер 853. При использовании в сетевой среде WAN, компьютер 820 может включать в себя модем 854, беспроводную линию связи или другое средство для установления связи по глобальной сети 852, например интернету. Модем 854, который может быть внутренним или внешним, подключен к системной шине 823 через интерфейс 846 последовательного порта. В сетевом окружении, программные модули, указанные в отношении компьютера 820, или их части могут храниться в удаленном запоминающем устройстве. Очевидно, что показанные сетевые соединения являются иллюстративными и что можно использовать другое средство для установления связи по глобальной сети 852.
Варианты осуществления могут включать в себя функции обработки рабочих нагрузок для рассмотренных выше ресурсов. Обработка может осуществляться с использованием вышеописанной политики, зависящей от рабочей нагрузки.
Настоящее изобретение можно реализовать в других конкретных формах, не отходя от его сущности или основных характеристик. Описанные варианты осуществления также рассматриваются во всех отношениях лишь как иллюстративные, но не ограничительные. Таким образом, объем изобретения определяется нижеследующей формулой изобретения, а не вышеприведенным описанием. Все изменения, согласующиеся с формулой изобретения и ее эквивалентами, подлежат включению в ее объем.
Класс G06F9/50 Распределение ресурсов, например центрального процессора (ЦП)