Научная статья на тему 'Синхронизация распределённых приложений реального времени'

Синхронизация распределённых приложений реального времени Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
176
24
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
СИНХРОНИЗАЦИЯ / РЕСУРСЫ / ПРИЛОЖЕНИЕ / РЕАЛЬНОЕ ВРЕМЯ. БЛОКИРОВКИ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Хлудова Марина Васильевна

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

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Problems of uncontrolled priority inversion are considered in real-time distributed systems. The factors influencing on the worst-case task-blocking time are determined

Текст научной работы на тему «Синхронизация распределённых приложений реального времени»

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

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

СПИСОК ЛИТЕРАТУРЫ

1. Кузык Б.Н., Кушлин В.И., Яковец Ю.В. Программирование, стратегическое планирование и национальное программирование: Учебник 2-е изд., перераб. и доп. М.: ЗАО "Издательство Экономика", 2008. 575 с.

2. Смоленцев H. MATLAB: программирование на Visual С#, Borland JBuilder, VBA: Учеб. курс. M.: ДМК Пресс; СПб.: Питер. 2009. 464 с.

3. Карпов Ю. Имитационное моделирование систем. Введение в моделирование с АпуЬо§1с 5. СПб.: БХВ-Петербург. 2005. 400 с.

4. Ильясов Б.Г., Дегтярева И.В., Макарова Е.А., Габдуллина Э.Р. Моделирование динамики кругооборота финансовых потоков с учётом накопления финансовых ресурсов // Вестник компьютерных и информационных технологий. 2009. № 7 (61). С. 28—38.

УДК 004.451.23

М.В. Хлудова

СИНХРОНИЗАЦИЯ РАСПРЕДЕЛЁННЫХ ПРИЛОЖЕНИЙ РЕАЛЬНОГО ВРЕМЕНИ

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

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

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

Дополнительные ресурсы (структуры данных, буферы ввода-вывода) выделяются зада-

нию по запросу. Если ресурс выделен заданию в монопольном режиме, то он не может быть предоставлен в данном интервале времени никакому другому заданию. Задание "удерживает" ресурс до того момента, пока не завершится необходимость его использования. Если задание 7} запрашивает ресурс, выделенный в настоящий момент в режиме монопольного использования заданию 7], то задание 7} получает отказ и блокируется в ожидании освобождения ресурса. Использование ресурса не может быть прервано и, следовательно, ресурс не может быть отобран у задания и предоставлен другому заданию. Очередь заблокированных заданий обслуживается в порядке их поступления, без учёта значений приоритета заданий, рассчитанных при назначении на процессор.

Программный механизм синхронизации. В случае, когда два или более задания обновляют значения общихданных, могут возникнуть проблемы с целостностью этих данных. Для предотвращения возможных нарушений используется специальный механизм, синхронизирующий доступ к этим данным и не позволяющий нескольким заданиям изменять данные одновременно. Для синхронизации доступа к данным вводится концепция критической секции — части кода задания, в которой производится обновление совместно используемых данных. Кроме того, разработан ряд механизмов, обеспечивающих взаимное исключение — режим, гарантирующий, что в каждый момент времени критическая секция, связанная с определенным ресурсом, будет выполняться только одним заданием. Универсальным программным механизмом для реализации взаимного исключения являются семафоры [1,2]. Семафор программный объект, представляющий интерфейс в виде двух операций: закрытия семафора Д.5) и открытия семафора ^^-Атрибутами семафора в простейшем варианте выступают целое значение и очередь заданий. Операции определены таким образом, что при открытом семафоре Д.5) разрешает первому заданию, "завладевшему" семафором, продолжить работу, а остальные задания блокирует и помещает в очередь, связанную с данным семафором. Семафор переводится в состояние "закрыто". Операция переводит семафор в состояние "открыто" и активизирует задание из начала очереди.

Для обеспечения взаимного исключения необходимо:

каждому ресурсу Л, используемому в монопольном режиме, сопоставить семафор

каждое задание перед выполнением критической секции над ресурсом Я должно выполнить операцию Д5);

каждое задание после завершения критической секции над ресурсом Л должно выполнить операцию

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

Таблица 1 Ситуация инверсии приоритетов

Момент времени Задание Действие

(о Т3 Начинает выполнение

Н Т3 Выполняет /"(5) и входит в критическую секцию

'2 т, Начинает выполнение и прерывает Т3

Ь Т] Выполняет /"(б) и блокируется в очереди семафора 5

ь Тз Возобновляет выполнение

¿4 т2 Начинает выполнение и прерывает Т3

н т2 Завершает выполнение на процессоре

н Тз Возобновляет выполнение

Тз Выполняет К(5) и выходит из критической секции

т, Возобновляет выполнение и входит в критическую секцию

Ь Т\ Выполняет 1Т5) и выходит из критической секции

н Т\ Завершает выполнение на процессоре

Пусть существует три задания Тх, Г2, Т3. Приоритеты заданий установлены следующим образом: рг(Тх) > рг{Т2) > рг{Тъ).

В системе используется алгоритм планирования с вытеснением менее приоритетного задания с обслуживания на процессоре. Задания Тх и Г3 используют в монопольном режиме дополнительный ресурс, "защищенный" семафором

Для разрешения проблемы инверсии приоритетов предлагается [3—5] использовать протоколы из семейства протоколов "наследования приоритетов". Протоколы этого семейства предполагают временное увеличение приоритета задания, удерживающего семафор, до уровня самого приоритетного задания в очереди семафора. Эта операция называется наследованием приоритета. Задание, удерживающее семафор, выполняется с действующим приоритетом, равным максимуму из двух значений: исходного и унаследованного приоритетов. Применительно к описанной в табл. 1 ситуации это означает, что в момент /3 задание Г3 наследует приоритет задания Тх, а в момент /6 задание Г3 восстанавливает значение своего исходного приоритета. Внесенные изменения позволяют исключить непрогнозируемые задержки выполнения высокоприоритетного задания, вызываемые заданиями среднего уровня приоритета. К сожалению, использование протокола наследования приоритета в таком непосредственном виде приводит к возникновению тупиковых ситуаций (табл. 2). Рассмотрим пример выполнения двух заданий Тх, Т2 с исходными приоритетами рг{Тх) < рг{Т2). Задания используют в монопольном режиме ресурсы, "защищённые" семафорами 5( и 52.

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

Для каждого семафора определяется на множестве заданий, использующих ресурс, "за-щищённый" данным семафором, наиболее приоритетное задание Тп. Значение приоритета этого задания рг(Тп) называют порогом приоритета семафора и включают в число атрибутов семафора 5,-. Основная идея протокола пороговых приоритетов (ППП) заключается в том, что даже если семафор свободен, задание может "захватить" его лишь в случае, когда все остальные се-

Таблица 2 Тупиковые ситуации

Момент времени Задание Действие

к Т] Начинает выполнение

Тх Выполняет /'(5? ) и входит в критическую секцию

'2 Т2 Начинает выполнение и прерывает Т1

Ь Т2 Выполняет Р(Б1) и входит в критическую секцию

¿4 Т2 Пытается выполнить /'(5?) и блокируется в очереди семафора Б2

Тх Наследует приоритет Т2 и продолжает выполнение

4 Тх Пытается выполнить /'(5, ) и блокируется в очереди семафора 5]

Ь Оба задания заблокированы, так как наступила тупиковая ситуация

мафоры, удерживаемые в данный момент заданиями, имеют более низкий порог приоритета, чем приоритет данного задания. В приведенном примере (см. табл. 2) порог приоритета обоих семафоров 5( и 52 равен приоритету задания Т2. В интервале от /0 до г2 события при использовании ППП развиваются аналогично. В момент /3 задание Т2 пытается захватить семафор 51( но приостанавливается, так как порог 52 (уже удерживаемого заданием Тх) равен приоритету Т2 и задание Т2 не блокируется в очереди семафора 52. Далее задание Тх наследует приоритет задания Т2 и выполняется до завершения критической секции, освобождает семафор и завершается. Таким образом, на простом примере видно, что ППП предотвращает наступление тупиковой ситуации.

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

оритета, ниже самого низкого значения в системе.

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

1. При возникновении задания ^ устанавливается значение его приоритета/?К7}), которое остается неизменным, за исключением ситуации, описанной в п. 5.

2. Планирование осуществляется на приоритетной основе с вытеснением более низкоприоритетного задания (при выполнении его на процессоре).

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

4. Когда задание 7} запрашивает в момент I дополнительный ресурс Л, то может произойти один из следующих сценариев развития:

а) ресурс Луже выделен другому заданию 7] в монопольном режиме, поэтому запрос не может быть выполнен, а задание 7} блокируется и помещается в очередь семафора, "защищающего" ресурс Л;

б) ресурс Л свободен. Тогда,

если /?г(7}) > П(?), то ресурс Л выделяется заданию 7);

если рг(Т•) < П(7), то осуществляется дополнительная проверка (если 7} уже "удерживает"

П

выделяется заданию 7), в противном случае в удовлетворении запроса отказывается и задание 7} блокируется).

5. Если задание 7} блокируется (п. 4а), то оно "наследует" приоритет задания 7]. При этом оно получит приоритет рг{ Тр до момента освобождения каждого ресурса, защищенного семафором, чей порог приоритета выше или равен рг{ Тр; затем приоритет 7} возвращается к исходному значению, которое было до выделения ресурсов заданию 7).

Из приведенного описания функционирования однопроцессорной системы по ППП можно сделать следующие выводы:

если задание блокируется (п. 4а), то блокировка осуществляется только одним заданием;

задание, которое блокирует задание 7), не может быть само заблокировано;

невозможны транзитивные блокировки заданий;

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

В последнее время актуальными стали исследования временных характеристик для распреде-

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

Рассмотрим пример, демонстрирующий применение МППП. Система состоит из двух узлов. На первом узле выполняются задания Тх, Г2, Ту Приоритеты заданий установлены следующим образом: рг(Тх) > рг(Т2) > рг(Тъ).

На этом узле расположен ресурс Ях, защищенный семафором

На втором узле выполняются задания Г4, Т5. Приоритеты заданий установлены следующим образом: рг(ТА) > рг{Т5). На этом узле расположен ресурс Л2, защищенный семафором 52. Ресурс Л2 используется и как локальный заданиями Г4, Г5, так и в удалённом режиме заданием Тх, поэтому он является глобальным ресурсом. На втором узле выполняется ГКС задания Тх с наивысшим приоритетом. Временная диаграмма выполнения заданий, использующих локальные и глобальные ресурсы под управлением МППП, представлена на рисунке.

Из диаграммы видно:

на узле 1 задание Тх блокируется локальным низкоприоритетным заданием в Т2 в течение интервала времени А, с момента 6 по момент 8;

выполнение ГКС задания Тх с использованием ресурса 112 на узле 2 блокируется локальной критической секцией задания Т4 в

А

момент 15;

выполнение ГКС задания Тх с использованием ресурса 112 на узле 2 задерживает выполне-

А

момента 15 по момент 16.

В общем случае длительность суммарного времени ожидания задания при использовании МППП складывается из пяти составляющих:

т

Локальный ресурс Процессор

Глобальный ресурс Процессор

Г T

Узел I <

Узел 2 <

У/////а

Wa Ш

v(s2)

1-1-1-1-1-1-1-1-1-г

0 2 4 6 6 10 12 14 16 16 20 22

Применение многопроцессорного ППП

времени блокировок на локальном процессоре из-за использования разделяемых локальных ресурсов (типа А[);

времени удалённых блокировок на удалённом процессоре из-за использования разделяе-

А

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

задержек выполнения на удалённом узле, внесённых вытеснением ГКС задания и назначением ГКС более высокоприоритетного задания;

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

задержек выполнения на локальном процессоре из-за ожидания завершения заданий более высокого приоритета.

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

СПИСОК ЛИТЕРАТУРЫ

1. Бэкон Д., Харрис Т. Операционные системы. Параллельные и распределенные системы. СПб.: Питер. 2004. 800 с.

2. Олифер В.Г., Олифер H.A. Сетевые операционные системы. СПб.: Питер. 2001. 544 с.

3. Операционная система реального времени QNX Neutrino 6.3. Системная архитектура: Пер. с англ. СПб.: БХВ-Петербург. 2005. 336 с.

4. Никифоров В. В. Операционные системы реального времени: Уч-метод. пособие. СПб.: Изд-во РГПУ. 2007. 109 с.

5. Darari S., Slia L. Sources ofunbounded priority inversion in real-time systems and comparative study of possible solutions // ACM Operating Systems Review 1992. \bl. 26, № 2.

6. Goodenough J.В., Sha L. The priority ceiling protocol: a method for minimizing the blocking of high priority Ada tasks // Proc. 2nd Intern, workshop on

7. Керимов M.A., Хлудова M.B. Контроллерные сети в автомобильных приложениях: факторы надежности функционирования // Сб. науч. тр. Междунар. науч.-техн. конф. / СПбГАУ. СПб. 2009. С. 80-85.

i Надоели баннеры? Вы всегда можете отключить рекламу.