Равноправное разделение системных ресурсов в исполнении рабочего процесса

Способ может быть применен на практике в распределенном вычислительном окружении, которое предоставляет вычислительные ресурсы множеству арендаторов. Технический результат заключается в предотвращении запуска рабочих нагрузок, превышающих некоторую продолжительность. Способ включает в себя действия для выделения ограниченного множества системных ресурсов арендаторам. Способ включает в себя идентификацию части ресурса. Способ дополнительно включает в себя идентификацию выполняющейся рабочей нагрузки арендатора. Характеристики контрольных точек идентифицируются для исполняющейся рабочей нагрузки арендатора. На основе характеристик контрольных точек и части ресурса идентифицируется событие вытеснения задачи. 3 н. и 17 з.п. ф-лы, 6 ил.

 

Уровень техники и область техники, к которой относится изобретение

[0001] Взаимосвязывание вычислительных систем способствовало развитию распределенных вычислительных систем, таких как так называемые "облачные" вычислительные системы. В этом описании "облачное вычисление" может быть системами или ресурсами для предоставления возможности повсеместного, удобного, сетевого доступа по запросу к разделяемому пулу конфигурируемых вычислительных ресурсов (например, сетей, серверов, хранилищ, прикладных программ, служб и т.д.), которые могут быть выделены и высвобождены, при этом требуя меньших усилий по управлению или меньшего взаимодействия с поставщиком службы. Облачная модель может состоять из различных характеристик (например, самообслуживание по запросу, широкий сетевой доступ, объединение в пул ресурсов, быстрая гибкость, измеряемая услуга и т.д.), моделей обслуживания (например, программное обеспечение как услуга ("SaaS"), платформа как услуга ("PaaS"), инфраструктура как услуга ("IaaS")) и моделей развертывания (например, частное облако, коллективное облако, публичное облако, гибридное облако и т.д.).

[0002] Некоторые поставщики облачных технологий используют подход разделенного масштабирования, чтобы предоставлять возможность масштабирования службы для увеличившегося использования. Служба реализует концепцию единиц масштабирования (конечной совокупности ресурсов), которые поддерживают известное множество пользователей. Емкость добавляется посредством добавления дополнительных единиц масштабирования при необходимости, когда пользовательские ограничения наталкиваются на существующие единицы масштабирования. Пользовательское ограничение определяется как заданное число пользователей, которые будут связаны с единицей масштабирования, которая будет выполнять все запросы их рабочих нагрузок.

[0003] Множество доступных ресурсов в единице масштабирования является конечным и фиксированным, но система должна иметь возможность иметь дело с изменяющимися нагрузками рабочих нагрузок, запрашиваемыми связанными пользователями, без дискредитации соглашения об уровне сервиса (SLA) конечного пользователя с точки зрения рабочих нагрузок с гарантией времени выполнения. Существуют различные способы потенциально решать проблему.

[0004] Одним способом является динамическое горизонтальное масштабирование или увеличение масштаба. Этот подход требует своевременного добавления или удаления системных ресурсов на основе факторов текущей потребности. Реализация такого подхода для работающей в реальном времени службы требует всего множества зависимых факторов, которые трудно реализовать и поддерживать, не говоря уже о буфере, который будет необходим с точки зрения емкости вследствие временных соображений при гибком расширении или сокращении.

[0005] Другим решением будет определение продолжительности рабочей нагрузки на основе анализа рабочего процесса. Целью будет предотвращение запуска рабочих нагрузок, превышающих некоторую продолжительность. Это решение может быть трудно реализовать. Например, рабочий процесс может содержать единичные вызовы, которые внутренне реализуются как бесконечные циклы, вызов которых будет предотвращаться. Дополнительно, ограничение набора действий, которые пользователю предоставляется возможность использовать в рабочих процессах, создает плохое пользовательское восприятие.

[0006] Изобретение, заявляемое в данном документе, не ограничивается вариантами осуществления, которые решают какие-либо недостатки или которые работают только в таких окружениях, которые описаны выше. Скорее, это описание предшествующего уровня техники предоставлено, только чтобы иллюстрировать одну примерную область технологии, где некоторые варианты осуществления, описанные в данном документе, могут быть применены на практике.

Сущность изобретения

[0007] Один вариант осуществления, иллюстрированный в данном документе, включает в себя способ, который может быть применен на практике в распределенном вычислительном окружении, которое предоставляет вычислительные ресурсы множеству арендаторов. Способ включает в себя действия для выделения ограниченного множества системных ресурсов арендаторам. Способ включает в себя идентификацию части ресурса. Способ дополнительно включает в себя идентификацию выполняющейся рабочей нагрузки арендатора. Характеристики контрольных точек идентифицируются для исполняющейся рабочей нагрузки арендатора. На основе характеристик контрольных точек и части ресурса идентифицируется событие вытеснения задачи.

[0008] Другой вариант осуществления включает в себя облачную службу, сконфигурированную, чтобы справедливо распределять ограниченное множество ресурсов арендаторам облачной службы. Облачная служба включает в себя службу планирования. Служба планирования конфигурируется, чтобы принимать рабочие нагрузки от арендаторов облачной службы. Облачная служба включает в себя множество исполнительных модулей, связанных со службой планирования. Исполнительные модули конфигурируются, чтобы принимать рабочие нагрузки от службы планирования. Исполнительные модули конфигурируются, чтобы исполнять рабочие нагрузки от арендаторов на основе частей ресурса в сочетании с оценкой регистрации состояния в контрольных точках рабочих нагрузок, так что события вытеснения задачи основываются на частях ресурсов и регистрации состояний в контрольных точках рабочих нагрузок.

[0009] Это краткое изложение сущности изобретения приведено для представления в упрощенной форме подборки идей, которые дополнительно описываются ниже в подробном описании. Данное краткое изложение сущности изобретения не предназначено ни для идентификации ключевых признаков или важнейших признаков заявляемого изобретения, ни для того, чтобы быть использованной в качестве помощи при определении объема заявляемого изобретения.

[0010] Дополнительные признаки и преимущества будут изложены в описании, которое следует ниже, и частично будут явствовать из описания или могут быть изучены при практическом использовании учений данного документа. Признаки и преимущества изобретения могут быть реализованы и получены посредством инструментов и комбинаций, детально указанных в прилагаемой формуле. Признаки настоящего изобретения станут полностью очевидными из следующего описания и прилагаемой формулы изобретения или могут быть изучены при практическом использовании изобретения, как изложено далее в данном документе.

Краткое описание чертежей

[0011] Чтобы описать способ, которым могут быть получены вышеупомянутые и другие преимущества и признаки, более подробное описание изобретения, вкратце описанного выше, должно быть представлено посредством ссылки на его конкретные варианты осуществления, которые проиллюстрированы на прилагаемых чертежах. Понимая то, что эти чертежи изображают только типовые варианты осуществления и, следовательно, не должны рассматриваться как ограничивающие их рамки, варианты осуществления будут описаны и объяснены с дополнительной спецификой и деталями посредством использования сопровождающих чертежей, на которых:

[0012] Фиг. 1 иллюстрирует облачную систему, сконфигурированную, чтобы справедливо распределять облачные ресурсы;

[0013] Фиг. 2 иллюстрирует событие вытеснения, возникающее, когда истекает временной интервал;

[0014] Фиг. 3 иллюстрирует событие вытеснения, возникающее в предварительно определенном фрагменте временного интервала;

[0015] Фиг. 4 иллюстрирует расширение временного интервала на основе регистрации состояния в контрольной точке, существующей в предварительно определенном фрагменте временного интервала;

[0016] Фиг. 5 иллюстрирует расширение временного интервала на основе регистрации состояния в контрольной точке, существующей в предварительно определенном фрагменте временного интервала; и

[0017] Фиг. 6 иллюстрирует способ предоставления ресурсов множеству арендаторов распределенных вычислительных систем.

Подробное описание изобретения

[0018] Некоторые варианты осуществления, иллюстрированные в данном документе, реализуют гарантированное исполнение частей ресурсов для рабочих нагрузок, которые могут сохраняться, вытесняться и позже возобновляться из последнего сохраненного состояния (т.е., рабочих нагрузок, которые имеют зафиксированные состояния в контрольных точках), в качестве способа обеспечивать равноправное разделение системных ресурсов. Многообразные различные ресурсы могут быть разделены на части. Например, может быть реализован временной интервал одного или более системных ресурсов. Таким образом, например, части могут быть одним или более из регулируемой во времени величины процессора, регулируемой во времени величины доступа к памяти, регулируемой во времени величины доступа к хранилищу, регулируемой во времени величины использования сети или их комбинациями. Альтернативно или дополнительно, часть ресурса может быть множеством команд (например, действий сценария). Альтернативно или дополнительно, часть ресурса может быть множеством операций процессора. Альтернативно или дополнительно, часть ресурса может быть объемом сетевых ресурсов, таким как объем данных, передаваемых по сети. Альтернативно или дополнительно, часть ресурса может быть объемом ресурсов хранения, таким как объем ввода/вывода (I/O) на и с запоминающих устройств. Альтернативно или дополнительно, часть ресурса может быть ресурсами среды выполнения "песочницы". Альтернативно или дополнительно, часть ресурса может быть объемом ресурсов памяти. И так далее. В то время как множество различных частей ресурсов может быть использовано отдельно или в комбинации, пример ниже иллюстрируется в контексте временных интервалов, но другие части ресурсов могут быть использованы вместо них.

[0019] Обращаясь теперь к фиг. 1, иллюстрируется пример. В примере, иллюстрированном на фиг. 1, облачная служба 100 выполняет рабочие нагрузки для арендаторов 102-1, 102-2, 102-3 по 102-n облачной службы 100. В примере иллюстрируются, что арендаторы отправляют рабочие нагрузки 104-1, 104-2, 104-3 по 104-n службе 106 планирования. Служба 106 планирования назначает рабочие нагрузки различным исполнительным модулям 108-1, 108-2 по 108-p. Исполнительные модули используют некоторые ресурсы облачной службы 100.

[0020] Чтобы гарантировать, что ресурсы разделяются справедливо, рабочим нагрузкам может быть предоставлена возможность использовать только заданное количество ресурсов, прежде чем рабочие нагрузки вытесняются, чтобы давать другим рабочим нагрузкам возможность быть выполненными. Если рабочие нагрузки не закончили работу при вытеснении, рабочие нагрузки будут повторно поставлены в очередь в службе 106 планирования, так что им может быть дана другая возможность использовать ресурсы облачной службы.

[0021] В одном типичном примере ресурсы будут разделены во времени. Таким образом, например, рабочей нагрузке может быть отведен некоторый интервал времени на выполнение, или на то, чтобы достигать контрольной точки, где работа по рабочей нагрузке может быть легко сохранена, так что рабочая нагрузка может быть продолжена из сохраненного состояния, когда рабочая нагрузка снова выделяется исполнительному модулю. Если рабочая нагрузка достигает контрольной точки и сохраняется, тогда рабочая нагрузка может быть вытеснена. Это сохраняет работу, которая была выполнена для рабочей нагрузки. Если рабочая нагрузка превышает интервал времени (или другое выделение части ресурса в других вариантах осуществления), тогда рабочая нагрузка вытесняется, даже если состояние не может быть сохранено. Это будет приводить в результате к потере работы, выполненной по рабочей нагрузке. Таким образом, рабочая нагрузка может быть назначена исполнительному модулю, такому как исполнительный модуль 108-1. Исполнительный модуль будет выполнять рабочая нагрузка до истечения, в этом примере, предварительно определенного интервала времени. Если время истекает без сохранения рабочей нагрузки, тогда рабочая нагрузка будет вытеснена. Если рабочая нагрузка достигает контрольной точки и сохраняется, рабочая нагрузка также будет вытеснена в этом случае.

[0022] Отметим, что справедливость необязательно означает, что ресурсы делятся равномерно.

Справедливость может учитывать несколько различных факторов, которые приводят в результате к тому, что некоторые арендаторы обеспечиваются большей долей ресурсов, чем другие арендаторы. Например, арендатору, который оплатил премимум-доступ для более высокого уровня обслуживания, чем другие арендаторы, может быть назначена большая доля ресурсов, которая реализуется как большая часть ресурсов. Дополнительно, как будет иллюстрировано подробно ниже, облачная служба 100 может предоставлять, в качестве стимула, большую гибкость для использования ресурсов, когда рабочие нагрузки согласуются с некоторыми стандартами.

[0023] В частности, варианты осуществления могут стимулировать регистрацию состояния в контрольной точке. Арендаторам, которые регистрируют состояние в контрольных точках своих рабочих нагрузок, некоторым образом может быть предоставлена некоторая гибкость в ограничениях части ресурсов. Таким образом, некоторые варианты осуществления могут принимать приближение к контрольным точкам во внимание как часть эвристики, используемой, чтобы определять, когда вытеснять рабочую нагрузку. Арендаторы могут структурировать регистрацию состояния в контрольной точке в своих рабочих нагрузках, чтобы обеспечивать предписанное приближение, чтобы предоставлять своим рабочим нагрузкам режим благоприятствования.

[0024] Последующее описание иллюстрирует пример, когда часть ресурса является временным интервалом процессора. Однако, должно быть понятно, как обсуждалось выше, что другие части ресурсов могут быть альтернативно или дополнительно использованы. Таким образом, последующий пример не должен истолковываться как ограничивающий рамки частей ресурсов только временными интервалами.

[0025] Некоторые варианты осуществления могут быть реализованы с помощью службы управления рабочим нагрузками Azure Automation Service, доступной от корпорации Microsoft из Рэдмонда, штат Вашингтон.

Однако, варианты осуществления могут быть использованы фактически любой системой с множеством арендаторов, которая должна обеспечивать равноправное разделение системных ресурсов, которая запускает рабочие нагрузки различной продолжительности (или другое выделение ресурса), которая поддерживает сохранение состояния во время работы.

[0026] В иллюстрированном примере запросы рабочих нагрузок (например, запросы 104-1 по 104-m), приходящие от арендаторов, помещаются в одну из очередей исполнительных модулей (например, очереди 110-1, 110-2 по 110-p), из которых они захватываются исполнительными модулями 108-1 по 108-p на основе доступности системных ресурсов. Каждый исполнительный модуль отвечает за обработку одной очереди.

[0027] Когда рабочая нагрузка загружается в память, время записывается. Во время работы рабочая нагрузка может быть сохранена множество раз. Когда сохранять рабочие нагрузки, решается автором рабочего процесса. В зависимости от того, когда истекает временной интервал исполнения, и когда рабочая нагрузка была в прошлый раз сохранена, рабочая нагрузка вытесняется. Могут быть реализованы различные правила вытеснения. Иллюстрируются некоторые конкретные примеры.

[0028] Например, со ссылкой на фиг. 2, рабочие нагрузки, которые не имеют какой-либо контрольной точки в последних 10% (или некоторой другой процентной доле или фрагменте) временного интервала исполнения, вытесняются, когда временной интервал исполнения истекает. Со ссылкой на фиг. 3, рабочие нагрузки, которые имеют контрольные точки в последних 10% (или некоторой другой выбранной процентной доле или фрагменте) временного интервала исполнения, вытесняются вскоре после того, как они сохраняются. Этот характер работы ведет к лучшему потребительскому восприятию, поскольку, когда повторно активируются, рабочие нагрузки продолжают свое исполнение с контрольной точки.

[0029] В одной разновидности варианты осуществления могут стимулировать режим работы с регистрацией состояния в контрольной точке посредством "награждения" рабочих нагрузок с частыми контрольными точками, предоставляя им возможность работать до 10% (или некоторой другой выбранной процентной доли или фрагмента) сверх временного интервала. Как иллюстрируется на фиг. 4 и 5, рабочим нагрузкам, которые имеют контрольные точки в последних 10% (или некоторой другой выбранной процентной доле или фрагменте) временного интервала, предоставляется возможность работать на 10% (или на другую выбранную процентную долю или фрагмент) дольше временного интервала или до тех пор, пока они не будут вытеснены (см. фиг. 4) или сохранены (см. фиг. 5).

[0030] Динамический статус вытесненной рабочей нагрузки не изменяется, но описание, которое указывает, что рабочая нагрузка больше не находится в памяти, присоединяется к рабочей нагрузке. Например, рабочие нагрузки, которые являются "работающими", становятся "работающими, ожидающими ресурсов".

[0031] Варианты осуществления могут содействовать назначению вытесненной рабочей нагрузки другому исполнительному модулю в качестве способа уравновешивать распределение рабочей нагрузки между множеством исполнительных модулей. Вариант осуществления может принимать во внимание ближайшую историю использования ресурса в исполнительных модулях при принятии решений о размещении рабочей нагрузки. Вытесненные рабочие нагрузки помещаются в конец одной из доступных очередей исполнительных модулей (например, одной из 110-1 по 110-p). Доступная очередь может быть выбрана случайно или на основе доступности ресурсов исполнительного модуля.

[0032] Когда вновь назначенный исполнительный модуль (например, один из 108-1 по 108-p) захватывает рабочая нагрузка снова из очереди, рабочая нагрузка повторно активируется с последней доступной контрольной точки.

[0033] Существуют некоторые лучшие практики относительно контрольных точек в рабочем процессе, которые содействуют этой модели исполнения. Пользователь должен гарантировать, что рабочая нагрузка сохраняется часто, и что исполнение является идемпотентным (т.е., если рабочая нагрузка запускается множество раз с контрольной точки, результаты являются одинаковыми). Если рабочая нагрузка не содержит контрольных точек или не управляет продолжением с существующей контрольной точки после множества попыток, тогда варианты осуществления могут помечать его как "потерявшее работоспособность" и прекращать пытаться повторно активировать его. Арендатор может также быть уведомлен об отказе. В некоторых вариантах осуществления варианты осуществления могут уведомлять арендатора, что рабочая нагрузка более вероятно достигнет цели, если имеет контрольную точку или чаще сохраняет состояние в контрольной точке.

[0034] Последующее обсуждение теперь обращается к ряду способов и действиям способа, которые могут быть выполнены. Хотя действия способа могут обсуждаться в некотором порядке или иллюстрироваться в блок-схеме последовательности операций как возникающие в конкретном порядке, конкретное упорядочивание обязательно не требуется, пока специально не заявлено, или требуется, поскольку действие зависит от другого действия, завершаемого перед выполняемым действием.

[0035] Обращаясь теперь к фиг. 6, иллюстрируется способ 600. Способ 600 может быть применен на практике в распределенном вычислительном окружении, которое предоставляет вычислительные ресурсы множеству арендаторов. Способ включает в себя действия для выделения ограниченного множества системных ресурсов арендаторам (справедливым образом). Способ включает в себя идентификацию части ресурса (этап 602). Например, часть ресурса может быть одним или более из: временного интервала, множества команд (например, действий сценария), процессорных ресурсов, сетевых ресурсов, ресурсов хранения, ресурсов среды исполнения "песочница", использования памяти, вводов/выводов и т.д.

[0036] В некоторых вариантах осуществления часть ресурса является динамически конфигурируемой. Таким образом, например, часть ресурса может изменяться по величине в зависимости от множества различных факторов. В одном примере часть ресурса может быть динамически переконфигурируемой на основе ручных настроек. Таким образом, администратор в облачной службе может вручную задавать размер части ресурса. Альтернативно или дополнительно, часть ресурса может быть динамически конфигурируемой на основе нагрузки. Таким образом, например, если существует небольшая потребность в ресурсах, части ресурса могут быть больше, чем когда существует высокая потребность в ресурсах. Альтернативно или дополнительно, части ресурса могут динамически конфигурироваться на основе времени дня, времени года, сезонов и т.д. Таким образом, облачная служба, с которой работают арендаторы для электронной торговли, может иметь меньшие выделения частей ресурсов во время сезона праздничных покупок, чем во время менее требовательных сезонов года.

[0037] Способ 600 дополнительно включает в себя идентификацию исполняющейся рабочей нагрузки арендатора (этап 604). Например, варианты осуществления могут идентифицировать рабочая нагрузка, исполняющаяся в исполнительном модуле (таком как один из исполнительных модулей 108-1 по 108-p).

[0038] Способ 600 дополнительно включает в себя идентификацию характеристик контрольных точек для исполняющейся рабочей нагрузки арендатора (этап 606). Рабочий процесс будет идентифицировать контрольные точки в рабочем процессе, которые могут быть идентифицированы облачной службой. Это может включать в себя идентификацию того, существуют ли контрольные точки в рабочем процессе, где в рабочем процессе существуют контрольные точки, как часто или последовательно выполняется для рабочего процесса регистрация состояния в контрольных точках, и т.д.

[0039] На основе характеристик контрольных точек и части ресурса способ 600 дополнительно включает в себя идентификацию события вытеснения задачи (этап 608). Местоположение контрольных точек может влиять на то, как и когда происходит событие вытеснения задачи. Например, в некоторых вариантах осуществления, идентификация события вытеснения задачи содержит вытеснение рабочей нагрузки арендатора до истечения срока действия части ресурса, когда регистрация состояния в контрольной точке происходит до истечения срока действия части ресурса. Пример этого иллюстрируется на фиг. 3 выше.

[0040] Альтернативно или дополнительно, идентификация события вытеснения задачи содержит вытеснение рабочей нагрузки арендатора в пределах некоторой предварительно определенной отсрочки истечения срока действия части ресурса, когда регистрация состояния в контрольной точке происходит в пределах предварительно определенной отсрочки истечения срока действия части процесса. Пример этого иллюстрируется выше на фиг. 5.

[0041] Способ 600 может дополнительно включать в себя определение, что рабочая нагрузка арендатора продолжает вытесняться без регистрации состояния в контрольной точке предварительно определенное число раз. В результате, способ 600 включает в себя выполнение корректирующей функции. Таким образом, например, как иллюстрировано на фиг. 2, рабочая нагрузка может быть вытеснена прежде, чем его состояние может быть сохранено в контрольной точке. Вытесненная рабочая нагрузка может быть повторно запланировано и снова повторно выполнено один или более дополнительных раз.

[0042] После того как была попытка повторного выполнения рабочей нагрузки предварительно определенное число раз, будет выполнено некоторое другое корректирующее действие. Это может быть корректирующее действие по рабочей нагрузке. Например, корректирующее действие может включать в себя прекращение работы рабочей нагрузки, чтобы предотвращать будущие попытки повторного выполнения рабочей нагрузки. Альтернативно или дополнительно, корректирующее действие может включать в себя расширение части ресурса, чтобы предоставлять некоторые дополнительные ресурсы, чтобы выполнять рабочую нагрузку. В некоторых вариантах осуществления это может быть выполнено посредством покупки премиум-доступа, автоматического начисления дополнительных сумм арендатору и т.д. Альтернативно или дополнительно, это может быть корректирующее действие, выполняемое относительно арендатора. Например, арендатор может быть уведомлен, что рабочая нагрузка не может быть выполнена вследствие недостаточной регистрации состояния в контрольных точках. В некоторых крайних случаях арендатор может быть отлучен от облачной службы или помещен в некоторое испытательное состояние за неподчинение требованиям регистрации состояний в контрольных точках.

[0043] Способ 600 может дополнительно включать в себя идентификацию, что не существует нагрузки на очередь рабочих нагрузок, и, в результате, не выполняется некоторое событие, даже если рабочая нагрузка превысила ограничения части ресурса, что обычно было бы причиной вытеснения рабочей нагрузки. Таким образом, например, если не существуют других рабочих нагрузок, ожидающих в очереди рабочих нагрузок, и рабочая нагрузка должна было быть вытеснена, могут быть предоставлены дополнительные ресурсы, чтобы предоставлять возможность рабочей нагрузке отработать.

[0044] Способ 600 может дополнительно включать в себя уведомление пользователя о конструктивной обработке (таком как расширение части ресурса на некоторую величину) его рабочей нагрузки на основе пользовательского использования контрольных точек. Например, арендатор может быть уведомлен в служебном отчете, предоставляемом на периодической основе, о величине конструктивной обработки его рабочих нагрузок, которая было предоставлена на основе использования арендатором регистрации состояния в контрольной точке. Альтернативно или дополнительно, каждый раз, когда предоставляется конструктивная обработка, предупреждение может выдаваться арендатору. Другие способы могут быть альтернативно или дополнительно использованы, чтобы предупреждать пользователя о благоприятном режиме.

[0045] Дополнительно, способы могут быть применены на практике посредством компьютерной системы, включающей в себя один или более процессоров и компьютерно-читаемых носителей, таких как память компьютера. В частности, память компьютера может хранить выполняемые компьютером инструкции, которые, когда исполняются одним или более процессорами, инструктируют выполнение различных функций, таких как этапы, перечисленные в вариантах осуществления.

[0046] Варианты осуществления настоящего изобретения могут содержать или использовать специализированный компьютер или компьютер общего назначения, включающий в себя аппаратные средства компьютера, которые обсуждаются более подробно ниже. Варианты осуществления, охватываемые объемом настоящего изобретения, также включают в себя компьютерно-читаемые носители для передачи или хранения на них машиноисполняемых инструкций и/или структур данных. Такими компьютерно-читаемыми носителями могу быть любые доступные носители, к которым можно осуществлять доступ посредством компьютерной системы общего назначения или специализированной компьютерной системы. Компьютерно-читаемые носители, которые хранят машиноисполняемые инструкции, являются физическими носителями хранения. Компьютерно-читаемые носители, которые переносят машиноисполняемые инструкции, являются средой передачи. Таким образом, в качестве примера, но не ограничения, варианты осуществления изобретения могут содержать, по меньшей мере, два определенно разных вида компьютерно-читаемых носителей: физические компьютерно-читаемые носители хранения и компьютерно-читаемая среда передачи.

[0047] Физические компьютерно-читаемые носители хранения включают в себя RAM, ROM, EEPROM, CD-ROM или другой накопитель на оптическом диске (такие как CD, DVD и т.д.), накопитель на магнитном диске или другие магнитные запоминающие устройства или любой другой носитель, который может использоваться, чтобы хранить желаемое средство кодирования программы в форме машиноисполняемых инструкций или структур данных, и к которому может быть осуществлен доступ посредством компьютера общего назначения или специализированного компьютера.

[0048] "Сеть" определяется как одна или более линий передачи данных, которые предоставляют возможность передачи электронных данных между компьютерными системами и/или модулями и/или другими электронными устройствами. Когда информация передается или предоставляется по сети или другому коммуникационному соединению (либо проводному, беспроводному, либо комбинации проводного или беспроводного) в компьютер, компьютер надлежащим образом рассматривает соединение как среду передачи. Среда передачи может включать в себя сеть и/или линии передачи данных, которые могут использоваться, чтобы переносить желаемое средство кодирования программы в форме машиноисполняемых инструкций или структур данных, и к которым может быть осуществлен доступ посредством компьютера общего назначения или специализированного компьютера. Комбинации вышеперечисленного также включаются в рамки компьютерно-читаемых носителей.

[0049] Дополнительно, при достижении различных компонентов компьютерной системы средство кодирования программы в форме машиноисполняемых инструкций или структур данных может передаваться автоматически из компьютерно-читаемой среды передачи на физические компьютерно-читаемые носители хранения (или наоборот). Например, машиноисполняемые инструкции или структуры данных, принятые по сети или линии передачи данных, могут быть буферизованы в RAM в модуле сетевого интерфейса (например, "NIC"), и затем, в конечном счете, переданы в RAM компьютерной системы и/или менее энергозависимые компьютерно-читаемые физические носители хранения в компьютерной системе. Таким образом, компьютерно-читаемые физические носители хранения могут быть включены в компоненты компьютерной системы, которые также (или даже в первую очередь) используют среду передачи.

[0050] Машиноисполняемые инструкции содержат, например, инструкции и данные, которые заставляют компьютер общего назначения, специализированный компьютер или специализированное устройство обработки выполнять определенную функцию или группу функций. Машиноисполняемые инструкции могут быть, например, двоичными кодами, инструкциями промежуточного формата, такими как на языке ассемблера, или даже исходным кодом. Хотя изобретение описано на языке, характерном для структурных признаков и/или методологических действий, следует понимать, что объем изобретения, определяемый прилагаемой формулой изобретения, не обязательно ограничен характерными признаками или этапами, описанными выше. Скорее, описанные признаки и этапы раскрыты как примерные формы реализации формулы изобретения.

[0051] Специалисты в данной области техники поймут, что изобретение может быть применено на практике в сетевых вычислительных окружениях со многими типами конфигураций компьютерной системы, включающими в себя персональные компьютеры, настольные компьютеры, портативные компьютеры, процессоры для обработки сообщений, "карманные" устройства, многопроцессорные системы, микропроцессорную или программируемую бытовую электронную аппаратуру, сетевые ПК, миникомпьютеры, мейнфреймы, мобильные телефоны, PDA, пейджеры, маршрутизаторы, коммутаторы и т.п. Изобретение также может быть применено на практике в распределенных системных окружениях, где локальная и удаленная компьютерные системы, которые связаны (либо проводными линиями передачи данных, беспроводными линиями передачи данных или комбинацией проводных и беспроводных линий передачи данных) через сеть, обе выполняют задачи. В распределенном системном окружении программные модули могут размещаться как на локальных, так и на удаленных запоминающих устройствах.

[0052] Альтернативно, или в дополнение, функциональность, описанная в данном документе, может быть выполнена, по меньшей мере, частично, посредством одного или более аппаратных логических компонентов. Например, и без ограничения, иллюстративные типы аппаратных логических компонентов, которые могут быть использованы, включают в себя: программируемые пользователем вентильные матрицы (FPGA), программно-зависимые интегральные схемы (ASIC), программно-зависимые стандартные продукты (ASSP), однокристальные системы (SOC), сложные программируемые логические устройства (CPLD) и т.д.

[0053] Настоящее изобретение может быть осуществлено в других характерных формах без отступления от своего духа или характеристик. Описанные варианты осуществления должны рассматриваться во всех отношениях только как иллюстративные, а не ограничивающие. Рамки изобретения, следовательно, указаны скорее приложенной формулой изобретения, чем предшествующим описанием. Все изменения, которые подпадают под смысл и рамки равнозначности формулы изобретения, должны охватываться ее объемом.

1. Способ выделения ограниченного множества ресурсов компьютерной системы для выполнения работы по одной или более рабочим нагрузкам, причем способ выполняется посредством одного или более процессоров компьютерной системы и содержит этапы, на которых:

после идентификации ресурсов компьютерной системы разделяют эти ресурсы компьютерной системы для формирования одной или более частей ресурсов, каковые одна или более частей ресурсов являются используемыми для выполнения назначенных рабочих нагрузок;

принимают рабочую нагрузку в компьютерной системе;

назначают рабочую нагрузку части ресурсов для исполнения, причем с этой частью ресурсов связана очередь, при этом рабочая нагрузка помещается в очередь при ожидании ее исполнения;

после определения того, что рабочая нагрузка включает в себя одну или более контрольных точек, определяют приближение между по меньшей мере одной из контрольных точек рабочей нагрузки и концевым фрагментом упомянутой части ресурсов;

на основе (1) приближения между по меньшей мере одной из контрольных точек рабочей нагрузки и концевым фрагментом части ресурсов и (2) одной или более характеристик упомянутой части ресурсов определяют время вытеснения для вытеснения рабочей нагрузки из упомянутой части ресурсов;

после определения того, что приближение между по меньшей мере одной из контрольных точек рабочей нагрузки и концевым фрагментом части ресурсов удовлетворяет требованию по приближению, обеспечивают исполнение рабочей нагрузки посредством упомянутой части ресурсов после времени вытеснения; и

после истечения времени вытеснения обеспечивают вытеснение рабочей нагрузки из упомянутой части ресурсов.

2. Способ по п. 1, в котором упомянутые одна или более частей ресурсов представляют собой один или более интервалов времени использования процессора.

3. Способ по п. 1, в котором упомянутое обеспечение вытеснения рабочей нагрузки из части ресурсов содержит этап, на котором вытесняют рабочую нагрузку из упомянутой части ресурсов в пределах предварительно определенной отсрочки после времени вытеснения.

4. Способ по п. 1, в котором упомянутая часть ресурсов содержит одно или более из: временного интервала, множества команд, объема процессорных ресурсов, объема сетевых ресурсов, объема ресурсов хранения, объема ресурсов среды исполнения типа "песочница", объема памяти и объема I/O.

5. Способ по п. 1, в котором упомянутая часть ресурсов является динамически конфигурируемой.

6. Способ по п. 1, дополнительно содержащий этапы, на которых:

определяют, что рабочая нагрузка была ранее вытеснена из упомянутой части ресурсов, не будучи при этом полностью исполненной; и

в ответ на определение того, что рабочая нагрузка не была полностью исполнена, выполняют корректирующую функцию.

7. Способ по п. 6, в котором корректирующая функция содержит прекращение рабочей нагрузки.

8. Способ по п. 6, в котором корректирующая функция содержит расширение упомянутой части ресурсов.

9. Способ по п. 1, дополнительно содержащий этапы, на которых:

идентифицируют, что другая очередь другой части ресурсов является пустой; и

в ответ на идентификацию отсутствия каких-либо рабочих нагрузок в очереди этой другой части ресурсов, увеличивают время вытеснения.

10. Способ по п. 1, дополнительно содержащий этап, на котором уведомляют пользователя о конструктивной обработке рабочей нагрузки на основе множества контрольных точек.

11. Машиночитаемый носитель информации, на котором сохранены машиноисполняемые инструкции, которые являются исполняемыми одним или более процессорами компьютерной системы для предписания компьютерной системе выделять ограниченное множество ресурсов компьютерной системы для выполнения работы по одной или более рабочим нагрузкам посредством предписания компьютерной системе:

после идентификации ресурсов компьютерной системы, разделять эти ресурсы компьютерной системы для формирования одной или более частей ресурсов, каковые одна или более частей ресурсов являются используемыми для выполнения назначенных рабочих нагрузок;

принимать рабочую нагрузку в компьютерной системе;

назначать рабочую нагрузку части ресурсов для исполнения, причем с этой частью ресурсов связана очередь, при этом рабочая нагрузка помещается в очередь при ожидании ее исполнения;

после определения того, что рабочая нагрузка включает в себя одну или более контрольных точек, определять приближение между по меньшей мере одной из контрольных точек рабочей нагрузки и концевым фрагментом упомянутой части ресурсов;

на основе (1) приближения между по меньшей мере одной из контрольных точек рабочей нагрузки и концевым фрагментом части ресурсов и (2) одной или более характеристик упомянутой части ресурсов определять время вытеснения для вытеснения рабочей нагрузки из упомянутой части ресурсов;

после определения того, что приближение между по меньшей мере одной из контрольных точек рабочей нагрузки и концевым фрагментом части ресурсов удовлетворяет требованию по приближению, обеспечивать исполнение рабочей нагрузки посредством упомянутой части ресурсов после времени вытеснения; и

после истечения времени вытеснения обеспечивать вытеснение рабочей нагрузки из упомянутой части ресурсов.

12. Машиночитаемый носитель информации по п. 11, при этом исполнение машиноисполняемых инструкций дополнительно предписывает компьютерной системе:

идентифицировать, что другая очередь другой части ресурсов является пустой; и

увеличивать время вытеснения.

13. Машиночитаемый носитель информации по п. 11, при этом исполнение машиноисполняемых инструкций дополнительно предписывает компьютерной системе расширять упомянутую часть ресурсов.

14. Машиночитаемый носитель информации по п. 11, при этом исполнение машиноисполняемых инструкций дополнительно предписывает компьютерной системе прекращать рабочую нагрузку, когда выполнено заранее определенное количество вытеснений задач.

15. Компьютерная система выделения ограниченного множества ресурсов, содержащая:

один или более процессоров; и

один или более машиночитаемых носителей информации, на которых сохранены машиноисполняемые инструкции, которые являются исполняемыми одним или более процессорами для предписания компьютерной системе выделять ограниченное множество ресурсов компьютерной системы для выполнения работы по одной или более рабочим нагрузкам посредством предписания компьютерной системе:

после идентификации ресурсов компьютерной системы разделять эти ресурсы компьютерной системы для формирования одной или более частей ресурсов, каковые одна или более частей ресурсов являются используемыми для выполнения назначенных рабочих нагрузок;

принимать рабочую нагрузку в компьютерной системе;

назначать рабочую нагрузку части ресурсов для исполнения, причем с этой частью ресурсов связана очередь, при этом рабочая нагрузка помещается в очередь при ожидании ее исполнения;

после определения того, что рабочая нагрузка включает в себя одну или более контрольных точек, определять приближение между по меньшей мере одной из контрольных точек рабочей нагрузки и концевым фрагментом упомянутой части ресурсов;

на основе, по меньшей мере отчасти, приближения между по меньшей мере одной из контрольных точек рабочей нагрузки и концевым фрагментом части ресурсов определять время вытеснения для вытеснения рабочей нагрузки из упомянутой части ресурсов;

после определения того, что приближение между по меньшей мере одной из контрольных точек рабочей нагрузки и концевым фрагментом части ресурсов удовлетворяет требованию по приближению, обеспечивать исполнение рабочей нагрузки посредством упомянутой части ресурсов после времени вытеснения; и

после истечения времени вытеснения обеспечивать вытеснение рабочей нагрузки из упомянутой части ресурсов.

16. Компьютерная система по п. 15, при этом время вытеснения является увеличиваемым при оплате премиум-доступа.

17. Компьютерная система по п. 15, в которой исполнение машиноисполняемых инструкций дополнительно предписывает компьютерной системе определять, где расположена каждая из одной или более контрольных точек в рабочем процессе рабочей нагрузки.

18. Компьютерная система по п. 15, в которой исполнение машиноисполняемых инструкций дополнительно предписывает компьютерной системе:

определить, имел ли место отказ с полным исполнением рабочей нагрузки посредством упомянутой части ресурсов; и

после определения того, что имел место отказ с полным исполнением рабочей нагрузки, выдавать уведомление, что для рабочей нагрузки требуются дополнительные контрольные точки.

19. Компьютерная система по п. 15, в которой обеспечение исполнения рабочей нагрузки посредством упомянутой части ресурсов содержит:

сохранение рабочей нагрузки в память в первый раз, когда достигается первая контрольная точка; и

после сохранения рабочей нагрузки в память в первый раз, обеспечение продолжения исполнения рабочей нагрузки посредством упомянутой части ресурсов.

20. Компьютерная система по п. 19, в которой обеспечение исполнения рабочей нагрузки посредством упомянутой части ресурсов дополнительно содержит:

сохранение рабочей нагрузки в память во второй раз, когда достигается вторая контрольная точка; и

после сохранения рабочей нагрузки в память во второй раз, обеспечение продолжения исполнения рабочей нагрузки посредством упомянутой части ресурсов.



 

Похожие патенты:

Изобретение относится к средствам отображения окон посредством использования группы работ. Технический результат заключается в сокращении времени, требуемом для переключения между окнами.

Изобретение относится к средствам для продолжения задач между пользовательскими устройствами. Технический результат заключается в скорости продолжения выполнения задачи.

Изобретение относится к средствам для продолжения задач между пользовательскими устройствами. Технический результат заключается в скорости продолжения выполнения задачи.

Изобретение относится к средствам для реализации измененной приоритетной маршрутизации прерываний ввода/вывода (I/O). Технический результат заключается в расширении арсенала технических средств для реализации измененной приоритетной маршрутизации прерываний ввода/вывода.

Изобретение относится к области вычислительной техники. Технический результат заключается в возможности исполнения без помех двух задач с разделением времени, даже если шкалы времени двух задач являются разными.

Изобретение относится к области вычислительной техники. Технический результат заключается в возможности исполнения без помех двух задач с разделением времени, даже если шкалы времени двух задач являются разными.

Группа изобретений относится к области вычислительной техники и может быть использована для обработки прерываний в системах обработки данных. Техническим результатом является увеличение гибкости программного обеспечения обработки прерываний, в то же время, поддерживая безопасность устройства обработки данных.

Группа изобретений относится к области вычислительной техники и может быть использована для обработки прерываний в системах обработки данных. Техническим результатом является увеличение гибкости программного обеспечения обработки прерываний, в то же время, поддерживая безопасность устройства обработки данных.

Изобретение относится к области вычислительной техники. Техническим результатом является автономное планирование процессов, образующих задачу, соответствующую гибкой модели для многозадачной системы реального времени.

Изобретение относится к области вычислительной техники. Техническим результатом является автономное планирование процессов, образующих задачу, соответствующую гибкой модели для многозадачной системы реального времени.

Изобретение относится к системе и способу управления множественным вводом. Технический результат заключается в обеспечении оперирования блоками ввода независимо на основе каждого приложения и, соответственно, обеспечении возможности манипулирования блоками ввода для предоставления сигнала ввода требуемому приложению без переключения между приложениями.

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

Изобретение относится к области обработки данных. Технический результат изобретения заключается в повышении эффективности хранения данных с высокой степенью многопоточности за счет уменьшения нагрузки на базу данных и увеличения скорости обработки данных.

Изобретение относится к средствам использования учетных записей пользователей. Техническим результатом является повышение безопасности учетной записи.

Изобретение относится к технологиям сетевой связи. Технический результат заключается в повышении скорости передачи данных.

Изобретение относится к области виртуализации мобильной сети. Технический результат изобретения заключается в повышении производительности обработки пользовательских данных за счет распределения пакетов пользовательских данных по множеству CPU-ядер.

Изобретение относится к способу функционирования защищенной операционной системы (SecureOS) на многопроцессорных системах в мобильных устройствах. Технический результат заключается в повышении производительности SecureOS.

Изобретение относится к области определения приоритета задач в очереди, обрабатываемой локальной или облачной серверной системой. Техническим результатом является определение приоритета множества задач от множества пользователей по меньшей мере для одного процессора.

Изобретение относится к технологическим процессам. Периферийное устройство для использования в системе управления технологическим процессом содержит процессор; память; функциональный блок для инициализации запланированных действий и модуль планирования.

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

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

Способ может быть применен на практике в распределенном вычислительном окружении, которое предоставляет вычислительные ресурсы множеству арендаторов. Технический результат заключается в предотвращении запуска рабочих нагрузок, превышающих некоторую продолжительность. Способ включает в себя действия для выделения ограниченного множества системных ресурсов арендаторам. Способ включает в себя идентификацию части ресурса. Способ дополнительно включает в себя идентификацию выполняющейся рабочей нагрузки арендатора. Характеристики контрольных точек идентифицируются для исполняющейся рабочей нагрузки арендатора. На основе характеристик контрольных точек и части ресурса идентифицируется событие вытеснения задачи. 3 н. и 17 з.п. ф-лы, 6 ил.

Наверх