Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Операционные системы реального времени и технологии разработки кроссплатформенного программного обеспечения. Ч.1. Учебное пособие
.pdf
1.3. Строение операционных систем реального времени
11
3. Товары широкого потребления: в первую очередь встраиваемые
системы и носимое оборудование – мобильная связь и смартфоны, “умные”
часы, навигаторы, игровые приставки, декодеры и системы защиты связи,
цифровое телевидение, офисное оборудование и т.п.
Список достаточно большой. ОС РВ имеет множество представле-
ний и много масштабов. В максимальном варианте это огромные комплексы программно-аппаратных средств, а в минимальном варианте –
всего несколько килобайт кода для микроконтроллера, площадью несколько квадратных миллиметров.
1.3. Строение операционных систем реального времени
Разные виды и поколения ОС РВ имеют как общие черты, так и
различия.
Исполнительная часть ОС РВ включает в себя разные наборы системного и прикладного программного обеспечения, которые адаптируются, например, к специфической платформе размещения (ПО для микропроцессоров, исполнительных устройств, в том числе написанное на языках ассемблера или языках описания аппаратуры). Но даже в этом случае,
ОС собирается на ЭВМ общего назначения, а затем компонуется с нужным
ядром и размещается на целевом оборудовании (прошивается). То же самое
касается и разработки прикладного программного обеспечения. Разработка
ведется в инструментальной среде, иногда общей для различных ОС, а исполнение – в своих собственных целевых сервисах.
В любом случае, современные операционные системы реального
времени в общем виде можно разделить на следующие слои.
1. Ядро – элемент ОС, содержащий минимум исполняемого кода,
необходимый для работы: управление задачами и их распределение по исполнительным устройствам, синхронизацию задач, управление очередями
задач, управление устройствами ввода-вывода. Размер ядра часто ограничивается.
2. Система управления – элемент ОС, содержащий ядро и ряд до-
полнительных сервисов, которые могут расширять его. Часто добавляются

1. Особенности операционных систем реального времени (ОС РВ)
12
алгоритмы оптимизации, управления расширенным вводом-выводом, файлами и т.д. Часто сюда включают подсистемы управления специализированным оборудованием.
3. Система реального времени – элемент ОС, который содержит ме-
ханизмы управления и набор дополнительных утилит, в том числе и для
человеко-машинного взаимодействия.
Критерии выбора ОС РВ следующие:
высокая производительность;
высокая надежность, высокая доступность и готовность;
поддержка различных типов процессоров;
поддержка многопроцессорности;
наличие средств разработки на необходимом языке программи-
рования или средств кросскомпиляции и переноса программ;
наличие механизмов реального времени;
наличие поддержки файловой системы, в том числе и удаленной;
возможность выполнять надежные вычисления;
поддержка высокоскоростных сетевых коммуникаций;
поддержка механизмов взаимодействия между процессами, по-
токами и задачами;
поддержка множества потоков управления;
возможность работать в условиях ограничения аппаратных ре-
сурсов.
1.4. Требования к оборудованию для ОС РВ
Как уже говорилось выше, ОС РВ “обеспечивает требуемый уровень
качества обслуживания в заданный промежуток времени”. Этот промежуток времени, а точнее его возможные пределы, напрямую зависит от возможностей аппаратной базы вычислительной системы, т.е. от мощности
“железа”. Даже сама возможность запуска ОС зависит от архитектуры и от
мощности аппаратной базы. Технически любую ОС можно запустить на
любом оборудовании, но сколько это времени займет: минуты, часы?
В связи с этим можно выделить несколько требований для размещения ОС РВ на различном оборудовании.

1.4. Требования к оборудованию для ОС РВ
13
Первое. В системе “жесткого” или “мягкого” реального времени и
программная, и аппаратная части должны четко и вместе удовлетворять
требованиям технического задания, свойствам объекта, с которыми работает система.
Второе. Большинство внешних событий отображаются в системе
благодаря системе внешних прерываний, а точнее системе приема и обработки запросов на прерывание. В микроконтроллерах эта проблема решается встроенным в ядро модулем обработки прерываний от внешних источников, а для ЭВМ предусматриваются специальные шины и контроллеры,
которые могут даже соединяться в каскады и работать совместно или независимо. Именно из данного свойства следует тот факт, что, зачастую, мощность системы и сама возможность работы в “реальном” времени обуславливается не столько вычислительной мощностью ядра системы, сколько
возможностями дополнительного оборудования и подсистемы обработки
прерываний.
Следовательно, для системы, претендующей на звание “системы ре-
ального времени”, характерно наличие множества входов для запросов от
внешних источников и минимальное время отклика на такие запросы.
Третье. ОС РВ сама по себе может служить источником запросов на
прерывание на другие системы. Чаще всего, первая ОС РВ управляет другой системой с ОС РВ. Поэтому в такие системы кроме обработчиков прерываний включают еще и системы счета, генерации событий и тактовых
сигналов. Это таймеры и счетчики. Они могут работать либо в режиме ожидания, либо в режиме периодической генерации событий.
На настоящий момент накопилось достаточно материала для клас-
сификации вычислительных средств, пригодных для установки ОС РВ.
1. Персональные компьютеры и ЭВМ. Это, фактически, обычные
компьютеры, имеющие совместимую аппаратуру. Однако существует несколько неочевидных особенностей. Например, микропроцессор, оперативная память и некоторые важные модули размещаются на съемных платах. Это сделано для того, чтобы в случае выхода модуля из строя, его
можно было бы быстро заменить вручную, просто вытащив старый модуль
и вставив новый. Материнская плата такого компьютера быстро превращается в “носитель” для множества модулей, а сам компьютер размещается в
специальном герметичном корпусе, который обеспечивает защиту от попа-

1. Особенности операционных систем реального времени (ОС РВ)
14
дания пыли и влаги. Современные компьютеры, имеющие такое устройство, совмещают в одном корпусе и материнскую плату, и платы расширения и даже экран. Эти экраны могут быть маленькими жидкокристаллическими или большими и сенсорными. Тогда данные компьютеры применяются не как элементы непосредственного управления в системах автоматизации, а как терминальные устройства или периферийное оборудование.
2. Промышленные компьютеры и компьютерные системы. Чаще
всего это так называемые “одноплатники”, т.е. компьютеры, размещаемые
на одной плате, которая вставляется в специальную стойку. Промышленные ЭВМ размещаются в специальных корпусах, так как подразумевается
их использование в особых условиях и, нередко, в агрессивной среде. Стандартная компоновка промышленного компьютера подразумевает наличие
микропроцессора (CPU), оперативного запоминающего устройства (RAM),
постоянного запоминающего устройства (ROM), контроллеров периферийных устройств, устройств ввода-вывода. Реже размещаются дополнительные модули памяти типа статического ОЗУ, флеш-памяти, блоков аналогоцифрового (АЦП) и цифроаналогового (ЦАП) преобразования. Чаще всего
промышленные компьютеры производятся отдельными фирмами и компаниями, специализирующимися на этом виде продукции. Также следует отметить, что технологический процесс производства печатных плат может
отличаться от обычного – используются более дорогие, более качественные элементы “военной” серии (как минимум с малой погрешностью представления собственных величин и с расширенным диапазоном рабочих
температур, влажности и давления). Иногда такие промышленные компьютеры работают без подключения внешних дисковых накопителей, так как
время доступа к данным у последних выходит за рамки требований к скорости работы и времени реакции, т.е. не удовлетворяют требованиям “реального” времени. Дополнительные степени защиты системы обеспечивают и корпуса промышленных компьютеров, так называемые “крейты”.
Они вмещают в себя не только материнские платы компьютера, но и блоки
питания, кабельные системы и дополнительные устройства. В корпусе могут находиться дополнительные устройства охлаждения, вентиляции, контроля влажности. Такой корпус может быть разработан специально для одного конкретного типа промышленного компьютера, а может быть универсальным и допускать размещение сразу нескольких материнских плат, об-

1.4. Требования к оборудованию для ОС РВ
15
разуя многомашинные комплексы – фактически многопроцессорные системы. Сейчас среди промышленных компьютеров лидирует продукция
фирм PowerPC и Motorola, а также на рынке присутствуют Intel, SPARC
(SUN), ARM. Рекомендованными критериями при выборе поставщика промышленного компьютера являются: минимизация стоимости, допустимой
рабочей тактовой частоты, минимальной рассеиваемой и потребляемой
мощности, а также максимальное время переключения задачи и минимальное время реакции на внешнее прерывание. Это достаточно известные параметры системы, так что отдельного объяснения, пожалуй, требует только
рассеиваемая мощность. Дело в том, что рассеиваемая мощность приводит
к нагреву микропроцессора и всей схемы в целом, а так как характеристики
полупроводниковых приборов меняются вследствие нагрева, то “горячая”
плата меняет весь свой временной профиль работы в определенных пределах. Может меняться тактовая частота на генераторах сигналов синхронизации, меняются характеристики АЦП и ЦАП, изменяется время реакции
на внешние источники прерываний и даже время доставки пакетов по внутренним шинам. Возникает “гонка сигналов” на шинах различной длины,
изменяются пороги фиксации уровней сигналов на устройствах ввода-вывода и т.п. Таким образом, если система может работать без нагрева (и тем
более без дополнительных устройств охлаждения) и при этом удовлетворяет условиям технического задания и условиям эксплуатации, то это “идеальная” система “реального” времени в данных условиях. Промышленные
ЭВМ часто используются в составе комплексов анализа и управления
сложными системами и процессами. Поэтому они могут даже не иметь
устройств отображения информации (мониторов) и устройств привычного
для человека ввода информации (клавиатуры и мыши). Такие ЭВМ поставляются в виде отдельных блоков и подключаются к другим системам комплекса посредством сетевых соединений или кабельных систем. Для взаимодействия с ними используются обычные ЭВМ, также подключаемые через сеть или кабели. Нередко промышленные компьютеры контролируются
удаленно, так как ставятся непосредственно на объекте управления, а контролируются с единой серверной комнаты и “центрального” пульта.
3. Встраиваемые системы. Это миниатюрные приборы, встраивае-
мые в другие приборы и комплексы, которыми они должны управлять.
Масштабы встраиваемых систем могут быть разными, и они зависят от
сферы применения. Например, “встраиваемая” система для самолета или

1. Особенности операционных систем реального времени (ОС РВ)
16
промышленного конвейера может иметь размер стандартного системного
блока компьютера, а вот модуль на плате смартфона уже должен быть миниатюрным по своей сути. Кроме того, сейчас появилась тенденция на разработку и внедрение встраиваемых систем, которые имеют микроскопический размер и входят в состав других микропроцессоров. Это так называемые “гибридные” микропроцессоры, внутри которых может находиться и
совместно работать несколько различных ядер. Например, вычислительное
ядро от основного процессора, ядро высокоскоростного потокового шифрования, ядро цифровой обработки сигналов или видеокодирования.
Можно выделить несколько обобщенных требований к ОС РВ, устанавливаемой на подобном оборудовании.
1. Размер системы является критически важным и зависит от сферы
его применения.
2. Для соблюдения заданного уровня скорости работы и времени
реакции, система может работать без внешнего блока ПЗУ.
3. Для экономии места система может частично хранить свои дан-
ные в сжатом виде.
4. При наличии ОЗУ достаточной емкости, система может частично
или полностью загружаться в оперативную память и работать “из нее”.
5. Система может сама себя собрать, скомпилировать и превратить
в загрузочный модуль другого, “обычного” компьютера, связанного с промышленным компьютером посредством сети или кабельного соединения.
Это требует установки и настройки дополнительного программного инструментария, например, кросскомпилятора.
6. Система должна поддерживать большинство современных архи-
тектур микропроцессоров, что дает возможность клиенту выбирать подходящую мощность.
7. Система должна поддерживать широкий спектр современного
периферийного оборудования и устройств связи.
Конечно, для формирования промышленного компьютера недостаточно просто собрать аппаратуру и загрузить туда операционную систему.
Необходим еще и набор прикладного и системного программного обеспечения, которое будет обеспечивать интерфейс связи между системами,
сбор и обработку данных, а также выполнение алгоритмов управления конкретным оборудованием и промышленными объектами.

2. Основные положения
17
2. ОСНОВНЫЕ ПОЛОЖЕНИЯ
2.1. Основные определения
Под программой ОС РВ будем понимать формализованное описание
алгоритма, выраженное в определенных терминах “языка”, понимаемого
ЭВМ, и обеспечивающее решение поставленной задачи.
Под микропроцессором или центральным процессором ЭВМ будем
понимать устройство, способное выполнять команды на формализованном
языке программирования, преобразованные в последовательности инструкций.
Под инструкцией будет понимать обособленную единицу информации, состоящую из кода операции и данных (ссылок на данные), которую
способен понять и выполнить микропроцессор. Наборы инструкций получаются из программ после прохождения этапов сборки, линковки и компиляции прикладных программ специальным системным программным обеспечением.
Под памятью будем понимать устройство для хранения информации, а также наборов программ, инструкций и данных. В зависимости от
расположения памяти относительно микропроцессора будем разделать:
внутренняя регистровая память – это набор внутренних реги-
стров микропроцессора, расположенных непосредственно в его ядре. Они
отличаются высокой скоростью работы, малым временем доступа и невысоким объемом. Регистровая память служит в основном для хранения промежуточных результатов выполнения команд между тактами процессора;
буферная память или кэш – это память небольшого объема, рас-
положенная между ядром микропроцессора и его периферией. Служит в
основном для формирования и хранения очереди выполнения команд и
операций. Она бывает нескольких уровней, как правило, управляется отдельными алгоритмами буферизации;
внутренняя оперативная память системы (ОЗУ) – это быстродей-
ствующая память, обычно выполняемая в виде отдельных планок. Она является энергозависимой. Реализуется набором однотипных микросхем – запоминающих устройств. Допускает замену и установку планок с большим
объемом при соблюдении совместимости шин по разрядности и частоте;

2. Основные положения
18
внешняя память (ПЗУ) – это устройство хранения информации
(программ и данных). Она является энергонезависимой. Предназначена для
долговременного хранения информации и переноса ее с устройства на
устройство. В настоящее время распространены ПЗУ следующих видов:
жесткие диски, оптические диски, флеш-накопители и карты памяти, твердотельные накопители.
Под стеком или очередью будем понимать специально организован-
ную область памяти, реализующую алгоритмы “первый вошел – первый
вышел” или “первый вошел – последний вышел”. Первый вариант используется для организации последовательного отложенного выполнения заданий, а второй вариант применяется для решения задач буферизации данных
или изменения их порядка (перестановки).
Под виртуальной памятью будем понимать область памяти, внутри
которой работает некоторый процесс, т.е. каждый процесс имеет доступ к
своей области памяти, называемой “виртуальной”. Эта область может быть
выделена как из ОЗУ, так и из ПЗУ. Виртуальная память, как инструмент
операционной системы, позволяет увеличить область, доступную процессам памяти за счет выделения дополнительного пространства из доступного дискового ресурса, а также обеспечивает выделение изолированной
области данных для каждого процесса, обеспечив отдельный диапазон адресов и повысив безопасность работы.
Отображение адресов виртуальной памяти на реальную память или
дисковое пространство называется “трансляцией”. Трансляцией адресов
занимается операционная система. Для ускорения данного процесса некоторые системы имеют в своем составе специальные модули и микросхемы
– контроллеры. Иногда это отдельный блок микропроцессора или микроконтроллера, так как существуют различные методы доступа к памяти, т.е.
и транслирующий контроллер может реализовывать различные алгоритмы.
Чаще всего это “страничный” механизм, при котором и реальная, и виртуальная память разбивается на области равного размера (страницы). Стандартным размером страницы считается объем в 4 Кб. Между реальными и
виртуальными страницами устанавливается однозначное соответствие, но
в этой цепочке всегда будет присутствовать задержка. Поэтому в системах,
которые ориентированы на минимальное время отклика, механизм трансляции адресов и поддержки виртуальной памяти попросту отключается или
не реализуется вообще.

2.1. Основные определения
19
Под заданием будем понимать определенный объем работы для ОС
РВ и управляемого ей оборудования, ограниченный по времени и ресурсам.
Задание может выражаться как в виде формального описания, так и в виде
оформленной программной процедуры или функции. Именно управление
заданиями является одной из основных функций операционной системы.
Задания ОС управляются отдельным модулем – планировщиком и
лежат в основе “реального” времени. Когда ОС РВ выполняет планирование заданий, она должна не только сформировать последовательность таких заданий, разместив их в стек или очередь, но и учесть требуемые этим
заданиям аппаратные и программные ресурсы, а также их доступность в
момент выполнения задания. Примерами таких ресурсов могут быть: время
работы микропроцессора, адресное пространство ввода-вывода, шины, буферные элементы, периферийные устройства, сеть, файлы во внутренней
или внешней памяти. Задание выполняется обычно “внутри” некоторого
процесса операционной системы.
Под процессом ОС будем понимать абстрактное описание участка
программного кода в ходе его выполнения. Процессы могут состоять из
программы целиком или из одной, или нескольких процедур программы.
Для описания процессов существует отдельных стандарт ISO 9000:2000.
Каждый процесс характеризуется следующим.
1. Собственным состоянием.
2. Собственной областью памяти для хранения программного кода
и данных.
3. Собственным временем выполнения.
4. Собственным стеком.
5. Собственным отображением памяти и файловой системы из вир-
туального пространства (описательного) на физическое.
Для ОС РВ задание определяется как единица работы, которую
нужно выполнить. В то же самое время, задание выполняется в одном или
нескольких процессах. Стараются соблюдать соответствие: одно задание –
один процесс.
Таким образом, планировщик заданий будет заниматься по факту
планирования запуска и останова процессов, совмещая их с требуемыми
ресурсами системы по времени и объемам. Планировщик должен в первую
очередь обеспечить выполнение процессов соответствующими ресурсами,

2. Основные положения
20
иначе получится каскад сбоев, и задание не будет выполнено. Кроме того,
планировщик должен следить за взаимодействием процессов, за обменом
информацией между ними, он должен уметь останавливать процессы и
“ставить их на паузу”, если процессы связаны. Другой функцией планировщика является мониторинг процессов и удаление так называемых “осиротевших” процессов или “зомби” процессов. Под последними понимаются
процессы без “родителя” или процессы, которые не были уничтожены вместе с выгрузкой базового родительского процесса. Они “висят” в системе,
как минимум занимая ценные ресурсы и процессорное время. В некоторых
случаях неконтролируемое порождение (“спам”) “зомби” процессов превращается в настоящее бедствие, приводя к “падению” системы.
В базовом варианте множество состояний любого процесса можно
описать следующим способом.
1. Ожидание – процесс ждет возникновения некоторого события,
после чего он начнет или возобновит свою работу. Примером могут служить обработчики прерываний от внешних устройств – они всегда находятся в оперативной памяти и срабатывают только при поступлении внешнего сигнала.
2. Готовность – процесс не является “осиротевшим”, остановленным,
уничтоженным, он ничего не ожидает, но и не работает в прямом смысле
этого слова. Процесс просто “поставлен на паузу”, так как ему не предоставлен доступ к микропроцессору или другим необходимым ресурсам.
3. Выполнение – процесс имеет доступ к микропроцессору и дру-
гим ресурсам, получил сигнал начала работы, является приоритетным в
настоящее время. Среди всех других процессов в однозадачной системе он
будет единственный с пометкой “готов”.
Все процессы в ОС РВ имеют так называемый жизненный цикл. В
базовом варианте жизненный цикл можно описать диаграммой, как это показано на рис.1.
Создание процесса (creation). Переход в эту фазу связан с вызовом
программы и ее загрузкой в оперативную память. Для программы создается
запись в планировщике, выделяются ресурсы, формируется начальное состояние с очищением регистров, области памяти и т.п. Устанавливается
начальный адрес программы для вызова, зачастую подключаются потоки
ввода-вывода (как минимум байтовые потоки stdin, stdout, stderr).
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
