Выполнение заданий в вычислительных системах реального времени

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

Рубрика Программирование, компьютеры и кибернетика
Вид статья
Язык русский
Дата добавления 28.10.2018
Размер файла 85,5 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru//

Размещено на http://www.allbest.ru//

ОАО «Концерн «Центральный научно-исследовательский институт «Электроприбор»

Выполнение заданий в вычислительных системах реального времени

Ю.М. Скородумов

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

вычислительный алгоритм реальный поток

Введение

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

Обычно в качестве формализации процедуры назначения рассматривается NP-полная (Nondeterministic Polynomial) задача размещения предметов в контейнерах [1], когда множество предметов, каждый из которых характеризуется некоторым весом, необходимо упаковать в контейнеры ограниченной вместимости. Трактуя предметы как задачи, а контейнеры как процессоры, приходим к задаче назначения. Обычно задачу о контейнерах интерпретируют как задачу о назначениях при известном числе процессоров и фиксированных директивных сроках. Для решения задачи о контейнерах предложен целый ряд алгоритмов, которые могут быть интерпретированы как решения задачи назначения. Причем на практике ввиду высокой сложности оптимальных алгоритмов зачастую отдают предпочтение простым эвристическим алгоритмам [1], среди которых, например, назначение на первый подходящий процессор (процессор, при назначении на который директивный срок не нарушается) или на первый подходящий при предварительном упорядочивании задач по невозрастанию их длительностей, или на лучший из подходящих процессоров с точки зрения минимума неиспользованного времени после назначения, в том числе и с учетом предварительного упорядочивания задач. Этот ряд можно продолжить алгоритмом, ориентированным на достижение загрузки процессоров, близкой к равномерной, когда назначение производится на процессор с максимальным неиспользованным временем.

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

Постановка задачи

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

Итак, назначению на процессоры подлежат m независимых заданий , обрабатывающих входные данные, поступающие с периодом T. Все процессоры имеют одинаковую производительность. Для рассматриваемого алгоритма важным условием является наличие ограничения по производительности для используемых процессоров, выражающееся неравенствами: ( - время решения j-го задания на одном процессоре). В результате любое задание не может быть реализовано на одном процессоре за время T, что вынуждает использовать распределенные вычисления. При этом возможны два варианта организации вычислительного процесса, которые условно назовем «конвейерным» и «неконвейерным».

Конвейерная организация. Каждый из процессоров, исполняющих задание, исполняет не всё задание, а только некоторую его часть. На диаграмме вычислительного процесса при конвейерной организации, представленной на рис. 1 а, показан один из наиболее простых вариантов, когда используются три процессора p1, p2, p3, образующие конвейер, и каждый из процессоров реализует лишь одну из трех задач, составляющих задание. Процессоры обмениваются результатами решения задач. Причем длительность решения задачи должна быть не больше периода поступления

Размещено на http://www.allbest.ru//

Размещено на http://www.allbest.ru//

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

Неконвейерная организация - процессор решает всё задание от начала до конца. На рис. 1, б показано использование трех процессоров с одинаковым программным обеспечением (программным обеспечением всех стадий). В этом случае нет обменов между процессорами. Через период для обработки очередной порции входных данных включается второй процессор. Еще через период - третий, потом опять первый и т.д. Таким образом, предполагается, что все процессоры имеют доступ к входным данным. При этом выходные данные выдаются с разных процессоров.

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

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

Итак, будем предполагать, что каждое задание предварительно надлежащим образом разбито на задачи ( - число задач в j-м задании). Для всех задач известны длительности их исполнения на используемом типе процессора . При разбиении задания на задачи обычно руководствуются двумя соображениями - ограничением по производительности процессора и минимизацией обменной

информацией в точках разрыва задания.

Размещено на http://www.allbest.ru//

Размещено на http://www.allbest.ru//

В общем случае результаты процедуры назначения могут характеризоваться различными затратами. На рис. 2 представлены примеры трех вариантов назначения на процессоры состоящего из шести задач иерархического задания. Напомним, что вершина, у которой нет выходящих ребер, называется корнем, а вершина, у которой нет входящих ребер - листом. Корень в данном случае - это выходная задача, выдающая информацию во вне, а листья - входные задачи, принимающие внешнюю информацию. Для каждого примера рядом с графом задания с намеченным штриховой линией размещением задач по процессорам (рис. 2, а, в, д) представлен соответствующий граф межпроцессорных связей (рис. 2, б, г, е), где прямоугольниками обозначены процессоры, а стрелками - межпроцессорные связи информационного обмена. Видно, что во втором случае (рис. 2, в, г) требуется три процессора вместо двух, затребованных в первом и третьем случаях. Если сравнивать случаи, показанные на рис. 2, а, б и д, г, то они различаются сложностью информационных обменов. Считая все информационные связи, представленные стрелками, равной сложности (оценим ее единицей), приходим к выводу, что в первом случае - сложность

связи равна 4 (четыре стрелки), а в третьем - 1.

Размещено на http://www.allbest.ru//

Размещено на http://www.allbest.ru//

Алгоритм назначения

В основу используемого представления иерархических заданий в машине положен известный способ представления произвольного дерева в виде бинарного дерева. Этот способ был модифицирован в соответствии с требованиями предлагаемого алгоритма. На рис. 3 приведено машинное представление для дерева, рассмотренного выше (см. рис. 2). Здесь каждая вершина соответствует некоторой задаче и имеет четыре адресных поля и четыре информационных. Крайнее левое адресное поле L указывает на крайнего левого «сына», крайнее правое поле R - на следующего «брата», второе слева поле B указывает на «предка» в машинном представлении, поле g - на предка вершины в исходном графе. В информационном поле p сохраняется номер процессора, на который назначается задача, соответствующая данной строке, в поле e располагается длительность задачи, в поле d - длительность обмена информацией задачи с ее предком в исходном графе. Стрелки в представлении задания указывают на существующую между соответствующими вершинами связь по адресам, хранящимся в их представлении. Табличное описание машинного представления, показанного на рис. 3, приведено в табл. 1, где к семи описанным выше столбцам добавлен еще один - номер вершины.

1. Пример машинного представления задания (рис. 2)

i

L

B

g

p

e

d

R

1

2

0

0

0

4

0

0

2

0

1

1

0

4

1

3

3

4

2

1

0

3

1

0

4

0

3

2

0

1

1

5

5

0

4

2

0

2

1

6

6

0

5

2

0

2

1

0

Приведем эвристический алгоритм назначения, стремящийся к ситуации на рис. 2, д, е, когда на одном процессоре оказываются вершины, принадлежащие одному поддереву. В конкретных примерах эта ситуация реализуется не всегда. Алгоритм работает с табличным описанием графа задания. Введем обозначения: i - номер в таблице для рассматриваемой на данном шаге задачи; j - номер рассматриваемого процессора; - временной ресурс процессора ; - текущая загрузка рассматриваемого процессора; - текущая загрузка рассматриваемого канала обмена. Обращение к конкретной клетке таблицы, например, к левому адресу L для i-й задачи будем обозначать .

Алгоритм назначения.

Положим i = 1, j = 0.

Определить адрес левого поддерева i-й вершины .

Если , то

обнулить левый адрес i-й вершины ,

перейти на следующий ярус по левому адресу ,

перейти к п. 1,

иначе определить адрес правого брата .

Если , то

обнулить правый адрес i-й вершины ,

перейти к следующему брату по правому адресу ,

перейти к п. 1,

иначе назначить рассматриваемую задачу (последнего «брата») на текущий процессор:

определить текущую загрузку процессора .

сравнить ее с допустимой,

если , то перейти к п. 2,

иначе , j = j + 1, .

Определить адрес «предка» в машинном представлении .

Если , то

обнулить адрес возврата из i-й вершины ,

перейти к «предку» по адресу возврата ,

перейти к п. 1,

иначе конец алгоритма.

По результатам применения приведенного алгоритма заполняется столбец p таблицы 1 и исходя из заданного значения производительности используемых каналов обмена производится определение их требуемого числа.

Пример. Применим описанный алгоритм к заданию, представленному на рис. 3 и в табл. 1, в предположении, что допустимая загрузка процессора на периоде равна 10. В результате последовательность посещений вершин графа будет следующей: 1, 2, 3, 4, 5, (6, 5, 4, 3), (2, 1). Таким образом, сначала осуществляется переход из корня 1 в вершину 6, а затем из вершины 6 в корень 1. При обратном переходе, начиная с задачи 6, происходит назначение задач на процессоры. При этом задачи 6, 5, 4, 3 оказываются на первом процессоре, а задачи 2 и 1 - на втором. Это назначение в последовательности посещений отражено скобками.

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

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

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

Доказательство. Разобьем множество задач рассматриваемого задания по ярусам в направлении от входа к выходу. Построим план выполнения задания по следующему правилу: задачи i-го яруса выполняются на i-м периоде. Этот план корректен, так как все задачи первого яруса будут решены на первом периоде, все задачи второго яруса - на втором периоде, причем все исходные данные для них будут подготовлены на предыдущем периоде, и т.д.

Автоматическая генерация примеров для исследования эффективности алгоритма

Для исследования эффективности предложенного алгоритма назначения была поставлена цель сбора статистики с использованием программы случайной генерации примеров. Получаемая статистика может в существенной степени зависеть от применяемого набора тестовых примеров, поэтому желательно, чтобы генерируемые наборы назначаемых заданий обладали бы свойствами, характерными для практических приложений. Однако достижение этой цели является сложной проблемой, поэтому был использован следующий подход. Предварительно формируется библиотека конкретных структур заданий, а затем при генерации примеров из этой библиотеки случайным образом выбирается некоторая структура, а уже потом для ее задач случайным образом выбираются длительности. Этот путь имеет недостатки, и, прежде всего, непонятно какие структуры должны быть включены в библиотеку. Успешность решения того или иного примера определялась путем соотнесения получаемого решения с оптимальным результатом, который формировался методом полного перебора с применением заданного критерия оптимальности. В данном случае критерий оптимальности имел следующий аддитивный вид:

,

где P - число использованных процессоров;

C - число использованных каналов обмена;

a, b - весовые коэффициенты.

При этом в библиотеку структур включались все возможные иерархические структуры с числом задач не более шести. Кроме того, в библиотеку добавлялось ограниченное число характерных структур с большим числом задач. В итоге общее число структур равнялось 30. Поскольку выбор правильного соотношения между коэффициентами a и b зависит от практических ограничений, моделирование производилось при разных значениях этого соотношения. В процессе исследования формировались статистики примеров, отличающихся от оптимального результата не более чем на 10, 20 и 30 %. Длительности задач моделировались в условных единицах как равномерно распределенные в интервале [0,1, 10], длительности обменов - в интервале [0,1, 5] при допустимой загрузке процессора и канала обмена, равных 10. Для каждого значения отношения b/a моделировалось по 300 примеров. Кроме того, для предлагаемого алгоритма формировалась величина так называемого интегрального проигрыша (ИП), определяемого как отношение разности сумм значений критерия по всем примерам для предлагаемого и оптимального алгоритмов к сумме значений критерия для оптимального алгоритма. Результаты исследования приведены в табл. 2. Столбцы таблицы соотнесены с разными значениями отношения b/a, а в строках приведены полученные статистики (в долях от количества использованных примеров).

2. Результаты исследования предложенного алгоритма назначения

b/a, %

1

5

10

15

10

0,58

0,65

0,76

0,8

20

0,69

0,77

0,76

0,8

30

0,85

0,78

0,76

0,8

ИП

0,12

0,15

0,17

0,15

Заключение

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

Библиографический список

Теория расписаний и вычислительные машины / Под ред. Э. Г. Коффмана. М.: Наука, 1984. 334 с.

Топорков В.В. Модели распределенных вычислений. М.: Физматлит, 2004. 316 с.

Каляев И.А., Мельник Э.В. Децентрализованные системы компьютерного управления. Ростов н/Д: Изд-во ЮНЦ РАН, 2011. 196 с.

Liu J.W.S. Real-Time Systems // Prentice Hall, Englewood Cliffs. NJ, 2000. 600 p.

Гергель В.П. Теория и практика параллельных вычислений. М.: Изд-во Интернет-университет информационных технологий - ИНТУИТ.ру; БИНОМ. Лаборатория знаний, 2007. 424 с.

Размещено на Allbest.ru

...

Подобные документы

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

    курсовая работа [2,2 M], добавлен 28.09.2011

  • Обзор требований проблемной области. Особенности управления задачами. Исполнительные системы реального времени. Программирование на уровне микропроцессоров. Модели и методы предметной области. Реализация прототипа системы реального времени.

    курсовая работа [263,1 K], добавлен 15.02.2005

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

    курсовая работа [3,3 M], добавлен 28.08.2012

  • Изучение этапов автоматизации административных задач. Создание надежного оператора и заданий. Разрешения и владельцы заданий. Расписание выполнения заданий. Использование мастера Create Job Wizard. Настройка учетной прокси-записи. Настройка оповещений.

    презентация [734,4 K], добавлен 10.11.2013

  • Планирование задач в операционной системе реального времени. Основные виды планирования применительно к задачам реального времени. Выбор приемлемого алгоритма планирования при проектировании RTS. Статическое прогнозирование с использованием таблиц.

    контрольная работа [40,7 K], добавлен 28.05.2014

  • Основные характеристики систем реального времени, типы архитектур. Система приоритетов процессов (задач) и алгоритмы диспетчеризации. Понятие отказоустойчивости, причины сбоев. Отказоустойчивость в существующих системах реального времени (QNX Neutrino).

    контрольная работа [428,8 K], добавлен 09.03.2013

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

    дипломная работа [3,9 M], добавлен 14.10.2012

  • Создание набора классов, реализующих функции генерации метаданых для заданного файла данных спутника MTSAT-1R. Существующие методы решения. Реализация алгоритма получения необходимых полей с нужными данными. Разработка структуры базы данных инвентаря.

    курсовая работа [38,6 K], добавлен 17.07.2009

  • Применение технологий Macromedia Flash для создания шаблонов. Общие принципы работы и описание параметров шаблона "Круглая мозаика". Разработка и создание развивающих мышление заданий в конструкторе. Типология заданий на диагностику и выходной контроль.

    дипломная работа [4,9 M], добавлен 17.11.2013

  • Раскрытие сущности планирования в программных компонентах. Понятие процесса и потока, их планирование в операционной системе. Категории и задачи алгоритмов планирования в пакетных и интерактивных системах. Планирование в системах реального времени.

    контрольная работа [303,5 K], добавлен 24.10.2014

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

    курсовая работа [589,0 K], добавлен 17.12.2009

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

    курсовая работа [1,6 M], добавлен 09.03.2022

  • Обзор существующих методов межпроцедурного анализа. Получение входных и выходных данных подпрограмм с помощью графа алгоритма. Описание входных и выходных данных подпрограммы в терминах фактических параметров. Определение параллелизма по графу алгоритма.

    учебное пособие [77,5 K], добавлен 28.06.2009

  • Описание формата и структуры входных и выходных файлов. Выбор языка программирования и Perl модуля для генерации документов в формате pdf. Валидация почтового адреса. Процесс создания алгоритма обработки данных. Структура штрихкодового идентификатора.

    дипломная работа [1,6 M], добавлен 04.11.2015

  • Теория тестирования. Тест как система заданий и его эффективности. Качество тестовых заданий. Проверка качества тестовых заданий. Матрица результатов. Современный подход к понятию "трудность". Visual Basic for Applications (VBA). Объектные модели.

    дипломная работа [198,9 K], добавлен 10.11.2008

  • Разработка собственного алгоритма сжатия и восстановления данных с использованием возможностей языка C++ в рамках программного продукта "Архиватор". Разработка алгоритма программы, ее первый запуск и тестирование. Проверка работы архивации файлов.

    курсовая работа [325,7 K], добавлен 13.10.2015

  • Работа на персональном компьютере с использованием современных компьютерных технологий MS EXEL. Выполнение заданий: табулировние и построение графиков функций, вычисление корней нелинейного уравнения, финансовый анализ в Excel, решение практических задач.

    контрольная работа [5,7 M], добавлен 17.07.2009

  • Двоичные деревья в теории информации. Двоичные кодовые деревья допускают интерпретацию в рамках теории поиска. Обоснование выбора, описание алгоритма и структур данных. Обоснование набора тестов. Построение оптимального кода. Сущность алгоритма Хаффмана.

    курсовая работа [241,6 K], добавлен 17.10.2008

  • Иcпoльзoвaние мoдeлиpoвaния для oцeнки функциoниpoвaния peaльныx cиcтeм, иccлeдoвaние peжимов paбoты вычиcлитeльныx cиcтeм. Системы обработки данных: реального времени и оперативной обработки. Однопрограммные и мультипрограммные режимы обработки данных.

    лабораторная работа [21,6 K], добавлен 27.11.2009

  • Сведения о планировании заданий. Характеристика алгоритмов FIFO и SJF. Диспетчеризация задач для бесприоритетной ДО FB и с динамическим приоритетом (зависимость от времени обслуживания). Алгоритм функционирования диспетчера и результаты моделирования.

    курсовая работа [702,3 K], добавлен 23.09.2013

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.