СПОСОБ И СИСТЕМА ДЛЯ ВЫПОЛНЕНИЯ ПРОГРАММНЫХ ПРИЛОЖЕНИЙ И МАШИНОЧИТАЕМЫЙ НОСИТЕЛЬ
METHOD AND SYSTEM FOR EXECUTING PROGRAM APPLICATIONS AND MACHINE-READABLE MEDIUM

ОБЛАСТЬ ТЕХНИКИ
Изобретение относится к выполнению программных приложений в вычислительной среде. В частности, варианты осуществления настоящего изобретения относятся к разделению вычислительного задания или задания по вводу-выводу данных, которое должны быть выполнено приложением, на микрозадания и назначения выполнения таких микрозаданий на периоды низкой загрузки ресурсов компьютера, так чтобы выполнение микрозаданий не оказывало существенного влияния на выполнение других приложений и заданий.
ПРЕДПОСЫЛКИ СОЗДАНИЯ ИЗОБРЕТЕНИЯ
Во времена больших универсальных ЭВМ обычно использовался принцип выполнения программами пакетов заданий. Количество компьютеров было ограничено, так что пользователи должны были планировать свои задания, чтобы они выполнялись на компьютере, когда он не использовался для другого, более важного, задания. В таких системах каждое задание было запланировано для выполнения до самого завершения без прерывания, после чего запускалось следующее задание, и т.д. Существовавшие тогда ограничения рабочего времени компьютеров привели к необходимости к откладыванию выполнения низкоприоритетных заданий на нерабочее время, чтобы не задерживать выполнения заданий с высоким приоритетом.
Позднее многозадачные компьютерные системы обеспечили одновременное или чередующееся выполнение двух или большего числа заданий с использованием одного центрального процессора (ЦП). Многозадачные компьютерные системы позволяют выполнять несколько приложений в одном общем временном интервале. Обычно многозадачные системы имеют сложные внутренние алгоритмы планирования, причем выполнение процессов планируется в соответствии с назначенными приоритетами. Однако приложения все-таки конкурируют в "борьбе" за вычислительные ресурсы. Для смягчения такой конкуренции оператор вручную может задать выполнение некоторых приложений в многозадачной системе во "внерабочее время".
К приложениям, выполняемым во внерабочее время, могут относиться регламентные работы и другие работы по техническому обслуживанию, такие как, например, архивирование, индексирование, обновление программного обеспечения, антивирусное сканирование и дефрагментация дисков. К заданиям, кандидатам на выполнение во внерабочее время, также могут относиться приложения, которые генерируют отчеты, выполняют финансовые расчеты и т.п. Однако некоторые приложения, такие как, например, программы индексирования, должны выполняться в рабочее время. Поэтому не все приложения являются хорошими кандидатами для выполнения во внерабочее время.
Другая проблема, связанная с планированием заданий на внерабочее время, заключается в том, что компьютер может быть выключен в то время, на которое запланировано такое задание. Еще одна проблема заключается в том, что для некоторых вычислительных систем не существует четко определенного нерабочего времени. Например, многие компьютерные системы используются двадцать четыре часа в сутки для выполнения вычислений, которые представляют достаточную важность, и потому такие задания не могут быть прерваны на достаточно длительный промежуток времени. Поэтому в этом случае отсутствует само понятие нерабочего времени, на которое могут быть запланированы некоторые задания. Кроме того, еще одна проблема заключается в том, что обычно пользователь должен определить случаи, когда задание должно быть запланировано на выполнение во внерабочее время. Поэтому составление плана отнимает время у пользователя, и при этом возможны ошибки пользователя.
Как уже указывалось, выполнение вычислительного задания может создавать помехи для пользователя по использованию компьютера, и при этом могут отниматься ресурсы у других, может быть, более срочных приложений и заданий. Такие негативные последствия могут быть сведены к минимуму с помощью технологии синхронизации. Синхронизация предотвращает использование приложением или заданием количества ресурсов, превышающего заданную величину. Могут использоваться различные типы синхронизации: синхронизация дисковой системы ввода/вывода, синхронизация ЦП и синхронизация сети. Например, синхронизация ЦП может предусматривать установку для приложения предельной величины используемого времени ЦП и принудительное прекращение работы приложения, когда оно превысит заданный предел. Синхронизация иногда применяется к ресурсам компьютера для поддержки приложений технического обслуживания или менее важных вычислительных заданий. Хотя синхронизация имеет определенные достоинства, однако использование ресурсов вычислительным заданием не является полностью прозрачным для других заданий и приложений.
В то же время можно отметить, что значительная часть вычислительных ресурсов остается неиспользованной, даже при обработке срочных заданий, имеющих наивысший приоритет. Большое различие в скоростях ЦП, памяти, дисководов и сетей обычно приводит к тому, что один или несколько из указанных компонентов будут простаивать, в то время как другие компоненты могут быть полностью загружены. Например, ЦП с частотой три гигагерца часто простаивает в ожидании выборки данных с диска, поскольку среднее время доступа к данным измеряется миллисекундами.
Для возвращения в работу и использования таких ресурсов, которые в противном случае будут потеряны, необходим способ, который позволит выполнять в компьютерной системе одно или несколько заданий без существенного влияния на другие задания или приложения. Такой способ не должен отнимать время у пользователя на планирование задания, и, кроме того, его применение не должно сказываться негативно на взаимодействии пользователя с компьютерной системой в процессе выполнения задания. Способ не должен предусматривать планирование выполнения задания во внерабочее время. Способ должен быть эффективно применим к компьютерным системам, у которых нет нерабочего времени.
Способы, описанные в настоящем разделе, - это способы, которые могли бы быть осуществлены, но необязательно были предложены или осуществлены ранее. Поэтому, если не указано иное, то нельзя считать, что любой из способов, описанных в настоящем разделе, определяется как известный способ только лишь по причине его включения в настоящий раздел.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Настоящее изобретение иллюстрируется на примере, который не является ограничивающим, со ссылками на фигуры прилагаемых чертежей, на которых одинаковые ссылочные номера относятся к одинаковым элементам и на которых показано:
фигура 1 - схема структуры выполнения микрозаданий в соответствии с одним из вариантов осуществления настоящего изобретения;
фигура 2 - схема, иллюстрирующая сравнение обычного выделения памяти выполняемым приложениям с выделением памяти в соответствии с одним из вариантов осуществления настоящего изобретения;
фигура 3 - блок-схема алгоритма выполнения приложения, включаемого планировщиком микрозаданий, с использованием микрозаданий в соответствии с одним из вариантов осуществления настоящего изобретения;
фигура 4 - блок-схема алгоритма дефрагментации носителя информации с использованием микрозаданий в соответствии с одним из вариантов осуществления настоящего изобретения;
фигура 5 - блок-схема, иллюстрирующая структуру вычислительной системы, в которой может быть осуществлен вариант осуществления изобретения.
ПОДРОБНОЕ ОПИСАНИЕ
В нижеприведенном описании различные конкретные детали указаны в таком порядке, который должен обеспечивать полное понимание настоящего изобретения. Однако будет ясно, что настоящее изобретение может быть осуществлено и без таких конкретных деталей. В других случаях хорошо известные структуры и устройства показаны в общем виде, в форме блоков, чтобы не загромождать описание настоящего изобретения излишними деталями.
ОБЗОР
Бóльшая часть компьютеров не использует все возможности своих ресурсов в течение всего времени работы. Это справедливо для компьютеров, которые работают только часть дня, и даже для компьютеров, загрузка которых довольно высока при круглосуточной работе семь дней в неделю. Поэтому компьютерное время и ресурсы расходуются непроизводительно. Например, на временном интервале, равном двадцати четырем часам, компьютерная система, работающая с высокой загрузкой, и система, у которой могут быть лишь небольшие интервалы активности, могут в среднем использовать от пяти до двадцати процентов своих ресурсов.
В настоящем описании раскрываются способ, система и устройство, обеспечивающие использование этих неиспользованных ресурсов компьютера путем разделения каждого задания на микрозадания и выполнения таких микрозаданий в те промежутки времени, когда ресурсы, необходимые для выполнения задания, свободны. Термин "микрозадание" понимается в настоящем описании как часть вычислительного процесса, выполнение которой может быть задержано без ущерба для результата выполнения остальной части процесса. Термины "незанятый ресурс", "свободное время" и аналогичные относятся к временным интервалам, на которых ресурс используется менее чем на 100%, то есть часть ресурса, которая не используется, считается "незанятой", даже если другая часть ресурса используется.
Таким образом, микрозадания выполняются непрерывно, но без стремления закончить вычислительное задание как можно быстрее. Программное обеспечение, осуществляющее такой способ, может выполняться все время, когда компьютер включен, с незначительным влиянием на работу других программ, выполняемых в то же самое время на том же самом компьютере, в результате чего эффективно выполняется гораздо больше полезной работы в единицу времени.
В отличие от стремления выполнить задание как можно скорее с учетом имеющихся ограничений на ресурсы или от планирования выполнения задания во "внерабочее время", чтобы избежать существенного влияния на выполнение других заданий и приложений, задание выполняется на компьютере постоянно, однако в такие промежутки времени, когда это может быть неощутимо для пользователя или для других заданий, выполняемых на компьютере. Таким образом, задание может быть полностью прозрачно для пользователя или для других заданий и приложений. В этом случае пользователю нет необходимости планировать задание, поскольку оно выполняется в любое время, включая критические временные интервалы.
Термин "прозрачный", используемый в настоящем описании в отношении других заданий, процессов и приложений, понимается в том смысле, что другие задания и приложения могут выполняться, не испытывая какого-либо существенного негативного влияния в связи с выполнением микрозаданий. Негативное влияние может быть определено путем сравнения времени выполнения одного только тестового задания со временем его выполнения, когда одновременно выполняется вычислительное задание, которое разбито на микрозадания. Для этих двух указанных случаев не должно быть существенных различий во времени выполнения тестового задания.
Планировщик микрозаданий (ПМЗ) определяет, когда должны выполняться микрозадания, в соответствии с вариантом осуществления настоящего изобретения. В одном варианте осуществления изобретения прикладная программа делит свои вычислительные задания на несколько микрозаданий. Термин "несколько" понимается в настоящем описании как количество, превышающее единицу. ПМЗ определяет, когда должны выполняться микрозадания. Приложения, которые получают возможность работать с ПМЗ, называются здесь ПМЗ-приложениями.
В одном варианте осуществления изобретения в состав ПМЗ входит диспетчер памяти. Каждое ПМЗ-приложение запрашивает память у диспетчера памяти ПМЗ вместо того, чтобы запрашивать ее у операционной системы. В одном варианте осуществления изобретения ПМЗ-приложение имеет очень небольшой размер выделяемой памяти, то есть памяти, которая выделяется ПМЗ-приложению и из которой это приложение выполняется. Для обеспечения малых размеров выделяемой памяти устанавливается предел размера памяти, выделяемой ПМЗ-приложению.
В другом варианте осуществления изобретения осуществляются контроль и анализ использования ресурсов компьютера для определения соответствия загрузки ресурсов одному или нескольким критериям незанятого ресурса. ПМЗ включает выполнение микрозаданий, если выполняется один или несколько критериев свободного ресурса. Поскольку время, необходимое для выполнения определенного микрозадания, меньше типичного временного интервала, в течение которого необходимый ему ресурс не занят, этот ресурс освобождается до того, как он понадобится другому заданию. Таким образом, использование ресурса микрозаданием может быть незаметно, и оно может быть невидимо для среды его приложения.
В соответствии с вариантом осуществления настоящего изобретения ПМЗ-приложение передает в ПМЗ пороговые величины загрузки ресурса для определения условий, при которых должно осуществляться использование ресурса. К таким ресурсам относятся, в частности, дисковая система ввода/вывода, ЦП и использование сети (перечень не является исчерпывающим). Например, ПМЗ-приложение может указать минимальные пороговые величины промежутков времени для выполнения микрозадания для каждого из вышеуказанных трех ресурсов.
В одном из вариантов осуществления изобретения приложение является программой дефрагментации носителя информации. Программе дефрагментации может требоваться каждый день 12 минут для выполнения запланированного задания ежедневной дефрагментации. Программа дефрагментации, выполняемая как ПМЗ-приложение, делит все задание на несколько микрозаданий, выполнение каждого из которых может занимать несколько миллисекунд, выбирая временные интервалы, в течение которых ресурсы, необходимые программе дефрагментации, не используются другим заданием или приложением. Программа дефрагментации, выполняемая как ПМЗ-приложение, может выполняться в любой момент времени, когда компьютер включен, причем 12-минутное задание, разделенное на микрозадания, выполняется в течение более длительного времени.
Например, первое микрозадание программы дефрагментации, выполняемой как ПМЗ-приложение, может заключаться в определении того, состоит ли файл из фрагментов или нет. Выполнение первого микрозадания занимает ресурсы, которые в противном случае могли бы простаивать. А именно ресурсы, загрузка которых соответствует одному или нескольким критериям незанятости. В результате выполнение микрозадания будет прозрачным для других приложений. Кроме того, в этом случае используется небольшой объем памяти и исключается необходимость в изменении выделения памяти, связанной с программой дефрагментации, перед следующим выполнением микрозадания.
Перед выполнением каждого микрозадания ПМЗ-приложение дефрагментации выполняет проверку соответствия загрузки ресурса компьютера одному или нескольким критериям незанятости. Таким образом, программа дефрагментации, выполняемая как ПМЗ-приложение, проверяет, что ресурс компьютера в текущий промежуток времени используется мало, и поэтому обеспечивается возможность выполнения микрозадания. Если ресурс используется интенсивно, то есть его загрузка высока, то выполнение микрозадания откладывается. После выполнения первого микрозадания программа дефрагментации, выполняемая как ПМЗ-приложение, необязательно немедленно запускает выполнение второго микрозадания. Скорее всего, выполнение следующего микрозадания может растянуться по времени, если те же самые ресурсы необходимы другим приложениям.
АНАЛИЗ СТРУКТУРЫ
На фигуре 1 представлена схема структуры 100 выполнения микрозаданий в соответствии с одним из вариантов осуществления настоящего изобретения. Каждое ПМЗ-приложение 115(1)-115(n) делит на свои вычислительные задания (или просто задания) на микрозадания 125, которые должны быть выполнены. Например, разработчик прикладного программного обеспечения может вставить в соответствующих местах кода прикладной программы команды перехода, которые запрашивают у ПМЗ 110 разрешения на выполнение микрозадания 125, что обеспечивает разделение вычислительного задания на микрозадания 125. Вычислительные микрозадания представляют собой существенно меньшие размеры (например, наименьшие) единицы работы, которая может быть выполнена как единое целое, после чего в соответствии с одним из вариантов осуществления изобретения может быть взят перерыв без каких-либо негативных последствий до выполнения следующего микрозадания 125. Перерыв без каких-либо негативных последствий означает, что выполнение определенного микрозадания может быть задержано без ущерба для результата выполнения всех микрозаданий. Малые размеры микрозаданий 125 обеспечивают использование ПМЗ-приложениями 115 за один раз всего лишь малой части ресурсов компьютера. Поэтому при выполнении микрозадания 125 потребляется достаточно малая часть ресурсов, так что в соответствии с одним вариантом осуществления изобретения не происходит существенного влияния на работу других приложений в компьютерной системе. Например, ПМЗ-приложения 115(1)-115(n) могут выполнять такие задачи технического обслуживания как архивирование, индексация, обновление программного обеспечения, проверка на вирусы и выявление других вредоносных программ и дефрагментация. Однако ПМЗ-приложения 115(1)-115(n) могут быть и программами, не относящимися к задачам технического обслуживания.
Планировщик микрозаданий (ПМЗ) 110 определяет интервалы времени, в которых могут выполняться микрозадания 125. В рассматриваемом варианте осуществления изобретения ПМЗ 110 снабжен интерфейсом для прикладных программ (API) для обеспечения запроса МПЗ-приложением, например приложением 115(1), выполнения одного или нескольких микрозаданий 125. ПМЗ-приложение 115 также указывает API 130 количество микрозаданий 125, как это будет описано ниже более подробно. Ниже будет представлен пример API. Однако структура 100 не ограничивается таким примером API.
Планировщик 110 микрозаданий обеспечивает поддержание очереди микрозаданий, так что он может определять, какое следующее микрозадание 125 должно выполняться. Интервалы времени выполнения микрозаданий задаются ПМЗ 110 таким образом, чтобы они оказывали лишь незначительное влияние на другие приложения. В одном из вариантов осуществления изобретения ПМЗ 110 планирует выполнение микрозаданий таким образом, чтобы они использовали только свободные ресурсы. Для принятия решений по включению микрозаданий ПМЗ 110 проверяет соответствие загрузки ресурсов одному или нескольким критериям незанятости. Иначе говоря, ПМЗ 110 в этом варианте осуществления изобретения ориентируется на ресурсы. Выполнение микрозаданий может быть указано ПМЗ-приложением командой вызова API или с использованием другого способа связи между приложением и ПМЗ. Когда ПМЗ 110 определяет, что следующее микрозадание 125 может выполняться без ущерба для других заданий, он реагирует на вызов ПМЗ-приложения 115 выдачей в ПМЗ-приложение 115(1) команды на выполнение микрозадания 125. В одном из вариантов осуществления изобретения ПМЗ определяет такую возможность выполнения микрозаданий, ориентируясь на загрузку ресурсов. Например, ПМЗ может анализировать активность диска. Если диск используется другим приложением, то ПМЗ будет ожидать, пока это другое приложение не будет выполнено, прежде чем он даст команду на запуск микрозадания. ПМЗ продолжает контроль использования дисковой системы ввода/вывода и разрешает включение другого микрозадания, если ни одно другое приложение не требует доступа к дисковой системе ввода/вывода. Однако если другое приложение пытается использовать дисковую систему ввода/вывода, то ПМЗ не разрешит включение другого микрозадания, в результате другое приложение сможет подключиться к дисковой системе ввода/вывода.
В другом примере ПМЗ может анализировать активность сети. Если сетевой трафик слишком интенсивен, то ПМЗ не разрешит включить какое-либо микрозадание, пока трафик не снизится. Если сетевой трафик достаточно низкий, то ПМЗ разрешает выполнение микрозадания. ПМЗ продолжает контролировать сетевой трафик, чтобы убедиться, что он остается достаточно низким. Если сетевой трафик остается достаточно низким, то может быть разрешено включение другого микрозадания. Однако если сетевой трафик становится высоким, выполнение других микрозаданий не разрешается.
ПМЗ может принимать решения о включении микрозаданий, ориентируясь на любой тип вычислительного ресурса или на любое сочетание ресурсов. В одном из вариантов осуществления изобретения ПМЗ поддерживает несколько очередей микрозаданий, ожидающих разрешения на выполнение. Каждая очередь может соответствовать определенному ресурсу. Например, может быть очередь для микрозаданий, которым для выполнения нужна дисковая система ввода/вывода, очередь для микрозаданий, которым нужна сеть, и очередь микрозаданий, которые используют ЦП, и т.п. Может поддерживаться одна или несколько очередей микрозаданий, которые используют сразу несколько ресурсов. ПМЗ разрешает включение микрозаданий, когда определенный ресурс или комбинация ресурсов свободны для использования. Некоторому микрозаданию может потребоваться использовать два ресурса. Например, некоторому микрозаданию может потребоваться использовать сетевой и дисковый ресурс. Однако этому микрозаданию ресурс ЦП не нужен. Даже если ресурс ЦП в текущем временном промежутке используется интенсивно, этому микрозаданию может быть дано разрешение на включение.
Хотя ПМЗ 110 изображен на фигуре 1 как программа, отдельная от ПМЗ-приложения 115, ПМЗ 110 может быть интегрирован в ПМЗ-приложение 115. Таким образом, в соответствии с одним из вариантов осуществления изобретения ПМЗ 110 может разрешить выполнение микрозадания 125 без отправки сообщения в ПМЗ-приложение 115(1). Поэтому использование API 130 не является обязательным.
В одном из вариантов осуществления изобретения ПМЗ 110 является частью операционной системы. В другом варианте осуществления изобретения ПМЗ 110 исполняется отдельно от операционной системы. В одном из вариантов осуществления изобретения, если ПМЗ выполняется отдельно от операционной системы, то ПМЗ осуществляет ограничение своего использования как ресурса. Например, ПМЗ 110 контролирует обращения к себе как к ресурсу, и если использование этого ресурса становится слишком интенсивным, то ПМЗ 110 делает запрос в операционную систему на прекращение планирования ПМЗ 110 в течение некоторого времени.
В соответствии с одним из вариантов осуществления изобретения ПМЗ-приложение 115 направляет параметры в ПМЗ 110 для контроля загрузки ресурса. К таким контролируемым ресурсам относятся, в частности, дисковая система ввода/вывода, ЦП и использование сети (перечень не является исчерпывающим). Например, ПМЗ-приложение 115 может указать пороговые величины промежутков времени для выполнения микрозадания для каждого из вышеуказанных трех ресурсов. Кроме того, ПМЗ-приложение 115 может указывать различные пороговые величины для ресурса для разных микрозаданий 125. Например, в соответствии с одним из вариантов осуществления изобретения ПМЗ 115 указывает различные пороговые величины для ресурса для каждого микрозадания 125. Поэтому возможно мелкомодульное управление ресурсами. В соответствии с одним из вариантов осуществления настоящего изобретения, когда ПМЗ 110 рассчитывает загрузку ресурса, то это относится к использованию ресурса другими процессами, и не относится к ПМЗ-приложению, для которого делается расчет. Для иллюстрации используется следующий пример, в котором порог загрузки ЦП задается на уровне 20 процентов. Если загрузка ЦП не превышает 20 процентов до разрешения выполнения ПМЗ-приложения, то эта загрузка может увеличиться и превысить 20 процентов после включения микрозадания или нескольких микрозаданий. Такое превышение 20-процентного порога не считается нарушением загрузки ресурса ЦП в данном примере. Аналогичные принципы относятся к ресурсу сети и ресурсу дисковой системы ввода/вывода.
В одном из вариантов осуществления изобретения ПМЗ 110 имеет диспетчер 140 памяти. Когда ПМЗ 110 включается, операционная система выделяет ему память, часть которой используется ПМЗ 110 для своих собственных нужд, и часть выделяется ПМЗ-приложениям 115. Когда запускается ПМЗ-приложение 115(1), оно запрашивает выделение памяти у МПЗ 110. ПМЗ 110 может определять, какое количество памяти необходимо выделить ПМЗ-приложению 115(1), на основании таких факторов, как текущее использование памяти вычислительной системы всеми процессами и потребности ПМЗ-приложения 115(1). Требования по памяти могут быть совершенно разными для каждого ПМЗ-приложения 115 и могут быть внесены в него разработчиком прикладного программного обеспечения.
На фигуре 2 представлена схема, иллюстрирующая сравнение схемы 202 обычного выделения памяти выполняемым приложениям со схемой 204(1)-204(n) выделения памяти ПМЗ-приложению в соответствии с одним из вариантов осуществления настоящего изобретения. Поскольку ПМЗ-приложение 115(1) выполняет микрозадания 125, то выделенная память 204(1) может быть очень мала. Кроме того, поскольку выделяемая память 204(1) мала, то возможно не будет необходимости в освобождении ПМЗ-приложением 115(1) выделенной памяти 204(1). Таким образом, ПМЗ-приложения 115 не требуют частого выделения и освобождения памяти. Это снижение или устранение выделений и освобождений памяти является одной из причин того, что ПМЗ-приложения 115 не оказывают существенного влияния на другие приложения и задания.
ОСУЩЕСТВЛЕНИЕ СПОСОБА
На фигуре 3 приведена блок-схема алгоритма осуществления способа 300 выполнения ПМЗ-приложения с использованием микрозаданий в соответствии с одним из вариантов осуществления настоящего изобретения. На стадии 301 ПМЗ-приложение включается. В одном из вариантов осуществления изобретения ПМЗ-приложение включается при загрузке компьютера. Если у ПМЗ-приложения нет заданий для выполнения, то оно находится в холостом режиме, пока не появится задание для выполнения. В холостом режиме ПМЗ-приложение может выполнять некоторые функции, например мониторинг некоторых событий. На стадии 302 у ПМЗ-приложения имеется задание для выполнения, например дефрагментация носителя информации или проверка на вирусы. Например, задание заключается в дефрагментации диска и находящихся на нем файлов, при этом ПМЗ-приложение осуществляет дефрагментацию в непрерывном режиме.
ПМЗ-приложению при его запуске выделяется небольшой объем памяти. Размер выделяемой памяти может быть очень небольшим, поскольку ПМЗ-приложение обычно пытается выполнить за один раз только одно микрозадание. Однако в некоторых случаях ПМЗ-приложение может пытаться выполнить несколько микрозаданий, не ожидая выполнения других процессов. Например, если ПМЗ определяет, что необходимые ресурсы компьютерной системы свободны, то он может разрешить ПМЗ-приложению выполнить поочередно несколько микрозаданий, при этом ресурсы, используемые микрозаданиями, не используются другими процессами.
На стадии 304 вычислительное задание делится на микрозадания. В соответствии с одним из вариантов осуществления настоящего изобретения микрозадания имеют такие размеры, что при их выполнении потребляется достаточно малая часть ресурсов, так что не происходит существенного влияния на работу других заданий в компьютерной системе. Разделение вычислительного задания на микрозадания может быть выполнено набором команд, внесенных в ПМЗ-приложение. В общем случае эти команды являются точками принятия решения в ПМЗ-приложении. Например, команды могут быть вызовами API в ПМЗ, которые запрашивают разрешение на выполнение микрозадания. Однако ПМЗ может быть интегрирован с ПМЗ-приложением, и в этом случае команды могут быть вызовами функции планирования внутри ПМЗ-приложения. Могут использоваться и другие способы разделения вычислительного задания на микрозадания.
На стадии 306 для каждого микрозадания определяется соответствие использования одного или нескольких ресурсов вычислительной системы, которые должны использоваться определенным микрозаданием, одному или нескольким критериям свободного ресурса. Таким образом, микрозадания выполняются только на временных интервалах, когда ресурсы вычислительной системы, которые необходимы для выполнения микрозаданий, достаточно свободны. В одном из вариантов осуществления изобретения критерии незанятости ресурса основываются на пороговых величинах для ресурсов. Например, могут использоваться пороговые величины для ресурсов, при которых ПМЗ-приложение выполняется только в том случае, когда использование ресурса другими процессами не превышает пороговой величины, установленной ПМЗ-приложением. Описанный ниже вариант API содержит один пример пороговых величин для некоторых ресурсов. Однако способ 300 не ограничивается этими пороговыми величинами ресурсов. На стадии 306 выполнение микрозаданий продолжается во времени при условии доступности ресурсов, необходимых для каждого микрозадания. Поэтому выполнение микрозаданий не оказывает существенного влияния на выполнение других заданий и приложений в вычислительной системе.
Критерии незанятости для определенного ресурса могут основываться на одном или нескольких факторах. Например, в одном варианте осуществления изобретения в качестве критерия незанятости для ЦП используется его загрузка.
На стадии 307 микрозадания запускаются для выполнения. В одном из вариантов осуществления изобретения ПМЗ дает разрешение ПМЗ-приложению на выполнение определенного микрозадания. Если должны выполняться несколько микрозаданий, то управление передается на стадию 306 для определения соответствия загрузки одного или нескольких ресурсов компьютерной системы, которые должны использоваться микрозаданием, одному или нескольким критериям незанятости.
В одном из вариантов осуществления изобретения, предназначенном для обеспечения выполнения приложений технического обслуживания, ПМЗ-приложение выполняется постоянно все время, пока вычислительная система остается включенной. Таким образом, даже если ПМЗ-приложение завершило свое задание, оно продолжает работать, как показано на стадии 308. В этом случае ПМЗ-приложение не расходует дополнительных ресурсов, что происходит обычно при запуске приложений. Когда ПМЗ-приложение определяет, что имеется другое задание для выполнения, такое ПМЗ-приложение делит новое вычислительное задание на микрозадания на стадии 304, и полученные микрозадания выполняются во времени на стадии 306.
ПРИМЕР API
Одним из вариантов осуществления настоящего изобретения является API, обеспечивающий интерфейс между ПМЗ-приложением и ПМЗ. Пример API характеризуется следующими пороговыми параметрами для ЦП, диска и сети:
- пороговая величина загрузки ЦП;
- пороговая величина времени ожидания при обращении к дисковой системе ввода/вывода;
- пороговая величина загрузки сети.
Указанные параметры могут быть заданы для каждого микрозадания. Иначе говоря, разным микрозаданиям могут быть назначены разные пороговые величины параметров ресурсов. Например, для микрозадания, использующего сеть, может использоваться пороговая величина сети. Однако пороговое значение параметра сети может быть равно нулю для микрозаданий, которые не используют сеть. Поэтому в одном из вариантов осуществления настоящего изобретения предусматривается мелкомодульное управление ресурсами.
Например, ПМЗ-приложение может запрашивать выполнение определенного микрозадания только в том случае, когда загрузка ЦП не превышает 50%, загрузка дисковой системы ввода/вывода не превышает 40% и интенсивность сетевого трафика не выше 60%. Могут использоваться любые комбинации пороговых параметров ресурсов, включая отсутствие каких-либо параметров. В соответствии с одним из вариантов осуществления настоящего изобретения пороговая величина загрузки ЦП устанавливает различие в использовании ЦП планировщиком микрозаданий и какими-либо другими заданиями.
Нижеуказанные два параметра используются для задания частоты измерения загрузки ресурса:
- окно загрузки ЦП;
- окно загрузки сети.
Окно загрузки ЦП определяет временнóе окно, в котором вычисляется загрузка ЦП. Например, осуществляется усреднение загрузки ЦП за последние n миллисекунд. Окно загрузки сети определяет временнóе окно, в котором вычисляется загрузка сети. Эти параметры могут быть внутренними параметрами ПМЗ. Однако ПМЗ-приложение может игнорировать эти параметры. Ожидание дисковой системы ввода/вывода в любой момент времени является абсолютной величиной, и поэтому вычисление этой величины не требуется.
Параметр обязательного времени незанятости может быть передан из ПМЗ-приложения в ПМЗ для контроля распределения микрозаданий по времени. Параметр обязательного времени незанятости не является обязательным. Кроме того, параметр обязательного времени незанятости, если он используется, может быть равен нулю.
- Обязательное время незанятости.
ПМЗ отслеживает "время незанятости", которое определяется как время бездействия системы после выполнения микрозаданий. Как уже указывалось, ПМЗ-приложения могут ставить микрозадания в очередь в ПМЗ. Когда в очереди ПМЗ нет микрозаданий для выполнения, то ПМЗ ждет в течение заданного обязательного времени незанятости, а затем включается и дает разрешение ПМЗ-приложениям на выполнение дополнительной работы. Например, ПМЗ-приложение дефрагментации может сначала выполнить несколько микрозаданий по дефрагментации диска, а затем будет переведено ПМЗ в режим ожидания. По прошествии заданного обязательного времени незанятости ПМЗ вызывает ПМЗ-приложение дефрагментации для разрешения выполнения дополнительной работы. Например, ПМЗ-приложение дефрагментации может выполнить такое задание, как освобождение памяти. Обязательное время незанятости может быть параметром по умолчанию, который может изменяться ПМЗ-приложением.
Нижеуказанные параметры относятся к ожиданию выполнения микрозадания, когда загрузка ресурсов превышает заданные пороговые величины:
- время ожидания;
- максимальное время ожидания.
Если ПМЗ определяет, что текущая загрузка ресурса слишком высока для выполнения микрозадания, то он ожидает в течение заданного времени ожидания и затем снова проверяет загрузку ресурса. Параметр времени ожидания может увеличиваться каждый раз, когда ПМЗ определяет, что загрузка ресурса слишком высока. Например, ПМЗ может увеличивать время ожидания, пока не будет достигнуто максимальное значение времени ожидания. Эти параметры могут быть заданы ПМЗ-приложением, когда оно запускается в первый раз. ПМЗ-приложение в процессе своей работы может изменять эти параметры.
ВАРИАНТ ОСУЩЕСТВЛЕНИЯ ИЗОБРЕТЕНИЯ ДЛЯ ПРИЛОЖЕНИЯ ДЕФРАГМЕНТАЦИИ
В соответствии с одним из вариантов осуществления изобретения ПМЗ-приложение является программой дефрагментации. На фигуре 4 приведена блок-схема алгоритма 400 ПМЗ-приложения дефрагментации с использованием микрозаданий в соответствии с одним из вариантов осуществления настоящего изобретения. Алгоритм 400 представляет собой пример способа использования по меньшей мере частью программы дефрагментации концепции микрозаданий. В этом примере ПМЗ-приложение взаимодействует с ПМЗ через API. Однако, как уже указывалось, ПМЗ может быть интегрирован в ПМЗ-приложение, и в этом случае в API нет необходимости.
Процесс дефрагментации содержит сканирование диска для обнаружения фрагментированных файлов. Сканирование может быть разбито на отдельные микрозадания, заключающиеся в получении записи файла и определении его фрагментации. Сканирование диска осуществляется на стадиях 402-408 блок-схемы фигуры 4.
На стадии 402 ПМЗ-приложение дефрагментации вызывает API микрозаданий для запроса у ПМЗ разрешения на выполнение микрозадания. Вызов API может задать пороговые параметры загрузки ресурсов для этого задания. В альтернативном варианте для этого микрозадания могут использоваться ранее заданные параметры. Получив запрос, ПМЗ определяет, когда можно запустить выполнение микрозадания. Это определение может осуществляться на основе пороговых параметров загрузки ресурсов.
На стадии 404, после того как ПМЗ-приложение получает разрешение, программа дефрагментации выполняет микрозадание, которым в данном случае является получение следующей записи файла. На стадии 406 ПМЗ-приложение снова вызывает API микрозаданий. Когда ПМЗ-приложение получает от ПМЗ разрешение на выполнение, оно определяет наличие фрагментации файла, информация по которому была получена на стадии 404. Если файл не фрагментирован, то происходит переход на стадию 402.
Если файл фрагментирован, ПМЗ-приложение дефрагментации может выполнять дефрагментацию файла, как указано на стадиях 410-416. На стадии 410 осуществляется вызов API микрозаданий. На стадии 412 осуществляются поиск свободной памяти на диске для записи файла и распределение этой свободной памяти.
Стадия 414 вызова API микрозаданий и стадия 416 перемещения части файла повторяются, пока не будут перемещены все части файла. Например, файл, который должен быть перемещен, может перемещаться по частям, которые достаточно малы, чтобы не вызывать существенного влияния на выполнение других приложений.
Таким образом, использование концепции микрозаданий обеспечивает динамическое приложение дефрагментации, которое непрерывно контролирует процесс дефрагментации и осуществляет дефрагментацию файлов по мере появления фрагментированных файлов. В результате обеспечивается ПМЗ-приложение дефрагментации, которое осуществляет немедленную дефрагментацию сразу после появления фрагментированных файлов без ожидания запланированного времени включения процесса дефрагментации. Таким образом, в соответствии с одним из вариантов осуществления настоящего изобретения ПМЗ-приложение дефрагментации является программой реального времени.
ОБОЛОЧКА ПЛАНИРОЩИКА МИКРОЗАДАНИЙ
В одном из вариантов осуществления изобретения ПМЗ автоматически делит задание на микрозадания. Например, ПМЗ может быть оболочкой прикладных программ, которые являются ПМЗ-приложениями. Таким образом, оболочка ПМЗ является полным приложением, с помощью которого может выполняться любая исполняемая программа. Оболочка ПМЗ автоматически делит вычислительное задание исполняемой программы на микрозадания. Иначе говоря, в таком варианте осуществления изобретения программисту прикладного программного обеспечения не нужно делить приложение на микрозадания.
В одном из вариантов осуществления изобретения оболочка ПМЗ делит вычислительное задание исполняемой программы на микрозадания, ориентируясь на использование ресурсов. Оболочка ПМЗ может анализировать приложение и особенности его выполнения для определения ресурсов, которые используются приложением. Например, ПМЗ анализирует ресурсы, используемые приложением и степень использования ресурсов приложением. Например, когда выполняется программа дефрагментации диска, оболочка ПМЗ может определить, какие ресурсы используются приложениями (например, ЦП, сеть, дисковая система ввода/вывода). В одном из вариантов осуществления изобретения на основе такого анализа оболочка ПМЗ автоматически определяет способ разделения приложения на микрозадания. Оболочка ПМЗ также на основе такого анализа может определить порядок планирования микрозаданий.
Оболочка ПМЗ может использовать различные параметры для определения способа разделения вычислительного задания на микрозадания и/или определения порядка планирования микрозаданий для выполнения. Такие параметры могут вводиться пользователем или задаваться оболочкой ПМЗ. Например, пользователь может указать определенное приложение, имеющее высокий приоритет.
АНАЛИЗ АППАРАТНЫХ СРЕДСТВ
На фигуре 5 приведена блок-схема, иллюстрирующая структуру вычислительной системы 500, в которой может быть осуществлено изобретение. Стадии способа 300 и способа 400 запоминаются в форме команд на одном или нескольких машиночитаемых носителях вычислительной системы 500 и выполняются ее процессором. Компьютерная система 500 содержит шину 502 или другое средство передачи информации в системе, и процессор 504 соединен с шиной 502 для обработки информации. Компьютерная система 500 также содержит основное запоминающее устройство 506, такое как, например, оперативное запоминающее устройство (ОЗУ) или другое устройство динамической памяти, соединенное с шиной 502 для хранения информации и команд, которые должны выполняться процессором 504. Основное запоминающее устройство 506 также может использоваться для хранения временных переменных или другой промежуточной информации, получаемой при выполнении команд процессором 504. Компьютерная система 500 также содержит постоянное запоминающее устройство (ПЗУ) 508 или другое статическое запоминающее устройство для хранения постоянной информации и команд для процессора 504. Кроме того, имеется запоминающее устройство 510, такое как, например, накопитель на магнитных или оптических дисках, подсоединенный к шине 502 для хранения информации и команд. Компьютерная система 500 может иметь любое число процессоров 504. Например, в одном из вариантов осуществления изобретения компьютерная система 500 может быть многопроцессорной системой. Процессор 504 может иметь любое количество ядер. В одном из вариантов осуществления изобретения в качестве процессора 504 используется многоядерный процессор. Компьютерная система 500 может использоваться в машинах с параллельной обработкой (hyper threaded).
Компьютерная система 500 может быть соединена по шине 502 с дисплеем 512, таким как, например, электронно-лучевая трубка для отображения информации для пользователя компьютера. К шине 502 подсоединено устройство 514 ввода информации, в частности цифробуквенная или иная клавиатура, для передачи информации в процессор 504 и задания команд. Другим видом устройства ввода информации пользователем является устройство 516 управления курсором, такое как, например, мышь, трекбол или клавиши управления перемещениями курсора для ввода управляющей информации в процессор 504 и для управления перемещениями курсора на дисплее 512. Устройство ввода информации обычно имеет две степени свободы по двум осям: первая ось (например, ось x) и вторая ось (например, ось y), что обеспечивает задание с помощью устройства положений в плоскости.
Изобретение относится к использованию компьютерной системы 500 для осуществления описанных в нем способов. В соответствии с одним из вариантов осуществления изобретения эти способы осуществляются вычислительной системой 500 путем выполнения процессором 504 одной или нескольких последовательностей команд, содержащихся в основной оперативной памяти 506. Эти команды могут быть записаны в основную оперативную память 506 из другого машиночитаемого носителя информации, такого как, например, запоминающее устройство 510. Выполнение последовательностей команд, находящихся в основной оперативной памяти 506, обеспечивает выполнение процессором 504 стадий рассмотренных способов. В альтернативных вариантах осуществления изобретения может использоваться аппаратная реализация алгоритмов вместо последовательностей команда, записанных в оперативной памяти. Таким образом, варианты осуществления изобретения не ограничиваются какими-либо конкретными комбинациями аппаратных средств и программного обеспечения.
Под используемым в описании термином "машиночитаемый носитель" понимается любой носитель, который участвует в обеспечении данных, которые позволяют вычислительной системе выполнять заданные действия. В варианте осуществления изобретения с использованием вычислительной системы 500 используются различные машиночитаемые носители информации, например, для обеспечения команд, выполняемых процессором 504. Такие носители могут иметь различные формы, в том числе носители, сохраняющие информацию при отключении питания, носители, теряющие информацию при отключении питания, и средства передачи информации. К носителям, сохраняющим информацию при отключении питания, относятся, например, накопители на оптических или магнитных дисках, такие, как запоминающее устройство 510. К носителям, теряющим информацию при отключении питания, относятся устройства динамической памяти, такие как основная оперативная память 506. К средствам передачи информации относятся коаксиальные кабели, медные и волоконно-оптические проводники, в том числе провода, составляющие шину 502. В качестве средств передачи информации могут использоваться акустические или световые волны, такие как, например, радиоволны или инфракрасные волны. Все такие средства должны быть материальными для обеспечения считывания команд, передаваемых такими носителями, в вычислительную систему.
Типичными видами машиночитаемых носителей являются, например, накопители на гибких дисках, накопители на жестких дисках, накопители на магнитной ленте или на других магнитных носителях, диски CD-ROM, любые другие оптические носители, перфокарты, перфоленты и любые другие физические носители, на которых информация записывается в форме отверстий, ОЗУ, ППЗУ, устройства флеш-памяти и другие чипы или картриджи памяти, несущие колебания (см. ниже) или любой другой носитель, с которого компьютер может считывать информацию.
Передача одной или нескольких последовательностей команд для их выполнения процессором 504 может осуществляться с использованием различных форм машиночитаемых носителей. Например, команды могут первоначально находиться на магнитном диске удаленного компьютера. Удаленный компьютер может загрузить команды в свою динамическую память и передать их по телефонной линии с использование модема. Эти данные могут приниматься из телефонной линии модемом вычислительной системы 500 и затем преобразовываться в инфракрасные сигналы. Эти сигналы могут приниматься инфракрасным датчиком, и полученные данные с помощью соответствующих схем могут передаваться в шину 502. По шине 502 данные поступают в устройство 506 оперативной памяти, из которой они выбираются процессором 504, выполняющим команды. Команды, поступившие в основное устройство 506 оперативной памяти, могут дополнительно запоминаться в запоминающем устройстве 510 перед их выполнением процессором 504 или после выполнения.
Вычислительная система 500 также содержит связной интерфейс 518, соединенный с шиной 502. Связной интерфейс 518 обеспечивает двухсторонний обмен информацией с устройством 520 сопряжения с сетью, соединенным с локальной сетью 522. Например, связной интерфейс 518 может платой цифровой сети с интеграцией служб (ISDN) или модемом для обеспечения соединения с соответствующей телефонной линией для обмена информацией. В другом варианте связной интерфейс 518 может быть картой локальной сети (LAN) для обеспечения соединения с совместимой LAN для обмена информацией. Также могут использоваться средства беспроводной связи. В любом таком варианте осуществления изобретения связной интерфейс 518 обеспечивает передачу и прием электрических, электромагнитных или оптических сигналов, несущих потоки цифровых данных, представляющих различные виды информации.
Устройство 520 сопряжения с сетью обычно обеспечивает обмен данными через одну или несколько сетей с другими информационными устройствами. Например, устройство 520 сопряжения с сетью может обеспечивать соединение через локальную сеть 522 с главным компьютером 524 или с оборудованием данных, эксплуатируемым провайдером 526 услуг сети Интернет. Провайдер 526, в свою очередь, обеспечивает услуги по обмену данными по глобальной сети передачи пакетов данных, которая сейчас обычно называется сетью Интернет (528). Локальная сеть 522 и сеть Интернет используют электрические, электромагнитные или оптические сигналы, переносящие потоки цифровых данных. Сигналы, передаваемые по различным сетям, сигналы в устройстве 520 сопряжения с сетью и сигналы, передаваемые по связному интерфейсу 518, которые несут цифровые данные, поступающие в вычислительную систему 500 и передаваемые из нее, являются примерами несущих сред, транспортирующих информацию.
Вычислительная система 500 может передавать сообщения и принимать данные, используя программный код, через сети, устройство 520 сопряжения с сетями и связной интерфейс 518. В случае сети Интернет код, запрошенный прикладной программой, может передаваться сервером 530 через сеть Интернет, провайдера 526, локальную сеть 522 и связной интерфейс 518.
Принятый код может быть выполнен процессором 504 и/или после его сохранения в запоминающем устройстве 510, или в другом запоминающем устройстве, сохраняющем информацию при выключении питания, для выполнения через некоторое время. Таким образом, вычислительная система 500 может получать код прикладной программы в виде несущей волны.
В вышеприведенном описании варианты осуществления изобретения были раскрыты со ссылками на многочисленные конкретные признаки, которые могут меняться от одного варианта к другому. Таким образом, единственным и исключительным указателем объема изобретения является его формула, которая выведена из настоящей заявки, с любыми последующими корректировками. Любые определения, указанные в явной форме в настоящем описании, для терминов, содержащихся в формуле, устанавливают смысл таких терминов в том виде, как они используются в формуле. Следовательно, никакое ограничение, элемент, свойство, признак, положительное качество или характеристика, которые не указаны в явной форме в каком-либо пункте формулы изобретения, никоим образом не должны ограничивать объем изобретения. Соответственно описание и чертежи должны рассматриваться больше как иллюстративные материалы, а не как ограничивающие объем изобретения.