аппаратно-реализуемый способ выполнения программ
Классы МПК: | G06F9/50 Распределение ресурсов, например центрального процессора (ЦП) |
Автор(ы): | ДЖЕНСЕН Крейг (US), СТЕФФЕР Андрю (US), ТОМАС Базил (US), КЭДРУВИ Ричард (US) |
Патентообладатель(и): | ДИСКИПЕР КОРПОРЕЙШН (US) |
Приоритеты: |
подача заявки:
2007-06-06 публикация патента:
10.05.2012 |
Изобретение относится к области выполнения программных приложений в вычислительной среде. Техническим результатом является уменьшение задержки выполнения вычислительных заданий. Вычислительное задание разбивается на микрозадания. В одном из вариантов осуществления изобретения микрозадания имеют такой размер, который позволяет полностью выполнить определенное микрозадание в течение выделенного интервала времени, в котором такое микрозадание использует ресурс, необходимый для его выполнения. В одном из вариантов осуществления изобретения для выполнения микрозаданий выделяется квант времени. В одном из вариантов осуществления изобретения все вычислительное задание разбивается на микрозадания, и затем оно выполняется путем последовательного выполнения микрозаданий, пока это вычислительное задание не будет полностью выполнено. В одном из вариантов осуществления изобретения каждое микрозадание может быть полностью выполнено в течение его кванта времени. В одном из вариантов осуществления изобретения для выполнения микрозаданий выделяются промежутки времени, в которых загрузка требуемых ресурсов соответствует одному или нескольким критериям незанятости. Программа, выполняемая с использованием микрозаданий, может работать все время, когда компьютер включен, без ущерба для выполнения других программ, выполняемых в этой же вычислительной системе. 4 н. и 11 з.п. ф-лы, 4 ил.
Формула изобретения
1. Способ выполнения вычислительного задания, содержащий:
разбиение вычислительного задания на совокупность микрозаданий программой, не являющейся частью операционной системы, которой должно передаваться для выполнения вычислительное задание; которая является источником вычислительного задания; причем для первого микрозадания программа выбирает его размер в соответствии по меньшей частично с продолжительностью интервалов времени, которые выделяются операционной системой потокам для использования ресурса;
передачу программой первого микрозадания операционной системе для выполнения после выбора программой размера микрозадания;
причем первое микрозадание выполняется в первом выделенном интервале времени, в течение которого оно может распоряжаться ресурсом; и
после ожидания в течение первого интервала времени после завершения выполнения первого микрозадания программа передает для выполнения второе микрозадание из совокупности микрозаданий; и
второе микрозадание выполняется во втором выделенном интервале времени, в течение которого оно может распоряжаться ресурсом;
причем способ выполняется системой, содержащей процессор.
2. Способ по п.1, в котором каждое микрозадание из совокупности микрозаданий выполняется за время, которое меньше или равно фактическому выделенному интервалу времени, в течение которого это микрозадание может распоряжаться ресурсом.
3. Способ по п.1, в котором вычислительное задание выполняется путем планирования запросов на выполнение совокупности микрозаданий, при котором выполнение совокупности микрозаданий оказывает несущественное влияние на другие вычислительные задания.
4. Способ по п.1, в котором выполнение каждого микрозадания запрашивается после того, как один или несколько ресурсов, необходимых для выполнения этого микрозадания, удовлетворяет одному или нескольким критериям незанятости.
5. Способ выполнения вычислительного задания, содержащий:
разбиение вычислительного задания на совокупность микрозаданий программой, не являющейся частью операционной системы, которой должно передаваться для выполнения вычислительное задание;
выдачу программой запроса на выполнение первого микрозадания из совокупности микрозаданий в момент времени, определяемый в соответствии с определенными критериями, в течение которого первое микрозадание может распоряжаться ресурсом; и выдачу программой запроса на выполнение второго микрозадания из совокупности микрозаданий в момент времени, определяемый в соответствии с определенными критериями, причем выполнение второго микрозадания запрашивается после ожидания в течение первого интервала ожидания после выполнения первого микрозадания, причем второе микрозадание выполняется во втором выделенном интервале времени, в течение которого второе микрозадание может распоряжаться ресурсом, причем способ выполняется системой, содержащей процессор.
6. Способ по п.5, в котором ожидание в течение первого интервала ожидания после выполнение первого микрозадания не зависит от того, используется или нет ресурс в течение этого первого интервала ожидания.
7. Способ по 5, который содержит дополнительно:
определение первого интервала ожидания в зависимости от интервала времени, в течение которого должно выполняться вычислительного задание.
8. Способ по 5, который содержит дополнительно:
определение первого интервала ожидания путем деления интервала времени, в течение которого должно выполняться вычислительное задание, на число микрозаданий в совокупности микрозаданий.
9. Способ по п.5, в котором величина первого интервала ожидания зависит от числа операций, которые выполняются после выполнения первого микрозадания.
10. Способ по п.5, в котором первый выделенный интервал времени является квантом времени и/или величина первого выделенного интервала времени находится в диапазоне от 20 до 120 мс.
11. Способ по 5, который содержит дополнительно:
выдачу запроса на выполнение третьего микрозадания из совокупности микрозаданий после ожидания в течение второго интервала ожидания после выполнения второго микрозадания, причем третье микрозадание выполняется в третьем выделенном интервале времени, в течение которого третье микрозадание может распоряжаться ресурсом.
12. Способ по п.11, в котором первый и второй интервалы ожидания имеют разную величину.
13. Способ по п.11, в котором первый и второй интервалы ожидания одинаковы.
14. Машиночитаемый носитель, содержащий одну или несколько последовательностей команд, которые, будучи выполненными одним или несколькими процессорами, обеспечивают осуществление одним или несколькими процессорами способа по одному или нескольким пп.1-13.
15. Система выполнения вычислительного задания, содержащая:
один или несколько процессоров и машиночитаемый носитель, соединенный с одним или несколькими вычислительными процессорами с возможностью обмена информацией, причем на машиночитаемом носителе хранится одна или несколько последовательностей команд, которые, будучи исполненными одним или несколькими процессорами, обеспечивают осуществление одним или несколькими процессорами способа по одному или нескольким пп.1-13.
Описание изобретения к патенту
ОБЛАСТЬ ТЕХНИКИ
Настоящее изобретение относится к выполнению программных приложений в вычислительной среде. В частности, варианты осуществления настоящего изобретения относятся к разбиению вычислительного задания или задания по вводу/выводу данных на микрозадания и к выполнению таких микрозаданий.
ПРЕДПОСЫЛКИ СОЗДАНИЯ ИЗОБРЕТЕНИЯ
Во многих многозадачных операционных системах процессы разбиваются на несколько потоков. Поток является частью кода, выполняемого операционной системой. Концепция многопоточности заключается в том, чтобы обеспечить "одновременное" выполнение несколько частей кода (или потоков) одного процесса. Например, если выполняется текстовый редактор, то пользователь может щелкнуть на строке "Найти" меню для вызова всплывающего рабочего окна. Это всплывающее окно можно перемещать и осуществлять манипуляции с ним независимо от основного окна текстового редактора. Таким образом, всплывающее окно не деактивирует основное окно текстового редактора. Это пример двух разных потоков, выполняющихся внутри процесса текстового редактора.
Концепция мультизадачности аналогична концепции многопоточности в том, что в результате создается впечатление, что части кода выполняются одновременно на одном процессоре компьютера. А разница заключается в том, что многозадачность относится к нескольким процессам, выполняемым на компьютере, а многопоточность относится к нескольким потокам внутри одного и того же процесса, как в вышеприведенном примере.
Впечатление одновременного выполнения нескольких процессов или нескольких потоков создается в результате того, что многозадачный планировщик планирует выполнение потоков в течение малых промежутков времени, которые можно называть "квантами". Квант - это малый временной интервал, выделенный потоку, в течение которого этот поток пользуется ресурсом ЦП. Величина кванта в современных операционных системах (ОС) находится в интервале от примерно 20 мс до примерно 120 мс. Точная величина кванта может варьироваться в зависимости от аппаратных средств, с которыми работает ОС. Кроме того, ОС может изменять величину кванта, отводимого определенному потоку. Например, если поток не выполняется полностью в течение отведенного ему первого кванта, то ОС может увеличить или уменьшить размер кванта для следующего запланированного выполнения потока.
Использование малых величин квантов приводит к тому, что благодаря особенностям восприятия времени человеком и циклическому выполнению потоков кажется, что потоки выполняются одновременно. Современные многозадачные планировщики ОС дополнительно назначают приоритеты потокам, и существуют различные алгоритмы для оптимального первоочередного выполнения потоков с более высоким приоритетом. Однако все потоки поступают в планировщик ОС для немедленного выполнения, и он по возможности наиболее эффективным образом обеспечивает выполнение всех потоков с учетом их приоритетов.
Однако при таком планировании производительность компьютера используется в недостаточной степени. Часто процесс замедляется или вообще приостанавливается. Например, процесс, который отображается на экране дисплея в соответствии с командами, вводимыми пользователем, часто отображается с запаздыванием, поскольку другой процесс использует слишком много времени компьютера. Способы, описанные в настоящем разделе, - это способы, которые могли бы быть осуществлены, но необязательно были предложены или осуществлены ранее. Поэтому, если не указано иное, нельзя считать, что любой из способов, описанных в настоящем разделе, определяется как известный способ только лишь по причине его включения в настоящий раздел.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Настоящее изобретение иллюстрируется на примерах, которые не являются ограничивающими, со ссылками на фигуры прилагаемых чертежей, на которых одинаковые ссылочные номера относятся к одинаковым элементам и на которых показано:
фигура 1 - схема структуры выполнения микрозаданий в соответствии с одним из вариантов осуществления настоящего изобретения;
фигура 2 - блок-схема планировщика микрозаданий, который разбивает вычислительное задание на микрозадания в соответствии с одним из вариантов осуществления настоящего изобретения;
фигура 3 - блок-схема алгоритма разбиения вычислительного задания на микрозадания в соответствии с одним из вариантов осуществления настоящего изобретения;
фигура 4 - блок-схема, иллюстрирующая структуру вычислительной системы, в которой может быть реализован один из вариантов изобретения.
ПОДРОБНОЕ ОПИСАНИЕ
В нижеприведенном описании различные конкретные детали указаны в таком порядке, который должен обеспечивать полное понимание настоящего изобретения. Однако будет ясно, что настоящее изобретение может быть осуществлено и без таких конкретных деталей. В других случаях хорошо известные структуры и устройства показаны в общем виде, в форме блоков, чтобы не загромождать описание настоящего изобретения излишними деталями.
ОБЗОР
Большая часть компьютеров не использует все возможности своих ресурсов в течение всего времени работы. Это справедливо для компьютеров, которые работают только часть дня, и даже для компьютеров, загрузка которых довольно высока при круглосуточной работе семь дней в неделю. Поэтому компьютерное время и ресурсы расходуются непроизводительно. Например, на временном интервале, равном двадцати четырем часам, компьютерная система, работающая с высокой загрузкой, и система, у которой могут быть лишь непродолжительные пики активности, могут в среднем использовать от пяти до двадцати процентов своих ресурсов.
В настоящем описании раскрывается способ, система и устройство, обеспечивающие использование неиспользуемых ресурсов компьютера путем разбиения вычислительного задания на микрозадания. Микрозадание может быть очень малой частью кода программы (например, состоять из сравнительно небольшого числа команд). В одном из вариантов осуществления изобретения размер микрозадания устанавливается таким образом, чтобы оно полностью выполнялось в течение временного интервала, который ему выделен для использования ресурса. Например, в одном из вариантов осуществления изобретения число операций в микрозадании таково, что оно будет полностью выполнено в течение одного кванта времени. Время выполнения микрозадания может быть меньше величины кванта.
В одном из вариантов осуществления изобретения все вычислительное задание разбивается на микрозадания, и затем оно выполняется путем последовательного выполнения микрозаданий, пока вычислительное задание не будет полностью выполнено. В отличие от попыток выполнить вычислительное задание как можно скорее с учетом имеющихся ограничений на ресурсы или от планирования выполнения задания во "внерабочее время", чтобы избежать существенного влияния на выполнение других заданий и приложений, вычислительное задание выполняется на компьютере постоянно, однако в такие малые промежутки времени, когда это может быть неощутимо для пользователя или для других вычислительных заданий. Таким образом, задание может быть полностью прозрачно для пользователя или для других заданий и приложений. В этом случае пользователю нет необходимости планировать задание, поскольку оно выполняется в любое время, включая критические временные интервалы.
В одном из вариантов осуществления изобретения микрозадания вводятся время от времени для выполнения в соответствии с выбранными критериями. В одном из вариантов осуществления изобретения выполнение микрозаданий распределяется по времени в соответствии с некоторым временным интервалом, определенным из условия выполнения микрозаданий. Временные интервалы необязательно должны быть одинаковыми для всех микрозаданий. В одном из вариантов осуществления изобретения критерий для выполнения микрозаданий определяется по свободной производительности ресурса. Например, для выполнения некоторого микрозадания определяется соответствие загрузки одного или нескольких ресурсов, используемых микрозаданием, одному или нескольким критериям незанятости. Если критерии незанятости соблюдаются, то микрозадание может выполняться.
МИКРОЗАДАНИЯ
В одном из вариантов осуществления изобретения микрозадания имеют такой размер, который позволяет полностью выполнить определенное микрозадание в течение выделенного интервала времени, в котором такое микрозадание использует ресурс, необходимый для его выполнения. В одном из вариантов осуществления изобретения каждое микрозадание имеет такой размер, который позволяет полностью выполнить его в течение выделенного интервала времени. Однако может оказаться, что некоторые из микрозаданий слишком велики и не могут быть полностью выполнены в течение выделенного времени.
В одном из вариантов осуществления изобретения для выполнения микрозаданий выделяется квант времени. Как уже указывалось, квант - это малый временной интервал, выделяемый для части кода программы (например, потока), в течение которого эта часть кода использует ресурс ЦП. Как уже указывалось, разные операционные системы используют разные кванты времени. Кроме того, квант, выделяемый определенной части кода, может изменяться в зависимости от событий при ее выполнении. Например, операционная система может увеличивать или уменьшать размер кванта, выделенного для потока. В одном из вариантов осуществления изобретения вычислительное задание разбивается на микрозадания, соответствующие размеру кванта времени, который предполагается выделить для вычислительного задания. В другом варианте осуществления изобретения вычислительное задание делится на микрозадания, соответствующие размеру кванта времени, который выделен для вычислительного задания. Части (микрозадания) вычислительного задания, на которые его необходимо разбить, могут быть определены либо до выполнения вычислительного задания, либо в процессе его выполнения.
Микрозадания представляют собой существенно меньшие по размеру (например, наименьшие) единицы работы, которая может быть выполнена как единое целое, после чего в соответствии с одним из вариантов осуществления изобретения может быть взят перерыв до выполнения следующего микрозадания без каких-либо негативных последствий. Перерыв без каких-либо негативных последствий означает, что выполнение определенного микрозадания может быть задержано без ущерба для результата выполнения всех микрозаданий.
Микрозадание может быть частью потока. Например, поток может быть разбит на несколько микрозаданий. Планирование этих микрозаданий может осуществляться аналогично планированию потока. Однако, как уже указывалось, микрозадание будет выполнено полностью, если оно будет выполняться в течение кванта времени или другого промежутка времени, в течение которого оно будет использовать ресурс обработки информации.
Микрозаданию каждый раз может требоваться для выполнения лишь небольшое количество ресурсов (например, время ЦП, выделенная память). Такое минимальное использование ресурсов в любой момент времени обеспечивает выполнение микрозаданий с минимальным влиянием на выполнение других приложений или заданий. Малые размеры микрозаданий обеспечивают использование вычислительными заданиями за один раз всего лишь малой части ресурсов компьютера. Поэтому при выполнении микрозадания потребляется достаточно малая часть ресурсов, так что в соответствии с одним вариантом осуществления изобретения не происходит существенного влияния на работу других приложений в компьютерной системе.
РАЗБИЕНИЕ ВЫЧИСЛИТЕЛЬНОГО ЗАДАНИЯ НА МИКРОЗАДАНИЯ
I) ВЫЧИСЛИТЕЛЬНОЕ ЗАДАНИЕ РАЗБИВАЕТСЯ НА МИКРОЗАДАНИЯ ПРИЛОЖЕНИЕМ
В одном варианте осуществления изобретения прикладная программа разбивает свои вычислительные задания на несколько микрозаданий. Термин "несколько" понимается в настоящем описании как количество, превышающее единицу. На фигуре 1 представлена схема структуры 100 выполнения микрозаданий в соответствии с одним из вариантов осуществления настоящего изобретения. Каждое ПМЗ-приложение 115(1)-115(n) разбивает свои вычислительные задания (или просто задания) на микрозадания 125, которые должны быть выполнены. Например, разработчик прикладного программного обеспечения может вставить в соответствующих местах кода прикладной программы команды перехода, которые запрашивают у ПМЗ 110 разрешения на выполнение микрозадания 125, что обеспечивает разбиение вычислительного задания на микрозадания 125. Например, вычислительное задание может выполнять такие задачи технического обслуживания, как архивирование, индексация, обновление программного обеспечения, проверка на вирусы и выявление других вредоносных программ и дефрагментация. Однако ПМЗ-приложения 115(1)-115(n) могут быть и программами, не относящимися к задачам технического обслуживания.
Планировщик микрозаданий (ПМЗ) 110 определяет интервалы времени, в которых могут выполняться микрозадания 125 (см. фигуру 1). Приложения, которые получают возможность работать с ПМЗ, называются здесь ПМЗ-приложениями 115. В рассматриваемом варианте осуществления изобретения ПМЗ 110 снабжен интерфейсом для прикладных программ (API) для обеспечения запроса ПМЗ-приложением 115, например приложением 115(1), выполнения одного или нескольких микрозаданий 125. ПМЗ-приложение 115 также указывает API 130 количество микрозаданий 125, которые должны планироваться, как это будет описано ниже более подробно. Ниже будет представлен пример API. Однако структура 100 не ограничивается таким примером API.
В одном из вариантов осуществления изобретения ПМЗ 100 обеспечивает поддержание очереди микрозаданий, так что он может определить, какое микрозадание 125 должно выполняться следующим. Интервалы времени выполнения микрозаданий 125 задаются ПМЗ 110 таким образом, чтобы они оказывали лишь незначительное влияние на другие приложения.
Выполнение микрозаданий 125 может быть указано ПМЗ-приложением 115 командой вызова API или с использованием другого способа связи между приложением и ПМЗ. Когда ПМЗ 110 определяет, что следующее микрозадание 125 может выполняться без ущерба для других заданий, он реагирует на вызов ПМЗ-приложения 115 выдачей в ПМЗ-приложение 115(1) команды на выполнение микрозадания 125.
В другом варианте осуществления изобретения осуществляется контроль и анализ использования ресурсов компьютера для определения соответствия загрузки ресурсов одному или нескольким критериям незанятости ресурса. ПМЗ включает выполнение микрозаданий 125, если выполняется один или несколько критериев незанятости ресурса. Поскольку в одном из вариантов осуществления изобретения время, необходимое для определенного микрозадания 125, которое должно выполняться, меньше или равно кванту, любые ресурсы, используемые микрозаданием 125, освобождаются до того, как они потребуются другому заданию. Таким образом, использование ресурса микрозаданием 125 может быть незаметным, и микрозадание 125 может быть невидимо для среды его приложения. В одном из вариантов осуществления изобретения ПМЗ планирует микрозадания 125 в соответствии с интервалами времени. Планирование на основе интервалов времени рассматривается ниже.
В одном из вариантов осуществления изобретения ПМЗ 110 имеет диспетчер 140 памяти. Когда ПМЗ 110 включается, операционная система выделяет ему память, часть которой используется ПМЗ 110 для своих собственных нужд и часть выделяется ПМЗ приложениям 115. Когда запускается ПМЗ-приложение 115(1), оно запрашивает у ПМЗ 110 выделение памяти. ПМЗ 110 может определять, какое количество памяти необходимо выделить ПМЗ-приложению 115(1), на основании таких факторов, как текущее использование памяти вычислительной системы всеми процессами и потребности ПМЗ-приложения 115(1). Требования по памяти могут быть совершенно разными для каждого ПМЗ-приложения 115 и могут вноситься в них разработчиком прикладного программного обеспечения.
II) ВЫЧИСЛИТЕЛЬНОЕ ЗАДАНИЕ РАЗБИВАЕТСЯ НА МИКРОЗАДАНИЯ ПЛАНИРОВЩИКОМ
В одном из вариантов осуществления изобретения ПМЗ 110 автоматически разбивает вычислительное задание на микрозадания 125. В состав планировщика 110 входит логический блок 210 (см. фигуру 2), который осуществляет разбиение вычислительного задания 205 на микрозадания 125. Кроме того, в состав планировщика 110 входит логический блок 220, обеспечивающий планирование микрозаданий 125 для выполнения. Например, ПМЗ 110 может быть оболочкой прикладных программ, которые не являются ПМЗ-приложениями. Таким образом, оболочка ПМЗ 110 является полным приложением, с помощью которого может выполняться любая исполняемая программа. Поэтому в одном из вариантов осуществления изобретения оболочка ПМЗ 110 автоматически разбивает вычислительное задание на микрозадания 125. Иначе говоря, в таком варианте осуществления изобретения программисту прикладного программного обеспечения не нужно разбивать приложение на микрозадания 125. В одном из вариантов осуществления изобретения оболочка ПМЗ 110 разбивает вычислительное задание исполняемой программы на микрозадания, ориентируясь на загрузку ресурсов. Оболочка ПМЗ 110 может анализировать приложение и особенности его выполнения для определения используемых им ресурсов. Например, ПМЗ 110 анализирует ресурсы, используемые приложением, и степень использования им ресурсов. Например, когда выполняется программа дефрагментации диска, оболочка ПМЗ 110 может определить, какие ресурсы используются приложениями (например, ЦП, сеть, дисковая система ввода/вывода). В одном из вариантов осуществления изобретения на основе такого анализа оболочка ПМЗ 110 автоматически определяет способ разбиения приложения на микрозадания 125. Оболочка ПМЗ 110 на основе такого анализа также может определить порядок планирования микрозаданий 125. Оболочка ПМЗ 110 может использовать различные параметры для определения способа разбиения вычислительного задания на микрозадания 125 и/или определения порядка планирования микрозаданий 125 для выполнения. Такие параметры могут вводиться пользователем или задаваться оболочкой ПМЗ 110. Например, пользователь может указать определенное приложение, имеющее высокий приоритет.
В одном из вариантов осуществления изобретения оболочка ПМЗ 110 планирует микрозадания 125 для выполнения в соответствии с интервалами времени.
В одном из вариантов осуществления изобретения ПМЗ 110 является частью операционной системы. В этом варианте ПМЗ входит в состав операционной системы и может разбивать вычислительное задание на микрозадания 125.
ПЛАНИРОВАНИЕ МИКРОЗАДАНИЙ В СООТВЕТСТВИИ С ИНТЕРВАЛАМИ ВРЕМЕНИ
В одном из вариантов осуществления изобретения микрозадания 125 выполняются на основе интервалов времени. Например, ПМЗ планирует микрозадания 125 в соответствии с интервалами времени. Например, ПМЗ 110 распределяет выполнение микрозаданий 125 по времени. Допустим, для выполнения вычислительного задания, не разбитого на микрозадания 125, требуется 12 минут. Однако, если задание будет разбито на микрозадания 125, его выполнение может растянуться на 24 часа, причем каждое микрозадание 125 будет выполняться всего несколько секунд.
В конкретном примере, если квант времени составляет 20 миллисекунд, то вычислительное задание может быть полностью выполнено примерно за 36'000 квантов. Таким образом, вычислительное задание разбивается примерно на 36'000 микрозаданий. Число микрозаданий 125 может быть немного больше, если некоторые микрозадания 125 занимают меньше одного кванта. Если размер кванта равен 20 мс, то на интервале 24 часа будет 4'3200'00 квантов. Поэтому ПМЗ 110 может выполнять одно из микрозаданий 125 каждые 120 квантов или каждые 2,4 секунды. В этом конкретном примере ПМЗ-приложение будет выполняться 24 часа, и при этом его выполнение может быть незаметным даже в очень загруженной системе.
ПЛАНИРОВАНИЕ МИКРОЗАДАНИЙ НА ОСНОВЕ СОБЫТИЙ
В одном из вариантов осуществления изобретения микрозадания 125 планируются на основе событий. Например, ПМЗ 110 планирует микрозадания 125 в соответствии с количеством выполняемых операций. В другом примере ПМЗ 110 планирует микрозадания 125 в соответствии с количеством квантов времени. Разные кванты могут иметь разные размеры. Таким образом, в одном из вариантов осуществления изобретения ПМЗ 110 распределяет выполнение микрозаданий 125 на основе событий.
ПЛАНИРОВАНИЕ МИКРОЗАДАНИЙ, ОРИЕНТИРОВАННОЕ НА РЕСУРСЫ
В одном из вариантов осуществления изобретения микрозадания 125 планируются в соответствии с загрузкой ресурсов. Например, в одном из вариантов осуществления изобретения ПМЗ 110 является планировщиком, ориентированным на ресурсы. В одном варианте осуществления изобретения ПМЗ 110 планирует выполнение микрозаданий 125 таким образом, чтобы они использовали только незанятые ресурсы. Для принятия решений по включению микрозаданий ПМЗ 110 проверяет соответствие загрузки ресурсов одному или нескольким критериям незанятости. Например, ПМЗ 110 может анализировать активность диска. Если диск используется другим приложением, то ПМЗ 110 будет ожидать, пока это другое приложение не будет выполнено, прежде чем он даст команду на запуск микрозадания 125. ПМЗ 110 продолжает контроль загрузки дисковой системы ввода/вывода и разрешает выполнение другого микрозадания 125, если ни одно другое приложение не требует доступа к дисковой системе ввода/вывода. Однако если другое приложение пытается использовать дисковую систему ввода/вывода, то ПМЗ 110 не разрешит выполнение другого микрозадания 125, в результате чего другое приложение сможет использовать дисковую систему ввода/вывода.
В другом примере ПМЗ 110 может анализировать активность сети. Если сетевой трафик слишком интенсивен, то ПМЗ 110 не разрешит включить какое-либо микрозадание 125 до тех пор, пока уровень трафика не снизится. Если сетевой трафик достаточно низкий, то ПМЗ 110 разрешает выполнение микрозадания. ПМЗ 110 продолжает контролировать сетевой трафик, чтобы убедиться, что он остается достаточно низким. Если сетевой трафик остается достаточно низким, то может быть разрешено выполнение другого микрозадания 125. Однако если сетевой трафик становится высоким, выполнение других микрозаданий 125 не разрешается.
ПМЗ 110 может принимать решения о включении микрозаданий, ориентируясь на любой тип вычислительного ресурса или на любое сочетание ресурсов. В одном из вариантов осуществления изобретения ПМЗ 110 поддерживает несколько очередей микрозаданий 125, ожидающих разрешения на выполнение. Каждая очередь может соответствовать определенному ресурсу. Например, может быть очередь для микрозаданий 125, которым для выполнения нужна дисковая система ввода/вывода, очередь для микрозаданий 125, которым нужна сеть, и очередь микрозаданий 125, которые используют ЦП, и т.п. Может поддерживаться одна или несколько очередей микрозаданий 125, которые используют сразу несколько ресурсов. ПМЗ 110 разрешает включение микрозаданий 125, когда определенный ресурс или комбинация ресурсов свободны для использования. Некоторому микрозаданию 125 может потребоваться использовать два ресурса. Например, некоторому микрозаданию 125 может потребоваться использовать сетевой и дисковый ресурс. Однако этому микрозаданию 125 ресурс ЦП не нужен. Даже если ресурс ЦП в текущем временном промежутке используется интенсивно, этому микрозаданию 125 может быть дано разрешение на выполнение.
В соответствии с одним из вариантов осуществления изобретения ПМЗ-приложение 115 направляет параметры в ПМЗ 110 для контроля загрузки ресурса. К таким контролируемым ресурсам относятся в частности дисковая система ввода/вывода, ЦП и использование сети (перечень не является исчерпывающим). Например, ПМЗ-приложение 115 может указать пороговые величины для каждого из вышеуказанных трех ресурсов для выполнения микрозадания 125. Кроме того, ПМЗ-приложение 115 может указывать различные пороговые величины для ресурсов для разных микрозаданий 125. Например, в соответствии с одним из вариантов осуществления изобретения ПМЗ 115 указывает различные пороговые величины для ресурса для каждого микрозадания 125. Поэтому возможно мелкомодульное управление ресурсами. В соответствии с одним из вариантов осуществления настоящего изобретения, когда ПМЗ 110 рассчитывает загрузку ресурса, то это относится к использованию ресурса другими процессами и не относится к ПМЗ-приложению 115, для которого делается расчет. Для иллюстрации используется следующий пример, в котором пороговое значение загрузки ЦП задается на уровне 20 процентов. Если загрузка ЦП не превышает 20 процентов до разрешения выполнения ПМЗ-приложения 115, то эта загрузка может увеличиться и превысить 20 процентов после включения микрозадания или нескольких микрозаданий. Такое превышение 20-процентного порога не считается нарушением загрузки ресурса ЦП в данном примере. Аналогичные принципы относятся к ресурсу сети и ресурсу дисковой системы ввода/вывода.
В одном из вариантов осуществления изобретения, если ПМЗ 110 работает автономно от операционной системы, то ПМЗ 110 осуществляет ограничение своего использования как ресурса. Например, ПМЗ 110 контролирует обращения к себе как к ресурсу, и если использование этого ресурса становится слишком интенсивным, то ПМЗ 110 делает запрос в операционную систему на прекращение планирования ПМЗ 110 в течение некоторого времени.
ОСУЩЕСТВЛЕНИЕ СПОСОБА
На фигуре 3 представлена блок-схема алгоритма 300 разбиения вычислительного задания на микрозадания 125 в соответствии с одним из вариантов осуществления настоящего изобретения. Вычислительное задание инициируется на стадии 302. Вычислительное задание может порождаться ПМЗ-приложением 115. Однако вычислительное задание необязательно связано с ПМЗ-приложением 115.
В одном из вариантов осуществления изобретения на стадии 302 ПМЗ-приложение 115 запускается при загрузке компьютера. Если у ПМЗ-приложения 115 нет вычислительных заданий для выполнения, то оно находится в холостом режиме, пока не появится вычислительное задание для выполнения. В холостом режиме ПМЗ-приложение 115 может выполнять некоторые функции, например мониторинг некоторых событий. На стадии 302 у ПМЗ-приложения 115 имеется вычислительное задание для выполнения, например дефрагментация носителя информации или проверка на вирусы. Например, вычислительное задание заключается в дефрагментации диска и находящихся на нем файлов, при этом ПМЗ-приложение 115 осуществляет дефрагментацию в непрерывном режиме.
ПМЗ-приложению 115 при его запуске выделяется небольшое количество памяти. Размер выделяемой памяти может быть очень небольшим, поскольку ПМЗ-приложение 115 обычно пытается выполнить за один раз только одно микрозадание 125. Однако в некоторых случаях ПМЗ-приложение 115 может пытаться выполнить несколько микрозаданий 125, не ожидая выполнения других процессов. Например, если ПМЗ 110 определяет, что необходимые ресурсы компьютерной системы свободны, то он может разрешить ПМЗ-приложению 115 выполнить одно за другим несколько микрозаданий 125, и при этом ресурсы, используемые микрозаданиями 125, не используются другими процессами.
На стадии 304 вычислительное задание разбивается на микрозадания 125. В одном из вариантов осуществления изобретения размер определенного микрозадания 125 выбирается таким образом, чтобы оно выполнялось в течение выделенного времени, при этом микрозадание 125 полностью распоряжается ресурсом, необходимым для выполнения задания. Микрозадания 125 могут иметь такой размер, чтобы при их выполнении использовалось сравнительно небольшое количество ресурсов, чтобы не оказывалось существенного влияния на выполнение в вычислительной системе других заданий. В одном из вариантов осуществления изобретения разбиение вычислительного задания на микрозадания 125 содержит выбор их размера таким образом, чтобы их можно было выполнить в течение выделенного времени, при этом ресурс, необходимый для выполнения микрозадания 125, полностью находится в распоряжении вычислительного задания.
В одном из вариантов осуществления изобретения вычислительное задание разбивается на микрозадания 125 приложением, которое является источником вычислительного задания. Разбиение вычислительного задания на микрозадания 125 может быть выполнено набором команд, внесенных в ПМЗ-приложение 115. В общем случае эти команды являются точками принятия решения в ПМЗ-приложении 115. Например, команды могут быть вызовами API в ПМЗ 110, которые запрашивают разрешение на выполнение микрозадания 125. Однако ПМЗ 110 может быть интегрирован с ПМЗ-приложением 115, и в этом случае команды могут быть вызовами функции планирования внутри ПМЗ-приложения 115. Могут использоваться и другие способы разбиения вычислительного задания на микрозадания 125. Например, в одном из вариантов осуществления изобретения вычислительное задание разбивается на микрозадания 125 в логическом блоке разбиения на микрозадания в оболочке ПМЗ 110. На стадии 306 выполняются микрозадания 125. В одном из вариантов осуществления изобретения все вычислительное задание разбивается на микрозадания 125, и затем оно выполняется путем их последовательного выполнения, пока вычислительное задание не будет полностью выполнено. Например, задание дефрагментации разбивается на микрозадания 125, которые выполняются последовательно по одному за один раз, пока не будет выполнено все задание дефрагментации. В одном из вариантов осуществления изобретения определенное микрозадание 125 выполняется полностью в течение выделенного времени или быстрее.
Выполнение микрозаданий 125 не ограничивается только их последовательным выполнением. Могут одновременно выполняться несколько микрозаданий 125. Например, если используется несколько ЦП, разные микрозадания 125 могут выполняться одновременно на разных ЦП.
В одном из вариантов осуществления изобретения выполнение микрозаданий 125 планируется на основе загрузки ресурсов. В этом варианте для каждого микрозадания 125 определяется соответствие загрузки одного или нескольких ресурсов вычислительной системы, которые должны использоваться определенным микрозаданием, одному или нескольким критериям незанятости ресурса. Критерии незанятости для определенного ресурса могут основываться на одном или нескольких факторах. Например, в одном варианте осуществления изобретения в качестве критерия незанятости для ресурса ЦП используется его загрузка. Таким образом, микрозадания 125 выполняются только на тех временных интервалах, когда ресурсы вычислительной системы, которые необходимы для выполнения микрозаданий 125, достаточно свободны. В одном из вариантов осуществления изобретения критерии незанятости ресурса основываются на пороговых величинах для ресурсов. Например, для ресурсов могут использоваться пороговые величины, при которых микрозадание 125 ПМЗ-приложения 115 выполняется только в том случае, когда использование ресурса другими процессами не превышает пороговой величины, установленной ПМЗ-приложением 115. Описанный ниже вариант API содержит один пример пороговых величин для некоторых ресурсов. Однако способ 300 не ограничивается этими пороговыми величинами ресурсов.
В одном из вариантов осуществления изобретения микрозадания 125 планируются на основе интервалов времени. В одном из вариантов осуществления изобретения выполнение вычислительного задания распределяется по времени. Например, вычислительное задание может быть распределено для выполнения в течение нескольких часов. В зависимости от количества микрозаданий 125, на которые разбито вычислительное задание, может определяться способ их распределения по времени. Время между выполнением последовательных микрозаданий 125 необязательно должно быть одинаковым.
В одном из вариантов прикладная программа, являющаяся источником вычислительного задания, работает постоянно в течение всего времени работы компьютера и переходит в холостой режим работы, когда нет заданий для выполнения. Например, антивирусная программа или программа дефрагментации диска работает постоянно. То есть даже если вычислительное задание выполнено, прикладная программа продолжает работать в холостом режиме, ожидая возникновения следующего задания. Таким образом, прикладную программу не надо запускать вновь, когда у нее появляется для выполнения еще одно вычислительное задание. В этом случае прикладная программа не расходует дополнительных ресурсов, что происходит обычно при запуске приложений. Когда прикладная программа определяет, что необходимо выполнить еще одно вычислительное задание, оно разбивается на микрозадания 125, которые распределяются по времени. Например, программа дефрагментации диска может определить, что необходимо выполнить дополнительную дефрагментацию накопителя по изменениям в накопителе компьютера.
ПРИМЕР API
Одним из вариантов осуществления настоящего изобретения является API, обеспечивающий интерфейс между ПМЗ-приложением 115 и ПМЗ 110. Пример API характеризуется следующими пороговыми параметрами для ЦП, диска и сети:
пороговая величина загрузки ЦП,
пороговая величина времени ожидания при обращении к дисковой системе ввода/вывода,
пороговая величина загрузки сети.
Указанные параметры могут быть заданы для каждого микрозадания 125. Иначе говоря, разным микрозаданиям 125 могут быть назначены разные пороговые величины параметров ресурсов. Например, для микрозадания 125, использующего сеть, может использоваться пороговая величина сети. Однако пороговое значение параметра сети может быть равно нулю для микрозаданий 125, которые не используют сеть. Поэтому в одном из вариантов осуществления настоящего изобретения обеспечивается мелкомодульное управление ресурсами.
Например, ПМЗ-приложение 115 может запрашивать выполнение определенного микрозадания 125 только в том случае, когда загрузка ЦП не превышает 50%, загрузка дисковой системы ввода/вывода не превышает 40% и интенсивность сетевого трафика не выше 60%. Могут использоваться любые комбинации пороговых параметров ресурсов, включая отсутствие каких-либо параметров. В соответствии с одним из вариантов осуществления настоящего изобретения пороговая величина загрузки ЦП устанавливает различие в использовании ЦП планировщиком микрозаданий и какими-либо другими заданиями.
Нижеуказанные два параметра используются для задания частоты измерения загрузки ресурса:
интервал измерения загрузки ЦП,
интервал измерения загрузки сети.
Интервал измерения загрузки ЦП определяет временное окно, в котором вычисляется загрузка ЦП. Например, осуществляется усреднение загрузки ЦП за последние n миллисекунд. Интервал измерения загрузки сети определяет временное окно, в котором вычисляется загрузка сети. Эти параметры могут быть внутренними параметрами ПМЗ 110. Однако ПМЗ-приложение 115 может игнорировать эти параметры. Ожидание дисковой системы ввода/вывода в любой момент времени является абсолютной величиной, и поэтому вычисление этой величины не требуется.
Параметр обязательного времени незанятости может быть передан из ПМЗ-приложения 115 в ПМЗ 110 для контроля распределения микрозаданий 125 по времени. Параметр обязательного времени незанятости не является обязательным. Более того, параметр обязательного времени незанятости, если он используется, может быть равен нулю.
Обязательное время незанятости.
ПМЗ 110 отслеживает "время незанятости", которое определяется как время бездействия системы после выполнения микрозаданий 125. Как уже указывалось, ПМЗ-приложения 115(s) могут ставить микрозадания 125 в очередь в ПМЗ 110. Если в очереди ПМЗ нет микрозаданий 125 для выполнения, то ПМЗ 110 ждет в течение заданного обязательного времени незанятости, а затем включается и дает разрешение ПМЗ-приложениям 115(s) на выполнение дополнительной работы. Например, ПМЗ-приложение дефрагментации может сначала выполнить несколько микрозаданий 125 по дефрагментации диска, а затем оно будет переведено ПМЗ 110 в режим ожидания. По прошествии заданного обязательного времени незанятости ПМЗ 110 вызывает ПМЗ-приложение дефрагментации для разрешения выполнения дополнительной работы. Например, ПМЗ-приложение дефрагментации может выполнить такое задание, как освобождение памяти. Обязательное время незанятости может быть параметром по умолчанию, который может изменяться ПМЗ-приложением 115.
Нижеуказанные параметры относятся к ожиданию выполнения микрозадания 125, когда загрузка ресурсов превышает заданные пороговые величины:
время ожидания,
максимальное время ожидания.
Если ПМЗ 110 определяет, что текущая загрузка ресурса слишком высока для выполнения микрозадания, то он ожидает в течение заданного времени ожидания и затем снова проверяет загрузку ресурса. Параметр времени ожидания может увеличиваться каждый раз, когда ПМЗ 110 определяет, что загрузка ресурса слишком высока. Например, ПМЗ 110 может увеличивать время ожидания, пока не будет достигнуто максимальное значение времени ожидания. Эти параметры могут быть заданы ПМЗ-приложением 115, когда оно запускается в первый раз. ПМЗ-приложение 115 в процессе своей работы может изменять эти параметры.
ОПИСАНИЕ АППАРАТНЫХ СРЕДСТВ
На фигуре 4 приведена блок-схема, иллюстрирующая структуру вычислительной системы 400, в которой может быть осуществлено изобретение. Стадии способа 300 запоминаются в форме команд на одном или нескольких машиночитаемых носителях вычислительной системы 400 и выполняются ее процессором. Компьютерная система 400 содержит шину 402 или другое средство передачи информации в системе, и процессор 404 соединен с шиной 402 для обработки информации. Компьютерная система 400 также содержит основное запоминающее устройство 406, такое как, например, оперативное запоминающее устройство (ОЗУ) или другое устройство динамической памяти, соединенное с шиной 402 для хранения информации и команд, которые должны выполняться процессором 404. Основное запоминающее устройство 406 также может использоваться для хранения временных переменных или другой промежуточной информации, получаемой при выполнении команд процессором 404. Компьютерная система 400 также содержит постоянное запоминающее устройство (ПЗУ) 408 или другое статическое запоминающее устройство, подключенное к шине 402, для хранения постоянной информации и команд для процессора 404. Кроме того, имеется запоминающее устройство 410, такое как, например, накопитель на магнитных или оптических дисках, подсоединенный к шине 402, для хранения информации и команд. Компьютерная система 400 может иметь любое число процессоров 404. Например, в одном из вариантов осуществления изобретения компьютерная система 400 может быть многопроцессорной системой. Процессор 404 может иметь любое количество ядер. В одном из вариантов осуществления изобретения в качестве процессора 404 используется многоядерный процессор. Компьютерная система 400 может использоваться в машинах с параллельной обработкой (hyper threaded).
Компьютерная система 400 может быть соединена по шине 402 с дисплеем 412, таким как, например, электронно-лучевая трубка для отображения информации для пользователя компьютера. К шине 402 подсоединено устройство 414 ввода информации, в частности цифро-буквенная или иная клавиатура, для передачи информации в процессор 404 и задания команд. Другим видом устройства ввода информации пользователем является устройство 416 управления курсором, такое как, например, мышь, трекбол или клавиши управления перемещениями курсора для ввода управляющей информации в процессор 404 и для управления перемещениями курсора на дисплее 412. Устройство ввода информации обычно имеет две степени свободы по двум осям: первая ось (напр., ось х) и вторая ось (напр., ось у), что обеспечивает задание с помощью устройства положений в плоскости.
Изобретение относится к использованию компьютерной системы 400 для осуществления описанных в нем способов. В соответствии с одним из вариантов осуществления изобретения эти способы осуществляются вычислительной системой 400 путем выполнения процессором 404 одной или нескольких последовательностей команд, содержащихся в основной оперативной памяти 406. Эти команды могут быть записаны в основную оперативную память 406 из другого машиночитаемого носителя информации, такого как, например, запоминающее устройство 410. Выполнение последовательностей команд, находящихся в основной оперативной памяти 406, обеспечивает выполнение процессором 404 стадий рассмотренных способов. В альтернативных вариантах осуществления изобретения может использоваться аппаратная реализация алгоритмов вместо последовательностей команд, записанных в оперативной памяти. Таким образом, варианты осуществления изобретения не ограничиваются какими-либо конкретными комбинациями аппаратных средств и программного обеспечения.
Под используемым в описании термином "машиночитаемый носитель" понимается любой носитель, который участвует в обеспечении данных, которые позволяют вычислительной системе выполнять заданные действия. В варианте осуществления изобретения с использованием вычислительной системы 400 используются различные машиночитаемые носители информации, например, для обеспечения команд, выполняемых процессором 404. Такие носители могут иметь различные формы, в том числе носители, сохраняющие информацию при отключении питания, носители, теряющие информацию при отключении питания, и средства передачи информации. К носителям, сохраняющим информацию при отключении питания, относятся, например, накопители на оптических или магнитных дисках, такие как запоминающее устройство 410. К носителям, теряющим информацию при отключении питания, относятся устройства динамической памяти, такие как основная оперативная память 406. К средствам передачи информации относятся коаксиальные кабели, медные и волоконно-оптические проводники, в том числе провода, составляющие шину 402. В качестве средств передачи информации могут использоваться акустические или световые волны, такие как, например, радиоволны или инфракрасные волны. Все такие средства должны быть материальными для обеспечения считывания команд, передаваемых такими носителями, в вычислительную систему.
Типичными видами машиночитаемых носителей являются, например, накопители на гибких дисках, накопители на жестких дисках, накопители на магнитной ленте или на других магнитных носителях, диски CD-ROM, любые другие оптические носители, перфокарты, перфоленты и любые другие физические носители, на которых информация записывается в форме отверстий, ОЗУ, ППЗУ, устройства флеш-памяти и другие чипы или картриджи памяти, колебания, переносящие информацию (см. ниже), или любой другой носитель, с которого компьютер может считывать информацию.
Передача одной или нескольких последовательностей команд для их выполнения процессором 404 может осуществляться с использованием различных форм машиночитаемых носителей. Например, команды могут первоначально находиться на магнитном диске удаленного компьютера. Удаленный компьютер может загрузить команды в свою динамическую память и передать их по телефонной линии с использование модема. Эти данные могут приниматься из телефонной линии модемом вычислительной системы 400 и затем преобразовываться в инфракрасные сигналы. Эти сигналы могут приниматься инфракрасным датчиком, и полученные данные с помощью соответствующих схем могут передаваться в шину 402. По шине 402 данные поступают в устройство 406 оперативной памяти, из которой они выбираются процессором 404, выполняющим команды. Команды, поступившие в основное устройство 406 оперативной памяти, могут дополнительно запоминаться в запоминающем устройстве 410 перед их выполнением процессором 404 или после выполнения.
Вычислительная система 400 также содержит связной интерфейс 418, соединенный с шиной 402. Связной интерфейс 418 обеспечивает двухсторонний обмен информацией с устройством 420 сопряжения с сетью, соединенным с локальной сетью 422. Например, связной интерфейс 418 может быть платой цифровой сети с интеграцией служб (ISDN) или модемом для обеспечения соединения с соответствующей телефонной линией для обмена информацией. В другом варианте связной интерфейс 418 может быть картой локальной сети (LAN) для обеспечения соединения с совместимой LAN для обмена информацией. Также могут использоваться средства беспроводной связи. В любом таком варианте осуществления изобретения связной интерфейс 418 обеспечивает передачу и прием электрических, электромагнитных или оптических сигналов, несущих потоки цифровых данных, представляющих различные виды информации.
Устройство 420 сопряжения с сетью обычно обеспечивает обмен данными через одну или несколько сетей с другими информационными устройствами. Например, устройство 420 сопряжения с сетью может обеспечивать соединение через локальную сеть 422 с главным компьютером 424 или с оборудованием данных, эксплуатируемым провайдером 426 услуг сети Интернет. Провайдер 428 в свою очередь обеспечивает услуги по обмену данными по глобальной сети передачи пакетов данных, которая сейчас обычно называется сетью Интернет (528). Локальная сеть 422 и сеть Интернет используют электрические, электромагнитные или оптические сигналы, переносящие потоки цифровых данных. Сигналы, передаваемые по различным сетям, сигналы в устройстве 420 сопряжения с сетью и сигналы, передаваемые по связному интерфейсу 418, которые несут цифровые данные, поступающие в вычислительную систему 400 и передаваемые из нее, являются примерами несущих сред, транспортирующих информацию.
Вычислительная система 400 может передавать сообщения и принимать данные, используя программный код, через сети, устройство 420 сопряжения с сетями и связной интерфейс 418. В случае сети Интернет код, запрошенный прикладной программой, может передаваться сервером 430 через сеть Интернет, провайдера 428, локальную сеть 422 и связной интерфейс 418.
Принятый код может быть сразу выполнен процессором 404 и/или сохранен в запоминающем устройстве 410 или в другом запоминающем устройстве, сохраняющем информацию при выключении питания, для последующего выполнения. Таким образом, вычислительная система 400 может получать код прикладной программы в виде несущей волны.
В вышеприведенном описании варианты осуществления изобретения были раскрыты со ссылками на многочисленные конкретные признаки, которые могут меняться от одного варианта к другому. Таким образом, единственным и исключительным указателем объема изобретения является его формула, которая выведена из настоящей заявки, с любыми последующими корректировками. Любые определения, указанные в явной форме в настоящем описании, для терминов, содержащихся в формуле, устанавливают смысл таких терминов в том виде, как они используются в формуле. Следовательно, никакие ограничения, элементы, свойства, признаки, положительные качества или характеристики, которые не указаны в явной форме в каком-либо пункте формулы изобретения, никоим образом не должны ограничивать объем изобретения. Соответственно, описание и чертежи должны рассматриваться скорее как иллюстративные материалы, а не как ограничивающие объем изобретения.
Класс G06F9/50 Распределение ресурсов, например центрального процессора (ЦП)