КАМЕРАЛЬНЫЕ ГЕОДЕЗИЧЕСКИЕ ИНСТРУМЕНТЫ

advertisement
621.324(07)
М545
№
МИНИСТЕРСТВО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ
ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ
ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ
ТАГАНРОГСКИЙ ГОСУДАРСТВЕННЫЙ РАДИОТЕХНИЧЕСКИЙ
УНИВЕРСИТЕТ
____________________________________________________________________
_______________
КАФЕДРА СИСТЕМНОГО АНАЛИЗА И
ТЕЛЕКОММУНИКАЦИЙ
СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИ
УЧЕБНОЕ ПОСОБИЕ
Для студентов специальности 2202
Таганрог 2004
2
УДК
Составитель А.А. Кавчук
2004.
Системы реального времени. Учебное пособие. Таганрог: Изд-во ТРТУ,
c.
Рассматриваются структурная организация систем реального времени, технические и программные средства реализации, механизмы
синхронизации и взаимодействия асинхронных процессов. Приводится
методика расчета характеристик функционирования вычислительной
системы на основе модели в виде сети систем массового обслуживания
и методика построения обобщенной временной диаграммы решения
комплекса заданных временными характеристиками задач. Затрагиваются вопросы построения промышленных сетей.
Ил. 34. Библиогр.: 11 назв.
Рецензент
3
СОДЕРЖАНИЕ
1. СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИ КАК СИСТЕМЫ ОБРАБОТКИ
ДАННЫХ И УПРАВЛЕНИЯ .......................................................................... 5
1.1. Типы систем обработки данных ...............................................................5
1.2. Системы управляющего типа ...................................................................6
1.3. Понятие масштаба реального времени ...................................................8
1.4. Режимы обработки данных .....................................................................12
2. СОСТАВ ТЕХНИЧЕСКИХ СРЕДСТВ И СТРУКТУРА СИСТЕМ
РЕАЛЬНОГО ВРЕМЕНИ ............................................................................ 14
2.1. Состав технических средств ....................................................................14
2.2. Структура систем обработки данных и управления ..........................18
2.3. Структура многомашинных вычислительных комплексов .............19
2.4. Структура многопроцессорных вычислительных комплексов .......20
2.5. Особенности организации вычислительных процессов в
многомашинных и многопроцессорных вычислительных комплексах 23
2.6. Организация связи управляющей вычислительной системы с
объектом управления ......................................................................................25
3. РАСЧЕТ ХАРАКТЕРИСТИК ФУНКЦИОНИРОВАНИЯ
ВЫЧИСЛИТЕЛЬНОЙ СИСТЕМЫ ............................................................. 32
3.1. Модели потоков данных...........................................................................32
3.2. Время ответа вычислительной системы ...............................................35
3.3. Математическая модель вычислительной системы в виде сети
систем массового обслуживания ...................................................................38
3.4. Оценка времени ответа вычислительной системы на основе
уравнений теории массового обслуживания для систем с очередями ....42
3.5. Расчет характеристик обслуживания ресурсами вычислительной
системы ..............................................................................................................43
3.6. Методика расчета времени ответа вычислительной системы .........45
3.7. Расчет характеристик систем с приоритетами ....................................47
4. ПРОГРАММНЫЕ СРЕДСТВА СИСТЕМ РЕАЛЬНОГО ВРЕМЕНИ .... 53
4.1. Общие замечания ......................................................................................53
4.2. Среда реального времени.........................................................................53
4.3. Операционные системы реального времени ........................................57
4.4. Параметры, характеризующие ОСРВ ...................................................63
4.5. Механизмы реального времени ..............................................................64
4.5.1. Межзадачное взаимодействие и синхронизация задач ......................64
4.5.2. Механизм семафоров .............................................................................67
4.5.3. Синхронизация по времени ....................................................................69
4.5.4. Планирование задач ...............................................................................71
4.5.5. Обеспечение логической корректности системы межзадачных
взаимодействий ................................................................................................78
4
4.6. Анализ выполнимости комплекса задач жесткого реального
времени .............................................................................................................. 80
4.7. Операционная система реального времени QNX ............................... 83
4.7.1. Концепция QNX ...................................................................................... 83
4.7.2. Связь между процессами ...................................................................... 85
4.7.3. Исчисление времени ............................................................................... 88
4.7.4. Диспетчеризация процессов ................................................................. 89
5. ПЛАНИРОВАНИЕ РЕШЕНИЯ ЗАДАННОГО КОМПЛЕКСА ЗАДАЧ НА
ОСНОВЕ ВРЕМЕННЫХ ДИАГРАММ ФУНКЦИОНИРОВАНИЯ
ОБЪЕКТА УПРАВЛЕНИЯ .......................................................................... 91
5.1. Связь между временной диаграммой решения задачи требованиями
к производительности вычислительной системы ..................................... 91
5.2. Статический принцип планирования решения задач с элементами
сглаживания требований к производительности ...................................... 95
6. СЕТЕВЫЕ ТЕХНОЛОГИИ В СИСТЕМАХ РЕАЛЬНОГО ВРЕМЕНИ 102
6.1. Промышленные сети.............................................................................. 102
6.2. Сетевой стандарт CAN ........................................................................... 105
6.3. Промышленная шина PROFIBUS ....................................................... 109
ЛИТЕРАТУРА ............................................................................................ 116
5
1. Системы реального времени как системы обработки
данных и управления
1.1. Типы систем обработки данных
Система обработки данных (СОД) – это совокупность технических
средств и программного обеспечения, предназначенных для информационного
обслуживания пользователей и технических объектов.
В состав технических средств СОД входит аппаратура для ввода, хранения, преобразования, вывода и передачи данных, в том числе ЭВМ, устройства
сопряжения ЭВМ с объектами, аппаратура и каналы передачи данных.
Программное обеспечение (ПО) – это совокупность программ, реализующих возложенные на систему функции. Функции СОД состоят в выполнении
требуемых операций по обработке данных: ввода, хранения, преобразования,
вывода и передачи данных. Прикладное обеспечение разделяют на общее, или
системное, и специальное, или прикладное.
Системное ПО объединяет программные компоненты, обеспечивающие
многоцелевое применение ЭВМ и мало зависящие от специфики вычислительных работ пользователей. Сюда входят программы, организующие вычислительный процесс в различных режимах работы ЭВМ, программы контроля
работоспособности ЭВМ, диагностики и локализации неисправностей, программы контроля заданий пользователей, их проверки, отладки и т.д. Системное ПО поставляется комплектно с ЭВМ.
Прикладное ПО содержит пакеты прикладных программ пользователей,
обеспечивающие специфическое применение ЭВМ. Прикладной программой
называется программный продукт, предназначенный для решения конкретной
задачи пользователя.
Совокупность технических средств и системного программного обеспечения принято называть вычислительным комплексом (ВК). Система обработки
данных, настроенная на решение задач конкретной области применения (заданного класса прикладных задач), называется вычислительной системой. Вычислительная система (ВС) включает в себя технические средства, общесистемное ПО и прикладное программное обеспечение, ориентированное на решение определённой совокупности задач.
Результаты обработки информации используются либо для получения
сведений о состоянии некоторого объекта, либо для целенаправленного изменения состояния объекта. Соответственно системы обработки данных можно
отнести либо к типу информационных систем, либо к типу управляющих систем.
Назначение информационных систем – поиск и анализ информации, потребителем которой является человек. Основу алгоритмов работы такой системы составляют программы логической обработки данных. Допустимое
6
время обработки данных определяется максимально возможным временем
ожидания. В таких системах, как правило, объем входной информации невелик, но в них присутствует большие постоянные и медленно изменяющиеся
массивы данных.
Назначение управляющих систем – целенаправленное изменение состояние объекта или управление процессом функционирования объекта. Чтобы
управлять, необходимо знать состояние объекта в заданный момент времени,
внешние воздействия на объект (воздействия окружающей среды), цель управления и какие средства воздействия на объект имеются в распоряжении системы управления.
В общем случае, при управлении сложными объектами приходится решать
также и задачи поиска информации, поэтому информационная система может
входить как составная часть в СОД управляющего типа. В этом случае используется название информационно-управляющая система.
1.2. Системы управляющего типа
В классическом варианте система управления рассматривается как система, состоящая из двух подсистем (рис.1): управляющей (субъект управления) и
управляемой (объект управления). Система управления действует в определенной окружающей среде, которая является общей для субъекта и объекта
управления. В общем случае граница между тем, что считается окружающей
средой, а что объектом управления, относительна и определяется возможностью управляющей подсистемы оказывать воздействие: на объект управления
может быть оказано управляющее воздействие, а на окружающую среду нет.
В управляющей подсистеме можно выделить (рис.1):
 подсистему идентификации состояний объекта управления и окружающей среды;
 подсистему выработки управляющих воздействий;
 подсистему реализации управляющих воздействий.
Первые две подсистемы образуют управляющий орган, последнюю подсистему называют исполнительным органом.
Управление ведется на основании обработки данных, характеризующих
состояние объекта управления (ОУ). Состояние ОУ представляется измеряемыми или контролируемыми параметрами. На рис.1 контролируемые параметры обозначены через X =(x1,x2,…,xn). В результате обработки контролируемых параметров управляющая система принимает решение по выдаче управляющих воздействий, изменяющих состояние ОУ согласно заданной цели
управления. Управляющие воздействия обозначены на рис.1 через
Y =(y1,y2,…,ym). Воздействия на объект, не зависящие от управляющей системы, называют возмущениями. Часть их измеряется - это контролируемые воз-
7
мущения
Z =(z1,z2,…,zl). Часть по разным причинам не измеряется: это некон-
тролируемые возмущения F =(f1,f2,…,fr), причем точное число неконтролируемых возмущений неизвестно.
Цель
Ресурсы
среда
Z
Подсистема
выработки
управляющих
воздействий
Подсистема
реализации
управляющих
воздействий
F
Y
Объект
управления
Подсистема
идентификации
состояний объекта
управления и
окружающей среды
X
Управляющая система
Рис. 1. Структура системы управляющего типа
Таким образом процесс управления состоит из оценки состояния объёкта
управления и окружающей среды, принятия и исполнения решения:
1) Подсистема идентификации состояний ОУ и окружающей среды
решает задачу измерения. Она по определенным внешним признакам принимает решение о принадлежности текущих измеряемых параметров к определенным классификационным категориям, т.е. к тем или иным градациям измерительных шкал.
2) Подсистема выработки управляющих воздействий анализирует
текущее состояние объекта управления и окружающей среды и принимает такие решения, которые с учетом имеющихся в распоряжении ресурсов позволяют в определенном смысле наилучшим образом достичь цели управления.
3) Подсистема реализации управляющих воздействий преобразует
принятые решения в непосредственные управляющие воздействия, соответствующие типу объекта управления.
8
Вычислительные системы по-разному используются в системах управления. Они могут работать в контуре автоматического управления или регулирования. В этом случае информация, выходящая из вычислительной системы,
непосредственно используется для управления исполнительными устройствами. В таких системах человек не участвует в процессе принятия решения по
управлению, и такие системы называют системами автоматического управления (САУ).
Вычислительная система может быть предназначена для решения задач,
необходимых человеку при управлении сложными процессами или объектами.
Такие системы управления не связаны с контурами управления, а вырабатывают информацию для уточнения или коррекции сигналов управления. Эта
информация выдается человеку (оператору) через системы отображения для
принятия решений. Системы управления, в которых человек принимает участие в процессе принятия решения, называют автоматизированными системами управления (АСУ).
В зависимости от функционального назначения системы управления задачи управления могут формулироваться по-разному. Наиболее простой задачей
является задача стабилизации управляемой величины, когда требуется с заданной точностью поддерживать постоянными те или иные управляемые величины.
Более сложной является задача программного управления, когда управляемая величина должна изменяться либо по заранее заданному закону, либо это
изменение должно соответствовать изменению некоторого измеряемого параметра, т.е. имеет место так называемая следящая система.
Во всех случаях управляющая система вычисляет и вырабатывает управляющие воздействия в соответствии с определенным законом управления, что
можно отобразить следующим функционалом:
Y(t )  (X, Z, F, t )
Для реализации сложных законов управления требуются сложные алгоритмы и программные комплексы, что является характерной особенностью
управляющих систем по сравнению с СОД информационного типа. Другое отличие систем управляющего типа заключается в наличии жестких ограничений
на время решения задач управления.
Пусть
1.3. Понятие масштаба реального времени
t i и t i 1 два последовательных момента времени, в которые изме-
рены контролируемые параметры X ( t i ) и X( t i ) и воздействия окружающей
среды Z( t i ) и Z( t i1 ) , требующие выдачи соответствующих управляющих
воздействий. За интервал времени ( t i 1  t i ) должна быть обработана вводимая измерительная информация, принято решение по управлению, выданы
управляющие сигналы, начат и закончен переходной процесс изменения со-
9
стояния объекта от исходного состояния в момент времени ti до состояния,
вычисленного в процессе принятия решения и которое объект управления достигает в момент времени t: t i  t  t i1 .
В этой последовательности действий выделим две составляющие: принятие решения управляющей системой (t пр ) и отработка принятого решения
объектом управления (время его реакции t P ).
Очевидно, что
t пр  t P  t  t i  t, t  t i 1 .
С ростом скорости изменения возмущений длина интервала t уменьшается, поскольку объект нужно опрашивать чаще. При неизменных динамических характеристиках объекта управления это приводит к уменьшению допустимого времени, отведенного для принятия решения. Это в свою очередь вызывает повышение требований к быстродействию технических средств сбора,
обработки и выдачи информации.
С точки зрения динамических характеристик СОД разных типов отметим
следующее: в СОД управляющего типа величина ∆t составляет десятки или
сотни миллисекунд. Такие малые интервалы требуют высоких скоростей обработки и исключают возможность участия человека в процессе сбора, обработки и выдачи данных, поэтому для этих целей используются автоматические
устройства.
Время реализации алгоритма (t ра ) , которое отводится управляющей системе для выполнения расчетов по программам, реализующим алгоритм
управления, в свою очередь должно быть меньше времени отведенного для
принятия решений:
t ра  t пр  t  t p .
(1)
Для систем управляющего типа время реализации алгоритма может быть
сравнимо со временем переходного процесса объекта управления (имеют один
порядок, t ра  t p ).
В СОД информационного типа величина ∆t колеблется от единиц минут
или часов до нескольких суток. Такой же порядок имеют время реакции и допустимое время для принятия решения. Поскольку алгоритмы управления в
СОД информационного типа достаточно просты, то для них характерно неравенство
t ра  t пр  t p .
(2)
Обычно в системах информационного типа сведения о большинстве параметров поступают и выдаются в заранее установленные моменты времени, задаваемые директивными сроками выдачи отчетности. Порядок решения задач
можно изменять, группировать их программы в пакеты так, чтобы обеспечить
эффективную загрузку оборудования.
Основным параметром, определяющим скорости всех процессов в системе
10
управления, является время переходного процесса в объекте управления (время реакции ОУ - tp). Оно определяет, какой масштаб времени следует выбрать
при анализе и синтезе системы. Например, для системы управления самолетом
такой единицей временной шкалы является доля секунды, для системы управления предприятием – часы, сутки.
Соотношение (1) показывает, что результаты расчета практически немедленно используются для управления, а соотношение (2) говорит о возможности значительных задержек. В первом случае управляющая система работает
как бы в том же масштабе времени, что и объект управления, т.е. в «реальном»
времени. Во втором случае эти масштабы совершенно различны: время реакции может составлять минуты, а время принятия решения часы и сутки. Понятие масштаба реального времени (РВ), характеризующее особенности функционирования управляющей системы, распространяют и на систему управления в целом.
Система называется системой реального времени (СРВ), если правильность ее функционирования зависит не только от логической корректности
вычислений, но и от времени, за которое эти вычисления производятся. То
есть для событий, происходящих в такой системе, то, когда эти события происходят, также важно, как и логическая корректность самих событий.
Говорят, что система работает в реальном времени, если ее быстродействие адекватно скорости протекания физических процессов на объектах контроля или управления. Имеются в виду именно те процессы, которые непосредственно связаны с функциями, выполняемыми конкретной системой реального времени. То есть система управления должна собрать данные, провести их обработку в соответствии с заданными алгоритмами и выдать управляющие воздействия за такой промежуток времени, который обеспечивает
успешное решение поставленных перед системой задач.
Обработка в реальном масштабе времени характерна для технических
объектов и технических систем. Системы реального времени служат для
управления поточными линиями, контроля над непрерывными процессами,
например, подачей газа по газопроводу, поддержки функционирования искусственных органов при хирургических операциях, переключения светофоров,
контроля над выполнением экспериментов, регулирования воздушного транспорта и т.п.
В режиме реального времени каждая задача инициируется либо периодически, либо при возникновении определенных ситуаций в системе. При этом
темп инициирования задач и время получения результатов решений жестко
регламентируются динамическими свойствами управляемого объекта. Это
означает, что на время решения задач управления налагаются ограничения,
определяющие предельно допустимое время ответа. Режим, при котором организация обработки данных подчиняется режиму процессов вне СОД, называется обработкой в реальном масштабе времени.
11
Особенностью работы системы в масштабе РВ является:
 проведение вычислений по программам в промежутки времени, связанные с поступлением данных и выдачей информации для управления;
 чрезвычайно малое время, отведенное для принятия решения, соизмеримое со временем переходного процесса в объекте;
 недопустимость как преждевременной выдачи управляющих сигналов,
так и их запаздывания.
Обработка в реальном масштабе времени обеспечивается за счет:
 выбора структуры СОД и быстродействия устройств в соответствии с
задачами обработки и требованиями к времени ответа;
 способов организации процессов обработки, обеспечивающих требуемое время ответа при ограниченной производительности устройств и заданной структуре СОД.
При работе системы в РВ используется либо астрономическое, либо относительное время. Системы, работающие в астрономическом времени, несколько сложнее систем, работающих с относительным временем. Это связано с
необходимостью периодически сверять астрономическое время с источником
точного времени. Учет астрономического времени нужен при решении задач
навигации, слежения за планетами и космическими объектами.
Относительное время широко используется в системах, которые управляют технологическим процессом и техническими системами. Это время отсчитывается либо с момента включения системы, либо с начала какой-либо фазы
технологического процесса.
Таким образом, система реального времени – это аппаратно-программный
комплекс, реагирующий в предсказуемые времена на непредсказуемый поток
внешних событий. Это определение означает, что:
 во-первых, система должна успевать отреагировать на события, произошедшие на объекте, в течение времени, критического для этого события. Величина критического времени для каждого события определяется
объектом и самим событием и может быть разной, но время реакции системы должно быть предсказано при создании системы. Отсутствие реакции в предсказанное время считается ошибкой для СРВ.
 во-вторых, система должна успевать реагировать на одновременно
происходящие события. Даже если два или больше внешних событий происходит одновременно, система должна успеть среагировать на
каждое из них в течение интервалов времени, критических для этих событий.
Принято различать системы «жесткого» и системы «мягкого» реального
времени.
Системой «жесткого» реального времени (СЖРВ) называется система, в
которой неспособность обеспечить реакцию на какие-то события в заданное
12
время является отказом и ведет к невозможности решения поставленной задачи.
Последствия таких отказов могут быть разные, от пролива постного масла на линии по его розливу до более крупных неприятностей, если, например,
вовремя не сработала система аварийных блокировок атомного реактора. Таким образом, СЖРВ не допускают никаких задержек реакции системы ни при
каких условиях, так как:
 результаты могут оказаться бесполезными в случае их опоздания;
 может произойти катастрофа в случае задержки реакции;
 стоимость опоздания может оказаться бесконечно большой.
Примерами СЖРВ являются системы аварийной защиты, бортовые системы управления, системы управления атомными станциями и железнодорожным транспортом.
Системы «мягкого» реального времени (СМРВ) – это те СРВ, в которых
способность реагировать в крайние сроки действительно требуется, но отказ
выполнения не приводит к отказу системы в целом. СМРВ характеризуются
тем, что задержка реакции не критична, хотя и может привести к увеличению
стоимости результатов и уменьшению производительности системы в целом.
Основные отличия между системами «жесткого» и «мягкого» РВ: СЖРВ
никогда не опоздает с реакцией на событие, СМРВ не должна опаздывать с
реакцией на событие.
1.4. Режимы обработки данных
Режим обработки данных - это способ выполнения заданий, характеризующийся порядком распределения ресурсов системы между заданиями. Режим
обработки данных обеспечивается управляющими программами операционной
системы, которые выделяют заданиям оперативную и внешнюю память,
устройства ввода-вывода, процессорное время и прочие ресурсы в соответствующем порядке с учетом атрибутов заданий: имен пользователей, приоритетов заданий, сложности задач и вычислений.
Режим обработки данных порождает соответствующий режим функционирования системы, который проявляется в порядке инициирования задач, в
предоставлении одним задачам преимущественное право на использование
ресурсов, в организации ввода данных, хранения программ и данных в оперативной памяти, вывода данных.
Порядок распределения ресурсов между заданиями влияет на время пребывания задания в системе и на производительность системы, стоимость решения задач. Выбор того или иного режима обработки данных обусловлен
необходимостью обеспечения требуемых характеристик системы и процессов
обработки. Таким образом, режим обработки данных связан с организацией
процесса функционирования системы и отражается на характеристиках системы.
13
Применительно к СОД, предназначенным для информационного обслуживания пользователей (но не технических объектов и систем), выделяют два
режима обработки данных: оперативную и пакетную обработку.
Оперативная обработка данных характеризуется малым объемом вводимых - выводимых данных и вычислений, приходящихся на одно взаимодействие пользователя с системой, высокой интенсивностью взаимодействия и
вытекающим отсюда требованием уменьшения времени ответа. Пакетная обработка данных характеризуется большим объемом вводимых - выводимых
данных и вычислений. приходящимся на одно взаимодействие пользователя с
системой, и низкой интенсивностью взаимодействия и допустимостью большого времени ответа.
В системах управления реальными объектами процесс управления сводится к решению фиксированного набора задач. Каждая задача инициируется либо периодически, либо при возникновении определенных ситуаций в системе.
При этом темп инициирования задач и время получения результатов вычислений жестко регламентируется динамическими свойствами управляемого объекта. Это означает, что на время решения задач управления налагаются ограничения, определяющие предельное допустимое время ответа. Режим, при котором организация обработки данных подчиняется темпу процессов вне СОД,
называется обработкой в реальном масштабе времени.
Обработка в реальном масштабе времени обеспечивается за счет выбора
структуры СОД, быстродействия устройств и способов организации процессов
обработки, обеспечивающих требуемое время ответа при ограниченной производительности устройств и заданной структуре СОД.
По числу одновременно обрабатываемых заданий в системе различают
однозадачные и многозадачные режимы обработки.
В общем случае процесс решения задачи сводится к последовательности
этапов процессорной обработки, ввода, вывода данных и обращении к внешним запоминающим устройствам. При этом задача в каждый момент времени
обрабатывается каким-либо одним устройством, а остальные устройства не
могут использоваться до завершения работы этого устройства, и, следовательно, могут распределяться для выполнения других задач.
Режим обработки, при котором в системе одновременно обрабатывается
несколько задач, называется многозадачным (мультипрограммной обработкой). При этом процессы обработки, относящиеся к разным задачам, одновременно выполняются разными устройствами системы, способными функционировать параллельно. В этом случае говорят, что СОД функционирует в многозадачном (мультипрограммном) режиме. Число задач, одновременно находящихся в системе, называется уровнем мультипрограммирования. Цель мультипрограммирования – увеличение производительности системы.
14
2. Состав технических средств и структура систем
реального времени
2.1. Состав технических средств
Состав технических средств определяет номенклатуру ресурсов, используемых для хранения, ввода, вывода и преобразования данных. Комплекс технических средств СОД включает (рис.2):
 средства переработки информации, предназначенные для решения задач управления объектом и для организации работы других технических
средств систем;
 средства отображения информации, предназначенные для представления информации в удобном для восприятия человеком виде;
 средства управления, предназначенные для ввода управляющих воздействий;
 средства измерения, предназначенные для восприятия информации о
контролируемых параметрах объекта управления и преобразования ее к
виду, удобному для обработки в вычислительной системе;
 исполнительные средства, предназначенные для непосредственного
воздействия на управляемые параметры объекта управления;
 средства связи, предназначенные для передачи информации между
всеми техническими средствами системы управления.
Средства измерения, которые производят сбор, передачу и предварительное преобразование поступающей на обработку информации, а также исполнительные устройства, реализующие решения системы по управлению, неотделимы от объекта управления. По этой причине они не относятся к системе
управления, а являются для неё источниками и потребителями информации
соответственно. Средства переработки информации и объект управления могут находиться на значительном расстоянии друг от друга, в этом случае необходимы средства передачи информации. Возможные пути передачи с помощью средств связи отмечены на рис.2 более жирными линиями.
15
Средств а переработки информации
Средств а отображения
информации
Средств а у прав ления
Оператор
Средств а измерения
Объект у прав ления
Исполнительные
средств а
Рис. 2. Структура комплекса технических средств
Решение задач управления осуществляется средствами переработки информации. Основными функциями средств переработки информации являются: приём информации от средств измерения непосредственно или через средства передачи данных; обмен информацией с внешними запоминающими
устройствами; выдача информации на средства отображения информации или
средства управления непосредственно или через средства передачи данных;
управление процессами обмена с средствами отображения информации, средствами управления и внешними запоминающими устройствами.
Основными элементами средств переработки информации являются процессоры, запоминающие устройства (внутренние – оперативная память (ОП) и
внешние (ВЗУ)), каналы ввода/вывода информации.
Основные характеристики процессора: быстродействие (определяется
числом операций, выполняемых в секунду), состав системы команд, точность
вычислений (количество разрядов машинного слова) и надежность.
Основные характеристики оперативной памяти: информационная емкость
(измеряется объемом информации (в битах, байтах, машинных словах), которая может одновременно храниться в ней) и быстродействие (определяется как
интервал времени, по истечении которого можно вновь обращаться к памяти
для записи или чтения).
Основные характеристики ВЗУ: информационная ёмкость, среднее время
доступа к информации по заданному адресу и скорость обмена информацией.
Обмен информацией с периферийными средствами комплекса: средствами измерения, отображения и управления, исполнительными устройствами, средства переработки информации осуществляют через специальные устройства обмена, называемые каналами ввода/вывода (КВВ).
В функции устройств обмена входит организация обращений к периферийным устройствам и формирование управляющих сигналов обмена. В системах ввода/вывода ЭВМ используются два основных способа организации
16
передачи данных между оперативной памятью и периферийными устройствами: программно-управляемая передача и прямой доступ к памяти.
Программно-управляемая передача данных осуществляется при непосредственном участии и под управлением процессора, который при этом выполняет специальную подпрограмму ввода/вывода. При программно-управляемой
передаче данных процессор на все время этой операции отвлекается от выполнения основной программы решения задач.
Прямым доступом в память называется способ обмена данными, обеспечивающий автономно от процессора установление связи и передачу данных
между ОП и периферийным устройством. Прямой доступ к памяти освобождает процессор от управления операциями ввода/вывода, позволяет осуществлять параллельно во времени выполнение процессором программы и обмен
данными между периферийным устройством и ОП, производить этот обмен со
скоростью, ограниченной только пропускной способностью ОП или периферийного устройства. Повышение предельной скорости ввода/вывода информации делает ЭВМ более приспособленной для работы в системах реального
времени.
Способ организации взаимодействия периферийного устройства с каналом
ввода/вывода определяется соотношением быстродействия ОП и периферийного устройства. В зависимости от соотношения быстродействия оперативной
памяти и быстродействия периферийного устройства в КВВ реализуются два
режима работы: монопольный и разделения времени. В соответствии с реализуемым режимом работы различают селекторные каналы ввода/вывода, взаимодействующие с периферийными устройствами в монопольном режиме, и
мультиплексные каналы, осуществляющие мультиплексирование периферийных устройств.
В автоматизированных системах управлениях в контур управления включается человек-оператор, который должен иметь возможность вмешиваться в
процесс управления. Необходимая ему для принятия решения информация
должна быть представлена в удобной для человеческого восприятия визуальной форме, ему также нужны средства для ввода управляющих воздействий в
систему. Этим целям служат средства отображения информации и средства
управления (рис. 2).
Устройства комплекса связываются между собой с помощью интерфейсов, включающих в себя совокупность линий или каналов передачи данных
(линий связи). Конфигурация связи между устройствами определяет пути передачи данных в системе и порядок доступа к устройствам и данным, хранимым в памяти.
Способ соединения основных устройств системы влияет на характеристики вычислительного комплекса: производительность, время ответа, надежность. Для систем реального времени способ соединения имеет большое значение, особенно если время обмена данными между устройствами комплекса
становится соизмеримым со временем обработки.
17
Основными способами соединения устройств (модулей М) комплекса с
возможностью обмена данными между ними являются радиальный (рис.3) и
магистральный (рис.4).
а)
M1
M2
M3
M4
Коммутатор
б)
M1
M2
Mn
Рис. 3. Радиальный способ соединения: а) каждый с каждым;
б) соединение через коммутатор
M1
M2
Mn
Рис. 4. Магистральный способ соединения
В случае радиального способа соединения два любые модуля соединяются
друг с другом отдельной линией связи (способ «каждый с каждым») либо через коммутатор. При радиальном способе на обмен данными расходуется минимальное время, но требуется большое число линий связи, и с увеличением
числа модулей усложняются схемы устройств обмена.
В случае магистрального способа соединения имеется одна линия (магистраль), последовательно соединяющая модули. Информация, передаваемая по
магистрали, состоит из двух частей: адресной и собственно информации. При
такой организации каждый модуль должен иметь устройство, анализирующее
адрес информации, передаваемой по магистрали, и принимать информацию,
соответствующую своему адресу. Одновременно обмениваться информацией
могут только два модуля, подключённых к магистрали. При магистральном
способе соединения увеличивается время передачи информации за счет времени ожидания освобождения магистрали и за счёт конфликтов, возникающих
при одновременном обращении к магистрали для передачи данных двух и более модулей.
Как в случае радиального, так и в случае магистрального соединения
устройств может быть использован один из двух методов организации обмена
данными: циклический или апериодический.
При циклическом методе обмен данными между двумя устройствами производится последовательным предоставлением им связи по магистрали или
18
через радиальный коммутатор через определенные промежутки времени. Если
обмен данными между модулями происходит по их запросам, то этот метод
называется апериодическим (или асинхронным).
Как при апериодическом, так и при циклическом методах организации
обмена данными возможны задержки обмена, зависящие от временных параметров модулей, их состава, характеристик магистрали или коммутатора. При
циклическом методе организации задержки возникают из-за того, что модуль
ждет предоставления ему цикла связи. При апериодическом методе задержка
происходит из-за невозможности одновременных передач при одновременном
обращении двух или более модулей с запросом на передачу через коммутатор
или по магистрали. Наименьшее время задержки обеспечивает радиальный
способ “каждый с каждым”, но он требует наибольшее количество аппаратуры.
2.2. Структура систем обработки данных и управления
В зависимости от требований, предъявляемых к допустимому времени обработки данных, к времени обмена данными, а также в зависимости от заданной надёжности и достоверности обработки информации структура систем обработки данных может быть различной. В настоящее время системы обработки
данных строятся на основе отдельных ЭВМ, многомашинных и многопроцессорных вычислительных комплексов. Многопроцессорные и многомашинные
вычислительные комплексы – это базовые средства для создания СОД различного назначения.
Элементы СОД могут быть распределены в пространстве (территориально), тогда для их построения используются сетевые технологии. Уже первоначальное применение СОД для управления производством, транспортом и материально-техническим снабжением показало, что эффективность системы
можно значительно повысить, если обеспечить ввод данных в систему непосредственно с мест их проявления и выдачу результатов обработки непосредственно к местам их использования. Для этого необходимо связать СОД и места ввода-вывода информации с помощью каналов связи. Системы, предназначенные для обработки информации, вводимой с помощью каналов связи,
называются системами телеобработки данных (СТОД).
Программное обеспечение СТОД содержит специальные средства, необходимые для организации взаимодействия удалённых пользователей с программами обработки данных. Такие средства называются телекоммуникационными методами доступа.
По месту расположения средств обработки данных СОД принято делить
на сосредоточенные и распределённые. С развитием электронной вычислительной техники появилась возможность размещения средств обработки в местах расположения их пользователей. Поскольку процесс обработки данных
предполагает взаимодействие их пользователей, то эти периферийные сред-
19
ства обработки связываются между собой каналами связи и тем используется
сетевая технология построения СОД. При этом возможно применение как локальных вычислительных сетей, так и глобальных сетей: всё определяется
масштабом решаемых и используемых задач.
2.3. Структура многомашинных вычислительных
комплексов
Многомашинный вычислительный комплекс – это комплекс, включающий
в себя две или более ЭВМ. Каждая ЭВМ имеет процессор, оперативную память, набор периферийных устройств, работает под управлением своей операционной системы и имеет средства обмена с другими вычислительными машинами. Связи между ЭВМ обеспечивают выполнение функций, возложенных
на комплекс.
В зависимости от требований к скорости межмашинного обмена используются различные способы связи между ЭВМ:
1)
через общее поле внешней памяти;
2)
через общее поле оперативной памяти;
3)
с помощью канала прямого управления процессорами;
4)
с помощью прямой связи между каналами ввода/вывода ЭВМ.
Первый способ связи относится к косвенным способам связи. Для обеспечения
связей между ЭВМ используются устройства управления ВЗУ с двумя или более входами. В косвенно-связных комплексах связь между ЭВМ осуществляется только на
информационном уровне. Обмен информацией осуществляется следующим образом:
каждая из ЭВМ помещает в общую внешнюю память информацию, руководствуясь
собственной программой, и соответственно другая ЭВМ принимает эту информацию,
исходя из своих потребностей. Такая организация связей обычно используется в тех
случаях, когда ставится задача повысить надежность комплекса путем резервирования
ЭВМ.
Следующие три способа относятся к прямым способам связи. Связь между
ЭВМ можно организовать через общую оперативную память. Общая ОП
включается в состав оперативной памяти каждой ЭВМ и кодируется одинаковым адресным кодом в адресной сетке каждой ЭВМ комплекса. Связь через
общую ОП также носит информационный характер, однако вследствие того,
что процессоры имеют прямой доступ к ОП, процессы обмена протекают с
существенно большей скоростью. Связь через общую ОП гораздо дороже, чем
через общее ВЗУ.
Выбор типа общей памяти зависит от числа совместно решаемых задач,
трудоемкости их решения, взаимосвязи между задачами, от необходимой емкости общей памяти и затрат на ее создание.
Непосредственная связь между процессорами – канал прямого управления
- может быть не только информационной, но и управляющей, то есть по каналу прямого управления один процессор может непосредственно управлять
действиями другого процессора. Вместе с тем передача сколько-нибудь значи-
20
тельных объемов информации по каналу прямого управления нецелесообразна, так как в этом случае решение задач прекращается: процессоры ведут обмен информацией.
Связь каналов ввода/вывода двух ЭВМ осуществляется с помощью специального устройства, называемого адаптер канал-канал (АКК). Обычно это
устройство подключается к селекторным каналам ЭВМ. Такое подключение
адаптера обеспечивает достаточно быстрый обмен информацией между ЭВМ,
при этом обмен может производиться большими массивами информации. В
отношении скорости передачи информационная связь через АКК мало уступает связи через общую ОП, а в отношении объема передаваемой информации –
связи через общее ВЗУ.
2.4. Структура многопроцессорных вычислительных
комплексов
Многопроцессорный вычислительным комплекс – это комплекс, включающий в себя два или более процессоров, имеющих общую оперативную память, общие периферийные устройства и работающих под управлением единой операционной системы.
В многопроцессорных ВК достигается более быстрый обмен информацией
между процессорами (через общую ОП), и поэтому может быть получена более высокая производительность, более быстрая реакция на события, возникающие как внутри системы, так и в ее внешней среде, и более высокие живучесть и надежность.
В многопроцессорных ВК используется модульный принцип построения.
Основными модулями являются процессор (Пр), устройства памяти (ОП) и
каналы ввода/вывода (КВВ). Существуют три наиболее распространенных типа структурной организации многопроцессорных ВК: с общей шиной (магистральный способ соединения); с коммутатором межмодульных связей; с многовходовыми модулями ОП.
В комплексах с общей шиной (рис. 5) операции обмена информацией
между функциональными модулями (процессорами, устройствами памяти и
каналами ввода/вывода) осуществляются под управлением шинных интерфейсов самих устройств. Процессор или канал ввода/вывода, прежде чем начать
передачу данных, должен проверить готовность шины и готовность устройства потребителя, проинформировать устройство потребителя о том, что ему
нужно сделать с полученными данными, а затем инициировать фактическую
передачу данных. Принимающее устройство должно быть в состоянии определить, что сообщения, передаваемые по шине, адресованы именно ему, причем
оно должно действовать в соответствии с сигналами управления, принимаемыми от передающего устройства и подтверждать получение этих сигналов.
Чтобы устройства комплекса могли обмениваться информацией, каждое из
21
них должно знать, какие еще устройства подключены к шине. Это, как правило, делается при помощи программных средств.
Пр1
Пр2
ОП1
ОП2
ВЗУ
ОП3
КВВ1
КВВ2
...
...
к устройствам ввода/вывода
Рис. 5. Многопроцессорный ВК с общей шиной
Архитектура с общей шиной позволяет легко вводить новые устройства,
подключая их непосредственно к шине. Недостатки многопроцессорных ВК с
общей шиной: невысокое быстродействие, так как одновременный обмен информацией возможен только между двумя устройствами комплекса, и низкая
надежность системы из-за наличия общего элемента – шины. Последний недостаток можно компенсировать за счет введения резервной шины. Если резервную шину сделать активной, то есть работающей одновременно с основной, то
можно не только повысить надежность, но и увеличить производительность
комплекса за счет того, что обмен информацией может осуществляться одновременно между двумя парами устройств.
Увеличение числа шин системы с общей шиной до числа устройств памяти создает многопроцессорную организацию с так называемой коммутационной матрицей (рис.6), в которой имеется самостоятельный канал для обмена с
каждым устройством памяти.
Коммутационная матрица позволяет связывать друг с другом любую пару
устройств, причем таких пар может быть сколько угодно: связи не зависят
друг от друга. Необходимо отметить, что связь между устройствами может
поддерживаться сколь угодно длительное время, так как это не мешает работе
других устройств, зато позволяет передавать любые массивы информации с
высокой скоростью, что способствует повышению производительности. Заметим, что в
многопроцессорных ВК с общей шиной занятие шины одной парой устройств на длительный отрезок времени обычно допускается лишь в крайних случаях, так как это
приводит к длительным простоям остальных устройств.
22
ОП1
ОП2
ОП3
Пр1
КВВ1
Пр2
КВВ2
Коммутационная матрица
Рис. 6. Многопроцессорный ВК с коммутационной матрицей
Недостатки организации многопроцессорных ВК с коммутационной матрицей: сложность наращивания ВК, при большом числе устройств в комплексе
коммутационная матрица становится сложной и достаточно дорого стоящей.
В многопроцессорных ВК с многовходовыми модулями ОП все, что связано с коммутацией устройств, осуществляется в модуле ОП. В этом случае
модули ОП имеют число входов, равное числу устройств, которые к ним подключаются, т.е. для каждого устройства предусматривается свой вход в модуль ОП. Структура такого ВК показана на рис.7.
Пр1
ОП1
Пр2
ОП2
КВВ1
ОП3
КВВ2
Рис. 7. Многопроцессорный ВК с многовходовыми модулями ОП
Такой способ организации сохраняет все преимущества систем с коммутационной матрицей, несколько упрощая при этом саму систему коммутации.
Для наращивания системы должны быть предусмотрены дополнительные входы в модуль ОП.
23
2.5. Особенности организации вычислительных процессов в
многомашинных и многопроцессорных вычислительных
комплексах
Организация процессов обработки данных в многомашинных и многопроцессорных ВК существенно различна.
Многомашинный ВК в наибольшей степени приспособлен для решения
потока не связанных между собой задач, т.е. такой совокупности задач, когда
исходные данные, а также окончательные или промежуточные результаты решения одной задачи не используются при решении других задач. В многомашинном ВК можно достаточно эффективно решать и слабосвязанные задачи,
т.е. задачи, при решении которых объем взаимно передаваемой информации
относительно невелик. Чем больше объем взаимно передаваемой информации,
тем в большей степени снижается производительность системы, так как часть
времени приходится расходовать на обмен информацией.
Решение одной задачи несколькими ЭВМ в составе многомашинного ВК может
быть оправданным только при наличии связи между ними через общую ОП. При этом
трудность решения определяется не столько потерями производительности из-за обмена информацией, сколько сложностью синхронизации этапов решения. По этим причинам многомашинные вычислительные комплексы в основном используются для повышения надежности и увеличения производительности при решении потока независимых или слабосвязанных задач.
Как правило, операционные системы ЭВМ многомашинных ВК сравнительно мало отличаются от операционных систем одиночных ЭВМ, работающих в мультипрограммном режиме обработки информации: просто операционная система одиночной ЭВМ дополняется компонентами, обеспечивающими выполнение функций, связанных с комплексированием. Обычно операционные системы многомашинных ВК содержат следующие дополнительные
программные модули: обеспечения обмена информацией между ЭВМ, взаимного контроля состояния ЭВМ, проведения регламентных работ, взаимодействия ВК с оператором.
Программы обмена информацией могут быть различными по сложности в
зависимости от характера межмашинных связей. Наиболее сложные программы обмена имеют место в ВК, которые предназначены для решения связанных
задач или одной общей задачи.
Многопроцессорные ВК имеют существенно большие возможности в отношении организации параллельных вычислений. Эти возможности определяются тем, что все процессоры могут работать с общей памятью, иметь в своем непосредственном распоряжении все периферийные устройства и управляться единой операционной системой. Многопроцессорные ВК способны
эффективно решать сильно-связные задачи, а также одну задачу с участием
всех процессоров. При этом, благодаря использованию общей памяти всеми
процессорами, не требуется никакой передачи информации.
24
Однако, операционные системы многопроцессорных ВК, на которые падает основная тяжесть организации вычислительных процессов, оказываются
очень сложными.
Известны три типа организации вычислительного процесса в многопроцессорном ВК: ведущий – ведомый; раздельное выполнение заданий в каждом
процессоре; симметричная, или однородная, обработка информации всеми
процессорами.
Организация работы многопроцессорного ВК по принципу «ведущий - ведомый» является наиболее простой. Один из процессоров управляет работой
всех остальных, т.е. берет на себя функции распределения задач и ресурсов,
организует необходимую передачу информации, производит переназначение
задач в случаях выхода из строя какого-либо процессора, отключение неисправных устройств и т.д.. Остальные процессоры являются исполнительными:
выполняют только функции непосредственной обработки.
К недостаткам организации по типу «ведущий-ведомый» относится малая
гибкость. При большом потоке коротких задач ведущий процессор может не
справляться с распределением задач между исполнительными процессорами,
что приводит к простоям некоторых из них. По той же причине не очень эффективно работает комплекс при решении на нескольких процессорах одной
задачи: в этом случае на ведущий процессор ложится большая работа по синхронизации процесса решения частей задачи. Многопроцессорный ВК с организацией по принципу «ведущий - ведомый» в наибольшей степени подходит
для создания специализированных систем, в которых недостатки такой организации могут быть заранее учтены и их влияние сведено к минимуму.
Значительно большей универсальностью обладает организация обработки
информации с раздельным выполнением заданий в каждом процессоре. В этом
случае все процессоры равноправны и каждый выполняет как супервизорные,
так и исполнительные функции, но процессоры не свободны в выборе задач.
Заранее распределяются и ресурсы между процессорами. Каждая задача полностью выполняется одним процессором.
В многопроцессорном ВК с раздельным выполнением заданий возникает
мало конфликтов, т.к. ресурсы распределены заранее. Однако при такой организации трудно обеспечить равномерную загрузку процессоров и других
устройств, так как практически невозможно все просчитать заранее и тем более сложно сделать это в процессе работы. Поэтому могут быть простои части
оборудования.
В наибольшей степени все преимущества многопроцессорных ВК проявляются при симметричной, или однородной, обработке. Все процессоры в этом
случае имеют максимальную самостоятельность. В комплексе не существует
предварительного распределения заданий между процессорами: каждый из
них при освобождении от решения предыдущей задачи выбирает себе новую
из общего списка (или очереди). Нет и предварительного распределения ресурсов: процессоры сами набирают их, исходя из потребностей решаемой за-
25
дачи. Все процессоры могут участвовать в решении одной задачи, если отдельные ее части включаются в общий список заданий.
При симметричной обработке на каждый процессор могут возлагаться и
общесистемные, и супервизорные, и исполнительные функции. Однако такая
организация не свободна от некоторых недостатков. Основные из них - большое число конфликтов и сложность операционной системы.
2.6. Организация связи управляющей вычислительной
системы с объектом управления
Управляющая вычислительная система (УВС) связана с объектом управления с помощью цепей связи, по которым она получает контрольную (рабочую, измерительную) информацию и выдает управляющую (командную) информацию (рис. 8).
Управляющая вычислительная система
Контрольная
информация
Управляющая
информация
Объект управления
Рис. 8. Связи УВС с ОУ
Комплекс аппаратных и программных средств, обслуживающих связь
УВС с ОУ и операторами - технологами, принято называть системой связи с
объектом (ССО). Назначение ССО состоит в сопряжении датчиковой аппаратуры и исполнительных механизмов контролируемого объекта и\или технологического процесса с вычислительными средствами системы. ССО собирает
информацию от датчиков физических параметров, характеризующих протекание управляемого процесса, направляет эту информацию в вычислительную
систему, передает рассчитанные УВС управляющие воздействия на исполнительные устройства объекта, а контрольную информацию о состоянии объекта
- на устройство отображения информации для операторов (табло, экраны дисплеев и т.п.). Устройства, участвующие в такой связи, принято называть
устройствами связи с объектом (УСО).
Структура и принципы организации ССО зависят от характера информации, поступающей от ОУ в управляющую систему, от характеристик управляемого объекта и от выдаваемой ему управляющей информации.
Измерительные датчики, установленные на ОУ, как правило, вырабатывают свои сигналы в виде изменения электрического напряжения, силы тока
или угла поворота вала, т.е. в форме непрерывного (аналогового) сигнала.
26
Подводимые к исполнительным механизмам управляющие воздействия чаще
всего так же требуют представления в непрерывной форме (электрическое
напряжение, ток, перемещение). Вычислительная система обычно оперирует с
цифровыми (двоичными) сигналами. Поэтому поступающие на ее вход аналоговые величины должны быть преобразованы в цифровую форму представления, а вырабатываемые УВС цифровые значения управляющих воздействий из цифровой формы в аналоговую.
Некоторые входные сигналы, фиксирующие состояние объектов путем замыкания или размыкания контактов (например, сигналы от конечных выключателей, фотореле и т.п.) и отдельные выходные управляющие воздействия
(например, сигналы, включающие механизмы, сигнальные транспаранты и
т.п.) имеют релейный характер - это так называемые сигналы типа ДА – НЕТ
или двухпозиционные сигналы.
Для преобразования аналоговых сигналов в цифровые сигналы в состав
ССО включается аналого-цифровые преобразователи (АЦП). Число разрядов
АЦП, с помощью которых представляются результаты измерения или состояние ОУ, выбирается равным количеству разрядов кода числа, принятого в вычислительной системе. Для преобразования выходной управляющей информации из цифровой формы в аналоговую в состав ОСС включается цифроаналоговые преобразователи (ЦАП).
В современных системах управления число датчиков и исполнительных
механизмов достигает порядка сотен, а иногда и нескольких тысяч. В целях
уменьшения объема оборудования АЦП и ЦАП выполняются многоканальными, для чего используются коммутаторы аналоговых и цифровых сигналов.
На рис.9 представлена общая структура комплекса технических средств
УВС и ССО.
Средства, при помощи которых организуется поток измерительной информации, разделены на две группы соответственно для передачи аналоговых
сигналов и двухпозиционных или цифровых сигналов от датчиков ОУ. В
первую группу входят коммутатор аналоговых сигналов и АЦП, во вторую коммутатор цифровых сигналов и устройство приема цифровой информации.
Формирование и передача от УВС управляющих воздействий в виде двухпозиционных, цифровых и аналоговых сигналов к исполнительным устройствам ОУ осуществляется с помощью коммутаторов цифровых сигналов и
ЦАП.
Обмен информацией между отдельными устройствами происходит через
интерфейсы (схемы сопряжения). Через интерфейсы передается информация и
команды, которыми обмениваются отдельные устройства во время работы.
Структурой предусмотрено два интерфейса УВС: внутренний интерфейс, обслуживающий процессор (интерфейс процессора - П), и внешний интерфейс
(интерфейс В), предназначенный для обслуживания устройств ввода/вывода.
Через интерфейс П производится обмен информацией между процессором, оперативной памятью и каналом ввода/вывода. К интерфейсу В подсо-
27
единяются все устройства связи с объектом. Прием в УВС информации от
датчиков и вывод информации из УВС на исполнительные устройства проходят через канал ввода/вывода УВС. Управление работой интерфейса В осуществляет канал ввода/вывода.
Особое место занимают блок внешних прерываний процессора и устройство текущего времени (электронные часы), формирующие сигналы для организации различных циклов обработки информации и управления объектом.
Эти устройства подсоединены непосредственно к интерфейсу П.
Пульт оператора связан с УВС и ОУ техническими средствами приема и
выдачи информации.
Связь вычислительной системы с ОУ может быть организована с использованием двух принципов: синхронного и асинхронного.
Процессор
Оперативная память
Интерфейс П
Блок внешних
прерываний
Канал вводавывода
Устройство
текущего времени
Интерфейс В
Аналогоцифровой
преобразователь
Устройство
приема цифровых
сигналов
Коммутатор
цифровых
сигналов
Пульт
оператора
...
Коммутатор
аналоговых
сигналов
Коммутатор
цифровых
сигналов
...
...
...
Цифроаналоговый
преобразователь
...
...
Датчики
ОУ
Исполнительные
механизмы
Рис. 9 Комплекс технических средств УВС и ССО
28
При использовании синхронного принципа связи процесс управления разделяют на циклы тактирующими сигналами. Цикл начинается с приходом тактирующего сигнала на устройство прерывания, после чего производятся последовательный опрос датчиков и преобразование их сигналов в цифровой
код. Время, затрачиваемое на преобразование и ввод измерительной информации в запоминающие устройства УВС, как правило, значительно меньше периода колебаний в управляемом процессе. Поэтому можно считать, что вся
измерительная информация вводится практически одновременно. После того,
как вся измерительная информация передана в УВС, последняя в течение некоторого времени производит обработку поступивших данных и расчет необходимых управляющих величин. Затем, если необходимо, выполняется преобразование управляющих воздействий в аналоговую форму, после чего вычислительная система либо останавливается до следующего тактирующего сигнала, либо переходит к выполнению вспомогательных расчетов, которые могут
прерываться тактирующими сигналами. Полученные в начале цикла управления величины управляющих воздействий сохраняются неизменными на протяжении данного цикла управления.
При синхронном принципе связи моменты приема и выдачи информации
задает УВС. Синхронизация всех процессов, связанных с переработкой и моментами обмена информацией, производится вычислительной системой, хотя
частота приема и выдачи информации может определяться характеристиками
объекта управления.
В случае использования асинхронного принципа связи вместо тактирующих сигналов электронных часов на устройство прерывания поступает сигнал
от датчиков прерывания, непосредственно связанных с ОУ (например, датчиков аварийного состояния, конечных выключателей, датчиков обрыва полосы
и т.п.). Каждый поступающий сигнал прерывания эквивалентен требованию о
прекращении производимых вычислений и переходе к выполнению программы, соответствующей данному сигналу прерывания. Вычислительная система
реагирует на сигнал прерывания с учетом права приоритета одних сигналов
прерывания над другими.
В ряде систем используют оба принципа связи УВС с ОУ: наряду с электронными часами, дающими тактирующие сигналы, применяют связанные с
объектом датчики прерывания, например, датчики аварийных сигналов, переводящие вычислительную систему на работу по программам для аварийного
режима.
Упрощенная структурная схема комплекса технических средств (рис. 9) не
отражает в полной мере всей сложности структуры ССО в реальных системах
управления. Структура ССО зависит от того, какие функции выполняет УВС,
от алгоритмов управления, от характера информационных связей внутри ОУ,
от требований к точности и скорости выполнения операций обмена информацией между УВС и ОУ, от типа используемых технических средств - датчиков, исполнительных механизмов.
29
ССО могут использовать централизованные или децентрализованные преобразования сигналов, одноступенчатую или многоступенчатую коммутацию.
Устройства преобразования сигналов могут быть индивидуальными для
каждого канала измерения или управления или групповыми для нескольких
каналов, что достигается использованием коммутаторов. Так как при использовании преобразователя на выходе коммутатора преобразование сигналов для
всех каналов выполняется последовательно во времени этим преобразователем, то скорость передачи информации в потоке определяется пропускной
способностью преобразователя.
Преобразователи и коммутаторы могут быть выполнены как центральные
модули, т.е. располагаться вблизи УВС и соединяться кабельными линиями
связи с источниками и приемниками информации (датчиками и исполнительными механизмами) или как периферийные устройства, т.е. располагаться на
ОУ и связываться кабельными линиями связи с УВС.
Если для передачи аналоговых сигналов от всех датчиков использовать
только один центральный коммутатор, то система связи получится многопроводной с очень большим числом линий связи. Для сокращения линий связи
между УВС и ОУ используют периферийные коммутаторы от отдельных
групп датчиков. Выходные сигналы этих периферийных коммутаторов передаются на центральный коммутатор, т.е. выполняется двухступенчатая коммутация. Это приводит к некоторому увеличению аппаратуры и снижению скорости передачи сигналов, но при этом существенно упрощаются кабельные
связи и сокращается число входных каналов центрального коммутатора.
Индивидуальные преобразователи могут быть выполнены в виде периферийных устройств, а коммутатор - в виде центрального модуля УВС. Такая
схема обеспечивает высокие скорости передачи информации за счет совмещения во времени операций преобразования для всех каналов, но это приводит к
значительному увеличению аппаратуры.
Объем управляющей информации, передаваемой из УВС на входы исполнительных устройств, обычно значительно меньше, чем объем информации о
состояние ОУ. Для организации каналов передачи управляющей информации
используются средства запоминания информации и средства формирования
управляющих воздействии такого вида и формы, которые могут быть восприняты входными цепями исполнительных устройств. Необходимость применения запоминающих устройств обуславливается тем, что для управления исполнительными устройствами требуются управляющие воздействия с длительностью, значительно превышающей длительность сигналов командной
информации, вырабатываемых УВС.
В зависимости от места расположения этих средств (в УВС или на исполнительных устройствах) в ССО для передачи командной информации используют различные сигналы. Все разнообразие структурных схем передачи этих
сигналов можно свести к схемам двух типов осуществляющим запоминание
сигналов в аналоговой или цифровой форме.
30
В схеме первого типа производится коммутация и запоминание аналоговых сигналов (рис. 10а). Схема содержит ЦАП и коммутатор, распределяющий последовательно во времени по запоминающим элементам аналоговые
сигналы управления. Все эти устройства выполнены как центральные модули.
Реализация такой схемы требует сложных элементов запоминания аналоговых
сигналов.
Наибольшее распространение получили схемы с коммутаторами, распределяющими цифровые коды по дискретным запоминающим элементам (рис.
10б). На выходе этих элементов установлены индивидуальные цифроаналоговые преобразователи, преобразующие коды в аналоговые управляющие сигналы. Такая же структурная схема используется при передаче двухпозиционных и цифровых сигналов управления, в этом случае отсутствуют преобразователи в аналоговую форму. В схемах второго типа запоминающие
устройства и ЦАП могут быть выполнены как периферийные устройства.
а)
ЦАП
Выходной
коммутатор
аналоговых
сигналов
ЗУ
линии связи
ЗУ
линии связи
Выходной
коммутатор
цифровых
сигналов
ИМ
.
.
.
ЗУ
б)
ИМ
ЗУ
ЦАП
ЗУ
ЦАП
.
.
.
.
.
.
ЗУ
ЦАП
линии связи
линии связи
линии связи
линии связи
ИМ
ИМ
ИМ
ИМ
Рис. 10. Схемы передачи сигналов управляющей информации
Характерной чертой ССО является использование радиальных каналов
для передачи как сигналов от датчиков в УВС, так и командной информации
от УВС на исполнительные устройства объекта.
Программное обеспечение УВС должно содержать специальные програм-
31
мы, обеспечивающие ввод и обработку измерительной информации. После
ввода измерительной информации, как правило, требуется выполнить ряд операций по масштабированию и представлению полученной информации в единицах, соответствующих физическому смыслу данного параметра. Затем информация о параметре сравнивается с уставкой, которая считывается из ячеек
запоминающего устройства УВС.
В зависимости от результата сравнения УВС переходит либо к приему
данных, характеризующих другие параметры объекта, либо к обработке информации в соответствии с технологическим алгоритмом работы системы. После обработки может быть изменена уставка для данного параметра, которая
записывается в запоминающее устройство УВС. Выполнение этих программ
координирует программа-диспетчер. Операции по вводу и предварительной
обработке измерительной информации требуют затрат процессорного времени
и в общем случае приводят к передаче больших объемов повторяющихся данных. Последнее имеет место во всех случаях, когда к очередному циклу приема сигналов не произошло изменения величин параметров, контролируемых
датчиками. В то же время для исключения потерь информации об изменениях
параметров необходимо обеспечивать высокую частоту повторения циклов
приема информации в УВС. Увеличение частоты повторения циклов приема
информации требует повышения скорости выполнения операций коммутации,
преобразования и передачи сигналов по линиям связи. В связи с этим централизация функций по приему и обработке сигналов позволяет относительно
просто реализовать ввод информации в УВС от объекта, имеющего сравнительно небольшое число датчиков медленно изменяющихся параметров.
Увеличение числа датчиков и возрастание скорости изменения контролируемых параметров требует принятия дополнительных мер. В целях разгрузки
процессора УВС от выполнения часто повторяющихся операций ввода, масштабирования и сравнения с установкой в состав УВС вводят специальные
блоки предварительной обработки информации, однако эти блоки не изменяют
числа операций передачи, коммутации и преобразования сигналов, выполняемых в ССО.
Уменьшение числа выполняемых в ССО операций достигается за счет
усложнения программы-диспетчера УВС и создания специальных программ,
которые обеспечивают адаптивные алгоритмы функционирования системы
приема информации в УВС. Для этого в программах используют информацию
от датчиков, появление сигналов в которых характеризует изменение информации в определенной группе датчиков на объекте. Для этого же используют
анализ известных зависимостей между параметрами технологического процесса, а также расчет значений параметров по экстраполирующим формулам.
Сигналы, характеризующие изменение каких-либо параметров объекта, воздействуют через системы внешнего и программного прерывания на программу-диспетчер, которая реализует прием информации в УВС только от датчиков, изменивших свое состояние. Таким образом, в этом режиме работы си-
32
стема имеет нерегулярную последовательность выполнения программ с совершенно произвольными переходами от одной из них к другой, при этом система приема в УВС измерительной информации как бы приспосабливается к
условиям работы объекта и реагирует на изменение его состояния. Однако для
реализации в УВС адаптивных режимов приема информации требуется сложное специальное программное обеспечение.
Применение средств, обеспечивающих адаптивные алгоритмы функционирования и децентрализованную обработку информации, позволяет существенно уменьшить потоки информации и разгрузить процессор УВС от выполнения операций по организации информационных потоков в ССО.
3. Расчет характеристик функционирования
вы-
числительной системы
3.1. Модели потоков данных
Основные требования к системе реального времени определяются тем, что
она должна обработать определенный объем информации в течение заданного
ограниченного периода времени. Сведения об объеме перерабатываемой информации могут быть получены в результате анализа алгоритмов решаемых
задач с учетом особенностей используемых технических средств. Временные
ограничения задаются характеристиками динамики объекта управления и также учитывают особенности технических средств.
Некоторые оценки функционирования СРВ можно получить в результате
аналитических исследований. Для этого необходимо иметь математические
модели сигналов, несущих информацию о контролируемых параметрах, алгоритмы решаемых задач и математические модели структур систем обработки
данных. На начальных этапах проектирования из-за отсутствия необходимых
сведений в достаточном объеме модели имеют приближенный характер, и
аналитические результаты используются только как ориентировочные оценки.
Материальным носителем информации является сигнал. Все сигналы
независимо от их физической природы можно разделить на детерминированные и случайные. Детерминированным называется сигнал, значения которого
в любые моменты времени являются известными величинами. Если значения
сигнала в любые моменты времени должны рассматриваться как случайные
величины, то сигнал является случайным.
Полностью известный сигнал не несет информации, и все сигналы в СОД
по разным причинам являются в определенной степени случайными. Поэтому
в общем случае под детерминированным сигналом понимается сигнал, для которого полностью определен закон его изменения, но параметры могут быть
неизвестными. При рассмотрении случайных сигналов подразумевается, что
известны их некоторые статистические характеристики, которые описываются
с помощью аппарата теории вероятностей.
33
И детерминированные, и случайные сигналы могут быть непрерывными
или дискретными в зависимости от характера их представления. Непрерывным
называется сигнал, который задан в каждой точке интервала определения.
Дискретным называется сигнал, рассматриваемый только при фиксированных
значениях аргументов.
Если преобразование сигналов осуществляется устройствами аналогового
типа, то сигналы представляются в виде непрерывно изменяющихся токов или
напряжений. Такие сигналы называются аналоговыми. Для обработки на цифровых ЭВМ аналоговые сигналы подвергают дискретизации по времени, квантованию по уровню, а уровни квантования кодируют в двоичном коде. Полученный таким путем сигнал называется цифровым.
По цепям связи могут передаваться одиночные сигналы (одноразрядные
коды, или двухпозиционные сигналы, например, о включении или выключении устройства, о переключении режимов работы и т.п.); одиночные слова
(одиночные коды определенной разрядности, фиксированной для данного технического средства или ВК в целом), которые могут представлять команды
или данные; массивы слов (совокупность кодов определенной разрядности),
которые обычно представляют собой данные. В тех случаях, когда не имеет
значения, что именно передается (сигналы, слова, массивы), употребляется
термин «сообщение». Сообщение характеризуется длиной - количеством разрядов или слов.
Совокупность сигналов в процессе их движения в пространстве и во времени от источника к потребителю называют потоком информации. Чтобы задать поток, надо задать его количественные, качественные и временные характеристики. К ним относятся направление потока, величина потока, структурный состав информации, вид передаваемых сигналов.
Совокупность информационных потоков можно разделить на три группы:
входящие, выходящие и внутренние. Источником входящего потока служат
средства измерения (см. рис.2, рис.9). Выходящий поток составляют сигналы,
поступающие c выхода УВС на исполнительные средства и в другие управляющие системы (от средств управления и переработки информации). Внутренние потоки образуются при обмене информацией между устройствами, входящими в состав ВК.
По своему характеру потоки, как и сигналы, могут быть детерминированными и случайными. Можно различать следующие случаи: абсолютно детерминированный поток, когда известны моменты передачи сообщений и значение передаваемых в эти моменты сигналов (пример - сигналы точного времени); детерминированный поток, когда известны лишь моменты передачи сообщений (пример - сбор информации в режиме циклического опроса средств
измерения); случайный поток, когда значение сигнала известно заранее, а моменты его поступления не заданы (пример - сигнал о превышении некоторой
величиной заданного уровня); абсолютно случайный поток, когда значение
34
сигнала и момент его поступления заранее не могут быть определены (пример
- сигнал о выходе из строя аппаратуры).
Количественные и временные характеристики потоков проще всего задаются для абсолютно детерминированных потоков. В них промежутки времени
между сообщениями являются неслучайными величинами, задаваемыми либо
перечислением моментов поступления t 1 , t 2 ..., либо заданием функциональной зависимости для
t j . В простейшем случае регулярного потока
( t i1  t i  t j1  t j  t для любых i, j ) для его описания достаточно знать
интенсивность потока, т.е. частоту следования отдельных сообщений   1 t
и длину сообщения l в выбранной системе единиц (биты, байты, слова). Характеристикой потока может служить средняя скорость C  l . В случае нерегулярного потока при расчетах следует пользоваться максимальной оценкой
C max  l t min , где t min  min(t i1  t i ) .
i
Детерминированный поток с известной длиной сообщения характеризуется теми же параметрами. Если длина сообщения l величина случайная
(например, неизвестно число слов в массиве), наиболее полной характеристикой является интегральный закон распределения F(l) . Чаще удается указать
только его моменты, обычно математическое ожидание Ml и дисперсию
Dl . На начальных этапах проектирования системы рекомендуется вести расчет по максимальной длине сообщения l max , т.е. определять максимальную
оценку средней скорости
C max  l max / t min .
Случайные потоки описываются функцией плотности распределения промежутков между поступлениями сообщений f (t ) . Моделями таких потоков
являются:
1) стационарный поток с ограниченным последействием и равномерным
распределением переменной t на отрезке 0, T :
f (t )  1 / T,0  t  T .
2) простейший поток
f (t )   exp( t ).
(3)
Математическое ожидание длин интервалов времени между последовательными моментами поступления сообщений:
35

Mt   tf (t )d(t ),

0
равно соответственно:
1) Mt   T / 2 ; 2) Mt   1 /  .
Вероятность появления таких коротких интервалов между двумя последовательными сообщениями, длина которых меньше Mt  , для простейшего
потока равна:
Pt  Mt  
1/ 
  exp( t)d(t)  1  1 / e  0,63 .
0
Это значит, что при простейшем потоке короткие интервалы более часты,
чем длинные. Простейший поток задает более тяжелый режим работы, чем
другие модели потоков.
Для простейшего потока число сообщений, поступающих в систему за
единицу времени, распределено по закону Пуассона:
k 
(4)
e ,   0,
k
где P(k) - вероятность того, что в единицу времени в систему поступит точно
k сообщений.
Математическое ожидание и дисперсия распределения Пуассона
P( k ) 
Mk  

 kP (k) ;
 
Dk   M k 2  (Mk ) 2   .
k 1
Распределение Пуассона (4) дискретно, тогда как распределение (3) интервалов t - непрерывно.
3.2. Время ответа вычислительной системы
Наиболее важной характеристикой для системы реального времени является время ответа. Требуемое время ответа определяет основные методы организации систем и выбор оборудования.
Время ответа - это длительность промежутка времени от момента поступления в систему запроса на выполнение задания до момента вывода из системы результатов выполнения данного задания.
Обычно задания поступают на обработку в случайные моменты времени.
Время пребывания заданий в системе зависит от состава смеси (числа и характеристик) заданий, одновременно обрабатываемых системой. В общем случае
время ответа величина случайная, что обусловлено следующими факторами:
 влиянием исходных данных на число операций ввода, обработки и вы-
36
вода данных и непредсказуемостью значений исходных данных;
влиянием состава смеси задач, одновременно находящихся в системе, и
непредсказуемостью состава смеси из-за случайности моментов поступления задач на обработку в систему.
Время ответа как случайная величина наиболее полно характеризируется
функцией распределения F(u<T) или функцией плотности вероятностей f(u).
Чаще всего время ответа оценивается средним значением, которое определяет
ся как статистическое среднее случайной величины Ui,
U
i  1, n :
n
 Ui ,
1
n
i 1
и среднеквадратичным отклонением:
u 
1
n 1
n
 Ui  U 2 .
i 1
В общем случае время ответа складывается из двух составляющих: времени выполнения задания и времени ожидания. Время выполнения при отсутствии параллельных процессов равно суммарной длительности всех этапов
процесса обработки: ввода, обращения к внешней памяти, процессорной обработки и вывода. Время выполнения задания зависит от сложности вычислений
(числа операций Qi для обработки задания i-ым устройством) и быстродействия Vi i-го устройства:
n
U вып 
 Vii 
Q
i 1
где n – число устройств принимающих участие в обработке задания
Время ожидания – это сумма промежутков времени, в течение которых задание находилось в состоянии ожидания требуемых ресурсов. Ожидания возникают при мультипрограммной обработке, когда ресурс, необходимый данному заданию, занят другим заданием и первое задание не выполняется, ожидая освобождения ресурса.
Время ожидания зависит от режима обработки задач и интенсивности
входного потока. Зависимость среднего времени ответа от интенсивности  вх
входного потока заданий представлена на рис.11. Здесь же представлена зависимость производительности системы, определяемой как интенсивность  вых
выходного потока заданий.
Если  вх  0 , то время ответа определяется только временем выполнения. С увеличением интенсивности входного потока время ответа возрастает
за счет увеличения времени ожидания U ож . При  вх  *вх система из-за
37
ограниченности ресурсов не может обработать все поступившие задания, при
этом время ответа может принимать сколь угодно большое значение. Среднее
время ответа характеризует быстроту реакции системы на входные воздействия. Качество системы тем выше, чем меньше среднее время ответа.
Рис. 11. Влияние интенсивности входного потока заданий на
время ответа и производительность системы
Влияние уровня мультипрограммирования (М) на время ответа и производительность системы представлено на рис.12. При изучении этих зависимостей удобно кривые U (М) и  вых (М) представлять ломаными линиями, состоящими из двух прямых - асимптот и характеризующими верхнюю и нижнюю оценку U (М) и  вых (М) соответственно.
U
вых
U
в ых
1
U1
М*
М
Рис. 12. Зависимость времени ответа и производительности системы
от уровня мультипрограммирования
38
В однопрограммном режиме (М=1) среднее время ответа U1  U вып , при
1
этом интенсивность выходного потока 1 
. С увеличением уровня мульU1
типрограммирования увеличивается вероятность того, что большее число
устройств одновременно заняты выполнением заданий, но вместе с тем вероятность того, что несколько задач одновременно обращаются к одному
устройству, достаточно мала, и время ожидания оказывается незначительным.
Однако при М=М* возникает ситуация, когда по крайней мере одно из
устройств оказывается полностью загруженным. Дальнейшее увеличение числа задач не приводит к росту производительности, при этом начинает резко
возрастать время ответа, т.к. все большее число заданий ожидают момента
освобождения устройств.
Значение М* называется точкой насыщения мультипрограммной смеси и
зависит в первую очередь от числа устройств, которые в составе системы могут функционировать параллельно. Кроме того, на значение М* существенно
влияют свойства задач. Если задачи преимущественно используют одно
устройство, то значение М* невелико и может быть равным единице. Если задачи загружают все устройства, то значение М* определяется числом
устройств в системе.
3.3. Математическая модель вычислительной системы
в виде сети систем массового обслуживания
При анализе и синтезе любых систем возникает задача построения модели,
описывающей функционирование системы на языке математики, т.е. математической модели. Математическая модель представляет собой некоторое аналитическое выражение (или систему выражений), связывающее входные, выходные параметры и параметры, определяющие состояние системы, и позволяющее рассчитать основные характеристики системы. Для систем реального
времени такой характеристикой является время ответа.
Наиболее целесообразным математическим аппаратом для расчета времени ответа вычислительной системы является теория массового обслуживания.
Применение теории массового обслуживания для анализа и исследования вычислительных систем основано на том, что в вычислительном комплексе естественным образом выделяются ресурсы (устройства обработки информации,
устройства хранения информации, устройства обмена информацией), которые
представляют собой системы массового обслуживания (СМО). Программы
или их части интерпретируются как требования (или заявки), которые циркулируют между СМО и обслуживаются в них.
Выделим в вычислительной системе следующие ресурсы, которые будем
рассматривать как СМО:
39

центральный процессор вместе с оперативной памятью (ЦП-ОП, ресурс S3 );
 ВЗУ для хранения данных, с которыми работают задачи (ресурс S1 );


ВЗУ для хранения программ решаемых задач (ресурс S2 );
устройства ввода/вывода (УВВ), являющиеся источниками запросов на
решение задач и получателями результатов решения (ресурс S4 ).
Взаимосвязи между СМО, моделирующими работу ВК, предоставлены на
рис.13. Ресурсы могут быть одноканальными или многоканальными.
ЦП - ОП
очередь
ВЗУ
.
.
.
очередь
ЦП - ОП
S3
ВЗУ
S1
УВВ
ВЗУ
.
.
.
S4
.
.
.
УВВ
очередь
S2
.
.
.
ВЗУ
Рис. 13. Модель ВК в виде сети СМО
Пусть с УВВ поступает запрос на решение некоторой задачи. Запросы поступают в очередь к процессору (к ресурсу S3 ) на обслуживание. Если подошла очередь, а программа решения задачи отсутствует в оперативной памяти,
то, прежде чем начать решение, ее необходимо переписать из внешней памяти
в оперативную, т.е. обратиться к ресурсу S2 . Если в процессе решения задачи
потребовался ввод (или вывод) данных из внешней памяти, то происходит обращение к ресурсу S1 .
Наиболее широко распространенным алгоритмом планирования вычислений при мультипрограммной обработке является циклический. Согласно этому
алгоритму задачи обслуживаются ЦП каждая в течение одинакового интервала времени, называемого квантом. Если задача выполнена в течение этого
кванта времени, то результаты ее решения поступают на УВВ, в противном
случае незаконченная задача ставится в конец имеющейся очереди к процессору. При недостаточном объеме ОП программа решения задачи может быть
40
удалена из ОП, и в этом случае, когда вновь подойдет очередь для решения
данной задачи, придется вновь переписывать программу из ВЗУ в ОП.
Для СРВ характерным является то, что поступающие на обработку потоки
задач разнородны по срочности и длительности решения. Чтобы упорядочить
работу в такой ситуации, вводят систему приоритетов в обслуживании различных задач. В системах с приоритетами при неизменных параметрах производительности ресурсов и той же интенсивности входящих потоков добиваются
улучшения характеристик обслуживания (времени ожидания в очереди, вероятности отказа в обслуживании) задач высших приоритетов за счет ухудшения
характеристик обслуживания задач более низких приоритетов.
Системы обработки данных, для которых интенсивность входящего потока запросов не зависит от числа запросов, уже находящихся на обслуживании,
представляются в виде разомкнутых стохастических сетей СМО. Модель ВК в
виде разомкнутой сети СМО представлена на рис.14. Входной поток заявок от
УВВ (ресурс S4 ) с интенсивностью    4 направляется на обработку в ВС,
представленную ресурсами S1 , S2 и S3 , выходной поток результатов решения возвращается к УВВ.
  4
от S 4
очередь
3
S3
2
S2
очередь
1
S1
P33
P34
очередь
к S4
P32
P31
Рис. 14. Модель ВК в виде разомкнутой стохастической сети СМО
Матрица переходных вероятностей P ji , данной сети СМО имеет вид:
0
P
P ji  34
0
0
1
0
0
P33
1
P32
0
P31
.
0
1
0
0
Если через i , i  1,3 , обозначить суммарную интенсивность потока запросов на входе i -го ресурса, при этом  4 - интенсивность потока запросов от
ресурса S4 , то данной матрице соответствует система уравнений:
41
 1   3 P31;

 2   3 P32 ;

 3   1   2   3 P33   4 .
(5)
Решение данной системы уравнений приводит к значениям коэффициентов передачи ресурсов  i   i /  4, i  1,3 :
1 
P31
;
P34
2 
P32
;
P34
3 
1
.
P34
(6)
Для расчета переходных вероятностей P3 j , j  1,4 , воспользуемся простейшими формулами случайных событий. При этом необходимо знать:
 сколько раз задача обращается к ресурсу S1 за данными;
 сколько раз за время однократного решения программа удаляется из
оперативной памяти;
 сколько квантов процессора тратится на решение задачи (если процесс
квантован).
Сделаем следующие допущения:
 чтобы начать решение задачи, программу нужно переписать из ресурса
S2 в оперативную память, в процессе решения перезапись не потребуется;
 процесс решения не квантован (P33  0) .
На основании исследования алгоритмов решения задач выясняется, сколько раз в среднем задача обращается за данными к ресурсу S1 . Если обозначить
число таких обращений через D , то значения переходных вероятностей можно определить по частости событий следующим образом:
1
D
1
P34 
(7)
P31 
P32 
D  2.
D  2;
D  2;
В таком случае значения коэффициентов передачи и интенсивностей потока заявок на входе i -ой СМО будут соответственно равны:
(8)
1  D;  2  1;  3  D  2.
1  D;  2  ;  3  (D  2).
(9)
42
3.4. Оценка времени ответа вычислительной системы на
основе уравнений теории массового обслуживания
для систем с очередями
Общее время ответа определяется суммарным временем пребывания запроса во всех ресурсах системы:
3
Tотв 
 t ni
(10)
i 1
где t ni , - время пребывания запроса в i -ом ресурсе, i  1,3 .
Примем следующие допущения:
 поток запросов является простейшим (пуассоновским (4));
 длительности обслуживания запросов в каждой из СМО распределены
по экспоненциальному закону (3);
 приборы обслуживания в многоканальном ресурсе одинаковы по длительности обслуживания и могут обслужить любой запрос к ресурсу.
На основании теории массового обслуживания и теории вычислительных
систем время пребывания запроса в i -ом ресурсе определяется в общем случае по формуле:
 (k ) k i 1 ( ) k i  
i
0i ,
t ni   i i 1  i
(11)

(k i )! (1 - i ) 2 

где i - коэффициент передачи i -ого ресурса.  i , - интенсивность потока запросов на входе i-го ресурса, i - время обслуживания заявки в i-ом ресурсе
при однократном к нему обращении, k i - число каналов обслуживания в i -ом
ресурсе,  i - загрузка i -ого ресурса, 0i - вероятность отсутствия в i -ом ресурсе запросов на решение задачи, при этом

i  i i
ki
,
ki 1
 (  ) k i
( i i ) j 
 0i   i i

 k i !(1  i )
j! 
j0


1

В случае одноканального ресурса ( k i  1 ) формулы упрощаются:

i   i i ; 0i  1  i ; t ni  i i .
1  i
Вместо времени обслуживания
i
часто используют обратную этой вели-
чине характеристику, называемую интенсивностью обслуживания: i  1 / i .
В этом случае для одноканального ресурса
43
t ni 
i
.
i  i 
(12)
Если все три ресурса одноканальные, то на основании соотношений (8) и
(12)
t ni 
D
D2
1
; t ni 
; t ni 
.
1  D
3  (D  2)
2  
(13)
Среднее время ответа ВС определяется суммой t ni , i  1,3 :
D
1
D2
Tотв 


.
1  D  2   3  (D  2)
(14)
Если имеется одно ВЗУ, где хранятся и данные и программы, или все ВЗУ
подключены к одному каналу ввода/вывода, вычислительная система представляется двумя ресурсами: S*2 и S3 . В этом случае коэффициент передачи
 2*
ресурса
S*2
определяется
суммой
1
коэффициентов
*  1   2  D  1, а интенсивность обслуживания ресурсом
как средневзвешенное значений 1 и  2 с весами, равными
и
2 :
S*2 вычисляется
коэффициентам
передачи ресурсов S1 и S2 соответственно:
    2 2 D1   2
*2  1 1

.
1   2
D 1
Тогда время пребывания во втором ресурсе определится как
D 1
t *n 2  *
,
 2  (D  1)
среднее время ответа вычислительной системы как
D 1
D2
Tотв  t *n 2  t n 3  *

.


 2  (D  1)
3 (D  2)
3.5. Расчет характеристик обслуживания ресурсами
вычислительной системы
Для расчета времени ответа ВС необходимо знать время или интенсивность обслуживания ресурсами системы.
Если тип процессора выбран, то известно его быстродействие Vпр . Согласно рассмотренной модели в процессе решения задача поступает на обслуживание в процессор  3 раз. Полное процессорное время решения задачи
44
определяется числом требуемых машинных операций. Если через Qпр обозначить среднее число процессорных операций, приходящихся на одну задачу,
то
время обслуживания при однократном обращении к процессору
3  Q пр /( 3Vпр ).
На практике необходимо учитывать затраты процессорного времени на
системные прерывания. Для учета этих затрат вводят коэффициент системного
времени k c , значение которого зависит от технических характеристик ЭВМ
(времени, затрачиваемого на прерывания процессора по вводу/выводу информации, по вызову супервизора, по таймеру). Учет коэффициента k c приводит
к расчету времени обслуживания процессором по формуле:
Qпр
(15)
3 
.
Vпр3 (1  k c )
Значения коэффициента k c лежат в пределах 0,1  0,2.
Для дисковой памяти процесс обращения к некоторой записи на диске
сводится к выполнению трех последовательных операций: установке головок
чтения/записи на нужный цилиндр (время установки TУ ), поиску записи на
дорожке (задержка вращения Tз ) и передачи данных (время передачи Tпер ).
Для расчета среднего времени установки можно воспользоваться формулой:
Tу  Tуmin  (Tуmax  Tуmin ) / 3, ,
- соответственно минимальное и максимальное время
где Tу min и Tу max
установки (справочные данные)
Среднее время поиска записи на дорожке определяется как Tз   / 2, , где
 - период оборота диска.
Среднее время передачи данных рассчитывается как
b
Tпер 
,
Q дор
где b - длина запрашиваемой записи (байты, килобайты), Qдор - объем дорожки диска (соответственно байты, килобайты).
Время обслуживания в i -ом ресурсе, i  1,2 определяется как
i  i (Tу  Tз  Tпер ),
коэффициент  i учитывает метод доступа к данным и программам.
(16)
45
3.6. Методика расчета времени ответа вычислительной
системы
Расчет производится с целью проверки, обеспечат ли выбранные технические средства требуемое среднее время ответа для заданного комплекса задач.
Исходными данными для расчета являются характеристики используемых
технических средств и характеристики решаемых задач.
Должно быть задано число задач ( N ), решаемых в масштабе реального
времени, и по каждой задаче ( i  1, N ) должно быть известно: интенсивность
решения ( зi ) , число машинных операций для решения задачи (Qпрi ) , число
обращений к данным (Di ) объем программы задачи (Q зад ) , объем обрабатываемых данных (Q данi ) и допустимое время ответа ( t допi ) .
В общем случае вычислительный комплекс обрабатывает разнородные задачи, отличающиеся объемом программы, объемом обрабатываемых данных,
процессорным временем решения, числом запросов к данным. Модель же рассчитана на параметры «средней» задачи. Усреднение параметров производится
с учетом интенсивности поступления задач на решение.
На основании исходных данных определяется суммарная интенсивность
N
входного потока задач  
  зi . По каждой задаче определяется стохастичеi 1
ский коэффициент ее повторяемости:  i   зi / , i  1, N .
Характеристики задач усредняются согласно соотношению:
N
Y
  i yi ,
(17)
i 1
где Y - усредненная характеристика, y i - та же характеристика i -ой задачи (в
качестве y i может выступать число машинных операций на задачу (Qпрi ) ,
число запросов к данным (Di ) , объем программы (Q зад ) и т. п.).
N
Интенсивность решения «средней» задачи  з 
  зi / N   / N.
i 1
Для СРВ время ответа должно быть меньше, чем средний промежуток
времени между двумя последовательными запросами на решение «средней»
задачи, поскольку к моменту поступления очередного запроса предыдущий
уже должен быть выполнен. Иначе задачи не будут успевать обслуживаться,
что приведет к резкому возрастанию времени ответа и невозможности управления контролируемым объектом. Поэтому должно выполняться усло-
46
вие: Tотв  1  з . Если это условие не выполняется, то необходимо пересмотреть выбор технических средств, в противном случае продолжается расчет со
следующей последовательностью этапов:
1. Определяется интенсивность входных потоков в ресурсах  i , i  1,3 согласно (9).
2. Рассчитываются времена обслуживания в ресурсах:
bi
i  i (Tу  Tз  Tпер ),
Tпер 
, i  1,2.
Q дор
Для ресурса S1 (ВЗУ для данных) b1 это средний объем данных, передаваемых за одно обращение к ресурсу: b1  Q дан / D.
Для ресурса S2 (ВЗУ для программ) b 2 это средний объем программы
Q зад . Если Q зад  Q дор , то b2  Qдор , Tпер  ,  2  Q зад / Q дор .
Для ресурса S3 (ЦП-ОП) время обслуживания рассчитывается согласно
(15):
Qпр
,
3 
(D  2)Vпр (1  k c )
где Vпр - быстродействие выбранного процессора.
3. Рассчитывается загрузка ресурсов: i  ii / Ki , i  1,3, K i - число каналов обслуживания в ресурсе. Число каналов обслуживания выбирается из
условия, обеспечивающего коэффициент загрузки i  0,6  0,7 .
Если одноканальный ресурс S3 не обеспечивает условие по загрузке, то
необходимо использовать многомашинный или многопроцессорный комплекс.
4. Рассчитываются времена пребывания «средней» задачи в каждом из ресурсов t ni , i  1,3 согласно (11), если ресурс многоканальный, или (12), если
ресурс одноканальный.
5. Рассчитывается среднее время ответа согласно (10), если ресурсы много
канальные, в противном случае согласно (19).
6. Проверяется условие Tотв  Tдоп . Если условие не выполняется, то, анализируя этапы 4 и 5, выясняется, какой вклад вносит тот или иной ресурс во
время ответа, выясняются «узкие» места и принимаются меры по их устранению.
47
3.7. Расчет характеристик систем с приоритетами
Расчет по математической модели в виде сети систем массового обслуживания позволяет получить среднее время ответа для «средней» задачи, при
этом принята дисциплина обслуживания запросов в порядке их поступления
(FIFO).
В системах реального времени к решению задач определенного типа выдвигаются жесткие требования по времени ответа. Для организации обработки
таких задач необходимо введение дисциплины обслуживания, устанавливающей внешние приоритеты для поступающих на обработку задач. Приоритет
запроса – его характеристика, определяющая место запроса в очереди на обслуживание.
Если в системе обслуживаются q различных классов задач, то каждому
классу приписывается свой приоритетный признак (номер). Чем выше уровень
приоритета данного класса задач, тем обычно меньше его приоритетный номер. Каждому уровню приоритета соответствует своя очередь, составленная в
порядке поступления на решение задач данного класса.
Приоритет назначается либо в соответствии с характером задачи, решаемой по этому запросу, либо в соответствии с той ролью, которую играет источник запроса. Введение приоритетов среди запросов имеет смысл только
том в случае, когда объем работы, выполняемый вычислительным комплексом, согласуется с его возможностями. Поэтому предварительно должны быть
выполнены расчеты загрузки ресурсов системы и времени выполнения «средней» задачи в соответствии с рассмотренной выше моделью.
Если все запросы, поступающие от объекта управления, равноценны по
срочности, времени обслуживания, показателям важности, то необходимость
введения приоритетов среди запросов отсутствует. В случае не равноценности
запросов по одному из перечисленных показателей должно проверяться условие t отвi  t допi по каждому запросу.
Если длительность выполнения конкретного задания является величиной
постоянной, то можно проверять условие по ограничению времени t i пребывания заявки в очереди на обслуживание: twitwiдоп.
В зависимости от того, как решается вопрос с прерыванием обслуживания
заявок j-го приоритета, если в систему поступила заявка i-го приоритета (i>j),
все приоритетные дисциплины обслуживания разделяются на три группы:
 с относительным приоритетом;
 с абсолютным приоритетом;
 со смешанным приоритетом.
Расчет систем с относительными приоритетами
При использовании дисциплины обслуживания с относительным приоритетом с приходом заявки высшего приоритета обслуживание текущей заявки
48
низшего приоритета не прерывается. Оно продолжается до его полного завершения, если время, необходимое для обслуживания заявки, не квантуется, или
до окончания кванта времени, выделенного этой заявке, в случае квантования
времени на обслуживание заявок. Следовательно, при такой дисциплине обслуживания возможна ситуация, когда в данный момент времени обслуживается заявка не самого высокого приоритета из числа имеющихся в очереди заявок.
Для систем с относительными приоритетами выбор очередной задачи на
обслуживание осуществляется в момент освобождения ресурса. Задача j -ого
приоритета поступит на обслуживание только в том случае, если очереди с
приоритетными номерами 1, 2, .... ( j -1) не содержат запросов на обслуживание. Таким образом, полагаем, что чем выше приоритет, тем меньше его номер.
Согласно теории массового обслуживания, среднее время пребывания в
очереди задачи j-ого приоритета рассчитывается по формуле
q
 i (t si2 )
t wj 
j1
2(1 
i 1
j
,
(18)
 i t si )(1   i t si )
i 1
i 1
где q - число уровней приоритета,  i - интенсивность потока заявок i -ого
приоритета, t si и t si2 - соответственно среднее значение времени обслуживания и среднее значение квадрата времени обслуживания заявки i -ого приоритета.
Загрузка системы заявками i-ого приоритета i  i t si . . Введём обозначеj
ние  j 
j
  i t si , где  j - суммарная загрузка системы заявками с 1i 
i 1
i 1
ого по j-ый приоритет, 0  0 . С учетом введенных обозначений
q
t wj 
 i (t si2 )
i 1
2(1   j1 )(1   j )
.
(19)
Если распределение времени обслуживания заявки любого приоритета
подчинено экспоненциальному закону (3), то момент второго порядка
 
2
2
M t si
 (t si
)  2(t si ) 2 , и формула (19) запишется в виде:
49
q
t wj 
 i (t si )2
i 1
(1   j1 )(1   j )
.
(20)
Если время обслуживания заявки постоянно, то
(19) запишется в виде:
2
( t si2 )  t si
и формула
q
t wj 
 i t si2
i 1
2(1   j1 )(1   j )
.
(21)
Сравнение (20) и (21) показывает, что использование экспоненциального
распределения приводит к большим временным задержкам при прочих равных
условиях.
Расчет систем с абсолютными приоритетами
Для дисциплины обслуживания с абсолютным приоритетом характерно
немедленное прерывание обработки задания с меньшим приоритетом в момент
поступления запроса на выполнение задания с более высоким приоритетом.
Прерванное задание может быть дообслужено, т.е. выполнение программы
возобновится с того места, где она была остановлена (для этого нужны соответствующие средства и действия), либо выполнение задания начнется заново,
если не предприняты действия по его сохранению. В обоих случаях возврат к
прерванной программе осуществляется с учетом ее приоритета.
Рассмотрим вариант прерывания с дообслуживанием: заявка j -го приоритета прерывает обслуживание заявки ( j  1) -го или более низких приоритетов;
обслуживание прерванной заявки будет продолжено согласно ее приоритету.
Согласно теории массового обслуживания применительно к вычислительным системам с очередями среднее время ожидания обслуживания заявкой jго приоритета
 j

2


 i ( t si
)
 i 1

1
t wj 
 t sj j1 .

1   j1  2(1   j )






(22)
Здесь первое слагаемое учитывает время ожидания первоначального обслуживания, второе - дообслуживания после прерывания (прерываний).
50
Если время обслуживания заявки любого приоритета подчиняется экспоненциальному закону, то
 j



 i ( t si ) 2
 i 1

1
t wj 
 t sj j1 ,

1   j1  (1   j )






1 t s1
.
(1  1 )
Если время обслуживания заявки любого приоритета постоянно, то
 j



 i t si2
 i 1

1
t wj 
 t sj j1 ,

1   j1  2(1   j )





для запроса высшего ( j  1) приоритета t w1 

для запроса высшего приоритета t w1 
1t s1
.
2(1  1 )
Расчет систем со смешанными приоритетами
В дисциплине обслуживания со смешанными приоритетами заложены
возможности обслуживания заявок в соответствии либо с относительным приоритетом, либо с абсолютным приоритетом. Рассмотрим применяющиеся на
практике смешанные дисциплины обслуживания.
Начнем с дисциплины обслуживания с одним уровнем прерывания. Специфика данной дисциплины обслуживания заключается в том, что все q классов задач введением некоторого параметра S(0  S  q) разделены на два класса. В первый класс входят заявки с приоритетами j  S , а во второй класс заявки с приоритетами j  S (рис.15).
Внутри каждого класса заявки обслуживаются в порядке относительного
приоритета, но все заявки первого класса могут прерывать обслуживание заявок второго класса, которые затем дообслуживаются по мере освобождения
системы от заявок первого класса. Таким образом, между первым и вторым
классами заявок соблюдается дисциплина обслуживания с абсолютным приоритетом. Эта смешанная дисциплина характерна для мультипрограммных
ЭВМ, в которых используется приоритетный принцип выбора заявок на решение, но имеется один уровень прерывания. Одноуровневая система прерывания применяется в тех случаях, когда имеют близкие требования по времени
51
задержки, либо же структура ЭВМ не позволяет реализовать многоуровневую
систему прерывания.
Рис. 15. Структура дисциплины обслуживания с одним уровнем прерывания
Для заявок первого класса время ожидания обслуживания определяется
согласно формуле (19) для системы с S относительными приоритетами:
S
t wj 
 i (t si2 )
i 1
2(1   j1 )(1   j )
,1  j  S,
(23)
для заявок второго класса – согласно формуле (22), в которой учитывается
ожидание первоначального обслуживания в системе с q приоритетами с возможным дообслуживанием при прерывании заявками с 1-го по S-ый приоритет:
q
t wj 
 i (t si2 )
i 1
2(1   j1 )(1   j )

s
t sj , S  j  q.
1  s
(24)
При значениях параметра S  0 или S  q данная дисциплина обслуживания со смешанными приоритетами превращается в дисциплину обслуживания
с использованием только относительных приоритетов. Таким образом, выбор
того или иного значения параметра S можно интерпретировать как выбор соответствующей этому значению структуры обслуживания ЭВМ, имеющей
один уровень прерывания. Такая задача возникает при проектировании алгоритма диспетчеризации вычислительного процесса в ЭВМ, работающей в режиме реального времени.
При нескольких уровнях прерывания обслуживание заявок первого класса
осуществляется по принципу абсолютных приоритетов, т.е. внутри первого
класса допускаются прерывания в соответствии с установленными приорите-
52
тами, и, кроме того, все заявки первого класса прерывают обслуживание заявок второго класса, которые обслуживаются в порядке относительного приоритета (рис.16).
Среднее время ожидания обслуживания для задач первого класса определяется согласно формуле:
j
t wj 
 i (t si2 )
i 1
2(1   j1 )(1   j )

 j1
1   j1
t sj ,1  j  S.
(25)
для задания второго класса – согласно формуле (24).
Nпр
Рис. 16. Структура дисциплины обслуживания с несколькими уровнями
прерывания
Сопоставление выражений (23), (24) и(25) показывает, что применение
многоуровневой системы прерывания позволяет перераспределить длительность ожидания в очереди только для задач первого класса ( j  S) , характеристики задержки обслуживания задач второго класса ( j  S) остаются теми же
самыми.
Многоуровневая дисциплина прерывания применяется, в основном, для
диспетчеризации работы программ обмена информацией с разнотипными
внешними абонентами, обладающими различной производительностью и длительностью хранения информации в буферной памяти.
53
4. Программные средства систем реального времени
4.1. Общие замечания
В состав программных средств СОД входят программы, которые обеспечивают:

решение функциональных задач системы;

организацию и контроль вычислительного процесса;

автоматизацию разработки алгоритмов и программ.
Программы, относящиеся к первой группе, реализуют конкретные алгоритмы решения задач, соответствующих функциональному назначению системы. Задачи функционального назначения весьма разнообразны и связаны с
конкретным назначением системы.
Программы, относящиеся ко второй группе, ориентированы на конкретную техническую реализацию вычислительного комплекса. Это программы,
управляющие процессом функционирования вычислительного комплекса и
обеспечивающие его нормальный ход.
Программы третьей группы обеспечивают возможность сокращения сроков создания программного комплекса.
Таким образом, программы первой группы определяют эффективность
управления, программы второй группы – эффективность вычислительного
комплекса, третьей - влияют на время и качество проектирования.
Программы организации и контроля вычислительного процесса делятся на
программы операционной системы и программы контроля и обеспечения
устойчивости функционирования вычислительного комплекса.
4.2. Среда реального времени
Среда реального времени характеризуется тем, что управление обработкой
в ней осуществляется в зависимости от внешних событий, происходящих в заранее непредсказуемые моменты времени и в непредсказуемой последовательности. Внешнее событие – это прием данных или запроса на обслуживание
асинхронно работающего устройства, которое непосредственно не управляется
человеком. Иногда такое событие требует ответной реакции, а иногда не требует. Диалог между системой и устройством может быть начат при поступлении запроса системы о состоянии устройства или при посылке устройством системе определенных сигналов, специфических для данного устройства. Одно
внешнее событие вызывает появление другого, связанного с выполнением
функций обработки. Обработка события заключается в выполнении последовательности работ, причем каждая из них должна производиться в жестких временных рамках.
Система, которая реагирует на такие события, работает асинхронно. Асинхронные операции требуют синхронизации функций системы с конкретными
54
событиями, а не с внутренними функциями. Необходимо отметить, что и для
системы, работающей асинхронно, может понадобиться функция отсчета времени, которая в свою очередь, требует наличия внутренней синхронизации.
Анализ любой системы управления показывает, что в ней существует несколько более или менее не зависимых контуров регулирования и сбора информации, управлением которыми можно заниматься независимо или, по
крайней мере, асинхронно. С точки зрения вычислительной среды управление
такими контурами можно оформить в виде независимых или сообщающихся
друг с другом (при помощи предоставленного в их расположения механизма
обмена) задач.
Основной единицей управления в СРВ является задача. Будем называть
задачей набор операций (машинных инструкций), предназначенный для выполнения логически законченной функции системы. При этом задача конкурирует с другими задачами за получение контроля над ресурсами вычислительной системы. Операционная система реального времени несет ответственность
за выполнение именно задач.
В любой момент времени работающая задача (т.е. задача, которая управляет процессором) - это задача, имеющая максимальный приоритет и готовая к
выполнению. Данная задача будет работать до тех пор, пока она сама не освободит процессор или будет прервана новой задачей, ставшей готовой и имеющей более высокий приоритет. Когда эта ситуация возникает, система должна
сохранить всю необходимую информацию о прерванной задаче с тем, чтобы
прерванная задача могла возобновить свою работу с того места, где ее застало
прерывание. Когда несколько задач являются претендентами на исполнение,
операционная система определяет, какая из них пойдет первой. Для этого каждой задаче должен быть назначен приоритет и определена дисциплина обслуживания.
Принято различать две разновидности задач: процессы и потоки. Процесс
представляет собой отдельный загружаемый программный модуль (файл), который, как правило, во время исполнения имеет в памяти свои независимые
области для кода и данных. В отличие от этого потоки могут пользоваться
общими участками кода и данных в рамках единого программного модуля.
Примером многопоточной программы является редактор текста WORD,
где в рамках одного приложения может одновременно происходить и набор
текста и проверка правописания.
Преимущества потоков
1) Так как множество потоков способно размещаться внутри одного
EXE-модуля, это позволяет экономить ресурсы как внешней, так и внутренней
памяти.
2) Использование потоками общей области памяти позволяет эффективно
организовать межзадачный обмен сообщениями (достаточно передать указатель на сообщение). Процессы не имеют общей области памяти, поэтому операционная система должна либо целиком скопировать сообщение из области
55
памяти одной задачи в область памяти другой (что для большинства сообщений весьма накладно), либо предусмотреть специальные механизмы, которые
позволили бы одной задаче получить доступ к сообщению из области памяти
другой задачи.
3) Как правило, контекст потоков меньше, чем контекст процессов, а значит, время переключения между задачами-потоками меньше, чем между задачами-процессами.
4) Так как все потоки размещаются в одном EXE-модуле, значительно
упрощается использование программ-отладчиков.
Недостатки потоков
1) Как правило, потоки не могут быть подгружены динамически. Чтобы
добавить новый поток, необходимо провести соответствующие изменения в
исходных текстах и перекомпилировать приложение. Процессы, в отличие от
потоков, подгружаемы, что позволяет динамически изменять функции системы
в процессе ее работы.
2) То, что потоки имеют доступ к областям данных друг друга, может
привести к ситуации, когда некорректно работающий поток способен испортить данные другого потока. В отличие от этого процессы защищены от взаимного влияния, а попытки записи в «не свою» память приводят к возникновению
специального прерывания по обработке исключительной ситуации.
Реализация механизмов управления процессами и потоками, возможность
их взаимного сосуществования и взаимодействия определяются конкретным
программным обеспечением реального времени.
Основные свойства задач
Как правило, вся важная с точки зрения операционной системы информация о задаче хранится в унифицированной структуре данных – управляющем
блоке (Task Control Block,TCB). В блоке хранятся такие параметры, как имя и
номер задачи, верхняя и нижняя границы стека, ссылка на очередь сообщений,
статус задачи, приоритет и т.п.
Приоритет – это некоторое число, присваиваемое задаче и характеризующее ее важность по сравнению с другими задачами, выполняемыми в системе. Приоритет используется планировщиком задач для определения того, какая
из готовых к работе задач должна получить управление. Различаются системы
с динамической и статической приоритетностью. В первом случае приоритет
задач может меняться в процессе исполнения, в то время как во втором приоритет задач жестко задается на этапе разработки или во время начального
конфигурирования системы.
Контекст задачи – это набор данных, содержащий всю необходимую информацию для возобновления выполнения задачи с того места, где она была
раннее прервана. Контекст хранится в TCB и включает в себя такие данные,
как счетчик команд, указатель стека, регистры CPU и FPU и т.п. Планировщик
задач в случае необходимости сохраняет контекст текущей активной задачи и
восстанавливает контекст задачи, назначенной к исполнению. Такое переклю-
56
чение контекста является основным механизмом операционной системы реального времени при переходе от выполнения одной задачи к выполнению
другой.
Состояние (статус) задачи
С точки зрения операционной системы задача может находиться в нескольких состояниях (по крайней мере, в трех состояниях).
1) Активная задача – это задача, выполняемая системой в текущий момент времени.
2) Готовая задача – это задача, готовая к выполнению и ожидающая у
планировщика своей «очереди».
3) Блокированная задача – это задача, выполнение которой приостановлено до наступления определенных событий. Такими событиями могут быть
освобождение необходимого задаче ресурса, поступление ожидаемого сообщения, наступление ожидаемого события, завершение интервала ожидания и
т.п.
Приложения реального времени представляют собой набор сотрудничающих задач. Наличие связи между задачами является характерной особенностью
СРВ. Одна задача может запустить другую или передать ей некоторую информацию. Взаимодействующие задачи могут находиться в отношении «производители - потребители», «читатели - писатели».
Задача «производитель сообщений» в результате своего выполнения
формирует некоторое сообщение, посылает его другому процессу и, возможно,
ждет получения ответа. Задача «потребитель сообщений» ждет, когда сообщение будет послано, и получает управление только тогда, когда она получит
сообщение. На основании полученного сообщения задача-потребитель совершает некоторые действия, возможно, формирует и отправляет ответ и возобновляет ожидание до получения следующего сообщения. Различия между этими типами задач не являются абсолютными, так как большинство задач как
производят, так и получают сообщения.
Задачи «читатели» и задачи «писатели» работают с общей областью
памяти. Одни из них (писатели) обновляют записи в общей памяти, другие (читатели) считывают информацию, не изменяя ее (неразрушающее считывание).
Среда реального времени должна предоставить задачам (производителям,
потребителям, читателям, писателям) механизм межзадачного взаимодействия.
В СРВ участие человека в процессе управления сводится к минимуму. Однако возможность вмешательства оператора все же должна быть предусмотрена в случае возникновения непредвиденной ситуации, а также при обнаружении сбоев в работе оборудования. Вмешательство оператора допускается и для
переопределения значений некоторых параметров с целью перенастройки
управляемых объектов.
Основной особенностью работы в реальном времени является то, что вычислительная система применяется исключительно для управления заданным
процессом и обеспечивает своевременную реакцию на все происходящие со-
57
бытия. Прикладные задачи СРВ классифицируются как задачи жесткие в режиме реального времени (задачи жесткого реального времени ЗЖРВ), мягкие в
режиме реального времени (ЗМРВ) и не в режиме реального времени. Предельный срок исполнения задачи жесткого реального времени традиционно
называют жестким крайним сроком. Неспособность системы удовлетворить
жесткому крайнему сроку может закончиться крахом системы.
Прикладные задачи могут классифицироваться как периодические, апериодические (или асинхронные) и спорадические задачи.
Периодические задачи - это задачи, которые входят в состояние выполнения периодически. Эти задачи обычно используются в подсистемах сбора и
обработки данных и типично характеризуются жестким крайним сроком.
Апериодические задачи - это задачи, чье выполнение не может ожидаться
в заранее установленные моменты времени, так как их выполнение определяется возникновением заранее не предсказуемых внешних или внутренних событий. Эти задачи обычно характеризуются мягким крайним сроком.
Апериодические задачи, характеризующиеся жестким крайним сроком,
названы спорадическими задачами (например, задачи, запрашивающие в критической ситуации некоторые действия от оператора).
Система реального времени должна гарантировать, что индивидуальное
выполнение каждой прикладной задачи удовлетворит требованиям ее крайнего
срока. Однако для выполнения этого условия нельзя поступиться временем
среднего отклика каждой прикладной задачи. Для этого необходимы быстродействующие аппаратные средства ЭВМ и эффективные алгоритмы планирования. Если вычислительные мощности системы позволяют уменьшить время
выполнения задач, то это увеличивает эффективность управления объектом.
Поэтому, наряду с требованием не нарушать крайних сроков, актуальна и задача максимально возможной загрузки ресурсов, т.е. эффективного использования вычислительных ресурсов.
4.3. Операционные системы реального времени
Операционная система является важнейшей и центральной частью программного обеспечения системы обработки данных. Операционная система
(ОС) представляет собой совокупность программ, предназначенных для управления вычислительным процессом, планирования работ, распределения ресурсов и для реализации наиболее массовых процедур ввода/вывода, хранения и
преобразования данных. Управление процессами и ресурсами ставит своей целью обеспечение эффективного использования оборудования и требуемого качества обслуживания.
Функции управления работой СОД реализуются управляющими программами ОС, включающими в свой состав супервизор, программы управления заданиями и данными. Супервизор контролирует состояние всех технических
средств и процессов (задач) и управляет ими, обеспечивая необходимый режим
58
обработки данных путем распределения процессов в пространстве и времени.
Супервизор выделяет задачам области (разделы) памяти и устройства вводавывода, инициирует выполнение процессором программ, начинает операции
ввода-вывода и обрабатывает сигналы прерывания, отмечающие окончание
операций ввода-вывода и особые ситуации, возникающие при выполнении
программ и работе устройств.
Программы управления заданиями обеспечивают ввод и интерпретацию
команд операторов, управляющих работой СОД, и заданий, формируемых
пользователями СОД. Эти программы интерпретируют задания в виде соответствующих действий и обеспечивают их необходимыми ресурсами – разделами оперативной и внешней памяти, устройствами ввода-вывода, наборами
данных. Задания, обеспеченные ресурсами, необходимыми для их выполнения,
образуют задачи. Управление задачами реализуется супервизором. Для обращения к программам управления заданиями применяется язык управления заданиями, в терминах которого пользователи и операторы, управляющие работой системы, записывают задания на выполнение работ в системе.
Программы управления данными обеспечивают доступ к наборам данных
и организацию работы устройств ввода-вывода. Средства управления данными
настраивают программы на работу с конкретными наборами данных и устройствами, в которых хранятся наборы, и за счет этого создают возможность при
программировании задач манипулировать с данными как с логическими объектами, не связанными с конкретными устройствами. Таким образом, управление
данными сводится к сопряжению программ с наборами данных и устройствами, а использование этих устройств контролируется и координируется супервизором.
К основным функциям любой операционной системы относят:
 управление процессором путем чередования выполнения программ;
 обработка прерываний и синхронизация доступа к ресурсам вычислительной системы;
 управление памятью путем выделения программам во время их выполнения требуемых разделов памяти;
 управление устройствами путем инициализации запросов на вводвывод, управления очередями и фиксации завершения обмена;
 управление инициализацией программ и обеспечение межпрограммных связей;
 управление данными путем поддержки создания, открытия, закрытия,
чтения и обновления файлов.
Все эти функции в той или иной степени присущи операционным системам реального времени (ОСРВ), при этом обеспечивается:
 псевдопараллельное (асинхронное) выполнение задач в соответствии с
их приоритетами;
 обмен данными между задачами;
59
 организация системной службы времени;
 изменение состояний задач по запросам других задач;
 обработка прерываний;
 организация и ведение очередей запросов к устройствам;
 динамическое распределение памяти между задачами;
 связь с операторами.
С точки зрения пользователей ОСРВ является многоуровневой системой.
Нижний уровень – это ядро операционной системы. Ядро представляет собой
небольшую часть кода операционной системы в целом, однако оно относится к
числу наиболее интенсивно используемых компонент системы. К функциям,
выполняемым ядром ОСРВ, относятся диспетчеризация и синхронизация задач, межзадачный обмен информацией, создание и уничтожение структур данных, обработка прерываний и организация работы в реальном времени.
Ядро реализует организацию работ в реальном времени с помощью таймера.
К объектам, управление которыми выполняется ядром, относятся задачи,
сообщения и прерывания. Задача представляет собой программу в процессе ее
исполнения, соревнующуюся за обладание ресурсами системы и характеризующуюся такими параметрами как приоритет, имя, адрес, состояние и т.п. Сообщения представляют собой информацию, передаваемую от одной задачи к
другой. Сообщения позволяют задачам синхронизировать свое выполнение.
Прерывания обрабатываются ядром и преобразуются в специальные сообщения о прерывании.
Обработка прерываний является одной из важных функций, реализованных в ядре. Быстрая реакция на прерывания играет весьма важную роль для
обеспечения приемлемого времени ответа. Когда ядро обрабатывает текущее
прерывание, оно запрещает другие прерывания и разрешает их вновь только
после завершения обработки текущего прерывания. При интенсивном потоке
прерываний может сложиться такая ситуация, что ядро будет блокировать прерывания в течение значительного интервала времени, т.е. не будет иметь возможность оперативно реагировать на прерывания. Поэтому ядро должно осуществлять лишь минимально возможную предварительную обработку каждого
прерывания, а затем передавать прерывание на дальнейшую обработку соответствующему системному процессу.
На следующем уровне находятся системные задачи (драйверы). К ним относятся: драйвер терминала, драйвер печати, драйвер аналогового ввода/вывода драйверы дискретного ввода/вывода и тп.
Верхний уровень – это прикладные задачи взаимодействующие как с ядром ОСРВ так и с драйверами и другими прикладными задачами.
Структура программного обеспечения систем реального времени зависит
от условий применения, от процессоров, используемых в качестве узлов системы, и от их взаимосвязи. Однако, несмотря на различие приложений и числа
60
узлов, все ОСРВ во многом сходны между собой. Основное сходство таких систем заключается в том, что они строятся по принципу управления от событий
или очередей. Этот принцип состоит в выборе для выполнения определенных
программ при получении сообщений соответствующих типов. При реализации
же принципа управления от процессов механизм событий является лишь вспомогательным средством организации распределения ресурсов и их эффективного использования.
Модель ОСРВ, любая деятельность которой начинается в ответ на возникновение специфического события, получила название «архитектура, вызванная
случаем». Главный компонент такой архитектуры – обработчик событий и
очередей, который запрашивает и принимает сообщения о внешних событиях,
осуществляет их анализ и вызывает для выполнения нужные программы. Эти
программы либо сами обращаются за требуемыми данными, либо получают их
при вызове от обработчика событий или очередей. Выбираемая стратегия зависит от того, может ли быть системе заранее известно, какие данные соответствуют сообщениям в момент их приема.
Вторая известная модель ОСРВ имеет название «архитектура, вызванная
временем». В архитектуре, вызванной временем, действия системы начинаются
в определенный момент глобально синхронизированного времени. Механизм
событий здесь является лишь вспомогательным средством организации распределения ресурсов и их эффективного использования.
В обеих моделях проверка потребности в ресурсах и оценка готовности ресурса удовлетворить эти требования (предсказуемость поведения) должны
быть оценены до выполнения каждой прикладной задачи с учетом требований
по времени, причем следует исходить из самых неблагоприятных условий.
Считается, что модель, вызванная временем, может тратить ресурсы впустую (они могут простаивать), чтобы обеспечить предсказуемость поведения.
Модель, вызванная случаем, может быть охарактеризована очень большим
числом возможных вариантов поведения, каждый из которых должен быть
тщательно проанализирован, чтобы обеспечить предсказуемость поведения.
Еще одна характерная особенность ОСРВ заключается в том, что данные
принимаются в реальном времени и поэтому программы обработки должны
быть постоянно готовы или почти готовы к выполнению. Это может быть
обеспечено размещением всей обрабатывающей программы или большей ее
части в основной памяти. Обрабатывающие программы могут не быть резидентными только в том случае, если механизм управления памятью столь
прост и «реактивен», что позволяет в определенные моменты загружать и запускать их практически без потери времени.
Последовательность работы ВС определяется протекающим процессом
управления. В функционирующей системе некоторая задача с высоким приоритетом может прервать выполнение текущей задачи. Когда эта новая задача
закончит выполнение или перейдет в пассивное состояние (например, должна
61
ждать наступления некоторого события), ОС продолжит прерванную задачу
или запустит другую, которая в данный момент имеет больший приоритет.
Каждая обрабатывающая программа может получить управление на гарантированный заданный отрезок времени, воспользоваться службой времени и
организовать быстрый вызов требуемых подпрограмм. В СРВ обрабатывающие программы отличаются большой степенью взаимодействия с физическими
устройствами, в связи с чем большое значение имеют вопросы синхронизации.
Следует отметить, что большинство ОСРВ не ориентированы на диспетчирование программ с целью установления оптимального распределения нагрузки
между каналами, процессорами и устройствами памяти.
Не менее важное свойство ОСРВ – поддержка стандартных или популярных сетевых протоколов. Нужда в сетях передачи данных возникает при автоматизации сложных объектов с большим количеством измерительных каналов,
когда каждый контроллер управляет своей группой каналов и необходима синхронизация и обмен данными между контроллерами.
Большинство коммерческих ОСРВ позволяют строить сети контроллеров,
поддерживая протоколы промышленных сетей (таких, как Bitbus, Canbus, Profibus и др.), содержат поддержку популярных сетевых технологий (Arcnet,
Ethernet, Token Ring, FDDI и др.), а также могут распознавать пакеты глобальных сетей (TCP/IP, X.25 и др.).
Отличие операционных систем реального времени от ОС общего назначения заключается в основном показателе эффективности, который используется
для построения системы. ОС общего назначения ориентированы на обеспечение наиболее эффективной загрузки ресурсов или возможности одновременной
работы многих пользователей. ОСРВ имеют другой показатель эффективности
– гарантированное время реакции на событие. Тем не менее, ОСРВ должна
удовлетворять и другим требованиям, таким как надёжность, гибкость, удобство работы пользователей.
Другое отличие – применение ОСРВ всегда связано с аппаратурой, с объектом, с событиями, происходящими на объекте. Система реального времени,
как аппаратно-программный комплекс, включает в себя датчики, регистрирующие события на объекте, модули ввода/вывода, преобразующие показания
датчиков в цифровой вид, пригодный для обработки этих показаний в ВС, и,
наконец, компьютер с программой, реагирующей на события, происходящие на
объекте. Операционная система реального времени ориентирована на обработку внешних событий. Именно это приводит к коренным отличиям (по сравнению с ОС общего назначения) в структуре системы, в функциях ядра, в построении системы ввода/вывода.
Кроме того, применение ОСРВ всегда конкретно. Если ОС общего назначения обычно воспринимается пользователем как уже готовый набор приложений, то операционная система реального времени служит только инструментом
для создания конкретного аппаратно-программного комплекса реального времени. Поэтому наиболее широкий класс пользователей ОСРВ - разработчики
62
комплексов реального времени, люди, которые проектируют системы управления и сбора данных. Проектируя и разрабатывая конкретную СРВ, программист всегда точно знает, какие события могут произойти на объекте, знает критические сроки обслуживания каждого из этих событий.
Для управления производственным или иным процессом часто стоит задача создания специализированной проблемно-ориентированной системы, поэтому производится совместная разработка оборудования, операционной системы и прикладных программ.
Совместная разработка аппаратуры, ОС и прикладных программ определяет многие характеристики специализированных СРВ. Поскольку при создании ОСРВ уже известны основные характеристики прикладных программ, то
нетрудно установить соотношения между ними, рассчитать значения нагрузки
на систему в различных условиях, а также строго зафиксировать множество
входных и выходных параметров. А это означает, что многие стандартные
функции ОС могут быть упрощены или даже упразднены.
Еще одна характерная особенность ОСРВ заключается в том, что в них
обычно отсутствуют средства программирования и отладки. Для создания
прикладных программ может потребоваться применение уже существующих
операционных систем, располагающих необходимыми средствами. Системы
реального времени могут программироваться и отлаживаться на вычислительных машинах, имеющих иную архитектуру, нежели ЭВМ, на которой разработанная система будет функционировать. При этом в процессе создания ОСРВ,
как правило, используются кросс ассемблеры и кросс компиляторы. Такие ассемблеры и компиляторы, выполняясь на одних машинах, генерируют коды
для других машин.
В связи с этим еще одно из коренных внешних отличий ОСРВ от ОС общего назначения - четкое разграничение систем разработки и систем исполнения.
Система исполнения ОСРВ – это набор инструментов (ядро, драйверы, исполняемые модули), обеспечивающих функционирование приложения реального времени. Набор аппаратных средств комплекса реального времени должен быть адекватен кругу решаемых в реальном времени задач, поэтому
большинство современных ведущих ОСРВ поддерживают спектр наиболее
популярных аппаратных архитектур, на которых работает система исполнения
(Intel, Motorola, RISC, MIPS, PowerPC и другие).
Систему исполнения операционных систем реального времени и компьютер, на котором она исполняется, называют «целевой» (target) системой.
Система разработки – это набор средств, обеспечивающих создание и отладку приложения реального времени. Системы разработки (компиляторы, отладчики и всевозможный вспомогательный инструментарий) работают, как
правило, в популярных и распространенных ОС общего назначения, таких, как
UNIX или Windows. Кроме того, многие ОСРВ имеют и так называемые рези-
63
дентные средства разработки, исполняющиеся в среде самой ОСРВ, особенно
это относится к операционным системам реального времени типа «ядра».
4.4. Параметры, характеризующие ОСРВ
Время реакции системы
События, происходящие на объекте, регистрируются датчиками, данные с
датчиков передаются в модули ввода/вывода системы. Модули ввода/вывода,
получив информацию от датчиков и преобразовав ее, генерирует запрос на
прерывание в управляющем компьютере, подавая ему тем самым сигнал о том,
что на объекте произошло событие. Получив сигнал от модуля ввода/вывода,
система должна запустить программу обработки этого события.
Интервал времени от события на объекте и до выполнения первой команды в программе обработки этого события называется временем реакции системы на событие.
Время выполнения цепочки действий от события на объекте до генерации
прерывания никак не зависит от ОСРВ и целиком определяется аппаратурой.
А интервал времени от возникновения запроса не прерывание и до выполнения
первой команды обработчика прерываний определяется целиком свойствами
ОС и архитектурой компьютера. Причем это время нужно уметь оценивать в
худшей для системы ситуации, т.е. в предположении, что процессор занят, что
в это время могут происходить другие прерывания и что система может выполнять какие-то действия, блокирующие прерывания.
Время реакции современных ОСРВ лежит в пределах от 3 мкс до 10 мкс.
Время переключения контекста
Все ОСРВ являются многозадачными, т.е. в них заложена возможность
одновременной обработки нескольких событий. Для того, чтобы оценивать
временные расходы системы при обработке параллельных событий, надо знать
время, которое система затрачивает на передачу управления от задачи к задаче
(от процесса к процессу).
Представителем процесса в ОС является блок управления процессом
(TCB) – структура данных, в которых ОС сосредотачивает всю информацию о
процессе (идентификатор, приоритет, текущее состояние, указатели выделенных процессу ресурсов, область сохранения регистров). Когда ОС переключает
процессор с процесса на процесс, она использует область сохранения регистров, чтобы запомнить информацию, необходимую для запуска задачи с той
точки, в которой она была прервана, когда в следующий раз она получит в свое
распоряжение процессор.
Поскольку операционная система должна иметь возможность выполнять
операции с различными блоками управления процессом, то предусматривается
специальный регистр, который всегда содержит адрес блока управления текущего выполняемого процесса.
64
Содержимое регистров и текущий адрес блока управления называется
контекстом. Время, которое затрачивается на передачу управления от одного
процесса к другому, называется временем переключения контекста. Время
переключения контекста в современных ОСРВ лежит в пределах от 30 мкс до
165 мкс.
Размеры системы
Для систем реального времени важным параметром является размер системы исполнения, а именно суммарный размер минимально необходимого для
работы приложения системного набора (ядро, системные модули, драйверы и
т.д.). С течением времени значение этого параметра уменьшается, тем не менее
он остается важным, и производители СРВ стремятся к тому, чтобы размеры
ядра и обслуживающих модулей системы были невелики. Например, размер
ядра ОСРВ QNX составляет – 8 кбайт, OS-9 – 22 кбайт, VxWorks – 16 кбайт.
Возможность исполнения из постоянного запоминающего устройства
Это свойство операционных систем реального времени – одно из базовых.
Оно позволяет создавать компактные встроенные СРВ повышенной надежности, с ограниченным энергопотреблением, без внешних накопителей.
4.5. Механизмы реального времени
4.5.1. Межзадачное взаимодействие и синхронизация задач
Механизмы межзадачного взаимодействия относятся к средствам синхронизации задач и передачи данных между ними. Синхронизация задач – это
ограничения, накладываемые на порядок их выполнения. Эти ограничения задаются с помощью правил синхронизации, которые описываются с помощью
механизмов синхронизации.
Хотя каждая задача в системе, как правило, выполняет какую-либо отдельную функцию, часто возникает необходимость в согласованности (синхронизации) действий, выполняемых различными задачами. Такая синхронизация
необходима в следующих случаях.
1) Функции, выполняемые различными задачами, связаны друг с другом.
Например, если одна задача подготавливает данные для другой, то последняя
не выполняется до тех пор, пока не получит от первой задачи соответствующего сообщения.
2) Необходимо упорядочить доступ нескольких задач к разделяемому ресурсу.
3) Необходима синхронизация задачи с внешними событиями. Как правило, для этого используется механизм прерываний.
4) Необходима синхронизация задачи по времени. Для решения этого вопроса используются специальные средства – таймеры.
Два процесса называются параллельными, если первая операция одного
процесса начинает выполняться до завершения другого процесса. Параллель-
65
ные процессы могут работать совершенно независимо или они могут быть
асинхронными – это значит, что им необходимо периодически синхронизироваться и взаимодействовать.
Взаимное согласование задач с помощью сообщений является одним из
важнейших принципов операционных систем реального времени. Способы реализации межзадачного обмена отличаются большим разнообразием, что привело к обилию терминов в этой области. Используются такие понятия, как сообщение (message), почтовый ящик(mail box), сигнал (signal), событие (event),
прокси (proxy) и т.п.
Механизм передачи сообщений позволяет обмен данными между двумя
задачами без использования сигналов или очередей сообщений. Копирование
данных производится непосредственно из одной задачи в другую. Объем информации, передаваемой в сообщении, может меняться от 1 бита до всей свободной емкости памяти системы. Во многих ОСРВ компоненты операционной
системы, также как и пользовательские задачи, способны принимать и передавать сообщения. Сообщения могут быть асинхронными и синхронными. В первом случае доставка сообщений задаче производится после того, как она в плановом порядке получит управление, а во втором случае циркуляция сообщений
оказывает непосредственное влияние на планирование задач. Например, задача, пославшая сообщение, немедленно блокируется, если для продолжения работы ей необходимо дождаться ответа, или если низкоприоритетная задача
шлет высокоприоритетной задаче сообщение, которого последняя ожидает, то
высокоприоритетная задача, если, конечно, используется приоритетная многозадачность с вытеснением, немедленно получит сообщение.
Иногда сообщения передаются через отведенный для этого буфер определенного размера («почтовый ящик»). При этом, как правило, новое сообщение
затирает старое, даже если последнее не было обработано.
Однако наиболее часто используется принцип, когда каждая задача имеет
свою очередь сообщений, в конец которой ставится всякое вновь полученное
сообщение. Стандартный принцип обработки очереди сообщений по принципу
«первый вошел, первый вышел» (FIFO) не всегда оптимально соответствует
поставленной задаче. В некоторых ОСРВ предусматривается такая возможность, когда сообщение от высокоприоритетной задачи обрабатывается в
первую очередь (в этом случае говорят, что сообщение наследует приоритет
пославшей его задачи).
Сообщение может содержать как сами данные, предназначенные для передачи, так и указатель на такие данные. В последнем случае обмен может производиться с помощью разделяемых областей памяти, разделяемых файлов и
т.п.
Ресурс – это общий термин, описывающий физическое устройство или область памяти, которые могут запрашиваться для использования несколькими
задачами. Используется также термин «разделяемый ресурс». Процессорное
время тоже представляет собой своеобразный конкурентно используемый ре-
66
сурс вычислительной системы. Разделяемый ресурс называется критическим,
если одновременно может использоваться только одной задачей. Взаимосвязанные задачи – это задачи, использующие общий ресурс или обменивающиеся информацией.
Способ взаимодействия, при котором во время обращения одной задачи к
разделяемому ресурсу всем другим задачам это запрещается, называется взаимоисключением. Участки кода программ, где происходит обращение к разделяемым ресурсам, называются критическими секциями, в связи с чем, когда
задача обращается к разделяемому ресурсу, то говорят, что она находится в
своей критической секции (или в своем критическом участке). Очевидно, что в
случае, если одна задача находится в своей критической секции, необходимо
исключить возможность вхождения для всех других задач в их критические
секции. Когда задача выходит из своего критического участка, то одной из
остальных задач, ожидающих входа в свою критическую секцию, должно быть
разрешено продолжить работу. При этом необходимо, чтобы задержка любой
задачи вне ее критического участка не влияла на выполнение других задач. В
СРВ задачи должны как можно скорее проходить свои критические участки и
не должны в этот период блокироваться.
Для ОСРВ характерна развитость механизмов межзадачного взаимодействия. К таким механизмам относятся семафоры, мьютексы, события, сигналы,
очереди сообщений, каналы данных. Многие из подобных механизмов используются в ОС общего назначения, но их реализация в ОСРВ имеет свои особенности: время исполнения системных вызовов почти не зависит от состояния
системы, и в каждой ОСРВ есть, по крайней мере, один быстрый механизм передачи данных от процесса к процессу.
Механизмы межзадачного взаимодействия должны обеспечивать:
 целостность структур разделяемых данных;
 должный порядок логически связанных действий, выполняемых различными задачами;
 отсутствием взаимных блокировок задач;
 отсутствие тупиков.
Две (или более) задачи находятся в состоянии взаимоблокировки, если одна задача удерживает ресурс, запрашиваемый другой задачей, в то время как ей
самой требуется ресурс, удерживаемый этой другой задачей. Процесс находится в состоянии тупика, если он ожидает некоторого события, которое никогда
не произойдет.
Традиционные методы обеспечения целостности разделяемых данных используют такие механизмы как семафоры и мьютексы. Для обеспечения нужного порядка действий, реализуемых разными задачами (например, одна задача
обрабатывает данные, генерируемые другой задачей), используются те же семафоры, а также механизм передачи сообщений.
67
4.5.2. Механизм семафоров
Семафор – это средство, которое используется для синхронизации доступа к ресурсам. Задача, перед тем как использовать ресурс, захватывает семафор. После чего остальные задачи, желающие использовать тот же ресурс,
должны ждать, пока семафор (ресурс) освободится.
Семафор – это глобальная переменная S, значение которой можно опрашивать и менять только при помощи специальных операций P(S) – закрытие
семафора и V(S) – открытие семафора и операции инициализации. Двоичные
семафоры могут принимать только два значения: 0 и 1. Считающие семафоры
(семафоры со счетчиками) могут принимать неотрицательные целые значения.
Участки взаимоисключения по семафору S в задачах обрамляются операциями P(S) и V(S). При инициализации семафора его значение устанавливается
равным S=1, разрешая вход в разделяемый ресурс. Если обрабатывающая программа производит обращение к разделяемому ресурсу, она выполняет операцию P(S) закрытия семафора, устанавливая значение S=0, и тем самым запрещает доступ к ресурсу. По окончании работы с ресурсом программа выполняет
операцию V(S) открытия семафора, устанавливая значения семафора S=1, и
тем самым снимает запрет. Если семафор закрыт (S=0), а другие процессы входят в свои критические участки и выполняют операцию P(S) над переменной
S=0, то выполнение процесса задерживается (процесс блокируется) и его имя
передается в очередь процессов, ожидающих доступа к данному ресурсу. После выполнения операции V(S), если в очереди к семафору есть процессы, то
один из них переводится в состояние готовности и помещается в очередь процессов, претендующих на процессорное время, если в очереди нет процессов,
то устанавливается значение семафора S=1.
При помощи семафора можно реализовать простой механизм синхронизации процессов путем блокирования/возобновления. Допустим, что одному
процессу (процессу 1) необходимо, чтобы он получил уведомление о наступлении некоторого события прежде, чем продолжить выполнение, и что другой
процесс (процесс 2) может обнаружить, что данное событие произошло.
При инициализации семафор устанавливается в 0 и, когда процесс 1 в ходе
своего выполнения доходит до той точки, когда дальнейшее его выполнение
возможно только при условии возникновения ожидаемого события, процесс 1,
выполняя операцию P(S), блокируется. Со временем после наступления события процесс 2 переведет семафор в состояние 1 (выполнив операцию V(S)),
сигнализируя о том, что событие произошло. Тем самым процесс 1 получает
возможность продолжить выполнение (отработку происшедшего события).
Отметим, что подобный механизм будет выполнять свои функции и в том
случае, если процесс 2 обнаружит событие и проанализирует об этом до того,
как процесс 1 выполнит операцию P(S). В этом случае процесс 1 продолжит
свое выполнение без ожидания.
68
Когда в последовательной программе одна процедура вызывает другую и
передает ей данные, обе эти процедуры являются частями единого процесса –
они не выполняются параллельно. Если же один процесс передает данные другому процессу, возникают определенные проблемы. Подобная передача служит примером взаимодействия, или обмена информацией между процессами, и
эту задачу можно решить с помощью семафоров.
Допустим, что два процесса взаимодействуют при помощи разделяемой
переменной (или массива переменных). Процесс 1 производит вычисления и
заносит результат в буфер, а процесс 2 читает этот результат из буфера. Здесь в
простейшем случае потребуется два семафора: один семафор (S1) для обеспечения доступа к разделяемой памяти, а второй (S2) – для обеспечения синхронизации, т.е. чтобы не считывать несколько раз один и тот же результат или не
пропускать результаты при разной скорости работы процессов.
При начальном запуске S1=1 (доступ разрешен) и S2=0 (результат не занесен). Когда процесс 1 вычислил результат, то он последовательно:
 выполняет операцию P(S1), запрещая доступ к ресурсу;
 заносит результат в буфер;
 выполняет операцию V(S2), сигнализируя о том, что результат занесен;
 выполняет операцию V(S1), открывая доступ.
Когда работает процесс 2, то он
 выполняет операцию P(S2), проверяя, занесен ли новый результат;
 если результат занесен, то выполняет операцию P(S1), запрещая доступ
к ресурсу;
 считывает результат из буфера;
 выполняет операцию V(S1) (доступ разрешен).
Семафоры и операции над ними, как правило, реализуются в ядре ОС, где
осуществляется управление сменой задач. Семафор реализуется как защищенная переменная и очередь, в которой задачи могут ожидать выполнения Vопераций. Когда некоторая задача пытается выполнить P-операцию для семафора, имеющего нулевое значение, эта задача освобождает процессор и блокирует себя в ожидании V-операции для данного семафора. При этом ядро ОС
включает блок управления задачей в очередь задач, ожидающих разрешающего
значения данного семафора. Затем ядро предоставляет процессор следующей
задаче, готовой к выполнению.
Задача, находящаяся в очереди данного семафора, со временем становится
первой в этой очереди. Затем при выполнении следующей V-операции эта задача переходит из очереди семафора в список задач, готовых к выполнению.
Естественно, что для задач, пытающихся одновременно выполнить операции P
и V для семафора, ядро гарантирует взаимоисключающий доступ к семафору.
Процессы обычно не имеют доступа к данным друг друга, а ресурсы физических устройств, как правило, управляются специальными задачамисерверами (драйверами). Поэтому наиболее типична ситуация, когда «гонки»
69
за доступ к глобальной переменной устраивают различные потоки, исполняемые в рамках одного программного модуля. Для того чтобы гарантировать, что
критическая секция кода исполняется в каждый момент времени только одним
потоком, используют механизм взаимоисключающего доступа Mutual Exclusion Locks – Mutex (мьютекс).
Мьютекс представляет собой разновидность семафора, который сигнализирует другим потокам, что критическая секция кода уже кем-то выполняется.
Если мьютекс захвачен, то поток, пытающийся войти в критическую секцию,
блокируется. После того, как мьютекс освобождается, один из стоящих в очереди потоков (если такие накопились) разблокируется и получает возможность
доступа к ресурсу.
4.5.3. Синхронизация по времени
Для управления временем необходимо обеспечить средства для измерения
временных интервалов, в которых должны произойти специфические события,
и продолжительности интервалов между событиями. Поэтому необходимые
атрибуты ОСРВ – это средства работы с таймерами.
Как правило, в ОСРВ задается эталонный интервал (квант) времени, который иногда называют тиком (Tick) и который используется в качестве базовой
единицы измерения времени. Размерность этой единицы для разных ОСРВ
может быть разной, как разными могут быть набор функций и механизмы взаимодействия с таймером.
Функции по работе с таймером используют для приостановления выполнения задачи на какое-то время, для запуска задачи в определенное время, для
относительной синхронизации нескольких задач по времени и т.п. Если в программе для ОСРВ присутствует операнд delay(50), то это может означать, что в
этом месте задача должна прерваться (блокироваться), а через 50 мс возобновить свое выполнение, а точнее, перейти в состояние готовности. Все это время
процессор не простаивает, а решает другие задачи, если таковые имеются.
Средства работы с таймерами позволяют измерять и задавать различные
интервалы времени, генерировать сигналы прерывания в конкретные моменты
времени в будущем или по истечении заданных временных интервалов в будущем. Говорят, что процесс работает, если в данный момент времени в его
распоряжение предоставлен центральный процессор. Если речь идет о процессе операционной системы, то это означает, что в данный момент работает операционная система, причем она может принимать решения, влияющие на
функционирование всей системы. Чтобы не допустить монополизации системы
пользователем (умышленной, либо случайной), в операционной системе
предусмотрены механизмы, позволяющие отбирать центральный процессор у
пользователя.
Операционная система устанавливает часы или интервальный таймер с
целью генерации сигнала прерывания в некоторый конкретный момент време-
70
ни для привлечения внимания процессора. По этому сигналу процессор переключается на обработку другого задания. Если работает программа пользователя и происходит временное прерывание, это прерывание вызывает включение в работу операционной системы. Операционная система при этом решает,
какому процессу следует предоставить далее центральный процессор.
В функции программы обработки прерываний по таймеру входит:
 перезапуск часов;
 вызов на исполнение функций ядра, использующих встроенные часы;
 поддержка возможности профилирования выполнения процессов в режимах ядра и задачи;
 сбор статистики о системе и протекающих в ней процессах;
 слежение за временем;
 управление диспетчеризацией процессов.
Программа обработки прерываний по таймеру запускается с высоким приоритетом обращения к процессору, не допуская во время работы прерываний
от других внешних событий (например, от периферийных устройств). Поэтому
программа обработки по таймеру должна работать очень быстро, за максимально короткий временной интервал пробегая свои критические участки, которые должны выполняться без прерываний со стороны других процессов.
Временные прерывания помогают гарантировать приемлемые времена ответа, а также позволяют задачам соответствующим образом реагировать на события, зависящие от времени. Задачи, которые должны работать периодически,
зависят от временных прерываний.
Множество задач одновременно могут запросить сервис таймера, поэтому
если для каждого такого запроса используется элемент в таблице временных
интервалов, то накладные расходы системы по обработке прерываний от аппаратного таймера растут пропорционально размерности этой таблицы и могут
стать недопустимыми. Для решения этой проблемы можно вместо таблицы использовать связный список и алгоритм так называемого дифференциального
таймера, когда во время каждого тика уменьшается только один счетчик интервала времени.
Для точной синхронизации таймера вычислительной системы с астрономическим временем могут применяться специальные часы с подстройкой по
радиосигналам точного времени или навигационные приемники GPS, которые
позволяют воспользоваться атомными часами на борту орбитальных космических аппаратов, запущенных по программе Navstar.
Проблема управления временем имеет свою специфику в распределенных
СРВ, поскольку возникновение одного и того же события может происходить
от таких асинхронных устройств, какими являются процессоры. Эту проблему
можно решить, обеспечивая процессоры распределенной СРВ ссылкой на время указанной точности. Время требуемой точности можно обеспечить путем
синхронизации. В каждом процессоре распределенной СРВ есть местные часы
71
и необходимо синхронизировать их работу в реальном масштабе времени с
определенной точностью, чтобы получить глобальное время в пределах системы.
Алгоритмы синхронизации часов основаны на обмене сообщениями синхронизации времени между узлами системы. Существует два подхода к этим
алгоритмам: централизованный и децентрализованный. Централизованный
подход основан на наличии узла (сервера времени), отвечающего за распределение сообщений синхронизации времени другим узлам в системе. Такой подход уязвим к отказам сервера времени. Децентрализованный подход обладает
избыточностью программных и аппаратных средств, используемых для синхронизации времени, вследствие чего он может обеспечить большие гарантии
относительно защиты от ошибок. В любом случае работа системы не должна
замедляться выполнением алгоритма синхронизации часов.
4.5.4. Планирование задач
Каждый процесс в любой момент времени может находиться в одном из
нескольких возможных состояний. Процесс, который находится в состоянии
выполнения, считается активным. Процесс, ожидающий передачи ему управления, находится в состоянии готовности. Если процесс не может продолжить
выполнение до наступления некоторого события, то говорят, что он заблокирован. Процесс может быть заблокирован по нескольким причинам, в частности он может ожидать завершения операции ввода/вывода, окончания работы
другого процесса, чью выходную информацию он собирается использовать,
открытия семафора.
Важной частью любой ОСРВ является планировщик (диспетчер) задач.
Его функцией является определение того, какая из задач должна выполняться в
системе в каждый конкретный момент времени. Выбор очередной задачи осуществляется диспетчером ОС из числа находящихся в состоянии готовности.
Диспетчеру передается управление, если:
 выполняющаяся задача добровольно отказалась от продолжения работы, блокируя свое состояние или ввиду ее окончания;
 некоторый системный механизм определяет невозможность продолжения выполнения данной задачи, блокирует ее и обращается к диспетчеру с
требованием запустить другую задачу;
 время, отпущенное задаче, истекло;
 произошло событие, означающее, что ранее заблокированная или не готовая к выполнению задача теперь пришла в состояние готовности и у
диспетчера возникает необходимость убедиться в том, что задание, продолжающее выполнение, по-прежнему имеет высший приоритет.
Процесс диспетчеризации предусматривает выполнение следующих действий:
72

сохранение информации в состоянии прерванной задачи с целью обеспечения возможности ее дальнейшего продолжения;
 выбор очередной задачи для выполнения;
 определение способности выбранной задачи к выполнению;
 запуск задачи с соответствующего места.
В СРВ весьма существенно иметь минимальное время реакции, поэтому
используемые способы диспетчирования задач имеют целью ускорить реакцию
на поступающие сигналы. При выборе каждой новой задачи из очереди задач,
ожидающих обработки, диспетчер учитывает приоритеты, а также предписанные значения времени запуска и времени завершения выполнения заданий. На
основе таких критериев устанавливается определенная дисциплина обслуживания.
Приоритеты могут назначаться извне или присваиваться системой автоматически. Они могут быть либо статическими, либо динамическими.
Статические приоритеты назначаются однажды и не изменяются в течение
жизни задачи. Алгоритмы диспетчеризации, основанные на статических приоритетах, называют статическими. Статические алгоритмы определяют приемлемый план выполнения заданий по их априорным характеристикам. Они требуют полной предсказуемости той СРВ, на которой установлены.
Механизмы динамических приоритетов реагируют на изменения в ситуации. Начальное значение приоритета, присвоенное задаче, может действовать в
течение некоторого отрезка времени, после чего назначается другое, более
подходящее значение. Динамический алгоритм, основанный на динамических
приоритетах, модифицирует план во время исполнения заданий. Динамические
алгоритмы гораздо сложнее в реализации, связаны с большими издержками по
сравнению со статическими алгоритмами, однако предполагается, что эти издержки оправдываются повышением реактивности системы.
Приоритеты задачам должны назначаться таким образом, чтобы в максимально возможной степени обеспечить своевременность выполнения задач.
При назначении приоритетов необходимо учитывать, что:
 задачи, связанные с критическими условиями, должны иметь более высокий приоритет по сравнению с задачами, не имеющими таких условий;
 задачи, которые выполняются быстро или требуют немедленного ответа, должны обладать более высоким приоритетом, чем медленные и менее
срочные задачи;
 задачи, которые обслуживают прерывания от периферийных устройств,
должны иметь больший приоритет, чем другие задачи обработки.
Дисциплина планирования (обслуживания) – это правила, согласно которым запросы выбираются из очереди для обслуживания. Все дисциплины обслуживания можно разбить на две группы:
 дисциплины обслуживания без учета приоритетов (бесприоритетное
обслуживание);
73
 дисциплины обслуживания с учетом приоритетов.
В первой группе объединены простейшие дисциплины, обычно не учитывающие ценности поступающих на обслуживание запросов и их временные
характеристики. Для запросов не устанавливается никакой дифференциации
по степени их важности и срочности.
К числу наиболее распространенных дисциплин первой группы относятся:
 круговое циклическое обслуживание, или обслуживание запросов в
порядке их поступления;
 обслуживание в инверсном порядке по принципу «последний пришел
– первый обслужен».
Круговое циклическое обслуживание представляет собой наиболее простую дисциплину обслуживания. При круговом обслуживании предполагается,
что для всех задач стоимость ожидания результатов выполнения их программ
одинакова. Все поступающие заявки формируют общую очередь. Каждая задача, представляющая собой отдельную подпрограмму, выполняется циклически. Преимущества циклического алгоритма:
1) Простота использования и прозрачность для понимания.
2) Если исключить из рассмотрения прерывания, то система полностью
детерминирована. Задачи всегда вызываются в одной и той же последовательности, что позволяет достаточно просто производить анализ «наихудшего случая» и вычислить максимальную задержку.
К недостаткам циклического алгоритма относится отсутствие приоритетности. К тому же задачи вызываются на исполнение независимо от того,
должны ли они в данный момент что-либо делать или нет, поэтому на прикладного программиста ложится максимальная ответственность за работоспособность системы.
В случае работы ЭВМ в режиме разделения времени (с квантованием времени, требуемого на реализацию программ) выполняемые программы по очереди получают одинаковый квант времени. Если за время одного кванта времени выполнение задачи не заканчивается, производится ее прерывание и происходит переход к выполнению очередной задачи. При этом прерванная программа устанавливается в конец очереди. Очередь формируется в порядке поступления заявок, т.е. по принципу «первый пришел – первый обслужен». Если в процессе выполнения задач длина кванта времени не изменяется, то говорят, что обслуживание заявок осуществляется в соответствии с алгоритмом
кругового циклического обслуживания с постоянным квантом времени. Если
же длина кванта изменяется, например, в зависимости от длины очереди, имеет
место алгоритм кругового циклического обслуживания с переменной длиной
кванта времени.
В отличие от кругового циклического обслуживания при обслуживании в
инверсном порядке учитывается ценность заявки. Наиболее ценной считается
та заявка, которая поступила позже других, находящихся в очереди и ожидаю-
74
щих обслуживания. Ценность этой заявки определяется тем, что в ней содержится самая «свежая» информация о состоянии данного объекта или процесса.
При обслуживании в инверсном порядке может быть использована дисциплина обслуживания с выбыванием из очереди устаревших заявок. Очередь
имеет ограничения по длине, т.е. по числу заявок, которые могут в ней находиться в ожидании обслуживания. Если с приходом новой заявки очередь переполняется, ее покидает та из заявок, которая поступила в систему раньше
других заявок, находящихся в очереди. Следовательно, поступившая заявка
замещает в очереди наиболее устаревшую заявку, после чего отправляется на
обслуживание. При такой дисциплине обслуживания суммарная ценность заявок, находящихся в очереди, увеличивается, и уменьшаются убытки из-за задержки обслуживания заявок и их потери. Средняя длина очереди не изменяется, зато уменьшается среднее время ожидания обслуживания заявок, поскольку
теряется часть наиболее долго ожидавших и поэтому наиболее обесцененных
заявок.
Алгоритмы круговой диспетчеризации неприменимы в чистом виде в
ОСРВ. Основной недостаток – непрерывный интервал времени (квант), в течение которого процессором овладеет только одна задача. Диспетчеры ОСРВ
должны иметь возможность сменить задачу до истечения выделенного кванта
времени, если в этом возникла необходимость.
В любой дисциплине обслуживания с учетом приоритетов должны быть
заложены правила, согласно которым принимаются следующие два решения:
 какую заявку из числа ожидающих в очереди (одной или нескольких)
принимать на обслуживание в момент готовности ЭВМ для принятия следующей заявки;
 прерывать или продолжать обслуживание (поскольку оно уже начато)
заявки до его завершения или до окончания кванта времени, выделенного
этой заявке.
В зависимости от того, как принимается первое из указанных решений, приоритетные дисциплины могут быть внесистемными или внутрисистемными. При использовании приоритетной внесистемной дисциплины
решение о выборе следующей заявки на обслуживание принимается внесистемно, т.е. оно зависит лишь от номера приоритета, соответствующего классу, к которому принадлежит задача. Если в системе обслуживания q различных классов заявок, то каждому классу приписывается свой приоритетный
признак (номер) i, причем 1  i  q . Классу задач с высшим приоритетом присваивается признак 1, а классу задач с низшим приоритетом – признак q. Чем
выше уровень приоритета задачи, тем меньше его приоритетный номер. Каждому уровню приоритета соответствует своя очередь, составленная в порядке
поступления заявок этого уровня. Заявка, которая должна обслуживаться следующей, выбирается из непустой очереди заявок наивысшего приоритета.
75
Решение о выборе заявки для обслуживания при использовании внутрисистемной дисциплины принимается внутрисистемно, т.е. оно полностью или
частично базируется на заключениях, касающихся текущего состояния ЭВМ,
например, времени ожидания обслуживания заявками в текущий момент времени.
Если дисциплина диспетчеризации разрешает прерывание обработки задачи при поступлении запроса с более высоким приоритетом, то такая дисциплина получила название вытесняющей политики (или планирование с переключением). Вытесняющая политика необходима в системах, в которых задачи высокого приоритета требуют немедленного внимания. Например, в СРВ не
должен быть задержан не один важный сигнал прерывания.
Приоритетная многозадачность с вытеснением – это наиболее часто используемый в ОСРВ принцип планирования. Основная идея состоит в том, что
высокоприоритетная задача, как только для нее появляется работа, немедленно
прерывает (вытесняет) низкоприоритетную задачу. Другими словами, если какая-либо задача переходит в состояние готовности, она немедленно получает
управление, если текущая активная задача имеет более низкий приоритет. Такое «вытеснение» имеет место, например, когда высокоприоритетная задача
получила ожидаемое сообщение, освободился запрошенный ею ресурс, произошло связанное с ней внешнее событие, исчерпался заданный интервал времени и т.п.
Наиболее простой приоритетной внесистемной дисциплиной обслуживания является круговое циклическое обслуживание, использующее следующее
правило: после того как отведенный интервал времени истекает, диспетчер
просматривает очереди готовых к выполнению задач и передает управление
той задаче, которая имеет наивысший приоритет. Нетрудно заметить, что такой
алгоритм работы может привести к определенным проблемам. Например, в системе работают 7 задач, 3 из которых имеют высокий приоритет, а остальные 4
– низкий. Низкоприоритетные задачи могут никогда не получить управление,
так как высокоприоритетные задачи будут делить все процессорное время
между собой. Единственную возможность для низкоприоритетных задач получить управление предоставляет ситуация, когда все высокоприоритетные задачи находятся в состоянии блокировки. Для решения этой проблемы применяется прием, получивший название равнодоступность. При этом реализуется
принцип адаптивной приоритетности, когда приоритет задачи, которая выполняется слишком долго, постепенно уменьшается, позволяя менее приоритетным задачам получать свою долю процессорного времени.
К числу внесистемных дисциплин планирования относится приоритетное
обслуживание по принципу «чем короче программа, тем выше ее приоритет». Известно, что если относительные сроки выполнения задач не превосходят периодов их активизации и задачи не связаны синхронизационными отношениями (отсутствуют ограничения предшествования, разделяемые ресурсы
и т.п.), то монотонное по срокам назначение приоритетов – «чем короче отно-
76
сительный срок выполнения задачи, тем выше ее приоритет», - является
оптимальным.
Очередность обслуживания устанавливается в порядке возрастания величины  ok , представляющей собой чистое время, затрачиваемое на обслуживание k-ой заявки, без учета потерь времени на ожидание обслуживания в очереди и на прерывания в выполнении соответствующей программы по этой заявке.
В первую очередь обслуживается самая короткая программа, т.е. заявка, на обслуживание которой требуется наименьший объем вычислений. Заявки с одинаковыми значениями  ok обслуживаются в порядке поступления. В период
исполнения для управления такими задачами достаточно иметь статический
алгоритм приоритетного обслуживания с вытеснением. Реализация этого
принципа планирования требует априорных знаний о том, сколько требуется
времени каждой задаче для ее выполнения: значения  ok должны быть известны заранее. Например, при проектировании системы управления технологическим процессом возможны достаточно точные и обоснованные оценки времен
выполнения.
Следующим примером внесистемной дисциплины обслуживания является
приоритетное обслуживание по так называемому правилу  / C в порядке возрастания отношения ok / Ck , где через Сk обозначена величина, определяющая стоимость ожидания обслуживания k-ой заявки, отнесенная к единице
времени, а через  ok - чистое время обслуживания этой заявки. Обслуживание
в соответствии с такой дисциплиной приводит к минимизации функции суммарного штрафа за ожидание обслуживания.
Приоритетные внесистемные дисциплины обслуживания во многих практических ситуациях могут оказаться неприемлемыми, поскольку при их использовании выбор очередной заявки на обслуживание определяется только
уровнем приоритета и не принимается во внимание состояние обслуживающей
системы и другие факторы. В системе определенного назначения может ставиться условие не задерживать заявку любого класса выше заранее установленного предела. Следовательно, при выборе очередной заявки на обслуживание необходимо учитывать время пребывания в системе каждой заявки, находящейся в очереди. Это приводит к использованию внутрисистемных дисциплин обслуживания, к числу которых относятся дисциплины обслуживания с
динамическими приоритетами.
Из динамических алгоритмов отметим дисциплины планирования, получившие название «самый ранний крайний срок сначала» и «ближайшая по
сроку выполнения задача – первая». Обе эти политики работают с динамическими приоритетами.
В дисциплине обслуживания «самый ранний крайний срок сначала», чем
меньше крайний срок задачи, тем выше приоритет назначается на эту задачу.
77
В дисциплине обслуживания «ближайшая по сроку выполнения задача –
первая», чем меньше осталось времени до крайнего срока, тем выше назначается приоритет этой задаче. Выполнение задачи прерывается, если появляется
задача, которая имеет меньшее оценочное время выполнения для ее крайнего
срока. Алгоритм предполагает расчет так называемого «слабого» времени.
«Слабое» время задачи определено как разница между оставшимся временем
до крайнего срока задачи и тем временем, которое требуется задаче до ее выполнения. Реализация алгоритма требует средства для регистрации и измерения временных интервалов: истекших интервалов времени обработки задачи,
оставшихся интервалов времени до крайнего срока. Обязательной компонентой этой политики является интервальный таймер. По истечении заданного
временного интервала таймер генерирует сигнал прерывания, по которому
управление процессором переходит от текущей задачи к диспетчеру ОС. Диспетчер осуществит необходимые действия и продолжится выполнение данной
задачи или управление перейдет к следующей задаче.
Для планирования в однопроцессорных СРВ периодических задач (задач с
жестким крайним сроком) можно использовать выше приведенные политики: «чем короче период задачи, тем выше ее приоритет»; «самый ранний
крайний срок сначала»; «ближайшая по сроку выполнения задача – первая».
При этом в качестве крайнего срока принимается значение периода задачи.
Планирование апериодических задач с мягким крайним сроком может
быть осуществлено посредством фона, т.е. апериодические задачи выбираются
для выполнения только в отсутствии запросов от периодических задач. Следующая возможность планирования апериодических задач – создание периодического сервера, который размещает апериодические задачи через равномерные
промежутки времени при условии, что никакая периодическая задача не выполняется. Сервер может быть организован с сохранением ресурса: т.е. когда
сервер становится доступным, он сохраняет отведенное для выполнения апериодических задач время, даже если в этом нет необходимости (никакие запросы от апериодических задач не поступают). Для этого сервер должен иметь достаточно высокий приоритет. Другой вариант – сервер обменивает свой высокий приоритет с более низким приоритетом периодических задач, если никакие
апериодические запросы не поступают в начале периода сервера.
Планирование спорадических задач (апериодических задач с жестким
крайним сроком) тоже может осуществляться реализацией периодического
сервера, который включается достаточно часто и это гарантирует, что сроки
выполнения спорадических задач не будут нарушены.
Планирование задач в сильно связанных СРВ, организованных как многопроцессорные ВК, может осуществляться отдельным планировщиком, который
несет ответственность за распределение процессоров между прикладными задачами.
В слабосвязанных распределенных СРВ вследствие высокой стоимости
перемещения задания между процессорами и потери предсказуемости, кото-
78
рую это может повлечь за собой, задачи обычно назначаются статически на
процессоры системы. В этих системах планировщик разбивается на две части:
центральный диспетчер процессоров и местные планировщики. Центральный
диспетчер ответственен за назначение задач на распределенные процессоры
системы, местный планировщик (один для каждого процессора) осуществляет
планировочную политику данного процессора для распределения местных запросов на выполнение.
Подсистема ввода-вывода СРВ может потребовать собственного планировщика. Самый простой способ доступа к ресурсам ввода/вывода – использование неприоритетной политики FIFO. Однако при необходимости возможно
применение приоритетных дисциплин обслуживания и для планирования запросов ввода-вывода.
4.5.5. Обеспечение логической корректности системы
межзадачных взаимодействий
Для многозадачных ОС, применяющих алгоритмы планирования с «вытеснением», характерны так называемые времязависимые ошибки. В качестве
примера рассмотрим ситуацию, когда в бортовом компьютере мирно летящего
самолета МИГ-29 среди прочих работают две задачи. Одна из них, взаимодействуя с радиолокационной системой, выдает удаление и направление до цели,
а другая задача использует эти данные для пуска ракет типа «воздух-воздух».
Не исключено, что первая задача, записав в глобальную структуру данных
удаление до цели, будет прервана второй задачей, не успев записать туда
направление до цели. В результате вторая задача считает из этой структуры
ошибочные данные, что может привести к неудачному пуску со всеми вытекающими отсюда последствиями. Прервись первая задача чуть позже, и все
было бы нормально.
Приведенный пример показывает, что ошибки, обусловленные «гонками»,
характерны для работы с любыми ресурсами, доступ к которым имеют несколько задач, и происходят только в результате совпадения определенных
условий, а потому с трудом обнаруживаются на этапе отладки.
Возможные пути решения проблемы.
1) Не использовать алгоритмы планирования задач с вытеснением, что не
всегда приемлемо.
2) Использовать специальный сервер ресурса, то есть задачу, ответственную за упорядочение доступа к ресурсу. В этом случае запрос на изменение значения глобальных данных посылается этому серверу в виде сообщения. Аналогичный подход применим и для физических устройств.
3) Запретить прерывания на время доступа к разделяемым данным. Это
кардинальное решение не приветствуется в СРВ.
4) Использовать для упорядочивания доступа к глобальным данным семафоры.
79
5) Алгоритмы планирования задач (управление доступом к процессорному времени) должны находиться в соответствии с методами управления
доступом к другим ресурсам, а все вместе – соответствовать критериям
оптимального функционирования системы.
Рассмотрим следующий пример (рис.17). Две задачи З1 и З3 разделяют ресурс, доступ к которому закрыт семафором. Низкоприоритетная задача З3 заtбл
З1
t2
t
t3
З2
rr
t
t4
З3
t
r
Приоритет
обозначения
Задача
является
текущей
Задача
ожидает
освобождения
ресурса
Задача
готова
Задача
стать
владеет текущей
ресурсом
r
Рис. 17. Неконтролируемая инверсия приоритетов
хватывает ресурс в момент своего исполнения и вытесняется в момент t1 высокоприоритетной задачей З1. При исполнении задача З1 в момент t3 запрашивает доступ к ресурсу и, так как ресурс уже занят задачей З3, блокируется до
его освобождения.
В момент t4 задача З2 со средним приоритетом прерывает выполнение
критической секции задачи З3. Суть проблемы в том, что задача З2 может владеть процессором сколь угодно долго, в то время как более приоритетная задача З1 вынуждена сохранять блокированное состояние. Эта ситуация получила название неконтролируемой (или непредсказуемой) инверсией приоритетов.
Средства предотвращения неконтролируемой инверсии приоритетов являются необходимым атрибутом СРВ. Одним из таких средств является механизм превентивного (латинское слово ″превентус″ - предупредительный,
предохранительный) наследования приоритетов.
В интересах задачи З1 процессор должен быть отдан задаче З3 , чтобы последняя быстрей освободила разделяемый ресурс. Для этого в момент t3, когда
высокоприоритетная задача З1 обращается к ресурсу r, захваченному низкоприоритетной задачей З3, ядро системы временно повышает приоритет задачи З3 до уровня приоритета задачи З1 (т.е. происходит наследование). В мо-
80
мент освобождения ресурса r задаче З3 возвращается прежнее значение приоритета. Этот несложный приём позволяет ограничить продолжительность инверсии приоритетов (рис. 18).
tбл
З1
t2
З2
З3
Приоритет
rr
t3
t4
t1
rr
t
t
t
Рис. 18. Механизм наследования приоритетов
Однако использование механизма наследования приоритетов не исключает возможности выхода системы из строя по причине взаимной блокировки.
К методам защиты разделяемых ресурсов, которые исключают возможность взаимных блокировок, относится механизм пороговых приоритетов.
Суть механизма порогового приоритета заключается в том, что с каждым
ресурсом связывается некоторый параметр – порог ресурса, равный наивысшему приоритету задачи, которая может захватить этот ресурс. Задаче разрешается захватить ресурс в том случае, когда её приоритет выше, чем пороги
всех тех ресурсов, которые в настоящее время заняты другими задачами. Т.о.,
задача, занявшая ресурс, может блокировать на период своей работы с ресурсом, выполнение более приоритетных задач. Задача, владеющая ресурсом,
наследует высший из приоритетов тех задач, которые блокируются ею в текущий момент времени. В момент освобождения ресурса приоритет задачи снижается до исходного уровня, и её выполнение сразу прерывается более приоритетными задачами, выполнение которых было блокировано.
4.6. Анализ выполнимости комплекса задач
жест-
кого реального времени
В случае систем жесткого реального времени ограничения на сроки выполнения некоторых задач определены жестко в том случае, если нарушение
этих сроков может привести к катастрофическим последствиям (задачи жесткого реального времени (ЗЖРВ)). Разработчики систем жесткого реального
времени должны гарантировать, что при любой реальной нагрузке выполнение всех ЗЖРВ будет завершено в срок.
Рассмотрим СЖРВ, которая в режиме жесткого реального времени решает
множество задач {τ1, τ2, …, τn}. Каждая задача τi выполняется либо строго периодически, либо эпизодически (спорадическая задача), j-ое выполнение задачи τi называется экземпляром τij задачи τi. Таким образом, каждой задаче τi соответствует последовательность {τi1, τi2,…} её экземпляров.
Задачи характеризуются следующими параметрами:
81


моментом порождения tij j-го экземпляра i-ой задачи τij;
периодом Ti i-ой задачи для строго периодических задач, для
спорадических задач Ti=minj(ti(j+1)-tij);

временем выполнения Ci i-ой задачи в наихудшем случае;

уровнем приоритета Pi, назначенным i-ой задаче;

абсолютным сроком выполнения dij j-го экземпляра i-ой задачи
(моментом времени, до наступления которого необходимо завершить
выполнение экземпляра τij);

относительным сроком Dij выполнения экземпляра τij, Dij=dij – tij,
и, если величина разности dij-tij совпадает для всех экземпляров τij, то
i-ая задача характеризуется единым значением относительного срока
Di.
Для нормального функционирования системы необходимо, чтобы параметры задачи удовлетворяли условию: Ci≤Di≤ Ti.
Анализ выполнимости комплекса задач жесткого реального времени основан на расчете максимального значения времени отклика Ri для каждой i-ой
задачи - реального времени выполнения задачи с учетом её вытеснения более
приоритетными задачами.
Рассмотрим комплекс независимых ЗЖРВ. Под независимостью понимается отсутствие таких элементов структуры межзадачных отношений, как использование разделяемых ресурсов и взаимная синхронизация выполнения задач.
Максимальное значение времени отклика (наименее благоприятная ситуация) возникает тогда, когда в момент порождения i-ой задачи порождаются и
все более приоритетные задачи. Момент порождения задачи в такой неблагоприятной ситуации называется критическим. При порождении i-ой задачи в
критический момент имеет место максимальная задержка Wi её выполнение
по причине вытеснения более приоритетными задачами ( задержка диспетчеризации).
Максимальное время отклика складывается из наихудшего времени её выполнения и максимального времени её вытеснения:
(26)
R i  Ci  Wi
Задача всегда будет завершаться своевременно, если максимальное значение времени отклика не превышает относительного срока её выполнения:
(Ri≤Di).
Если j-ая задача имеет больший приоритет, чем i-ая задача, то она будет
вытеснять i-ую задачу. Поскольку считаем, что все задачи независимы, то общее время вытеснения i-ой задачи равно сумме её вытеснения всеми высокоприоритетными задачами:
Wi 
 Wij ,
jhp(i )
(27)
82
где hp(i) - множество более приоритетных задач, чем i-ая задача ; Wij – максимальная задержка выполнения i-ой задачи по причине её вытеснения j-ой
задачей.
R 
(28)
Wij   i C j ,
 Tj 
при этом первый сомножитель (   - знак наибольшего целого) учитывает
число вытеснения i-ой задачи на интервале её существования Ri более приоритетной j-ой задачей.
Подставив (27) и (28) в (26), будем иметь
R 
R i  Ci 
(29)
 i  C j.
T
jhp(i )  j 
Поскольку время отклика Ri фигурирует как в левой, так и в правой частях
уравнения (29), формула рекурсивна. Найти значение Ri можно, итеративно
выполняя вычисления по формуле
Rn 
R in 1  Ci 
 i C j ,
T
jhp(i )  j 


где n – номер шага итерации (n=0,1,2,…), R0i = 0. С возрастанием номера шага
n значения Rni не убывают. При последовательном вычислении значений Rni за
конечное число шагов n достигается такое максимальное значение Rni, при котором Rn+1i = Rni. Это максимальное значение и даёт решение для Ri в выражении (29).
При выполнении комплекса задач, которые используют общие ресурсы,
наихудшее время отклика увеличивается на величину фактора блокирования –
максимально возможного времени Bi блокирования i-ой задачи менее приоритетными задачами, захватившими разделяемый ресурс:
R 
R i  Ci  Bi 
(30)
 i  C j.
Tj 

jhp(i )
Значение времени блокирования i-ой задачи равно наибольшей длине кри-

тической секции k-ой задачи, блокирующий ресурс r, при этом приоритет kой задачи меньше, чем i-ой задачи. Под длиной Ckr критической секции подразумевается максимальный интервал времени работы k-ой задачи с ресурсом
r. Если в структуре задачи имеются критические секции, то необходимо получить оценки наихудшего времени пребывания задачи в своей критической
секции.
С ресурсом r связывается порог ресурса Pr, равный наибольшему приоритету задачи, которая может захватить этот ресурс. Поэтому задача меньшего
83
приоритета, чем порог ресурса, захватывая ресурс, может блокировать выполнение более приоритетных задач.
При поиске максимально возможного времени блокирования учитывается
все те, и только те критические секции, которые удовлетворяют условиям:


k-ая задача использует ресурс r;
k-ая задача имеет приоритет меньший, чем задача i;

приоритетный порог ресурса r выше либо равен приоритету i-ой задачи.
Исходя из этих условий,
Bi  maxk, r Ckr ; k  sr( j), k  lp(i), pr  pi ,
где sr(j) – множество задач, использующих ресурс r; lp(i) – множество задач,
приоритеты которых меньше приоритета i-ой задачи.
Найденное значение Bi подставляется в формулу (30). Решая по выше приведённой методике данное рекуррентное уравнение, получаем значение отклика Ri для случая использования синхронизирующих механизмов с приоритетными порогами при условии вложенности критических секций (ресурсы освобождаются в порядке, обратном их захвату).
Управление задачами (порождение/завершение, удовлетворение запросов
на ресурсы) выполняется операционной системой. Выполнение этих операций
вызывает соответствующие затраты процессорного времени. В частности, при
смене текущей задачи процессорное время тратится на переключение контекста. Учет этого времени может осуществляться путём добавления накладных
расходов ОС к общему времени выполнения задачи. В соответствии с таким
подходом выражение (30) для времени отклика приобретает вид:
R 
R i  (Ci  2Csw )  Bi 
 i  (C j  2Csw ),
T
jhp(i )  j 

где Csw – время переключения контекста.
В таком виде выражение для Ri включает как время выполнения собственно алгоритма задачи, так и время, необходимое для двух переключений контекста: инициализирующего и завершающего задачу.
4.7. Операционная система реального времени QNX
4.7.1. Концепция QNX
QNX (разработка канадской фирмы QNX Software Systems Limited) – сетевая многозадачная многопользовательская много консольная операционная
система, обеспечивающая все неотъемлемые составляющие систем реального
84
времени: механизмы связи и синхронизации процессов, диспетчирования задач на основе приоритетов, быстрое переключение контекста.
Основу QNX составляет небольшое приоритетно управляемое ядро (микроядро), которое обеспечивает весьма малые времена реакции на прерывания
(по сведениям разработчиков от 3 до 11 мкс) и переключения контекста (от 4
до 26 мкс).
Микроядро QNX координирует работу взаимодействующих процессов и
отвечает:
 за связь между процессами (микроядро управляет маршрутизацией
всех сообщений между всеми процессами в системе);
 за диспетчирование процессов (входящий в состав ядра планировщик
решает, какому из запущенных процессов должно быть передано управление);
 за сетевой интерфейс низкого уровня (микроядро осуществляет доставку всех сообщений, предназначенных для процессов на других узлах
сети);
 за первичную обработку прерываний (все аппаратные прерывания сначала проходят через микроядро, а затем передаются соответствующему
драйверу или системному менеджеру).
В отличие от всех остальных процессов ядро никогда не получает управление в результате диспетчирования. Входящий в состав ядра код выполняется
только в результате прямых вызовов из процесса или аппаратных прерываний.
Все услуги ОС за исключением тех, которые выполняются ядром, в QNX
представлены через стандартные процессы. Типичная конфигурация QNX
(рис.19) имеет следующие системные процессы:
 менеджер процессов;
 менеджер файловой системы;
 менеджер устройств;
 менеджер сети.
Менеджер Процессов
Менеджер
Файловой Системы
Микроядро
Менеджер Устройств
Рис. 19. Конфигурация QNX
Менеджер Сети
85
Конфигурация системы может изменяться в широком диапазоне – от ядра
с несколькими модулями до полной сетевой системы, обслуживающей сотни
пользователей.
Системные процессы практически ничем не отличаются от прикладных
программ – они не имеют какого–либо особого интерфейса, недоступного
пользовательским процессам. Единственный критерий, по которому можно
отличить прикладные и системные процессы, состоит в том, что процесс ОС
управляет каким–либо ресурсом в интересах прикладного процесса.
Операционная система QNX изначально проектировалась как сетевая операционная система. Любой процесс на любом компьютере в составе сети может использовать любой ресурс на любом другом компьютере. С точки зрения
приложений не существует никакой разницы между местным и удаленным ресурсом, и использование удаленных ресурсов не требует каких–либо специальных средств. Пользователи могу иметь доступ к файлам по всей сети, использовать любое периферийное устройство, запускать программы на любом
компьютере сети (если имеют надлежащие полномочия). Связь между процессами осуществляется единообразно, независимо от их местонахождения в сети. Каждому узлу в QNX присваивается уникальный номер, который становится его идентификатором. Этот номер – единственный видимый признак того, функционирует QNX как сеть или как однопроцессорная операционная система.
4.7.2. Связь между процессами
Микроядро QNX поддерживает три формы связи между процессами: сообщения, прокси и сигналы.
Связь посредством сигналов является традиционным способом асинхронной связи, которая используется в течение многих лет в различных ОС.
Связь посредством сообщений
Основной формой связи в QNX являются сообщения. Сообщения в QNX –
это последовательность байт, которые передаются от одного процесса к другому, при этом микроядро не анализирует содержание сообщения, передаваемые данные понятны только отправителю и получателю. Для связи друг с другом взаимодействующие процессы используют функции языка программирования Си: для посылки сообщений – Send ( ), для приема сообщений – Receive
( ), для ответа пославшему сообщение процессу - Reply ( ).
Рассмотрим ситуацию, согласно которой процесс А передает данные процессу В, получив которые, процесс В должен дать ответ. На рис.20 изображена
последовательность событий при взаимодействии процессов А и В.
86
Процесс
А
Процесс
В
1) Send ( )
время
Send-данные переданы
Reply-данные переданы
2) Receive ( )
3) Reply ( )
Рис. 20. Взаимодействие процессов А и В посредством передачи сообщений
1) Процесс А посылает сообщение процессу В, вызвав функцию Send ( ),
которая передает соответствующий запрос ядру. В этот момент процесс А переходит в состояние блокировки (SEND-блокирован) и остается в этом состоянии, пока процесс В не вызовет функцию Receive ( ) для получения сообщения.
2) Процесс В вызывает функцию Receive ( ) и получает сообщение от
процесса А. При этом состояние процесса А меняется на REPLY–блокирован.
Процесс В при вызове функции Receive ( ) в данном случае не блокируется, так
как к этому моменту его уже ожидало сообщение от процесса А. Если бы процесс В вызвал функцию Receive ( ) до того, как ему было послано сообщение,
то он бы попал в состояние RECEIVE–блокирован до получения сообщения.
В этом случае процесс, который посылает сообщение, сразу переходит в состояние REPLY–блокирован.
3) Процесс В выполняет обработку полученного от процесса А сообщения
и вызывает функцию Reply( ). Ответное сообщение передается процессу А, который переходит в состояние готовности к выполнению. Вызов функции
Reply( ) не блокирует процесс В, который также готов к выполнению. Какой
их этих процессов будет выполняться, зависит от их приоритетов.
Передача сообщений позволят не только обмениваться данными, но и является способом синхронизации выполнения нескольких процессов. Когда
процессы посылают, получают или отвечают на сообщения, они переходят из
одного состояния в другое. Изменения состояния процесса влияют на то, когда
и как долго они могут выполняться.
Вернемся к рис.20. После того как процесс А вызвал функцию Send ( ), он
не может продолжать выполнение до тех пор, пока не получит ответа на посланное сообщение. Это гарантирует, что выполняемая процессом В по запросу процесса А обработка данных будет завершена прежде, чем процесс А продолжит выполнение. После вызова процессом В функции Receive ( ), он не
может продолжать выполнение до тех пор, пока не получит эти данные.
Когда процессу не разрешается продолжать выполнение, так как он дол-
87
жен ожидать окончания определенной стадии протокола передачи сообщения,
процесс называется блокированным. Если процесс выдал:
 запрос Send ( ) и отправленное им сообщение еще не получено процессом - получателем, то процесс SEND–блокирован;
 запрос Send ( ) и отправленное им сообщение получено процессом получателем, но ответ еще не выдан, то процесс REPLY–блокирован;
 запрос Receive ( ), но еще не получил сообщение, то процесс RECEIVE
– блокирован.
Рис.21 отражает смену состояния процессов в случае передачи сообщения.
Если процесс способен использовать центральный процессор, т.е. не ждет
наступления какого–либо события, то он находиться в состоянии READY (готовность).
SEND блокирован
Send ( )
Send ( )
RECEIVE блокирован
READY
Reply ( )
Receive( )
Receive ( )
другой процесс
REPLY блокирован
Рис. 21. Изменения состояния процесса при передаче сообщений
Аргументами функции Send ( ) являются: идентификатор процесса, которому предназначается сообщение и который используется для обращения к
процессу со стороны операционной системы и других процессов; буфер, в который помещено подлежащее передаче сообщение; буфер, в который следует
поместить ответное сообщение; длина передаваемого сообщения в байтах, и
максимальная длина ответа в байтах.
Аргументами функции Receive ( ) являются: идентификатор процесса, от
которого ожидается сообщение (нулевое значение идентификатора означает,
что данный процесс желает принять сообщение от любого процесса); буфер,
куда будет помещено принимаемое сообщение и максимальная длина принимаемого сообщения в байтах.
Аргументами функции Reply ( ) являются: идентификатор процесса, которому предназначается ответ; буфер, содержащий ответ, и длина ответного сообщения в байтах.
88
Связь посредством прокси
Прокси (proxy – уполномоченный) – это форма неблокирующего сообщения, особо подходящая для извещения о наступлении события, когда процессу,
посылающему сообщение, не требуется вступать в диалог с получателем.
Единственная функция прокси состоит в посылке фиксированного сообщения
определенному процессу, который является владельцем прокси. Подобно сообщениям, прокси могут быть использованы в пределах всей сети.
Используя прокси, процесс или обработчик прерывания может послать сообщение другому процессу, не блокируясь и не ожидая ответа. Типичные примеры использования прокси:
1) Процесс желает известить другой процесс о наступлении определенного события, но при этом не может позволить себе посылку сообщения, так
как в этом случае он оставался бы блокированным до тех пор, пока получатель
не вызовет функции Receive ( ) и Reply ( ).
2) Процесс желает послать данные другому процессу, но при этом ему не
требуется ни ответа, ни какого–либо другого подтверждения того, что адресат
(получатель) получил сообщение.
3) Обработчик прерывания желает известить о поступлении новых данных.
Каждый прокси имеет свой идентификатор. Для создания прокси и для вызова прокси с целью передачи сообщения его владельцу используются функции языка Си.
Связь посредством семафоров
Операционная система QNX так же предоставляет средства синхронизации процессов с помощью семафоров. Для реализации механизма семафоров
используются операции «ожидание» (функция sem wait( ) языка Си) и «сигнализация» (sem post ( )), которые позволяют управлять выполнением процессов,
переводя их в состояние ожидания или выводя из него. Операция сигнализации увеличивает значение семафора на единицу, а операция ожидания уменьшает его на единицу, позволяя реализовать считающий семафор.
При выполнении операции ожидания в случае положительного значения
семафора процесс не блокируется. В противном случае операция ожидания
блокирует процесс до тех пор, пока какой-либо другой процесс не выполнит
операцию сигнализации.
4.7.3. Исчисление времени
В QNX исчисление времени основывается на системном таймере, поддерживаемом операционной системой. Таймер содержит значения Координированного Всемирного Времени относительно 0 часов, 0 минут, 0 секунд 1 января 1970года.
89
Процесс может создавать таймеры, устанавливать их на определенный интервал времени и удалять. При установке таймеров можно использовать один
из двух типов времени: абсолютный (время относительно 0 часов, 0 минут, 0
секунд 1 января 1970года) и относительный (время относительно текущего показания часов).
4.7.4. Диспетчеризация процессов
Диспетчер – это часть микроядра, и он получает управление всякий раз,
когда процесс изменяет свое состояние в результате получения сообщения или
прерывания. Таким образом, диспетчер принимает решение о том, какому
процессу передать управление:
 после разблокировки процесса;
 по истечении временного интервала (кванта) для выполняющегося
процесса;
 когда прерывается текущий процесс.
В отличие от всех остальных процессов ядро никогда не получает управление в результате диспетчеризации. Входящий в состав ядра код выполняется
только в результате прямых вызовов из процесса или аппаратного прерывания.
Приоритеты, присваиваемые процессам, находятся в диапазоне от 0
(наименьший) до 31 (наибольший). Диспетчер выбирает для выполнения следующий процесс, находящийся в состоянии READY, в соответствии с его
приоритетом: выбирается процесс с наивысшим приоритетом.
Чтобы удовлетворить потребность различных приложений, QNX предлагает три метода диспетчирования: FIFO, карусель и адаптивный. Каждый
процесс в системе может выполняться, используя любой из этих методов. Они
действуют применительно к каждому отдельному процессу, а не применительно ко всем процессам системы.
Методы диспетчеризации применимы, когда два или более процесса с
одинаковым приоритетом находятся в состоянии готовности, т.е. непосредственно конкурируют друг с другом. Если процесс с более высоким приоритетом переходит в состояние READY, то он немедленно вытесняет все процессы
с более низким приоритетом. Установка метода диспетчеризации для процесса
производится командой языка Си Set-cheduler ( ).
FIFO–диспетчеризация
При FIFO–диспетчеризации процесс продолжает выполнение до тех пор,
пока он:
 добровольно уступает управление;
 вытесняется процессом с более высоким приоритетом.
Два процесса, которые выполняются с одним и тем же приоритетом, могут
использовать метод FIFO для организации взаимоисключающего доступа к
разделяемому ресурсу. Ни один из них не будет вытеснен другим во время
своего выполнения. Так, например, если они совместно используют сегмент
90
памяти, то каждый из этих двух процессов может обновлять данные в этом
сегменте, не прибегая к использованию какого–либо способа синхронизации
(например, семафора).
Карусельная диспетчеризация
При карусельной диспетчеризации процесс продолжает выполнение, пока
не наступит момент, когда он:
 добровольно уступает управление;
 вытесняется процессом с более высоким приоритетом;
 использовал свой квант времени.
После того, как процесс использовал свой квант времени, управление передается следующему процессу, который находится в состоянии READY и
имеет такой же уровень приоритета. При отсутствии таковых продолжается
выполнение еще на один квант прерванного процесса, если тот не закончил
своего выполнения, в противном случае выбирается процесс из числа готовых
к выполнению со следующим наивысшем уровнем приоритета.
Квант времени в QNX равен 50 мс.
Адаптивная диспетчеризация
При адаптивной диспетчеризации применяются следующие правила:
1) Если процесс использовал свой квант времени и не блокировался, то
его приоритет уменьшается на 1. Это получило название «снижение приоритета», при этом «пониженный» приоритет процесса не будет продолжать снижаться, даже если процесс использовал еще один квант и не блокировался:
приоритет снизится только на один уровень ниже своего исходного приоритета.
2) Если процесс блокируется, ему возвращается первоначальное значение приоритета.
Клиент – управляемый приоритет
В QNX обмен данными между процессами в большинстве случаев организуется с использованием модели клиент/сервер. Серверы выполняют некоторые сервисные функции, а клиенты, посылая сообщения серверу, запрашивают
эти услуги. Количество клиентов обычно больше, чем серверов. Вследствие
этого принято запускать сервер с приоритетом более высоким, чем у любого
из его клиентов.
Если клиент с низким уровнем приоритета посылает сообщение серверу,
то его запрос выполняется под более высоким приоритетом сервера. Это косвенным образом повышает приоритет клиента, так как именно его запрос заставляет сервер выполняться.
Пока для выполнения запроса серверу достаточно короткого промежутка
времени, проблем не возникает. Если же выполнение запроса занимает у сервера более продолжительное время, то клиент с низким приоритетом может
неблагоприятно повлиять на выполнение других процессов, приоритеты которых выше, чем у клиента, но ниже, чем у сервера.
91
Чтобы решить эту проблему, можно поставить приоритет сервера в зависимость от приоритета того клиента, чей запрос он выполняет. Когда сервер
получает сообщение, его приоритет будет установлен таким же, как у клиента,
при этом изменится только приоритет сервера, а его алгоритм диспетчеризации останется неизменным. Если во время выполнения запроса сервер получает другое сообщение и приоритет нового клиента выше, чем у сервера, то приоритет сервера повышается. Фактически новый клиент повышает приоритет
сервера до своего уровня приоритета, позволяя ему закончить выполнение текущего запроса и приступить к обработке запроса нового клиента. Если этого
не делать, то фактически приоритет нового клиента понизится, пока он блокирован на сервере с низким приоритетом
ОС QNX имеет средства для установления клиент–управляемого приоритета для сервера.
5. Планирование решения заданного комплекса
задач на основе временных диаграмм
функционирования объекта управления
5.1. Связь между временной диаграммой решения задач
и требованиями к производительности
числительной системы
вы-
Особенностью работы ВС в масштабе реального времени является обработка информации в промежутки времени, определяемые моментами поступления измерительной информации и выдачи управляющей информации. Временные диаграммы приема данных от источников информации и выдачи
управляющих воздействий исполнительным средствам определяются динамическими характеристиками объекта управления и особенностями его функционирования. Эти внешние по отношению к ВС временные диаграммы не позволяют однозначно выбрать требуемую производительность средств обработки информации.
Рассмотрим следующий пример. Система решает две функциональные задачи: первая задача получает и обрабатывает данные X1 и X2 и выдает данные
X4, вторая – получает данные X3 и формирует данные X5 и X6 (рис.22).
92
X1
X2
X3
1
X4
2
X5
X6
Рис. 22. Граф схемы задач
Задачи относятся к классу периодических, при этом период решения второй задачи (Т2) больше, чем первой (Т1). Временные диаграммы приема и выдачи информации представлены на рис.23.
X1
X3
X4
X5
Т1
Т1
X2
t4
t1
t
t5
t
t2
t8
t3
X6
П1
t
t7
t6
П2
t
t
t
t
t
Рис. 23. Временные диаграммы приема и выдачи данных
Решение первой задачи можно начать, получив данные X1 и X2, т.е. не
раньше момента времени t1. Следовательно, исходные данные X1 должны храниться в памяти в течение времени от 0 до t1 (от t4 до t5 в следующем периоде).
Решение первой задачи должно быть закончено не позднее момента времени t3
– требуемого момента выдачи выходных данных X4.
Решение второй задачи можно начать, получив данные X3 (момент времени t2), а закончить не позднее наименьшего из моментов выдачи результатов
обработки t6. Следовательно, выходные данные X5 следует хранить от момента
t6 до момента t7. Если для решения первой задачи требуется Q 1 операций, а для
решения второй задачи – Q 2 операций, то требуемая производительность для
93
решения задач соответственно равна
Q2
Q1
, П2 
.
П1 
t6  t2
t 3  t1
Предположим, что П1 = 1у.е., П2 = 2у.е. (у.е. – условные единицы). Рассмотрим возможные варианты организации решения задач.
Вариант №1: пусть на временных интервалах от t1 до t2 и от t6 до t8 решается только первая задача, на интервалах от t2 до t3 и от t5 до t6 - обе задачи, на
интервале от t3 до t5 - только вторая задача.
На рис.24 представлены требования к производительности (П) и объему
памяти (ОП) для варианта №1. Требования к производительности распределены неравномерно по времени. Проектируемый по этому варианту ВК должен
обеспечить производительность П(1) = П1+П2 = 3у.е., однако большую часть
времени эта производительность используется не полностью.
П
3
2
1
1+2
1+2
2
1
1
t
ОП
X1
X2
t1
t2
t3
t4
X3
t5
t6
t
t7
t8
Рис. 24. Требования к производительности и объему памяти для варианта №1
Вариант№2: откажемся от одновременного решения задач. Пусть первая
задача решается на временных интервалах от t1 до t3 и от t5 до t8, вторая – на
интервале от t3 до t5.
Требования к производительности и объему памяти для этого варианта
при условии, что (t 5  t 3 )  0.5(t 6  t 2 ) представлены на рис.25. Проектируемый по этому варианту ВК должен обеспечить производительность П(2) = 4у.е.,
при этом вычислительные мощности существенно недоиспользуются, а загрузка памяти возрастает.
94
П
4
3
2
1
2
1
1
ОП
t
X6
X3
X1
t1
t2
X5
X1
t4
t3
X5
t
t5
t6
t7
t8
Рис. 25. Требования к производительности и объему памяти для варианта №2
Вариант №3: пусть первая задача решается на интервалах от t1 до t2 и от t6
до t8, а вторая – на интервале от t2 до t6. Пусть (t 2  t1)  0.5(t 3  t1) . Так как
интервал решения первой задачи сокращается вдвое, то требуемая производительность для ее решения увеличивается в два раза. Требования к производительности и объему памяти по времени для варианта №3 представлены на
рис.26.
П
2
1
1
2
1
t
ОП
X2
X1
X1
X4
t1
t2
t3
t4
t5
X5
t6
t
t7
t8
Рис. 26. Требования к производительности и объему памяти для варианта №3
Требования к производительности для варианта №3 (П(3) = 2у.е.) минимальны среди всех рассмотренных вариантов, кроме того, они распределены
равномерно по времени.
Рассмотренный пример показывает, что различные варианты временной
диаграммы решения задач характеризуются различными требованиями к производительности вычислительной системы и к объему оперативной памяти.
При большом числе задач поиск лучшего варианта методом перебора может оказаться длительной процедурой, поэтому целесообразно использовать
95
метод направленного поиска.
5.2. Статический принцип планирования решения задач с
элементами сглаживания требований к производительности
Исходными данными для планирования решения задач в масштабе реального времени являются:
 временные диаграммы поступления данных от объекта управления;
 временные диаграммы выдачи управляющих сигналов исполнительным механизмам и массивов данных оператору;
 перечень и алгоритмы решаемых задач;
 взаимосвязи между задачами.
Методика построения рациональной временной диаграммы решения задач
включает следующие этапы:
 анализ исходных данных;
 выявление цепочек решаемых задач и построение начальной временной диаграммы решения задач;
 предварительная оценка требований к производительности;
 сглаживание пиковых требований к производительности путем корректировки начальной временной диаграммы.
Определим содержание перечисленных этапов.
Анализ исходных данных
Временные диаграммы решения задач могут быть периодическими и апериодическими. Апериодические диаграммы соответствуют случаю, когда после решения задача будет снова запущена в некоторый заранее неизвестный
момент времени после получения соответствующего сигнала. На практике чаще всего имеют место смешанные диаграммы, когда по одной или нескольким
задачам реализуется апериодический режим, а по остальным – циклический.
Временной интервал исследования должен быть выбран таким, чтобы на
нем решались все задачи, при этом все апериодические задачи представляются
как периодические с заменой случайного интервала между их последовательным решением на его минимально возможное значение.
Анализ исходных данных преследует цель определения начала t нi и окончания t окi решения i-ой задачи с проверкой корректности граф-схем алгоритмов решения задач. Для определенности анализа вводятся следующие условия:
1) если для решения i-ой задачи требуются входные данные
xi1(t1), xi 2 ( t 2 ),..., xin (t n ) , поступающие в моменты t1, t 2 ,..., t n , то момент начала t нi  t к  max{ t1, t 2 ,... t n } , т.е. для начала решения задача должна получить
все входные данные;
2) если в результате решения i-ой задачи формируются выходные данные yi1(t1), yi 2 (t 2 ),...,yip (t p ) , которые должны быть выданы в моменты
96
времени
t1, t 2 ,...,t p ,
то
момент
окончания
решения
i-ой
задачи
t окi  t s  min{t1, t 2 ,...t p} , т.е. к моменту выдачи первого результата задача
должна быть выполнена;
3) производительность ВС по каждой i-ой задаче постоянна на всем интервале решения этой задачи от момента времени t нi до момента времени
t окi :
П , t [t , t ]
.
Пi ( t )  
0,i t  t ,нit  окi
t окi
нi

Момент начала решения задачи в общем случае может определяться:
a) временной диаграммой выдачи данных источником информации;
b) моментом выдачи данных оператором;
c) моментом выдачи данных другой задачей, связанной с данной задачей
информационным обменом.
Момент окончания решения задачи может определяться:
a) временной диаграммой приема данных объектом управления;
b) моментом приема данных оператором;
c) моментом приема данных другой задачей.
В случаях а) моменты t нi и t окi заданы явно, в случаях b) – условно, так
как время реакции человека настолько больше времени решения задачи ВС и
имеет такой большой разброс, что их невозможно показать на временной диаграмме одного временного масштаба.
В случаях с) может иметь место как неявное, так и условное задание моментов t нi и t окi . Например, i-ая задача передает данные для j-ой задачи и готовит данные для управления исполнительным механизмом (ИМ) (рис.27).
Момент t i выдачи данных на исполнительный механизм задан временной диаграммой его работы, следовательно, выходные данные для j-ой задачи так же
будут сформированы в момент t i , так что момент начала решения j-ой задачи
t нj  t i и задан неявно.
Пусть теперь j-ая задача готовит данные для k-ой задачи, которая, кроме
того, получает данные от датчика в момент времени t k , определяемый его
временной диаграммой (рис.27). Чтобы можно было начать решение k-ой задачи в момент t k надо, что бы результат решения j-ой задачи был готов к моменту t k , а это значит, что момент окончания решения j-ой задачи t окj  t к и
задан неявно.
97
от датчика
j
i
ti
на ИМ
tн( j )
ti
tk
k
tок( j )
tk
t
Рис. 27. Неявное задание моментов времени начала и окончания решения
задачи
Условное задание в случаях с) характеризуется тем, что ограничений на
моменты t н и t ок решений задач не наложено. Например, в цепочке из последовательно связанных задач i, i+1,…,i+k, заданы только моменты начала решения t нi первой задачи и окончания решения t ок(i  k) последней задачи в
цепочке, при этом моменты начала и окончания решения промежуточных задач не определены.
По результатам анализа должны быть исключены задачи, решаемые человеком и связанные с ним по входу и выходу. Остальные задачи группируются
в цепочки.
Выявление цепочек решаемых задач.
Структура цепочки такова: первая задача (k-тая) в цепочке характеризуется заданным моментом t нk начала ее решения, последняя задача (l-тая) в цепочке – заданным моментом t окl окончания ее решения, для промежуточных
задач, входящих в цепочку, моменты начала и конца решения не определены.
Все задачи, входящие в цепочку, должны быть упорядочены в последовательности подготовки данных друг для друга. Цепочка может состоять из одной
задачи.
Для каждой j-ой цепочки определяются: момент начала ее решения
t (нj)  t нk , момент окончания ее решения t (окj)  t окl и длительность решения
t (pj)  t (окj)  t (нj) . Распределение моментов t (нj) и t (окj) для всех m цепочек
( j  1, m) дает исходную временную диаграмму решения задач.
Предварительная оценка требуемой производительности
Исходными данными для такой оценки являются: количество операций i ,
выполняемых в ходе решения i-ой задачи, i  1, n , и время решения t (pj) задач
j-ой цепочки, j  1, m .
98
Если в j-ую цепочку входят задачи с номерами M j , то для их решения на
интервале t (pj) требуется производительность:
 i
П j (t) 
iM j
t (pj)


, t  t (нj) , t (окj) . .
m
Расчет величины П( t ) 
 П j (t) дает исходный график требуемой произj1
водительности. Основным его показателем служит отношение П max / П min ,
характеризующее неравномерность нагрузки ( П max и П min – максимальный и
минимальный уровни требуемой производительности соответственно). Практика показывает: если Пmax / Пmin  1.5 , следует переходить к этапу сглаживания требований к производительности.
Сглаживание требований к производительности
Сглаживание требований к производительности заключается в таком преобразовании исходной временной диаграммы решения задач, при котором за
счет снижения П max и увеличения П min отношение Пmax / Пmin  1 .
Для решения задачи сглаживания целесообразно преобразовать исходную
временную диаграмму решения цепочек задач в таблицу. Порядок составления
таблицы следующий. Находится цепочка задач, которая решается за минимальный временной интервал:
t (ps)  min j1, m {t (pj) } .
Временной интервал t (ps) принимается в качестве такта t – шага измерения времени в таблице: t  t (ps) .
Весь временной интервал анализа представляется в виде последовательности тактов, все такты последовательно нумеруются: 1,2,3,…K.
Длительность решения каждой цепочки представляется количеством тактов k j  t (pj) / t, j  1, m. В качестве значения величины kj принимается
наибольшее целое.
На исходной временной диаграмме каждой j-ой цепочке соответствуют
определенные номера тактов, на которых она решается. Множество номеров
тактов для решения задач j-ой цепочки обозначим Rj. Для каждой j-ой цепочке
99
определяется требуемая производительность на l-ом шаге ее решения:
i

П j ( l) 
iM j
kj
,lR j .
Строится таблица, число строк в которой равно числу решаемых цепочек
задач (m), а число столбцов – общему числу тактов анализа (K). Элемент таблицы на пересечении j-ой строки и l-ого столбца представляет собой величину
производительности Пj(l), требуемую для решения задач j-ой цепочки на l-ом
такте.
Таблица дополняется последней (m+1) – ой строкой, в которую записывается суммарная производительность, требуемая на l-том такте решения:
m
П(l) 
 П j (l), l  1, K.
j1
После построения таблицы можно переходить к процессу сглаживания
требований к производительности. Ориентиром в процессе сглаживания слуK
жит средняя производительность на интервале t : П(t ) 
 П(l)/K .
l 1
Каждая цепочка задач и отдельные составляющие ее задачи в большинстве
случаев допускают сдвиг момента начала решения вправо и момента окончания решения влево по оси времени. Такие сдвиги не приводят к нарушению
требований, диктуемых динамикой объекта управления, и могут быть скомпенсированы увеличением объема и времени занятости устройства ОП.
Процедура сглаживания состоит в следующем.
1)Определяется тот такт s, на котором суммарная производительность
П(s) существенно превосходит среднюю производительность П(t ) :
П(s)  maxl1,K П(l)  П(t ) .
2)Величины производительностей цепочек на s–ом такте упорядочиваются
по возрастанию. Последовательно сравнивая величины П j (s) и разность
П(s)  П(t) ,
находится
такая
r–тая
цепочка,
для
которой
Пr (s)  П(s)  П(t) . Исключение решения задач r–ой цепочки на s – ом такте сгладило бы требования к производительности. Можно рассматривать
возможность исключения двух, трех и т.д. цепочек до тех пор, пока требования по всем цепочкам, оставшимся на s-ом такте, не будут примерно равны
величине П(t ) . Выбор исключаемых цепочек представляет собой многовариантную итеративную процедуру и строго не формализован. Допустим, что
такая r-тая цепочка найдена.
100
3)Находится новый вариант временной диаграммы для решения задач r-ой
цепочки. Исключение решения задач r-ой цепочки на такте s означает, что
производительность Пr (s)  0 и необходима соответствующая «компенсация» этой потери производительности на других тактах. Возможны следующие варианты:
a)
не изменять время начала и окончания решения задач r-ой цепочки: решение задач r-ой цепочки просто прерывается на s-ом
такте;
b)
изменить момент начала решения задач r-ой цепочки так, чтобы
c)
решение начиналось на (s+1)-ом такте (сдвинуть t (нr ) вправо);
изменить момент окончания решения задач r-ой цепочки так,
r)
чтобы решение заканчивалось на (s-1)-ом такте (сдвинуть t (ок
влево).
Во всех случаях необходимо провести пересчет требуемой производительности на оставшихся тактах.
4)Строится измененная таблица производительности. Для нее повторяется
процедура сглаживания, начиная с первого шага.
Процесс сглаживания заканчивается тогда, когда на всех тактах достигается достаточная степень близости П(l) к П(t ) .
После этого окончательно определяются моменты начала и окончания решения задач и требуемая производительность.
Пример. Длительность такта t  10 мс, интервал анализа 120 мс разбит на
К=12 тактов. Значения требуемой производительности для решения шести
(m=6) цепочек задач, определенные на основании исходной временной диаграммы, представлены в таблице №1. Для удобства записи в таблице 1у.е.=10 6
опер/с.
Таблица №1
№
цепочки
задач
1
2
3
4
5
6

1
2
3
4
5
5
5
4
5
4
4
4
5
9
9
4
4
Номер такта
6
7
8
4
7
11
7
2
9
7
2
9
9
10
11
2
2
8
8
10
8
2
12
7
7
101
П max  11 у.е.; П min  2у.е.; П max / П min  5.5 у.е., т.е. целесообразно провести сглаживание требований к производительности.
На основании данных последней строки таблицы №1 среднее значение
требуемой производительности П(t )  7 у.е. Требования к производительности максимальны на шестом такте: П(6)  11 у.е.
Так как П(6)  П(t )  4 у.е., то следует исключить решение цепочки 2 на
шестом такте. Сдвигаем конец решения цепочки 2 влево на один такт, в результате чего требования к производительности на тактах со 2-го по 5-ый составят 5 у.е.
Теперь наибольшее значение производительности (П max  10 у.е.) требуется на 2-ом, 3-ем и 10-ом тактах. Начнем анализ со второго такта и сдвинем
начало решения цепочки 2 на один такт вправо. После этого требования к производительности для решения задач второй цепочки на тактах с 3-го по 5-ый
составляет 6,7 у.е.
Переходим к третьему такту: выбираем 1-ую цепочку, сдвигаем окончание
ее решения на 2-ой такт, в результате для решения задач 1-ой цепочки на тактах 1-ом и 2-ом потребуется 7,5 у.е.
Рассматриваем 10-ый такт. Цепочка, подлежащая «выравниванию», – четвертая. Сравнивая требования, предъявляемые к производительности на каждом такте ее решения (П4 (l)  2у.е.,
l  7,8,9,10 ) , со средней величиной
П(t )  7 у.е., приходим к выводу, что ее решение можно сосредоточить в 9ом такте.
Результаты сглаживания представлены в таблице №2.
Таблица 2
№
Номер такта
цепочки
1
2
3
4
5
6
7
8
9 10 11 12
задач
1
7,5 7,5
2
6,7 6,7 6,7
3
7
7
7
4
8
5
8
8
6
7
7,5 7,5 6,7 6,7 6,7 7
7
7
8
8
8
7

В результате сглаживания П max  8у.е, П min  6.7 у.е., П max / П min  1.12 .
На основании табл.2 с учетом t  10 мс можно построить временную диаграмму решения задач.
102
6. Сетевые технологии в системах реального времени
6.1. Промышленные сети
В системах реального времени, особенно производственного типа, в последние годы находят широкое применение сетевые технологии. Область их
применения – сложные объекты и технологические процессы, состоящие из
множества распределённых подсистем, характеризующихся высокими требованиями к качеству управления.
Современная микроэлектроника позволяет реализовать функции автоматизации вне центрального процессора, например, в станках, агрегатах, датчиках, исполнительных механизмах. Смещение функциональности в сторону периферийного технологического оборудования потребовало новых видов коммуникаций. Коммуникационная технология построения информационной сети,
объединяющей интеллектуальные контроллеры, датчики и исполнительные
механизмы, в зарубежной технической литературе определяется термином
Fieldbus (полевая шина или промышленная сеть).
Оригинальный термин field (область, сфера, место приложения) определяет область, связанную непосредственно с производственной зоной, где работают датчики (давления, температуры, уровня,…), контроллеры, исполнительные механизмы (клапаны, реле, приводы,…). Задача промышленной сети состоит в организации физической и логической связи датчиков и исполнительных механизмов с системным интеллектом, роль которого выполняют программируемые логические контроллеры (ПЛК) или персональные компьютеры (ПК).
К промышленным сетям предъявляются жесткие требования по модульности, надёжности, защите от внешних помех, простоте в построении, монтаже и
программировании логики работы. Промышленная сеть должна иметь: жесткую детерминированность (предсказуемость времени доставки информации),
доступность и простоту организации физического канала передачи данных,
повышенную помехоустойчивость при работе в промышленной среде, минимальную стоимость устройств аппаратной реализации (особенно на уровне
контроллеров).
Ключевые требования – детерминированность поведения, предполагающая, что все возможные события в сети могут быть заранее четко определены,
и повышенная надёжность передачи данных.
К промышленным сетям применима Эталонная Модель Взаимодействия
Открытых Систем (ЭМВОС), которая структурирует сетевые функции по 7
уровням, однако большинство промышленных сетей поддерживает только три
уровня из семи, а именно 1-ый (физический), 2-ой (канальный) и 7-ой (прикладной).
103
На физическом уровне определяются характеристики канала связи и параметры сигналов. Канальный уровень обеспечивает передачу данных между
устройствами сети: формирует основную единицу передаваемых данных –
кадр, отвечает за дисциплину доступа к каналу связи, управляет механизмом
защиты и восстановления данных в случае ошибок при передаче. Прикладной
уровень обеспечивает поддержку прикладных программ и процессов конечного пользователя и управление взаимодействием этих программ с различными
объектами сети. Все остальные уровни считаются избыточными.
Наиболее развитые промышленные сети решают основную часть задач
аппаратно, оставляя программную реализацию на прикладном уровне. Самые
дешёвые сети (например, ModBus) на физическом уровне используют интерфейс RS-232 или RS-485, а все остальные функции, начиная с канального
уровня, решают программным путём.
Промышленные сети организованы как локальные сети, поэтому основные
топологии (способы соединения устройств в сети) – это шина, кольцо, звезда.
В шинной структуре все узлы подключены к одной среде передачи, и каждый адресат получает предназначенную ему информацию без посредников.
Шинная топология требует жёсткой регламентации доступа к среде передачи.
Основные преимущества этой топологии – простота и дешевизна, легкость переконфигурирования.
В кольцевой топологии информация передаётся от узла к узлу по физическому кольцу. Адресат копирует в свой буфер предназначенные ему данные и
регенерирует их вместе со своей квитанцией подтверждения приёма следующему устройству в кольце. Когда отправитель данных получает из кольца
свою информацию с корректным подтверждением её приёма, это означает, что
информация получена адресатом. Использование протокола с циклической передачей маркера позволяет сетям с такой топологией обеспечить абсолютную
предсказуемость и хорошую пропускную способность. Основными недостатками кольцевой топологии являются: высокая стоимость, нерациональное использование сетевого трафика и потеря всей синхронизации сети в случае сбоя
или отключения хотя бы одного из узлов.
В топологии "звезда" каждый периферийный узел сети имеет собственную
среду соединения с центральным. Периферийные узлы могут обмениваться
информацией друг с другом только через центральный узел. Преимущества
этой топологии: в среде передачи данного периферийного узла присутствует
только принадлежащий ему трафик, выход из строя периферийного узла не
влияет на работоспособность сети. Недостаток – центральный узел должен
быть исключительно надёжным устройством, как в физическом смысле, так и
в смысле логического построения: периферийные узлы должны иметь одинаковые возможности доступа.
Одним из наиболее значимых параметров, определяющих характеристики
функционирования локальной сети с точки зрения времени доставки данных
адресату, является способ доступа к физическому каналу передачи данных.
104
Существуют два основных способа доступа: централизованный и децентрализованный.
В случае централизованного доступа выделяется узел, отвечающий за
распределение доступа к среде передачи. В промышленных сетях нашёл применение централизованный метод доступа, получивший название "ведущий/ведомый" (master/ slave). Право инициировать передачу или приём данных имеет только ведущий узел. Он адресует каждого подчинённого участника, передаёт ему данные или запрашивает их у него.
В случае децентрализованного способа возможно использование двух его
моделей: случайный доступ и передача маркера.
Случайный доступ с проверкой несущей и обнаружением конфликтов
получил широкое распространение в шинных топологиях офисных систем.
Технология доступа основана на прослушивании канала связи всеми узлами
сети и генерации повторной попытки занятия канала связи через случайный
промежуток времени, если обнаружена попытка одновременного доступа к каналу нескольких узлов. Этот метод характеризуется непредсказуемым значением времени доступа. Однако модификация этого метода, позволяющая сделать время доступа предсказуемым, используется в промышленных сетях типа
CAN и LON.
Большое число промышленных сетевых протоколов используют метод передачи маркера (как в шинных, так и в кольцевых структурах). Маркер передаётся в цикле от одного узла к другому: в кольцевой топологии последовательность передачи маркера определяется расположением узлов на кольце, в
шинной топологии передача маркера осуществляется по логическому кольцу,
которое определяется на стадии проектирования системы.
Универсальная промышленная сеть должна решать следующие прикладные задачи:
 - автоматизация на уровне периферийного оборудования;
 - автоматизация на уровне управления технологическим процессом.
В первом случае решаются задачи непосредственного управления датчиками, регуляторами, исполнительными механизмами и т. п. Автоматизация на
уровне управления технологическим процессом основана на использовании
программируемых (или промышленных) контроллеров.
В соответствии с решаемыми прикладными задачами различают промышленные сети датчикового (sensor/actuator – датчик/исполнительное устройство) уровня и уровня промышленных контроллеров (системный уровень).
Датчиковые сети объединяют внешние устройства технологического
процесса: датчики, измерительные преобразователи, переключатели, приводы
и т.п. Они используются для опроса датчиков и управления работой разнообразных исполнительных механизмов. По шине sensor/actuator передаются значения измеряемых величин, состояния переключателей, управляющие сигналы
на привод и т.п. В зависимости от области применения к сетям датчикового
типа могут предъявляться повышенные требования к времени реакции (от
105
1мс), следовательно, и к времени передачи данных фиксированного объёма.
Ещё одно требование – низкая стоимость среды передачи и интерфейса для
подключения датчика (по крайней мере меньше стоимости самого датчика).
Параметры сетей датчикового уровня:
 объём передаваемых данных на одно обращение к шине небольшой, от
1 до 8 байт;
 длина шины до 100 метров;
 допустимое число узлов на шине до100.
Типичными представителями датчиковых сетей являются: ASI (Actuator
Sensor Interface); CANbus; FF(Foundation Fieldbus); Profibus-DP, DA.
На уровне промышленных контроллеров на основании собранной на датчиковом уровне информации решаются задачи по управлению процессом на
уровне производственного участка. По шине этого уровня передаются уже обработанные данные, при этом предъявляются высокие требования к времени
обмена данными. Эти требования обеспечиваются высокой скоростью передачи данных, что приводит к высокой стоимости шины. Параметры сетей уровня
промышленных контроллеров:
 объём передаваемых данных от восьми байт до нескольких сотен байт;
 длина шины до 1 км;
 количество узлов на шине от 5 до 300.
Типичными представителями промышленных сетей этого уровня являются:Bitbus, Profibus, LON, WorldFIP, CAN.
Наиболее развитые протоколы промышленных сетей, такие как CAN, Profibus, FF, могут работать и на датчиковом уровне и на уровне промышленных
контроллеров.
Рассмотрим насколько конкретных сетевых решений для СРВ, представляющих наибольший интерес по их популярности на рынке.
6.2. Сетевой стандарт CAN
Сеть CAN (Controller Area Network) была разработана в Германии компанией Robert Bosh GmbH для автомобильной промышленности, когда возникла необходимость (в конце 80-ых годов прошлого века) в управлении разраставшейся электропроводкой автомобиля. Эта задача была решена путём использования недорогой последовательной сетевой структуры. В настоящее
время сети CAN активно применяются и за пределами автомобильной промышленности – от стиральных машин до ракет.
Мировое признание сетей CAN закреплено в международном стандарте
ISO11898. Стандарт определяет протоколы физического уровня и двух подуровней канального: доступа к среде передачи и управления информационным
каналом.
Сеть CAN предназначена для сбора информации и управления в реальном
масштабе времени. Топология сети – шинная. Узел сети состоит из CAN-
106
контроллера, который обеспечивает взаимодействие с сетью, и вычислителя
(обслуживающего процессора). Число узлов, подключаемых к шине, протоколом не лимитируется. Практически такое ограничение налагается задержкой
передачи или предельной нагрузкой на канал. Максимальное расстояние между узлами 1 км.
Физический уровень определяет, как именно будут передаваться сигналы,
их электрические уровни и скорость передачи. Скорость передачи данных по
шине определяется её длиной: чем длиннее шина, тем меньше скорость передачи. Максимальная скорость передачи 1 Мбит/с при длине шины 60 м.
Канальный уровень отвечает за синхронизацию, арбитраж, доступ к шине,
разделение сообщений на кадры, определение и передачу ошибок.
Протоколом доступа к среде передачи определена технология множественного (случайного) доступа с проверкой несущей и разрешением конфликтов. Возможные конфликты, связанные с одновременным запросом шины, разрешаются на основе приоритетности сообщений – право на работу с
шиной получает тот узел, который передаёт сообщение с наивысшим приоритетом. Разрешение конфликтов производится аппаратурой по принципу побитового сравнения сетевых адресов конфликтующих устройств.
В CAN-протоколе определены следующие типы кадров:
- кадр данных, переносит данные от отправителя к получателю;
- кадр удалённого запроса, запрашивает передачу определённого кадра
данных;
- кадр сообщения об ошибке, вызывает повторную передачу;
- кадр уведомления о перегрузке канала, требует дополнительной задержки между передачей кадров.
Последние два кадра являются служебными.
Рассмотрим формат кадров данных и удалённого запроса (рис. 28).
Концевик
Заголовок
Поле управления
Поле арбитража
SOF
Идентификатор
RTR
RO
R1
DLC
Данные
CRC ACK EOF
Рис. 28. Формат кадра
Кадр состоит из стартового поля SOF (Start of Frame), поля арбитража,
поля управления, поля данных, контрольной суммы CRC, поля отклика АСК,
поля конца кадра EOF и меж кадрового интервала.
Поле SOF содержит один бит (логический ноль). Поле арбитража содержит 11 бит идентификатора и завершается битом RTR (Remote Transmission
Request) удалённого запроса передачи. В информационном кадре бит RTR=0,
для кадра удалённого запроса бит RTR=1. Идентификатор предназначен для
адресации сообщений и используется механизмом арбитража.
107
Поле управления содержит 6 бит. Четыре бита DLC (Data Length Code)
указывают количество байт в поле данных, биты R0 и R1 зарезервированы для
будущего использования.
Поле данных содержит передаваемые данные, количество передаваемых
байт данных указывается в поле DLC. Максимальный размер поля данных 8
байт.
Циклическая контрольная сумма (CRC) вычисляется на основании образующего полинома
g(x)=x15+x14+x10+x8+x7+x4+x3+1.
Поле отклика АСК содержит 2 бита. первый первоначально имеет уровень
логической единицы, а узлы-получатели меняют его значение на логический
ноль. Тем самым отправителю сообщается, что передача прошла успешна.
Второй бит поля АСК всегда имеет уровень логической единицы.
Поле конца кадра EOF (End of Frame) содержит семь единичных бит. За
этим полем следует межкадровый интервал из трёх единичных бит, после чего
может следовать очередной кадр.
Кадр удалённого запроса аналогичен по структуре кадру данных, но не
имеет поля данных. Эти кадры имеют специальное назначение: посылая кадр
запроса в сеть, его отправитель требует передачи кадра данных с тем же идентификатором, который он установил в кадре запроса. Кадры RTR предназначены для быстрого получения нечасто используемых данных.
Передачу по шине "слышат" все узлы. Когда шина свободна от передачи,
узел может начать передавать. Если два или больше узла начинают передавать
в одно и то же время, конфликт разрешается при помощи неразрушающего
побитового алгоритма арбитража, использующего поле арбитража (см. рис.28).
Каждый передающий узел сравнивает бит, который он выставил на шину, с
битом, который пытается передать конкурирующий узел. Доминирующий
уровень – логический ноль (активный бит). Одновременная передача бита с
доминирующим уровнем и бита с рецессивным уровнем (логическая единица,
пассивный бит) даёт в результате уровень логического нуля.
В течение передачи поля арбитража каждый передатчик контролирует текущий уровень на шине и сравнивает его с битом, который он выставил на
шину. Если значения равны, узел продолжает передачу. Если узлом был передан пассивный бит, а на шине обнаружен уровень логического ноля, то данный
узел понимает, что конфликтует и теряет право передачи, поэтому он прекращает передачу последующих данных (рис.29). Узел, который потерял шину,
может сделать новую попытку передачи, когда завершится текущая передача.
Если одновременно начнётся передача кадра данных и запроса с равными
идентификаторами, то предпочтение будет отдано кадру данных, так как бит
RTR входит в поле арбитража.
108
поле арбитража
Передача 1-го узла – 100110110110
Передача 2-го узла – 100110111…
момент прекращения передачи
Результат
100110110110
Рис. 29. Разрешение конфликта по CAN-протоколу
Механизм арбитража гарантирует, что ни информация, ни время не будут
потеряны. Хотя конфликты и возникают, но решаются предсказуемо и в предсказуемое время. Именно это позволило CAN-протоколу занять достойное место в различных отраслях.
Код арбитража одновременно является идентификатором кадра – определяет назначение передаваемых данных (т.е. кому они предназначены). Идентификатор с самым низким числовым значением выигрывает арбитраж, следовательно, идентификатор определяет приоритет передаваемых данных. Значение идентификатора определяется передаваемым сообщением и задаётся на
фазе инициализации сети. Разработчик системы может влиять на приоритет
сообщений с тем, чтобы самые важные из них не ожидали в очереди на отправку. Это свойство CAN позволяет строить сети, поддерживающие реальное
время.
Каждый узел сети на основании идентификатора передаваемых данных,
решает, получать или нет это сообщение. Адрес назначения устанавливается в
приёмнике CAN-контроллера путём настойки входных фильтров соответствующих микросхем. Любое сообщение, которое проходит через входные
фильтры, должно быть обработано обслуживающим процессором данного
CAN-контроллера. Микросхемы, поддерживающие CAN-протокол, могут
иметь одиночный фильтр (настроенный на приём единственного идентификатора) или многократные фильтры. В связи с этим передача данных по шине
может быть воспринята одним узлом, группой узлов, всеми узлами или вообще не воспринята.
CAN – это протокол, ориентированный на использование в условиях помех, в связи с чем CAN-сеть обладает высокой помехозащищённостью. CANпротокол обеспечивает механизмы обнаружения следующих типов ошибок.
Во-первых, передатчик всегда проверяет сигнал на шине и сравнивает с
тем, что он послал. Если посланный бит и результирующий уровень на шине
не равны, фиксируется разрядная ошибка. При этом обнаружение активного
бита, когда передаётся пассивный бит, не выдаёт ошибку в течение передачи
поля арбитража и первого бита поля АСК (см. рис.28)
Передатчик всегда передаёт первый бит поля АСК как пассивный. Все
приёмные узлы, независимо от того являются они пунктом назначения или
нет, во время приёма этого бита посылают на шину активный бит. Передатчик
109
прослушивает шину и, если обнаруживает на ней уровень логического ноля, то
считается, что сообщение принято, в противном случае фиксируется ошибка
подтверждения.
Некоторые поля в кадре CAN имеют определённое значение и расположение относительно других полей кадра. Если обнаруживается неправильный
формат, то имеет место ошибка формы.
Каждый кадр содержит поле контрольной суммы. Если контрольной суммой обнаружена ошибка, то имеет место ошибка контрольной суммы.
Когда узел обнаруживает одну из перечисленных ошибок, он передаёт
кадр ошибки. Передача кадра ошибки отменит текущую передачу и заставит
все узлы отбросить текущий кадр. При выявлении ошибки передача кадра повторятся.
Благодаря этим механизмам подсчитано, что вероятность не выявленной
ошибки составляет менее 4,7 *10-11.
Многие механизмы CAN-протокола работают благодаря тому, что все
CAN-контроллеры принимают сигналы с шины почти одновременно, т.е. один
и тот же бит принимается всеми контроллерами сети в одно и то же время.
Каждый CAN-контроллер принимает бит в течение определённого промежутка времени, отсчитываемого по системным часам. Тактовый генератор CANконтроллера синхронизируется с системными часами (тактами канала). Благодаря синхронизации узлы не имеют права начать передачу асинхронно: только
в момент времени, определённый тактом. Именно это делает возможным побитовый арбитраж, но ограничивает длину шины.
Стандарт CAN (ISO 11898) ограничивается спецификацией двух нижних
уровней ЭМВОС и не регламентирует, каким образом конкретные приложения будут передавать специфичные для себя данные по сети CAN. Таким образом, возникает необходимость в использовании какого-либо протокола
верхнего уровня HLP (High Level Protocol).
Протокол HLP определяет механизмы передачи данных любой длины,
процедуры начальной инициализации, распределение идентификаторов, сетевое управление и т.п. Существует множество высокоуровневых протоколов на
основе CAN-технологий. Наиболее известными из них являются:CAL (CAN
Application Level), CANopen, SDS (Smart Distribution Systems), Device Net.
6.3. Промышленная шина PROFIBUS
Еще одним известным сетевым решением для распределенных систем, работающих в реальном времени, является промышленная сеть PROFIBUS
(PROcess Field BUS).
Протоколом PROFIBUS определяются технические и функциональные
характеристики последовательной промышленной шины, которая связывает
распределенные цифровые устройства ближнего радиуса действия (уровень
110
датчиков/исполнительных устройств) и среднего радиуса действия (уровень
производственного участка, цеха, т.е. системный уровень).
Под общим названием PROFIBUS существует совокупность трех различных, но совместимых протоколов: FMS, DP, PA.
PROFIBUS-DP (Distributed Periphery) – это предназначенный специально
для критичных ко времени взаимодействий между системами автоматизации и
распределенным периферийным оборудованием . Используется для построения быстрых детерминированных систем сбора данных и управления с одним
ведущим узлом.
PROFIBUS-FMS – это протокол общего назначения, использующий для
выполнения экстенсивных связных задач с произвольными или периодическими передачами данных службу Спецификации Сообщений Filedbus
(Fieldbus Message Specification). Применяется для связи контроллеров и интеллектуальных устройств связи с объектом при решении задач взаимодействия на верхнем (цеховом) уровне и промышленном (field) уровне иерархии
промышленных сетей. Позволяет в одной сети организовать несколько ведущих узлов.
PROFIBUS-PA (Process Automation) представляет собой расширение DPпротокола в части физической среды передачи, основанной на реализации
стандарта IEC1158-2 для организации передачи во взрывоопасных средах.
Применяется для построения сети, соединяющей исполнительные устройства,
датчики и контроллеры, расположенные непосредственно во взрывоопасной
зоне. Позволяет оконечным устройствам запитываться непосредственно от канала связи.
Протокол PROFIBUS-DP реализует функции, относящиеся к 1-ому и 2ому уровням ЭМВОС, и набор функций, обеспечивающих интерфейс к прикладной задаче пользователя (пользовательский интерфейс). Отсутствие прикладного уровня обеспечивает быструю и эффективную технологию передачи
за счет прямого доступа к функциям канального уровня.
Протокол PROFIBUS-FMS реализует функции, относящиеся к 1-ому, 2ому и 7-ому уровням ЭМВОС. Прикладной уровень содержит спецификацию
сообщений FMS и низкоуровневый интерфейс LLI (Lower Layer Interface).
Спецификация FMS содержит прикладной протокол и обеспечивает пользователя широким уровнем коммуникационных служб. Низкоуровневый интерфейс LLI реализует часть функций отсутствующих уровней (с 3-его по 6-ой) и
обеспечивает для FMS доступ к уровню 2, независимый от устройств.
Архитектура составляющих частей протокола PROFIBUS приведена на
рис. 30. Все три типа протокола используют общий канальный уровень. В
PROFIBUS уровень 2 называется Fieldbus Data Link (FDL). Канальный уровень ответственен за управление доступом к передающей среде, за поддержание целостности информации, а так же за выполнение протокола сообщений.
111
№
уровня
7
36
2
1
PROFIBUSFMS
PROFIBUSPROFIBUS-PA
DP
Функции пользовательского интерфейса
FMS, LLI
нет
нет
Не используются
FDL
RS-485
IEC 1168-2
Рис. 30. Архитектура протокола PROFIBUS.
Для управления доступом к передающей среде в протоколе PROFIBUS
учтено два важных требования:
1) В случае взаимодействия между сложными устройствами автоматизации с равными правами доступа к шине (ведущими устройствами) должна
быть гарантия того, что каждая из этих станций для выполнения своих задач
взаимодействия получит необходимый доступ к шине в течение точно заданного временного интервала.
2) В случае взаимодействия между сложными устройствами автоматизации и простыми периферийными устройствами (ведомыми) периодический
обмен информацией, осуществляемый в реальном масштабе времени, должен
организовываться как можно проще и быстрее.
В связи с этим для взаимодействия между ведущими узлами протокол доступа к передающей среде включает метод передачи маркера, а для взаимодействия между ведущими и ведомыми узлами – метод ведущий/ведомый. Таким образом, в PROFIBUS реализуется схема ведущий/ведомый с переменным ведущим (гибридный метод).
Процедура маркерного доступа гарантирует, что права доступа к шине получит каждый ведущий узел. Маркер циркулирует между всеми ведущими узлами в рамках предопределенного времени оборота от узла с меньшим адресом к узлу с большим. После того, как ведущий узел получает маркер, он становится на определенное время управляющим и может вести опрос ведомых и
взаимодействовать с другими ведущими узлами. Управляющий узел для получения данных от ведомых узлов или для передачи им данных использует метод ведущий/ведомый.
Используемый в PROFIBUS гибридный метод доступа дает возможность
организовать системы следующей конфигурации:


систему, в которой применяется только метод ведущий/ведомый;
систему, в которой применяется только метод ведущий/ведущий (с передачей
маркера);

систему, в которой применяется комбинация этих методов.
На рис.31. показана структура PROFIBUS с тремя ведущими узлами и семью ведомыми. Три ведущих узла образуют логическое маркерное кольцо.
После того, как ведущий узел получает маркер, ему на определенное время да-
112
ется разрешение выполнять на шине функции управляющего устройства. Он
может взаимодействовать с ведомыми станциями по методу ведущий/ведомый
и со всеми ведущими узлами по методу передачи маркера.
Логическое маркерное кольцо
Ведущие узлы
ПЛК
ПЛК
ПЛК
PROFIBUS
1
2
3
4
5
6
7
Рис. 31. Структура PROFIBUS
Ведомые устройства – это периферийные устройства ввода/вывода, измерительные и управляющие приемопередатчики. Они не имеют прав доступа к
шине и могут лишь подтверждать принятые сообщения или передавать сообщения ведущему узлу по его запросу. На рис.31. связи между ведущим узлом и
соответствующими ему ведомыми узлами показаны пунктирными линиями.
Уровень 2 PROFIBUS работает в режиме без процедуры установления соединения. Он использует как передачу точка – точка, так и многопунктовую
связь (широковещательную и групповую).
Передающая среда в PROFIBUS-FMS и PROFIBUS-DP (физический
уровень, рис.30.) строится на основе интерфейса RS-485.
Для приложений с низкими требованиями ко времени реакции системы
возможна совместная работа протоколов PROFIBUS-FMS и PROFIBUS-DP.
Кроме того, возможно одновременное выполнение протоколов FMS и DP на
одном устройстве. Преимущество смешанного использования протоколов:
можно уменьшить количество применяемых устройств, потому что одно и то
же устройство может использоваться либо с DP-функциями (для высокоскоростных циклических передач пользовательских данных), либо с большей
функциональностью FMS-служб. Например, для установки параметров регулятора в стартовой фазе (некритичной ко времени) можно использовать службы FMS, а для передачи пользовательских данных в рабочей фазе – более
быстрые DP-функции.
Смешанная работа FMS и DP возможна потому, что в обоих вариантах
используется одинаковая технология передачи (уровень 1) и единый протокол
113
доступа к среде (уровень 2). Различающиеся прикладные функции разделяются с помощью точек доступа к пользовательскому сервису уровня 2.
Если требуется объединить в детерминированную сеть несколько контроллеров, оптимальным вариантом будет PROFIBUS-FMS. Для создания сети с централизованным интеллектом и распределенным вводом/выводом
лучше всего подойдет PROFIBUS-DP.
Наиболее простой способ построения системы показан на рис. 32. Ведущим узлом сети является рабочая станция, которая одновременно выступает в
роли операторской станции и аналога программируемого логического контроллера. В ней устанавливается сетевая master-карта PROFIBUS-DP (карта
ведущего узла). Распределенные устройства связи с объектом (УСО) являются
ведомыми узлами. В них устанавливается сетевая slave-карта PROFIBUS-DP
(карта ведомого узла). Топология сети – шинная.
Объект
Объект
управления
управления
Интерфейс с
...
...
...
оператором
Рабочая
УСО
УСО
станция
MASTER-карта
SLAVE-карта
SLAVE-карта
Рис. 32. Централизованное управление, распределенные УСО
В системе можно выделить 3 цикла управления: цикл управления внутри
ведомой станции, цикл сетевого обмена данными, цикл управления внутри рабочей станции.
В ведомых узлах под управлением местного контроллера происходит автоматический опрос модулей ввода, установленных в УСО, и строится таблица последних значений, готовых к передаче в сеть. Одновременно с этим происходит передача выходным модулям УСО новых значений, полученных из
сети. Длительность этого цикла зависит от количества установленных модулей
и, как правило, измеряется единицами миллисекунд.
Цикл сетевого обмена реализуется по инициативе ведущего узла, в данном
случае по маркеру master-карты рабочей станции. В этом цикле ведущий формирует пакеты, содержащие данные для модулей вывода каждого из ведомых
УСО, и принимает от них пакеты, в которых передается информация от входных модулей. Пакеты оптимизированы настолько, что на передачу данных от-
114
водится ровно столько места, сколько эти данные занимают. Например, передача аналогового сигнала занимает в сетевом пакете два байта, а передача дискретного сигнала – 1 бит. Цикл сетевого обмена осуществляется без участия
центрального процессора рабочей станции. Данные, которые передаются ведомым абонентам, ведущий постоянно берет из определенного поля адресов
специальной двухпортовой памяти. В эту память после каждого обмена по сети помещаются новые значения, полученные от каналов ввода. Для ускорения
сетевого обмена данные в пакетах передаются подряд, без указания их источника или, наоборот, адресата. Для того чтобы ведущий «знал», какие из участков своей двухпортовой памяти передать каждому из абонентов и, соответственно, какую длину пакета ожидать в ответ и что это будет означать, такая
сеть изначально должна быть сконфигурирована с помощью специальной программы. В результате работы программа-конфигуратор настраивает ведущего
и ведомых участников друг на друга и сохраняет информацию о параметрах
сети в энергонезависимой памяти всех узлов. Такая дисциплина работы
PROFIBUS-DP обеспечивает высокую скорость обмена. Так, например, цикл
обмена по сети, которая обслуживает 5000 дискретных сигналов и 1000 аналоговых, может составлять менее 2 миллисекунд.
Цикл управления внутри рабочей станции выполняется под руководством
ее центрального процессора. Он работает с так называемым образом процесса,
который находится в двухпортовой памяти сетевой карты. Процессору требуется считать из памяти информацию о входных каналах, осуществить над ней
необходимые преобразования и выдать управляющие воздействия, занеся в
определенные ячейки памяти новые данные.
Такая конфигурация управляющей системы по принципам работы ничем
не отличается от «вырожденной» централизованной системы. Один и тот же
процессор здесь отвечает и за управление, и за интерфейс с оператором. Преимущества – это освобождение процессора от задач ввода/вывода, а также
возможность максимально приблизить УСО к объекту контроля. Однако для
многих задач такой подход не обеспечивает управление в реальном времени.
Связано это с тем, что современное программное обеспечение операторского
интерфейса ориентировано в своей массе для работы под управлением ОС
Windows, которая пока не оптимизирована для работы в режиме жесткого реального времени.
Рассмотрим другой вариант организации системы (рис. 33). В сети присутствует один ведущий контроллер (ПЛК или IBM PC совместимый), одна
или более рабочих станций верхнего уровня, выполняющие роль операторских
станций, серверов архивации или шлюзов для связи с локальной сетью предприятия, и необходимое количество распределенных по территории цеха или
предприятия УСО. Единственной ведущей в этой сети является сетевая
master-карта, установленная в контроллере.
115
Объект
управления
Интерфейс с
оператором
Рабочая
станция
SLAVE-карта
...
Объект
управления
...
...
Контроллер
УСО
УСО
MASTER-карта
SLAVE-карта
SLAVE-карта
Рис. 33. Система с выделенным управляющим контроллером
Контроллер «видит» через окно двухпортовой памяти master-карты каналы ввода/вывода удаленных УСО и область памяти slave-карты рабочей станции. Контроллер работает в режиме реального времени и осуществляет основной цикл управления. Для расчета управляющего вектора берутся значения с
входных каналов УСО и дополнительные переменные (например, установки),
передаваемые с рабочей станции. В результате расчетов в цикле управления
получается управляющий вектор, направляемый в каналы вывода УСО, и дополнительный кадр выходных данных, посылаемый контроллером рабочей
станции. Этими данными, записываемыми в двухпортовую память рабочей
станции, может быть набор участвующих в процессе управления переменных,
включая входные, выходные и расчетные.
Данная система обеспечивает очень быстрый и фиксированный по времени цикл управления, гарантированную доставку сетевых пакетов и независимое функционирование верхнего уровня.
Третий вариант организации системы управления на базе PROFIBUS-DP
представлен на рис.34.
116
Объект
управления
Объект
управления
...
...
УСО
...
УСО
...
...
Рабочая
станция
Контроллер
Контроллер
MASTER-карта
SLAVE-карта
SLAVE-карта
Рис. 34. Распределенное управление, локальные УСО
Рабочая станция является ведущей в сети, а контроллеры – ведомыми. Все
устройства ввода/вывода в данном случае являются локальными. Контроллеры, с одной стороны, выполняют ввод/вывод из локальных УСО, производят
необходимые расчеты, осуществляют управление исполнительными механизмами, а с другой стороны – помещают все необходимые данные в сетевой плате (slave) PROFIBUS-DP. Ведущему (рабочей станции) остается собрать данные с контроллеров, передать им необходимые установки и организовать взаимодействие с оператором и архивом.
Литература
1.
2.
3.
4.
5.
6.
7.
8.
Хетагуров Я.А., Древс Ю.Г. Проектирование информационновычислительных комплексов.-М.:1987г.
Ларионов А.М., Майоров С.А., Новиков Г.И. Вычислительные комплексы, системы и сети.-Л.:1987г.
Хетагуров Я.А.. Основы проектирования управляющих вычислительных систем.-М.:1991г.
Каган Б.М., Воителев А.И., Лукьянов Л.М. Системы связи УВМ с объектами управления в АСУ ТП.-М.: 1978г.
Методика проектирования информационно-вычислительных комплексов, ориентированных на решение задач в масштабе реального времени. Составитель Кавчук А.А. -ТРТИ, Таганрог:1991г.
Лорин Г., Дейтел Х.М. Операционные системы.-М: 1984г.
Дейтел Х.М, Введение в операционные системы.-М.:1987г.
Жданов А.А. Операционные системы реального времени. "PCWeek",
№8, 1999.
117
9. Любашин А.Н. Промышленные сети. МКА, №1, 1999.
10. Карпенко Е.В. Возможности CAN-протокола. СТА, №4, 1998.
11. Вольц М. PROFIBUS - открытая шина промышленного применения.
МКА, №2, 1995.
118
КАВЧУК АЛЬБИНА АНДРЕЕВНА
СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИ
УЧЕБНОЕ ПОСОБИЕ
Ответственный за выпуск
Кавчук А.А.
Редактор
Корректор
ЛР ;№-020565 от 23.06.97.
Подписано к печати
Формат 60x84 1/16
Бумага офсетная
Печать офсетная. Усл. п.л. . Уч.-изд. л.
Заказ №
Тираж 150 экз.
“C”
Издательство Таганрогского государственного
радиотехнического университета
ГСП 17А, Таганрог, 28, Некрасовский, 44
Типография Таганрогского государственного
радиотехнического университета
ГСП 17А, Таганрог, 28, Энгельса, 1
Download