Научная статья на тему 'Формализм адресно-временных карт для описания алгоритмов функционирования многоканальных систем управления. Базовые объекты и операции с АТ-картами'

Формализм адресно-временных карт для описания алгоритмов функционирования многоканальных систем управления. Базовые объекты и операции с АТ-картами Текст научной статьи по специальности «Компьютерные и информационные науки»

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

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

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

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

Текст научной работы на тему «Формализм адресно-временных карт для описания алгоритмов функционирования многоканальных систем управления. Базовые объекты и операции с АТ-картами»

УДК 681.325 5: 518.5

ФОРМАЛИЗМ АДРЕСНО-ВРЕМЕННЫХ КАРТ ДЛЯ ОПИСАНИЯ АЛГОРИТМОВ ФУНКЦИОНИРОВАНИЯ МНОГОКАНАЛЬНЫХ СИСТЕМ УПРАВЛЕНИЯ Базовые объекты и операции с АТ-картами

А. М. Астапкович,

канд. техн. наук, начальник СКВ

Санкт-Петербургский государственный университет аэрокосмического приборостроения

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

AT-card formalism basic objects and operation are presented in the article. AT-card is a two-dimensional (addresses and discrete time intervals) decryption for required resources of used software module. Proposed formalism is oriented for a new software development tool with code generation ability for multi channel real time control systems. New type of matrix operations are introduced that give possibility to describe change of matrix size, also as new rules to form a resulting matrix elements.

ВВЕДЕНИЕ

Бурное развитие современной микропроцессорной техники привело к тому, что разработка низкоуровневого программного обеспечения (ПО) становится наиболее инертным звеном в цикле разработки многоканальных систем управления реального времени (СУРВ) встраиваемого класса. Повышение производительности разработчиков ПО и качества низкоуровневого программного обеспечения невозможно без автоматизации задачи синтеза программного обеспечения.

Одним из перспективных направлений развития программно-инструментальных сред нового поколения является использование технологии нисходящего программирования [1, 2] для этого класса СУВР. Ключевой задачей, определяющей возможность ее применения, является введение адекватного этой технологии формализма, обеспечивающего учет специфики многоканальных СУРВ.

Предлагаемый в работе формализм обеспечивает возможность полуавтоматического или

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

Рассмотренный в данной работе формализм предназначен для укрупненного описания алгоритмов функционирования многоканальных систем управления, низкоуровневое программное обеспечение для которых разрабатывается с применением технологии микрооперационных систем реального времени (тОСРВ).

Использование базовых понятий формализма АТ-карт оказалось продуктивным с чисто практической точки зрения. К настоящему времени уже накоплен опыт использования методики АТ-моделирования для решения ряда плохо формализуемых задач системной интеграции [3].

Статья представляет собой логическое продолжение работы [4] и использует введенную в ней систему базовых понятий и определений.

БАЗОВЫЕ ПОНЯТИЯ ТЕОРИИ тОСРВ

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

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

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

Как явствует из примеров, рассмотренных в обзоре литературы, применение технологии тОСРВ целесообразно при сужении многообразия объектов управления до уровня одного

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

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

Теория ОСРВ в ее нынешнем виде оперирует такими базовыми объектами, как «задача», «процесс», «нить». Разные авторы используют эти понятия в разных контекстах [5-10], что зачастую порождает значительные трудности для понимания даже на концептуальном уровне излагаемых разными авторами результатов.

Введем собственные определения ряда ключевых объектов теории ОСРВ применительно к СУРВ встраиваемого класса для исключения двусмысленности толкования данной статьи. В большей степени предлагаемые определения ориентированы на описание алгоритмов, реализуемых средствами низкоуровневого программирования, и являются первичными объектами теории тОСРВ [11, 12].

Задача и составная задача. Будем использовать понятие «задача» в качестве первичного объекта, представляющего собой функционально законченный отрезок кода, реализующий требуемый алгоритм работы конкретных модулей микропроцессора. Программно этот отрезок кода оформляется в виде функции, подпрограммы или макроса.

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

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

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

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

Конкурентное пространство и конфликт. В классической теории ОСРВ пересечение адресных множеств разных задач называют критической секцией, а задачу анализа кода на наличие таких пересечений называют задачей анализа критической секции.

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

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

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

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

Этот подход в работе [4] был распространен и на временную ось. Там же были введены определения А-, Т- и АТ-конфликтов.

Битовые и целочисленные АТ-карты. В работе [4] для описания используемых задачей ресурсов (адресов и временных тактов) было введено понятие битовых АТ-карт. По аналогии АТ-карты, элементы которых могут принимать лишь целочисленные значения, будем называть целочисленными АТ-картами.

КЛАССИФИКАЦИЯ ОПЕРАЦИЙ С АТ-КАРТАМИ

В работах [4, 11] для компактного описания требуемых ресурсов для реализации алгоритма в многоканальной системе управления введен ряд символьных операций с прямоугольными матрицами. С учетом того, что предлагаемый формализм еще не получил широкого распространения, разберем мотивацию и ряд особенностей вводимых символьных операций.

При этом будет использоваться следующая форма записи выражений для базовых операций: [тип операции] операнд (ы).

Иерархия символьных операций с АТ-картами вводится следующими определениями.

Определение 1 . Операцию, влияющую на один из размеров матрицы описания АТ-карты,

Определение базовых операций с АТ-картами

Название, краткое описание, тип

Пример

Примечания

Проецирование: [1А] АТ = {аД Одноместная операция ранга (-1) проецирования матрицы на одну из осей: А или Т

[±А]

т

Операция проецирования на определяемое множество {т}\ [1(Л с1еНпт}] АТ = {а). Проецирование возможно как на ось А, так и на ось Т

Измерение размера АТ-карты [ОТ] АТ, [,ОД] АТ

Одноместная операция ранга (-1)

[ОТ] АТ = / - /

[ОА] АТ = Г-1

Реализация зависит от принятого способа представления АТ-карты

АТ = АТ,

Усечение: [01 □ О.

о4

Двуместная операция ранга (0), изменяющая размерность матрицы описания АТ-карты в соответствии с параметрами О,, 02, Оэ, 04

[□ 4

Параметры усечения целые числа

беззнаковые

Объединение: ДТ2 [л + с/] АТ1 = АТ3 Двуместная операция ранга (0) формирования одной АТ-карты из двух с соответствующим смещением значений элементов суммарной матрицы. Параметры смещений зависят от значений матрицы АТ, и О

ЕЗ""1 в ■ —

Многоместная операция объединения N АТ-карт X [л + О] АТ. Возможно введение векторной операции Г [а + О] АТ с переменным смещением для каждого слагаемого

Врезка: АТ2 [V + О] АТ, = АТ3 Двуместная операция ранга (0) формирования одной АТ-карты из двух с соответствующим смещением значений элементов суммарной матрицы. Параметры смещений зависят от значений матрицы АТ,, АТ2 и О

[у+2]

И

Операция ранга (+1) [\Л/ + [О, - 02]] множественной врезки с параметрами О,, 0,4-1, ..., 02. Результатом является (02- 0,4-1) АТ-карт, сформированных операциями врезки с линейно увеличивающимся параметром О. При положительных значениях параметра О операция ['у+О] становится эквивалентной операции [а + О] и справедливо соотношение АТ,

[V + аЬэ(О)] АТ2 = АТ2 [а + аЬэ(О)] АТ,

будем называть одномерной, а именно А-опе-рацией или Т-операцией. Операции, влияющие на оба размера матрицы описания АТ-карты, будем называть двумерными.

Определение 2. Операцию, производимую над одной АТ-картой, будем называть одноместной, над двумя АТ-картами - двуместной. Операции, которые производятся над большим количеством АТ-карт, будем называть многоместными операциями.

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

Определение 3. Изменение размерности результирующего объекта в результате применения операции будем характеризовать целым числом со знаком, которое называется рангом операции.

Описание ряда базовых операций с АТ-картами представлено в таблице.

БАЗОВЫЕ ОПЕРАЦИИ С АТ-КАРТАМИ

Операция проецирования на ось адресов может интерпретироваться как операция преобразования двумерного множества в одномерное упорядоченное множество с монотонно возрастающими значениями элементов и заданным шагом между элементами, равным единице. Это открывает возможность для построения ряда удобных и полезных обобщений. Рассмотрим возможные варианты одноместных операций ранга (-1). Например, определение оси А или Т через некоторое определяемое множество элементов {т} обеспечивает возможность компактной записи критерия использования (неиспользования) тех или иных адресов или временных интервалов в виде

А =с!еЧт}

[±А] АТ, ={!},. (1)

Если множество {\}, пустое, то это означает, что программная единица, описываемая картой АТ,, не использует ни одного из адресов, формирующих множество {т}. Это можно записать в лингвистическом формате современных языков программирования в виде

Г Программная реализация

CALL

CALL

TASK)

TASK,

Операция объеденения [л+] АТ [л+] АТ0 = ATS

NA

Графическая иллюстрация

I

И

NT, 1

NT2 1 NTS

NTS = (Л/7,+ NT2)

Реализация операции объединения на уровне представлений

АТ\ ат2

[.NA, NTV лд [л+] [А/А, Л/Т,, Л/,]

Результат

ATs

[NA, NT^+NT2, Л/1 +Д/2]

<w)s

где

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

{i,j\s = {i,j}v если Ас = 1 ...Л/Г,

{/, у + Л/7",}2, если k =(/VT1 + 1). ■(NT,+NT2)

ш Рис. 1. Иллюстрация к введению операции объеденения [л+] двух АТ-карт

[±(А =6еЦт})]АТ1 = {1},=0. (2)

Обозначение с!е! в данном случае интерпретируется как определяемое множество {т} и подразумевает, что множество адресов определено тем или иным способом. Операция «равно» требует соответствующего определения. Эта же операция может быть применена к оси времени.

Операция усечения. В классическом матричном исчислении введение арифметических операций обеспечивается за счет согласованности размеров матриц. Для получения эффективного аппарата работы с АТ-картами потребуется обеспечить возможность уменьшать (увеличивать) размеры АТ-карт.

В рамках введенной выше классификации определений операция усечения представляет собой одноместную операцию ранга (0). Как следует из приведенной в таблице иллюстрации, результатом операции усечения, выполненной над исходной АТ-картой, является АТ-карта

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

Операция объединения [л-Ю]. Антипод операции усечения - двуместные и многоместные операции объединения АТ-карт. Эти операции появляются естественным образом при описании суммарной АТ-карты, описывающей используемые ресурсы системой псевдопарал-лельных процессов. На рис. 1 определяется и иллюстрируется двуместная операция объеди-

Цикл обработки очереди задач

Прерывания тс і АТеуВ

а о п □ п п

Нулевой цикл АТ0 1-й процесс 1-й квант і ~1 АТ, 1-й квант 1 - И—

2-й процесс 2-й квант 1_1_ АТ2 2-й квант 1 1

3-й процесс Первый цикл 3-й квант ! 1 Второй АТ3 ; цикл 2-й квант і :□

ш Рис. 2. Процессе грамма диспетчера для тОСРВ с квантованием времени

нения двух АТ-карт. Операция объединения не коммутативна.

Для введения многоместной операции объединения рассмотрим программу, циклически опрашивающую N каналов. АТ-карта одного цикла опроса образуется путем применения операции объединения к N АТ-картам АТЬ описывающим требуемые ресурсы для подпрограммы обработки воздействий по каждому из каналов. Общая АТ-карта представляет собой бесконечную карту АТ3. Процесс ее формирования представляется многоместной операцией объединения:

N

/=1

+](АТі)

(3)

Внутренний цикл суммирования в формуле (3) представляет собой АТ-карту, описывающую один цикл опроса очереди задач.

Многоместная операция объединения матриц 1[д+] позволяет компактно описать суммарную АТ-карту псевдопараллельных процессов, сформированных из задач, для запуска которых используется диспетчеризация с квантованием времени. На рис. 2 представлена процессограм-ма, где обработка прерываний от системного таймера, сохранение контекста текущей задачи и загрузка следующей образуют системный процесс длительностью 7"5у5, который также может быть описан своей АТ-картой АТзув. В предлагаемых обозначениях это можно записать в виде

со Ґ N Л

АТ3 = АТ0 [л +] [л +] ^(АТ^л+Щ

к=1 I /'=1

(4)

где N следует положить равным трем.

Синтез программного обеспечения для многоканальных систем управления реального времени требует средств описания конфликтов и введения меры конфликтности конкретной реализации синтезируемого ПО. Применительно к многоканальным СУРВ речь идет либо об АТ-конфликте, либо о Т-конфликте. Это позволяет использовать аппарат линейной или нелинейной оптимизации для логического проектирова-

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

Рассмотрим обобщение операции [л+] в виде [л+О]. Здесь О может принимать как положительные, так и отрицательные значения:

АТ, = {иЬ.]=^-Т,],

ДГ2 = {/,7}2,У=[1-72],

АТ3 = {/,у}3{/,7Ь .если к=^...Т^,

{/,у' + 0}2, если к- (Т-, + 1 )...(Г-| + Т2). (5)

Очевидно, что операция [л+] является частным случаем этой операции при 0 = 0. При О > О происходит увеличение временной компоненты размерности матрицы АТ5, на величину, равную О, а общее количество элементов в матрице АТ3 возрастает на ОхДЛ/ нулевых элементов, по сравнению с простой суммой элементов матриц АТа и АТ2. При этом в соответствии с определением (5) суммарная АТ3-карта при О > О будет иметь разрыв, описываемый по умолчанию.

Определенная выше двуместная операция [л+О] позволяет уже без всякого труда ввести многоместную операцию I[л+О]. В качестве содержательного примера полезных качеств предлагаемого обобщения рассмотрим возможность описания системного процесса для диспетчеризации с квантованием времени, приведенной на рис. 2. Системный процесс для этого случая описывается в следующем виде:

АТ3 - АТ0 [д +] [л +] ]Г [л + Тс/ 3](/\7‘дуд

/с=1 I т=1

(6)

Карта АТ0 описывает фазы инициализации микропроцессора и тОСРВ. В соответствии с рис. 2 0= Тс/3. Описание системного процесса в виде (6) в сочетании с процессограммой на рис. 2 иллюстрируют возможность компактного и наглядного описания многосвязных бесконечных АТ-карт с помощью операции 1[л-Ю].

В целях обеспечения возможности описания многосвязных АТ-карт с нерегулярной структу-

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

]Г[л + Йс]№). <7>

к=1

Выражение (7) представляет собой определение в самом общем виде Т-операции объединения, которую целесообразно называть векторной.

Ограничений на применение предлагаемых операций к адресной компоненте АТ-карт нет. Следует лишь позаботиться об устранении неоднозначности записи для понимания, к какой именно компоненте (адресной или временной) относится выполняемая операция.

Для описания двумерных операций представляется разумным ввести следующее обозначение:

/А7-А-операциЯ) АТ = АТ

^Т-операция ' '

которое естественным образом может быть распространено и на многоместные операции.

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

Для задач этого класса требуется расширить область допустимых значений, включив в нее отрицательную полуось О < 0. На рис. 3 показана графическая иллюстрация выполнения операции [л—3] над адресно-временными картами АТ^ и АТ2.

Детальный анализ определения (5) для операции [д + О] приводит к следующему выводу: оно корректно описывает операцию не только при О > 0 , но и при О < 0 и аЬэ(О) < . Сложно-

сти в непосредственном использовании определения (5) возникают лишь в случае, когда О < < 0 и аЬэ(О) > Т1.

Можно предложить несколько вариантов решения этой проблемы. Самый простой из них заключается в использовании отрицательных значений индексов. В этом случае отсчет идет от первого столбца матрицы АТ^ Появление отрицательного индекса в матрице АТ3 означает смещение на большее количество временных тактов, чем Г-,. При программной реализации это приведет к необходимости использования знаковых целых переменных для описания массивов индексов. При решении прикладных задач анализ знаков выполнения операции объединения со смещением несет информацию об очередности выполнения задач. Так, наличие отрицательных индексов сигнализирует о том, что нарушена очередность запуска задач, т. е. задача, описываемая картой АТ2, запускается раньше, чем задача, описываемая картой АТ}. Эта информация позволяет учитывать структуру информационного обмена между задачами и их взаимного влияния.

Выполнение операции [л+О] при отрицательных значениях О может привести к появлению А-, Т- или АТ-конфликтов. Подчеркнем, что возможность описания конфликтов в глобальном конкурентном пространстве составляет ту цель, ради которой и вводится предлагаемый формализм.

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

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

шш ,г Т-

III1

т, 1

Т=(Т+7-)-3

■ Рис. 3. Результат действия операции I [л-3]Т1

1 Т,

Те=ТІЗг+ТІ

Рис. 4. Результат действия операции АТ5 =АТ)5Г [\/-4]АТ1

значение получаемой целочисленной функции может служить мерой конфликтности.

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

Так, в рассмотренном выше примере символьное описание суммарной АТ-карты может быть построено с использованием описания {/',)} карты АТзуз, к которому добавляется идентификатор операции Х[л+0] с численным значением параметра О и количеством циклов, которое для ряда случаев может быть фактически бесконечным. Несмотря на то, что суммарная АТ-карта также фактически бесконечна, описание карты АТзуз будет очень компактно по объему.

Операция врезки [1/У+[0-|-02]]. Для описания прерываний будем использовать двуместную операцию сложения двух АТ-карт, которую назовем операцией врезки и обозначим как ^+0]. Графическая иллюстрация этой операции приведена на рис. 4. Суммарная АТ-карта при выполнении этой операции формируется за счет врезки соответствующего фрагмента описания обработчика прерываний по указанному месту, определяемому параметром О. Для определенности примем соглашение, что отсчет смещения ведется от максимального значения временного интервала второго слагаемого Гь которым в примере на рис. 4 является карта АТа. При положительных значениях параметра О операция у+О становится по результату эквивалентной операции л+О, что может быть выражено в виде соотношения

АТЛ [V + аЬэ(О)] АТ2 = АТ2 [V + аЬф)] АТ

(9)

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

Для отрицательных значений параметра О результат выполнения операции v+D зависит от соотношения величин О, 7| и 72. Как следует из

иллюстрации (рис. 5), при аЬэ(О) > (Т, + Т2) справедливо соотношение

АТ\ [V — аЬэ(О)^ АТ2 — АТ2 [а + (аЬэ(£)) — (Т| + АТ]. (10)

Эту ситуацию естественно назвать инверсией АТ-карт. Для полного определения операции О+О] обратимся к рис. 6, на котором иллюстрируется случай аЬз(О) <Г,,а само значение О отрицательно.

Первый вариант определения операции [У+О] соответствует дисциплине с выбыванием, когда программа с большим приоритетом препятствует началу выполнения менее приоритетной. Это означает, что после появления прерывания программа обработки останавливает выполнение текущей программы, описываемой картой Д7;. Для таких систем диспетчеризации операция [>+0] должна быть определена как

АТ] [V - аЬэ(О)] ДТ2 = АТ2, аЬз(О) < Т]

11

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

Для обеспечения корректного восстановления хода выполнения алгоритма, реализуемого прерванной программой, каждый раз требуется сохранять разное количество параметров, за-

аЬз(О)

аЬэ(О) - (7,+ Т2)

т т2

АТ,

АТП

Рис. 5. Иллюстрация соотношений параметров операции V + О для вывода формулы (10)

аЬэ(О)

Т2

^ Г

„ Т< *

АТп

АБ = АТп

Т2 Т

Рис. 6. К выводу формул ( 11) и( 12)

висящее как от особенностей алгоритма, так и от текущего значения счетчика команд. Набор регистров, обеспечивающих корректное возобновление выполнения прерванной программы, называется контекстом текущей задачи. Для этого варианта операция [У+О] может быть определена как

АТ, [V - аЬэ(0)]ЛГ2 = АТ2 [а]АТь аЬэ(О) < Т,

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

(12)

После введения двуместной операции представляется разумным и совсем необременительным ввести многоместную векторную операцию Х[у+О/]. При этом формирование результирующей АТ«,-карты следует ввести с карт с большими значениями индекса /'.

Двуместная операции |У+0] носит явно выраженный детерминированный характер. На практике при работе с внешними асинхронными процессами момент появления сигнала прерывания не является строго детерминированным, т. е. параметр О определен неоднозначно и необходима специальная операция 1/1/+ [О, - 02], отражающая специфику обработки прерываний и по результату действия являющаяся многозначной. Результат ее действия на две АТ-карты иллюстрирует рис. 7. Операция отражает тот факт, что прерывание может с равной вероятностью произойти в любой момент времени в интервале от (Т^-аЬэф,)) до (Г1-аЬз(02)).

При выполнении процессором некоторой программы, описываемой соответствующей /47,-картой, будем считать, что она имеет конечный размер по времени, например [Т,] командных циклов. В дальнейшем, не заботясь о формальной строгости, будем говорить, что процессор занят обработкой АТ-карты, подразумевая

выполнение соответствующей программы. Появление прерывания означает приостановку обработки текущей АТ^карты и начало обработки некоторой новой АТ|ЗГ-карты с размером [7,3г]по 7 Поскольку прерывание может появиться в любом командном цикле, то речь должна идти о некотором множестве АТ-карт, формируемых из карт АТ, и АТ,ЗГ

Таким образом, операция врезки [И/+ {О, - 02)] двух АТ-карт представляет собой множество из (Ог-От) {АТ3} карт:

АТ, [И/ + Ь\АТ2 =

/А7,[у-аЬз(01)]Л72; АТ, [V - аЬэ(0-|) + 1]Л72;

АТ, [V - аЬэ(02 - 01)]/А72;

(13)

Для упрощения примем, что параметр О, должен удовлетворять условию аЬэ(О) < Т,. При этом каждая из АТ3-карт, формируемых в результате выполнения операции, имеет одинаковый размер по 7 равный (Т,+Т2), а общее количество карт равно аЬэ(02 - О,). Отметим также, что можно ввести многоместную векторную операцию, например в виде [№^+[0,-0^].

Выражение

- АТ0 +

к=оо

к=1

М

/ = Л/

<1

/=1

[а +] (АТзуз [л +Щ) [И/ + [О, - 02}]АТе

(14)

иллюстрирует возможность использования предлагаемого формализма для описания тре-

ш

ш

■ Рис. 7. К введению операции [W+ [D1 - D2]]

буемых ресурсов для реализации алгоритма функционирования многоканальной СУРВ с диспетчером ЯШ и одним высокоприоритетным каналом, использующим систему прерывания. Здесь карта АТеШ описывает ресурсы, требуемые для реализации обработчика прерываний внешнего асинхронного сигнала. Параметр й, равен значению командного цикла, соответствующего прерыванию от системного таймера, запускающего очередной цикл опроса очереди задач. Параметр 02 равен числу командных циклов, необходимых для обработки всей очереди задач, плюс число командных циклов для реализации обработчика сигналов внешних прерываний.

Операция [И/ + [О, - 02]] может привести к необходимости расширения классической теории множеств. Так, при разработке теории сетей Петри понятие «множество» тоже пришлось расширить до понятия «комплект» [13], определяемого как множество с повторяющимися идентичными элементами. Это привело к тому, что для отношения «включение» в теории комплектов была введена функция числа повторений каждого элемента. Таким образом, комплект с максимальным числом повторений, не превышающим единицу, представляет собой обыкновенное множество. Это означает, что множество представляет собой частный случай комплекта.

Операция сложения [И/+ [й, - 02]] может быть описана с применением формализма теории множеств, но в перспективе может оказаться целесообразным введение соответствующего расширения понятия множества (либо понятия комплекта), подразумевающего операцию объединения двух множеств с использованием отношения включения типа: «все элементы множества 1 и один из элементов множества 2».

[W + [Dt- OJJ

ОПИСАНИЕ МЕЖЗАДАЧНОГО ИНФОРМАЦИОННОГО ОБМЕНА С ПОМОЩЬЮ АТ-ГРАФОВ

Рассмотрим применение формализма АТ-карт для описания межзадачного информационного обмена с автоматическим анализом возникновения гонок процессов (race conditions) или их взаимной блокировки (dead lock) [6].

Возможность использования аппарата графов и матричного формализма для описания структуры межзадачного информационного обмена иллюстрирует рис. 8. Здесь структура межзадачного информационного обмена соответствует программному обеспечению, разработанному с использованием технологии тОСРВ [11, 12]. При этом информационный обмен между задачами осуществляется средствами ОС и под ее контролем, что и отражает рис. 8. Если рассматривать матрицу описания информационного обмена как блочную, элементы которой - АТ -карты, то описание будет содержать не только информацию о факте наличия информационного обмена, но и данные об используемых адресах, а также временные характеристики. При этом универсализм описания достигается при использовании целочисленных (байтовых) АТ-карт.

Поскольку каждой матрице можно поставить в соответствие граф, структуру которого она описывает, то такие графы можно назвать АТ-графами. В зависимости от решаемой задачи осуществляется выбор базовых объектов, способа их описания и методов их взаимодействия. Использование АТ-графов в сочетании с формализмом сетей Петри [13] существенно расширяет возможности последнего применительно к задачам не только синтеза, но и анализа алгоритмов функционирования многоканальных СУРВ.

Ядро

микрооперационной

системы

Граф описания информационного обмена между процессами через микрооперационную систему

Обмен информацией между процессами и ядром

Матрица описания структуры информационного обмена

■ Рис. 8. Граф и матрица описания структуры межзадачного информационного обмена через ядро операционной системы

ЗАКЛЮЧЕНИЕ

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

выбранном микропроцессоре либо автоматизации выбора микропроцессора, его тактовой частоты и т. п.

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

Настоящая работа поддержана грантом Минобразования РФ № Т02-033-3649.

Литерату р а /

1. Назаров С, В. Операционные системы специализированных вычислительных комплексов. - М.: Машиностроение, 1989. - 400 с.

2. Зелковец М., Шоу А., Геннон Дж. Принципы разработки программного обеспечения. - М.: Мир, 1982. - 368 с.

3. Астапкович А. М., Касаткин А. А. Исследование возможностей ОС Linux для приложений реального времени с обработкой разнородной информации // Труды четвертой международной школы БИКАМП-03, 23-27 июня 2003 г., Санкт-Петербург. - С. 89-95,

4. Астапкович А. М. Формализм адресно-временных карт для описания алгоритмов функционирования многоканальных систем управления. Введение в формализм адресно-временных карт// Информационно-управля-ющие системы. - 2003. - № 4. - С. 6-14.

5. Турский В. Методология программирования. - М.: Мир, 1981 - 272 с.

6. Tanenbaum A. S. Operating systems/ Design and implementation. Prentice-Hall.lnc., Englewood Cliffs, New Jersey 077632. - 1987. - P. 337.

7. Farmer J. A real-time operating systems for PiCmicro microcontrollers // Embedded control handbook. AN585. Microchip Technology Inc., 1 997. - N 5. - 142. -P. 5-105

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

9. Стивенсон У. Unix: взаимодействие процессов. -СПб.: Питер, 2002 - 576 с.

10. Гордеев А. В., Штепин В. А. Управление процессами в операционных системах реального времени. -Л: ЛИАП, 1988. - 76 с.

11. Астапкович А. М. Микрооперационные системы реального времени. - СПб.: Политехника, 2002. - 246 с.

12. Астапкович А. М. Микрооперационные системы (тОСРВ) для встроенных систем управления // В кн.: Информационно-управляющие системы и сети. Структуры. Моделирование. Алгоритмы. СПб.: Политехника, 1999.- С. 196-224.

13. Основы имитационного и статистического моделирования / Ю. С. Харин и др. - Минск: Дизайн ПРО, 1997. - 288 с.

ИЗДАТЕЛЬСТВО «ПОЛИТЕХНИКА» ПРЕДСТАВЛЯЕТ

Михеев В. Р., Катышев Г. И.

СИКОРСКИЙ

15ВЫ 5-7325-0564-4

Объем 618 с.

Формат 70х1001/1б Тираж 3000 экз.

Книга посвящена Игорю Ивановичу Сикорскому — великому авиаконструктору XX века, с именем которого связано становление русской авиации и создание первых в мире многомоторных воздушных кораблей «Русский витязь» и «Илья Муромец». В ней большое внимание уделено русскому периоду деятельности Сикорского, его вкладу в становление и развитие всех отраслей авиации России, опередившей по ряду направлений ведущие зарубежные страны, а также рассмотрены основные этапы его жизни и деятельности в Америке, вклад конструктора в создание первых трансконтинентальных авиалайнеров и мирового вертолетостроения. Впервые дана оценка богословского наследия Сикорского, широко освещена его роль в жизни русского зарубежья.

Книга будет интересна специалистам и широкому кругу читателей.

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