когда оно было запрещено, то планирование будет произведено сразу после разрешения.
Результаты измерений временных характеристик (модуль БТ23-206 с частотой 400 МГц) следующие:
• время переключения контекста - 1,3-1,6 мкс;
• время задержки прерывания - 0,6 мкс;
• время реакции потока - 3,9 мкс;
• скорость передачи данных между процессами на различных модулях по шине УМЕ - 12 Мб/сек.;
• перезагрузка процесса - 33 мс.
Мобильность
При разработке системы ставилась задача обеспечения мобильности как приложений, так и самой ОС. Мобильность приложений обеспечивается в основном применением стандартов, описывающих интерфейс приложений с ОС.
С целью повышения мобильности ОС она разбита на три части:
- не зависящая от аппаратуры,
- зависящая только от типа центрального процессора,
- пакет поддержки модуля.
Не зависящая от аппаратуры часть ОС имеет самый большой объем и полностью написана на языке С. Та часть ОС, которая зависит только от типа процессора, написана на языках С или ассемблера и имеет сравнительно небольшой объем. Туда входят, например, функции запоминания и
восстановления контекста, пролог и эпилог диспетчера прерываний.
Пакет поддержки модуля содержит ту часть ОС, которая зависит от конкретной ЭВМ (модуля), в частности, это могут быть драйверы устройств.
В заключение отметим, что ОС РВ Багет 3.0 -современная высоконадежная отечественная ОС с пользовательским интерфейсом, базирующимся на спецификации ARINC 653 и стандарте POSIX 1003.1, с временными характеристиками на уровне мировых стандартов. Использование ARINC 653 обеспечивает адекватный интерфейс разработчикам прикладного ПО, а наличие POSIX-процессов дает возможность с минимальными издержками переносить ПО из систем с POSIX-интерфейсом, в частности, из ОС РВ Багет 2.0.
Литература
1. Безруков В.Л. [и др.]. Введение в oc2000 // Вопросы кибернетики. М.: НИИСИ РАН, 1999.
2. Avionics application software standard interface, Part 1 / Required services, Aeronautical radio, Inc, March, 2007.
3. IEEE Standard for Information Technology / Portable Operating System Interface (POSIX) Part 2: System Interface. IEEE Std 1003.1-2004, Vol. 2.
4. Wind river platform for safety critical ARINC 653. URL: http://www.windriver.com/products/platforms/safety_critical_arinc _653/resources/platform_sc_arinc653_ds.pdf (дата обращения: 16.07.2010).
5. LynxOS-178 2.0. URL: http://www.lynuxworks.com/rtos/ lynxos-178.pdf (дата обращения: 16.07.2010).
6. Safety Critical Products: INTEGRITY- 178B RTOS. URL: http://www.ghs.com/download/datasheets/INT_178B.pdf (дата обращения: 16.07.2010).
УДК 004.021
планирование заданий с синхронным стартом
А.И. Грюнталь, к..ф.-м.н.. (НИИСИРАН, г. Москва, [email protected])
Рассматривается формализованная модель исполнения произвольной многозадачной системы реального времени с синхронным стартом. Для таких систем формулируются необходимые и достаточные условия, выполнение которых обеспечивает своевременное исполнение всех задач. Приводится соответствующий алгоритм планирования.
Ключевые слова: реальное время, программное обеспечение, многозадачность, планирование, синхронный старт.
В вычислительных системах, функционирующих в реальном масштабе времени, используется, как правило, многозадачный псевдопараллельный режим вычислений. Планирование вычислительного процесса для таких систем должно обеспечивать обязательное своевременное выполнение всех ее задач.
Для сравнительной оценки различных алгоритмов планирования строится математическая модель распределения процессорного времени. В рамках модели подробно рассматриваются многозадачные системы с синхронным стартом, для которых формулируются условия (критерий раз-
решимости системы), обеспечивающие своевременное выполнение всех задач.
Приводимый в статье подход может применяться в вычислительных системах, создаваемых на базе разработанной в НИИСИ РАН операционной системы реального времени ос2000 [Годунов А.Н. и др.].
Модель многозадачной системы
В модели аналогом задачи (программы, потока) является задание. Прикладная задача в целом рассматривается как последовательность заданий,
упорядоченных в хронологическом порядке по мере их возникновения. Приведем соответствующие определения.
Заданием назовем тройку положительных чисел (^ L, X), удовлетворяющих неравенству L<T. Число t назовем началом задания (или моментом его старта), L - ресурсной длительностью задания, Т - максимально допустимой длительностью задания исполнения.
Задание интерпретируется как исполняемая на ЭВМ задача, возникшая и готовая к исполнению в момент 1 Ресурсная длительность задания L - это время, необходимое для выполнения задачи в монопольном режиме, то есть когда процессор занят только ее выполнением.
При многозадачном режиме выполнение задач прерывается другими задачами, функциями обработки прерываний, ожиданием ресурсов и др. Поэтому, даже если задача фактически стартовала сразу в момент своего возникновения, ее выполнение может завершиться в момент tl>t+L. Максимальная длительность задания Т - это максимальное время, за которое задача должна быть выполнена.
В изучаемой модельной ситуации рассмотрим только одну возможную причину прерывания выполнения задачи - выполнение других задач. Формализуем эту ситуацию, введя понятие системы.
Системой назовем такую конечную последовательность заданий Ll, ТО, ... , ^у, Ту), для которой выполняются следующие неравенства: ... , Другими словами, начала составляющих систему заданий должны образовывать неубывающую последовательность. Число ^ будем считать началом (или моментом старта) системы.
Полуинтервалом назовем множество
чисел ^ удовлетворяющих неравенствам Допускается вариант 1г=+<». Такой полуинтервал является неограниченным, или бесконечным, числа ^ и 1г - соответственно левой и правой границами полуинтервала. Два полуинтервала называются смежными, если правая граница одного полуинтервала совпадает с левой границей другого. Очевидно, объединение двух смежных полуинтервалов является полуинтервалом.
Пусть дан полуинтервал [а, Ь). Разбиением полуинтервала назовем такую последовательность полуинтервалов [а1, Ы), 1=1, ..., К, при которой а=а1, Ь1.1=а1, ЬК=Ь. Определение справедливо и в случае, когда Ь=+да. Если ^ - момент старта системы, то интервал +<») будем называть интервалом определения системы.
Пусть дана система 8={(^, L1, Т1)}, 1=1, ..., N. Функцией планирования назовем произвольную кусочно-постоянную функцию р(1) со следующими свойствами:
1) функция рф определена на полуинтервале ^ < t < +»;
2) функция p(t) принимает значения во множестве 0, 1, ..., N
3) прообраз значения функции p(t) для любого 1=0, 1, ..., N представляет собой объединение конечного количества несмежных полуинтервалов; при #0 все полуинтервалы должны быть ограниченными;
4) для каждого #0 сумма длин полуинтервалов, составляющих прообраз функции рф для значения 1, равна Li - ресурсной длительности задания с номером 1.
Интерпретация функции рф следующая. Значение р(1) - это номер задания, выполняемого в момент 1 Нулевое значение р(1) означает, что ни одно из заданий в момент t не выполняется.
Определение функции планирования нуждается в формальной проверке корректности свойства 4, поскольку набор несмежных полуинтервалов, существование которых требуется в п. 3, может быть определен неоднозначно, а значит, и сумма их длин может изменяться от одного набора к другому.
Заметим, что для каждого 1 объединение несмежных полуинтервалов, рассматриваемых как множество, определено однозначно. Поэтому для доказательства корректности определения надо установить истинность следующей леммы.
Лемма (о единственности представления). Пусть дано множество М в виде объединения конечного количества несмежных полуинтервалов. Тогда такое представление единственно.
Доказательство леммы опускается.
Пусть даны функция рф, обладающая свойствами 1 и 2, и два смежных интервала, принадлежащих области определения функции рф. Будем считать, что функция р(1) удовлетворяет свойству перемены значения на заданных смежных полуинтервалах, если значения р(1) на этих полуинтервалах различны. Также положим, что функция р(1) удовлетворяет свойству перемены значения на разбиении полуинтервала, если для любых двух смежных полуинтервалов из разбиения выполняется свойство перемены значения.
Полуинтервалы, существование которых утверждается в пункте 3 определения функции планирования, назовем характеристическими полуинтервалами функции планирования, соответствующими значению 1. Из леммы о единственности представления следует, что множество характеристических полуинтервалов, соответствующих значению 1, определено однозначно. Набор всех характеристических полуинтервалов, соответствующих всем значениям функции планирования, назовем характеристическим разбиением функции планирования, а сами полуинтервалы - характеристическими полуинтервалами функции планирования.
Заметим, что определение характеристических интервалов корректно и в случае функции, для ко-
торой выполнены только первые три свойства из определения функции планирования.
Очевидно, разбиение функции планирования содержит не меньше чем N+1 полуинтервал, где N - количество заданий в системе. Для заданной системы характеристическое разбиение полностью определяется функцией планирования. Поскольку значения функции планирования в пределах одного характеристического полуинтервала не меняются, под значением функции планирования на характеристическом полуинтервале будем понимать значение функции планирования в произвольной точке характеристического полуинтервала. Если I - полуинтервал, то это значение будем обозначать через p(I).
Левые границы полуинтервалов, образующих характеристическое разбиение, назовем точками переключения планирования (функции планирования). Количество точек переключения планирования равно количеству характеристических полуинтервалов.
Пусть даны система и функция планирования. Для задания с номером i через Fi обозначим правую границу самого правого характеристического полуинтервала, соответствующего значению I Число Fi назовем окончанием (или моментом завершения) задания с номером I
Функция планирования системы S={(ti, Li, называется разрешающей, если для каждого входящего в систему задания момент его завершения не превосходит максимально допустимую длительность задания, то есть, если выполняется неравенство Fi<ti+Ti. Система S называется разрешимой, если в ней существует разрешающая функция планирования.
Теоремы о системах c синхронным стартом
Определим критерии разрешимости системы и методы построения функций планирования, разрешающих систему. Рассмотрим только системы с синхронным стартом, или синхронные системы, то есть такие системы, все задания которых имеют общий момент старта. Это необходимый шаг при рассмотрении свойств систем общего вида. Итак, система S={(ti, Li, является синхронной, если совпадают начала всех составляющих систему заданий, то есть, если ^ = ... = Общее начало заданий для синхронных систем обозначим через
Дадим определение последовательной функции планирования. Для заданной синхронной системы S и функции планирования p(t) сегментом назовем непрерывную последовательность полуинтервалов ..., sK), входящих в характеристическое разбиение функции p(t). Точнее, сегмент -это подмножество, состоящее из (различных) полуинтервалов характеристического разбиения, объединение которых в теоретико-множественном
смысле - снова полуинтервал. Количество составляющих сегмент полуинтервалов назовем комбинаторной длиной сегмента.
Сегментом разрыва будем называть такой сегмент s1, ..., sK, К>3, в котором для некого 1 из области значений функции p(t) выполняются следующие утверждения: p(sl)=p(sк)=i; p(Sj)# при ]=2, ..., &1.
Функция планирования является последовательной, если у нее отсутствуют сегменты разрыва, то есть образующие систему задачи выполняются последовательно: сначала полностью выполняется одно задание, потом другое и т.д. Ясно, что функция планирования последовательная тогда и только тогда, когда принимает отличное от нуля значение ровно на N полуинтервалах характеристического разбиения. То же утверждение можно сформулировать следующим образом: функция планирования тогда и только тогда последовательная, когда у нее ровно N+1 точка переключения планирования.
Теорема 1 (о существовании последовательного планирования). Пусть дана синхронная система. Если эта система разрешима, то существует последовательная функция планирования, разрешающая ее.
Доказательство. (Приведем только алгоритм построения последовательной функции планирования; проверка выполнения требований, предъявляемых к функции планирования, опускается.)
Пусть S - разрешимая синхронная система, определенная на полуинтервале +<»); p(t) -разрешающая эту систему функция планирования. Допустим, что функция p(t) не является последовательной. Тогда у нее существуют сегменты разрыва. Пусть Seg=(u1, ..., uK) - сегмент разрыва с наименьшей комбинаторной длиной (если их несколько, возьмем любой из них). Так как Seg -сегмент разрыва, то p(u1)=p(uK). Так как комбинаторная длина сегмента минимальна, значения функции p(t) на всех сегментах ..., uK_1 попарно различны и отличны от p(u1).
Через ..., ^ обозначим левые границы составляющих сегмент разрыва полуинтервалов, а через г1, ..., ^ - правые границы; Iseg - полуинтервал [1ь г^; Lj - длина г,—^ полуинтервала ц^ Очевидно, что Iseg является теоретико-множественным объединением полуинтервалов щ, ..., uK, а количество точек переключения планирования функции p(t), принадлежащих Iseg, равно К
Через ..., vL) обозначим полуинтервалы характеристического разбиения функции p(t), находящиеся левее Iseg, а через ..., wR) - полуинтервал^!, находящиеся правее Iseg. Очевидно, что полуинтервал wR неограниченный. Объединение полуинтервалов v1, ..., vL обозначим через Lseg, объединение полуинтервалов w1, ..., wR - через Rseg.
Количество точек переключения планирования функции рф на Lseg, Iseg и Rseg равно соответственно L, К и R. Общее количество точек переключения планирования функции р(1) равно B=L+K+R. Естественно, возможен случай, когда L=0 или R=0. При R=0 полуинтервал иК неограниченный.
Построим новую функцию планирования р1(1) синхронной системы 8, количество точек переключения планирования которой будет меньше В. На полуинтервалах Lseg и Rseg положим р1ф равной р^). Для задания р1ф построим разбиение
..., zK.1) на Iseg и определим р1ф на каждом из полуинтервалов этого разбиения.
При 1=1, ..., К-2 положим zi=[li+1-L1, ri+1-L1). Пусть zK-1=[lK-L1, гК). Легко проверить, что (z1, ..., zK-1) образуют разбиение полуинтервала Iseg.
При 1=1, ..., К-2 значение функции р1ф на zi примем равным р(и1+1), значение функции р1ф на zK-1 - равным р(иК). Поскольку объединение полуинтервалов z1, ..., zK-1 равно Iseg, функция р1ф определена на всей области определения системы 8.
Можно проверить, что построенная функция р1ф является разрешающей функцией планирования системы 8, а количество точек переключения этой функции меньше количества точек переключения функции p(t).
Если функция р1@) не является последовательной, то повторно применим к ней описанную процедуру и получим функцию планирования, у которой количество точек переключения будет еще на единицу меньше. Так будем поступать до тех пор, пока у полученной функции планирования не станет ровно N+1 точка переключения планирования, а значит, функция последовательная. Теорема 1 доказана.
В силу ее справедливости теперь при определении критериев разрешимости систем и поиске алгоритмов построения разрешающих функций планирования достаточно рассматривать только последовательные функции планирования.
Опишем монотонный алгоритм планирования. Пусть дана синхронная система 8={^0, Li, Т1)}. Монотонный алгоритм планирования состоит в том, что сначала выполняется задание с наименьшей максимально допустимой длительностью, потом следующее за ним, и так далее, пока не будут выполнены все задания.
Сформулируем определение монотонного алгоритма в терминах функции планирования. Пусть ф(0 - такое взаимно-однозначное отображение первых N натуральных чисел на себя, что ф(а)<ф(Ь) тогда и только тогда, когда либо Та<ТЬ, либо Та=ТЬ и а<Ь. Отображение ф(Г) определяет последовательность выполнения заданий при монотонном планировании, то есть сначала выполняется задание с номером ф(1), потом - с номером ф(2) и т.д. Отображение ф(0 называется порядком
исполнения заданий. Легко проверить, что отображение ф(1) определено единственным образом.
Обозначим через отображение, обратное фО). Определим последовательность полуинтервалов и1, ..., uN следующим образом. Примем Пусть теперь построены и1, ..., иК для некоторого К, 1<К<^ Левые границы этих полуинтервалов обозначим через 11, а правые - через г1. Построим полуинтервал иК+1. Примем
иК+1=[гК, ^К+^СК+^Х
Очевидно, что объединение построенных полуинтервалов является полуинтервалом (обозначим его через Iseg), а последовательность и1, ..., uN образует разбиение этого полуинтервала. Определим монотонную функцию планирования р(1).
Пусть t принадлежит Iseg. Тогда t принадлежит в точности одному полуинтервалу и1. Примем рф=у(Г). Обозначим через г правую границу Iseg. При значениях ^г примем p(t)=0.
Лемма. Построенная функция р(1) является функцией планирования системы 8, разбиение (и1, ..., и№ и+м) - характеристическим разбиением, соответствующим функции планирования р(1). (Доказательство леммы опускается. )
Теорема 2 (о монотонном планировании). Если синхронная система разрешима, то монотонная функция планирования разрешающая.
Доказательство. Опишем конструкцию, приводящую к построению монотонной функции планирования. Пусть система 8={^0, Li, Т1)} разрешима. В силу теоремы 1 для системы 8 существует последовательная функция планирования рф. Пусть ..., zN, z+м) - характеристическое разбиение, соответствующее функции р(1).
Пару характеристических интервалов из разбиения ..., zN) с номерами а и Ь назовем неупорядоченной парой, если а<Ь и ф(р^Ь))<ф(р^а)). Количество неупорядоченных пар характеристических интервалов назовем дефектом функции планирования (напомним, что характеристически полуинтервалы однозначно определяются функцией планирования). Обозначать дефект будем через 6ф, р). Очевидно, что функция планирования монотонная тогда и только тогда, когда р)=0. Если образующие неупорядоченную пару полуинтервалы смежные, такую неупорядоченную пару назовем смежной.
Лемма (о существовании смежных неупорядоченных пар). Если дефект функции планирования положительный, то существует по крайней мере одна смежная неупорядоченная пара. (Доказательство опускается.)
Предположим, что 6ф, р)>0. Тогда построим последовательную функцию планирования р1ф, дефект которой меньше дефекта рф. Рассмотрим смежную неупорядоченную пару характеристических полуинтервалов. Допустим, что это пара Zj=[1j, г^, Zj+1=[1j+1, rj+1). То, что смежная пара неупорядоченная, означает следующее: Тр^+1)<
<Тр^). Заменим пару полуинтервалов Zj, Zj+1 на пару полуинтервалов yj, yj+1. Пусть ^ - левая граница Zj, rj+1 - правая граница Zj+1.
Пусть Li обозначает ресурсную длительность задания с номером ! Тогда примем Уj=[lj, lj+Lq) и Уj+l=[lj+Lq, г(]+1)), где q=p(zj+l). Очевидно, что полуинтервалы у) и yj+1 смежные, и их объединение совпадает с объединением Zj и Zj+1. На у) и у)+1 определим р1ф, полагая p1(yj)=p(zj+l) и р1(у)+0= =p(zj). В остальных точках определения системы S положим p1(t)=p(t). Можно проверить, что р1© -последовательная разрешающая функция планирования системы S, такая, что р1)=6^, р)-1.
Если функция р1(1) немонотонная, то, снова применив процедуру уменьшения дефекта, получим новую функцию планирования с еще меньшим дефектом. И так далее, до тех пор, пока дефект не станет нулевым, а функция планирования монотонной. Теорема о монотонном планировании доказана.
Критерий разрешимости синхронных систем
Пусть дана синхронная система S={(t0, Li, Т1)}, ь=1, ..., N. Предположим нумерацию заданий системы такой, что Т1<Т1+1. Из теоремы о монотонном
планировании следует, что система разрешима тогда и только тогда, когда она монотонно разрешима. Отсюда вытекает следующий критерий разрешимости: система разрешима тогда и только тогда, когда для каждого к=1, ..., N выполняется неравенство Ь1+.+Ьк<Тк.
Приведенный критерий представляет конструктивный способ проверки разрешимости конкретной системы с синхронным стартом.
В статье приведена формализованная модель исполнения произвольной многозадачной системы реального времени с синхронным стартом, предназначенная для анализа разрешимости системы, то есть определения возможности своевременного завершения заданий системы. Показано, что система разрешима в том и только в том случае, когда она разрешима при монотонном планировании. Это приводит к построению алгоритма, определяющего порядок исполнения заданий системы.
Дальнейшая работа связана с анализом разрешимости произвольных несинхронных систем.
Литература
Годунов А.Н. [и др.]. Введение в ос2000 // Вопросы кибернетики. Информационная безопасность. Операционные системы реального времени. Базы данных [под. ред. В.Б. Бете-лина]. М.: НСК РАН, 1999. С. 76-106.
УДК 658.512.011.56:004.42
генератор текста программ в исходном виде для систем реального времени
К.Г. Нархов (НИИСИРАН, г. Москва, [email protected])
Статья посвящена практическим вопросам технологии генерации текста программ в исходном виде для систем реального времени. Рассматриваются принципы работы технологических средств автоматизированной генерации программ, логическая структура генератора текста программ в исходном виде и алгоритмы функционирования его программных модулей.
Ключевые слова: программирование, системы реального времени, генерация исходных текстов, XML, UML, моделирование, модель, надежность, многопоточность, исходный код.
Повышение надежности специального программного обеспечения (СПО) комплексов, функционирующих в реальном масштабе времени под управлением ос2000, может быть достигнуто применением при его создании автоматизированных средств построения и анализа архитектурных и структурных моделей вычислительных систем реального времени (ВС РВ), автоматизированной генерации заготовок программных модулей на языке программирования Си для компонентов СПО ВС РВ, имитационного моделирования работы ВС РВ.
Разработанные НИИСИ РАН технологические средства автоматизированной генерации СПО
(ТСАГ СПО) позволяют снизить трудоемкость разработки СПО, повысить его надежность за счет применения типовых программных компонентов, автоматизировать значительную часть работ процесса разработки СПО (в том числе работ по подготовке проектной документации).
ТСАГ СПО представляют собой совокупность следующих взаимодействующих программных средств: подсистема графического интерфейса (ППГИ РВ), подсистема графического представления (ПГП РВ), подсистема текстовой поддержки графического представления (ПТП РВ) и подсистема генерации текстов программ в ис-