Отличие механизма современных ОСРВ
Концепции, лежащие в основе большинства существующих в наши дни ОСРВ, уходят своими корнями в конец 70-х начало 80-х годов прошлого столетия. Эти концепции разрабатывались с учетом требований того времени, и по мере увеличения сложности, масштабов, скорости систем и повышения требований к их надежности все чаще проявлялись недостатки традиционных ОСРВ.
Принципиальные отличия ОСРВ от ОС общего назначения заключаются в следующем:
1. Если ОС общего назначения, такие, как UNIX, ориентированы на оптимальное распределение ресурсов компьютера между пользователями и задачами, то в ОСРВ подобная задача отходит на второй план, т.е. главной становится успеть среагировать на событие, происходящее на объекте.
2. Применение ОСРВ всегда связано с аппаратурой, с объектом, с событиями, происходящими на объекте. СРВ, как аппаратно-программный комплекс, включает в себя датчики, регистрирующие события на объекте, модули ввода/вывода, преобразующие показания датчиков в цифровой вид, пригодный для обработки этих показаний на компьютере, и, наконец, компьютер с программой, реагирующей на события, происходящие на объекте. ОСВР ориентирована на обработку внешних событий, и это приводит к коренным отличиям в структуре системы, в функциях ядра, построении системы ввода/вывода. ОСРВ может быть похожа по пользовательскому интерфейсу на ОС общего назначения. Однако устроена она совсем иначе.
3. Применение ОСРВ всегда конкретно. ОС общего назначения воспринимается пользователями как готовый набор приложений. ОСРВ служит только инструментом для создания конкретного аппаратно-программного комплекса. Проектируя конкретную СРВ, программист всегда должен знать точно, какие события могут произойти на объекте, а также критические сроки обслуживания каждого из таких событий.
4. Коренное отличие СРВ от систем общего назначения – четкое разграничение программных систем (среды) разработки и исполнения.
Система исполнения ОСРВ – набор инструментов (ядро, драйверы, исполнительные модули), обеспечивающих функционирование приложений РВ. Современные ОСРВ поддерживают целый спектр аппаратных архитектур, на которых работают системы исполнения (Intel, Motorola, RISC, MIPS[1], PowerPC и другие), поскольку набор аппаратных средств – часть комплекса РВ, и аппаратура должна быть адекватна задачам СРВ. Ведущие ОСРВ покрывают целый ряд наиболее популярных архитектур, удовлетворяя разным требованиям в части аппаратуры. Систему исполнения ОС РВ и компьютер, на котором она исполняется, называют "целевой" (target) системой.
Система разработки – набор средств, обеспечивающих создание и отладку приложений РВ, т.е. компиляторы, отладчики, всевозможные вспомогательные инструменты, которые работают в популярных и распределенных ОС (Windows, UNIX и др.).
Кроме того, многие ОСРВ имеют и так называемые резидентные средства разработки, исполняющиеся в среде самой ОСРВ.
Функционально средства разработки ОСРВ отличаются от привычных систем разработки (Developers Studio, TaskBuilder), так как они содержат средства удаленной отладки, средства профилирования (измерение времен выполнения отдельных участков кода), средства эмуляции целевого процессора, специальные средства отладки взаимодействующих задач, а иногда и средства моделирования.
5. Межпроцессное взаимодействие.В традиционных ОСРВ для межпроцессного взаимодействия (IPC–Inter-Process communication) используется модель "разделяемой памяти" (share memory). Проблема обеспечения стабильности работы системы с IPC через разделяемую память вполне разрешима, однако в общем случае такая задача требует весьма аккуратного управления разработкой и сопровождением программного обеспечения и достаточно длительного периода выявления ошибок. Перечисляя недостатки межпроцессного взаимодействия через разделяемую память, следует упомянуть также о том, что данный метод плохо подходит для распределенных систем и не характеризуется высокой степенью совместимости с управлением памятью. Работоспособность системы с IPC через разделяемую память достижима и в этих случаях, однако есть способы лучше.
Рис.1.2. Два типа межпроцессного взаимодействия |
В ряде современных ОСРВ модель межпроцессного взаимодействия реализована через "передачу сообщений" (message passing). Согласно этой модели (рис.1.2), акт взаимодействия заключается в том, что один процесс посылает другому процессу сообщение; при этом может потребоваться лишь четыре системных вызова. Данный подход прост и надежен; прохождение сообщений в процессе работы системы может легко отслеживаться, что придает разработке и отладке ПО свободу и непринужденность. Прямым следствием межпроцессного взаимодействия через передачу сообщений является возможность распределять приложение между многочисленными центральными и DSP-процессорами, может быть разделено на несколько задач, создаваемых разными разработчиками.
Однако IPC через передачу сообщений не отличается высокой скоростью, но пониженная скорость межпроцессного взаимодействия такого типа редко сказывается на производительности системы.
6. Распределение памяти.В традиционных ОСРВ для динамического распределения памяти используется механизм, подобный вызову функции malloc в языке Си. При выполнении этой команды исследуется весь массив памяти в поисках свободной области достаточно большого размера. При возникновении потребности в памяти ОСРВ берут из всего объема памяти кусок наиболее подходящего размера. Когда блок памяти перестает быть нужным, он отходит в связанный список свободных буферов. Преимущества такого решения состоят в том, что степень фрагментации памяти равна нулю, время распределения памяти строго детерминировано, а незанятый блок всегда находится либо в связанном списке, либо в начале области свободной памяти.
7. Обработка ошибок.В классических ОСРВ используется установленный порядок обработки ошибок. Для выявления ошибок по совершении системного вызова проверке подвергается каждое возвращаемое значение, и всю полноту ответственности за надежность работы системы несет каждый участвующий в проекте специалист. Дополнительным неудобством является то, что значительная часть приложения будет состоять из кодов ошибок, из-за чего оно увеличивается в размерах, его труднее документировать и отлаживать.
В большинстве современных ОСРВ обработчики ошибок связаны с системными вызовами. Если начинает исполняться следующая строка кода, значит все в порядке. Если же происходит ошибка, в дело вступает "центральный обработчик ошибок". В ОС OSE обработка ошибок ведется на трех уровнях: уровне процесса, уровне блока и уровне системы, что даёт высокую степень гибкости в выборе разрешения связанных с ошибками проблем (рис. 1.3). Такой механизм обработки ошибок не только намного надёжнее, он позволяет создавать более компактный и простой программный код.
8. Распределенные многопроцессорные системы.Большинство традиционных ОСРВ разрабатывались с прицелом на единственный центральный процессор, установленный на единственной плате. В наши дни все чаще требуется поддержка многопроцессорных систем, в том числе с поддержкой процессоров цифровой обработки сигналов (DSP-процессоры). В современной ОС OSE обработчик связей (link handler) позволяет распределять приложение по многочисленным центральным и/или DSP-процессорам, беря сообщение от одного процесса, работающего на одном процессоре, и вручая его другому процессу, исполняющемуся на другом центральном или DSP-процессоре.
Рис.1.3. Модель обработки ошибок в традиционной ОСРВ и в операционной системе OSE |
9. Высокая готовность и безопасность.Сейчас ОСРВ все чаще применяются в критичных к безопасности приложениях и в системах с высоким коэффициентом готовности, и большинство поставщиков ОС РВ ищут способы решения возникающих в этой связи проблем. Если с процессом что-нибудь будет "не так", ядро будет обязательно об этом проинформировано. Используя эти системные вызовы, разработчик может реализовать "горячую" замену и дублирование (резервирование) аппаратных средств. При отказе или удалении какого-либо устройства происходит уведомление об этом ядра, после чего ядро может провести поиск (hunt) второго подобного устройства и начать работать (attach) с этим устройством в том случае, если последнее окажется работоспособным.
Рассмотрим системный инструментарий современных ОСРВ.
Симуляторы ОСРВ. По принципу своей работы инструментальные средства Soft Kernel и Soft Environment, созданные компанией OSE, напоминают пакет, служащий буфером между ОС и тем или иным аппаратным модулем (BSP – board support package), только в данном случае в роли такого модуля выступает интерфейс 32-разрядных Windows-приложений (Win32 Api). Инструмент Soft Environment способен использовать функциональные возможности хост-машины и, с другой стороны, взаимодействовать с внешним миром. Запустив одновременно несколько инструментов Soft Kernel на одной хост-машине, можно создать модель сетевой или многопроцессорной среды и вести разработку соответствующего проекта.
Загрузчик программ. В некоторых ОСРВ разработчику предлагается возможность динамической загрузки кода в целевую машину, что позволяет сократить число циклов перекомпиляции-перезагрузки и сэкономить много часов затрачиваемого на разработку времени. Загрузчик программ полезен не только при разработке современных встраиваемых систем; он может сыграть важнейшую роль при обслуживании системы с высоким коэффициентом готовности, отключение которой крайне нежелательно.
Браузер системы.Многие поставщики ОСРВ предлагают работающие на хост-машине средства просмотра, показывающие все запущенные процессы, а также приоритет, состояние и другие важнейшие характеристики каждого процесса в отдельности. Для ОС OSE такого рода инструмент называется Illuminator.
Профилировщик центрального процессора.В процессе разработки и отладки предназначенного для встраиваемой системы программного обеспечения необходимо иметь точные данные относительно загрузки центрального процессора, поскольку наличие подобной информации способствует оптимизации производительности программного кода. В комплектах инструментальных средств ОСРВ имеются такие профилировщики. Средство CPU Profiler (профилировщик центрального процессора) для ОС OSE позволяет выбрать одну или несколько определенных задач и получить ясную картину того, насколько эти задачи загружают центральный процессор, а также того, как влияет эта загрузка на работу системы в целом. Качество подобной информации зависит от скорости связи между хостом и целевой машиной.
Профилировщик памяти. Оптимальное использование памяти является решающим моментом, поэтому разработанный для ОС OSE инструмент Memory Profiler (профилировщик памяти) предлагает исчерпывающую динамическую информацию об использовании памяти каждой конкретной задачи, о прохождении сигналов, а также статистическую информацию и иные данные, которые могут помочь оптимизировать использование памяти.
Трассировка событий. Некоторые поставщики ОСРВ предлагают средства "трассировки событий", способные динамически отображать работающие задачи и межпроцессные взаимодействия. Регистрация может производиться через определенные интервалы времени (например, через 50 мкс), в случае наступления определенных событий, по прерываниям и т.п.
Параметры ОСРВ
Если система общего назначения обычно воспринимается как готовый набор приложений/оборудования, то СРВ служит инструментом для создания конкретного аппаратно-программного комплекса реального времени, позволяющего регистрировать поток сообщений от сторонних систем, устройств и датчиков в предсказуемые интервалы времени. Комплекс должен успевать регистрировать и реагировать на событие в течение времени, критического для конкретного события (meet deadline). Величина критического времени для каждого события определяется собственно объектом, самим событием. Отсутствие должной реакции в предсказанное время считается ошибкой для системы. В связи со специфичностью решаемых задач, ОСРВ должна обладать определенными свойствами.
1. Время реакции системы это интервал времени от момента возникновения события на объекте до выполнения первой команды в программе обработки этого события. Время реакции СРВ включает две компоненты:
· Время реакции системы на внешние события – время выполнения цепочки действий от события на объекте до генерации прерывания.
· Время от возникновения запроса на прерывание до выполнения первой команды его обработчика. Время реакции системы на события не зависит от ОСРВ и целиком определяется аппаратурой, а вот интервал времени – от возникновения запроса на прерывание и до выполнения первой инструкции обработчика определяется целиком свойствами ОС и архитектурой компьютера. Это время оценивается в худшей для системы ситуации, то есть при условии, что процессор загружен, в это время происходят другие прерывания, а система выполняет какие-то действия, блокирующие прерывания.
2. Время переключения контекста. В ОСРВ изначально заложен параллелизм, т.е. возможность одновременной обработки нескольких событий, поэтому все ОСРВ являются многозадачными (многопроцессными или многонитевыми). ОСРВ содержат механизмы, гарантирующие заранее вычисленное время реакции системы. Эта гарантия достигается знанием максимального времени блокировок прерываний в системе, времени переключения контекста, времен выполнения различных системных вызовов, применением нужных механизмов диспетчеризации и пр. То есть время реакции на события для ОСРВ можно вычислить с большой точностью. Эти вычисления невозможны для ОС LINUX и Windows NT – здесь можно полагаться только на результаты тестирования, эмпирические оценки.
3. Время перезагрузки системы, которое определяет выбор ОС, от которой требуется непрерывная работа. Для повышения надежности ОС, т.к. от ошибок никто не застрахован, ставятся ловушки, отслеживающие зависание системы или приложений, и автоматически перезагружающие систему. В большинстве систем (OS9, VxWorks) время загрузки можно регулировать, изменяя стартовые последовательности. В ОС LINUX время загрузки в стандартном варианте более минуты, система неустойчива к внезапным остановам – требуется стандартная процедура завершения работы с системой (shutdown). Однако LINUX достаточно гибок и можно, используя специальные опции файловой системы, создать конфигурации системы, в которых время загрузки будет уменьшено до десятка секунд и система будет устойчива к сбоям. В Windows NT время загрузки более минуты, система неустойчива к внезапным сбоям. Использование расширений реального времени (RTX) позволяет детектировать зависание системы и выполнить в этих случаях необходимые операции по спасению данных и по выполнению каких-то страховочных действий.
4. Размеры системы исполнения является важным параметром ОСРВ, поскольку важен суммарный размер минимально необходимого для работы прикладных программ приложения системного набора (системное ядро, системные модули, драйверы). Во времени этот параметр снижается, но он остается важным, и производители ОСРВ стремятся к тому, чтобы он был не велик (ОСРВ OS9–22 Кбайт, VxWorks–16 Кбайт).
a. Возможность исполнения ОСРВ из ПЗУ. Система должна иметь возможность осуществлять загрузку из ПЗУ. Для экономии места в ПЗУ часть системы может храниться в сжатом виде и загружаться в ОЗУ по мере необходимости. Часто система позволяет исполнять код как в ПЗУ, так и в ОЗУ. При наличии свободного места в ОЗУ система копирует себя из медленного ПЗУ в более быстрое ОЗУ.
b. Механизмы ОСРВ (система приоритетов, алгоритмы диспетчеризации, методы межзадачного взаимодействия, средства для работы с таймерами). Требования к ОСРВ изложены в группе международных стандартов POSIX (переносимый интерфейс ОС), разработанных одним из рабочих комитетов международного профессионального объединения технических специалистов IEEE.
К дополнительным свойствам ОСРВ можно отнести следующие:
– Наличие необходимых драйверов устройств. Если разрабатываемая система имеет обширную периферию, то наличие уже готовых драйверов может оказать большое влияние на выбор ОС. Самый большой набор драйверов создан для ОС LINUX и Windows NT. Наиболее популярные ОС РВ, такие, как VxWorks, OS9, QNX, имеют обширные наборы драйверов и содержат средства для их быстрой разработки.
– Поддержка процессоров различной архитектуры. В связи с тем, что в промышленных компьютерах, серверах, встраиваемых системах широко распространены процессоры разной архитектуры с различной системой команд, ОСРВ по возможности должна поддерживать как можно более широкий ряд процессоров.
– Одной из важных характеристик ОСРВ является наличие специального кроссплатформенного инструментария разработчика,поскольку разработка СРВ проводится на «обычном» компьютере, отличном по архитектуре от компьютера, на котором будет устанавливаться СРВ. При этом ОС на этих компьютерах также может не совпадать.
Важнейшими характеристиками ОСРВ являются заложенные в ОСмеханизмы реального времени:
– Система приоритетов и алгоритмы диспетчеризации. Базовыми инструментами разработки сценария работы системы являются система приоритетов процессов (задач) и алгоритмы планирования (диспетчеризации) ОСРВ. В многозадачных ОС общего назначения используются различные модификации алгоритма циклической диспетчеризации, основанные на понятии непрерывного кванта времени ("time slice"), предоставляемого процессу для работы. Планировщик по истечении каждого кванта времени просматривает очередь активных процессов и принимает решение, кому передать управление, основываясь на приоритетах процессов (численных значениях, им присвоенных). Приоритеты могут быть фиксированными или меняться со временем – это зависит от алгоритмов планирования в данной ОС, но рано или поздно процессорное время получат все процессы в системе.
– Механизмы межзадачного взаимодействия. Другой набор механизмов реального времени относится к средствам синхронизации процессов и передачи данных между ними. Для ОСРВ характерна развитость этих механизмов. Многие из подобных механизмов используются и в ОС общего назначения, но их реализация в ОСРВ имеет свои особенности – время исполнения системных вызовов почти не зависит от состояния системы, и в каждой ОСРВ есть, по крайней мере, один быстрый механизм передачи данных от процесса к процессу.
– Средства для работы с таймерами необходимы для систем с жестким временным регламентом, поэтому развитость средств работы с таймерами – необходимый атрибут ОС РВ. Эти средства позволяют:
· измерять и задавать промежутки времени от 1 мкс и выше;
· генерировать прерывания по истечении временных интервалов;
· создавать разовые и циклические будильники.
Почти в каждой ОСРВ имеется набор дополнительных, специфических только для нее механизмов, касающихся системы ввода/вывода, управления прерываниями, работы с памятью. Каждая система содержит также ряд средств, обеспечивающих ее надежность.
Дата добавления: 2016-04-06; просмотров: 1234;