Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Операционные системы реального времени и технологии разработки кроссплатформенного программного обеспечения. Ч.1. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
2 Мб
Скачать
☆
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).
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]