НазваниеУчебное пособие по курсу «Системы реального времени» представлено в семи разделах
страница14/34
Дата конвертации05.07.2013
Размер2.69 Mb.
ТипУчебное пособие
1   ...   10   11   12   13   14   15   16   17   ...   34

4.8Вопросы для самопроверки





  1. Чем обусловлена важность стандартов на ОСРВ?

  2. Какие основные цели определяет стандарт SCEPTRE?

  3. Опишите стандарт POSIX 1003.1b.

  4. Опишите стандарт POSIX 1003.1с.

  5. Опишите пять уровней серьезности отказа стандарта DO-178B.

  6. Что определяет стандарт ARINC-653?

  7. Из каких основных частей состоит стандарт OSEK/VDX?

  8. Для чего предназначен стандарт TCSEC?

  9. Сколько уровней защиты перечислены в «Оранжевой книге»?

  10. Какие уровни общих критериев предусмотрены стандартом TCSEC?



5Обзор ОСРВ




5.1Классификация ОСРВ в зависимости от происхождения



В зависимости от происхождения ОСРВ разделяют на следующие группы:

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

Собственно ОСРВ. Бывают как self-hosted, так и host/target, некоторые ОСРВ поддерживают обе модели.

Специализированные ОСРВ. Это ОСРВ, разрабатываемые для конкретного микроконтроллера его производителем. Часто не являются полноценными ОС, а представляют единый модуль с приложением и обеспечивают только необходимый минимум функций. Все такие системы относятся к категории host/target.

5.2Системы на основе обычных ОС




5.2.1Linux



Системы на основе Linux (свободно распространяемой версии Unix). Она получила значительное распространение на настольных компьютерах благодаря своей бесплатности и качеству.

В настоящий момент времени система Linux может работать, помимо процессоров Intel 80x86, на процессорах Alpha, SPARC, PowerPC, ARM, Motorola 68xxx, MIPS. Открытость ее исходных текстов позволяет реализовывать на ее основе специализированные системы и обеспечивать поддержку нового оборудования.

Приспособление системы Linux к требованиям реального времени происходит по следующим направлениям:

Поддержка стандартов POSIX, касающихся реального времени. Стандарт POSIX 1003.1c (работа с задачами) уже поддержан, стандарт POSIX 1003.1b (работа расширения реального времени) поддержан лишь частично: реализованы механизмы управления памятью и механизмы планирования задач.

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

Реализация механизма preemption (приоритетное прерывание обслуживания) для ядра системы. Этот механизм является необходимым для того, чтобы систему можно было назвать системой реального времени, но он также является очень сложным для реализации. Linux, надолго запрещает прерывания при входе в ядро системы и не является preemptive.

Существует несколько проектов реализации preemption для ядра Linux. По способу решения этой задачи их можно разделить на две группы:

1. Механизм preemption реализуется путем переписывания ядра системы. На этом пути можно достичь самых качественных результатов, но на данный момент времени значительных успехов в этом плане нет по следующим причинам:

  • слишком большой объем работы, связанный с большим объемом ядра;

  • слишком высокая скорость изменения ядра, причем изменения вносятся без учета интересов реального времени.

2. Механизм preemption реализуется путем написания микроядра, отвечающего за диспетчеризацию прерываний и задач. Ядро Linux работает как задача с низким приоритетом. Само ядро лишь незначительно изменено для предотвращения блокирования им аппаратных прерываний. Задачи в такой системе разделены на две группы:

  • процессы, работающие под управлением только микроядра (не использующие функции ядра Linux);

  • процессы, работающие под управлением Linux (обычные приложения), а также задачи, работающие под управлением микроядра, но использующие функции Linux. Это процессы, не удовлетворяющие требованиям реального времени, поскольку могут быть блокированы ядром Linux.

Недостатком такого подхода является необходимость реализации микроядра, обеспечивающего функционирование процессов реального времени. Например, если процесс реального времени хочет работать с коммуникационным портом, то драйвер этого порта надо перенести из ядра Linux в микроядро. Наиболее законченной реализацией этого подхода является проект RT-Linux. На основе Linux существуют также расширения KURT и UTIME, позволяющие получить устойчивую среду реального времени.

RTLinux представляет собой систему «жесткого» реального времени, a KURT (KU Real Time Linux) относится к системам «мягкого» реального времени. Linux-расширение UTIME, входящее в состав KURT, позволяет добиться увеличения частоты системных часов, что приводит к более быстрому переключению контекста задач.

Система RT-Linux является свободно распространяемой, разрабатываемой энтузиастами в ряде университетов мира. Создана в New Mexico Institute of Mining and Technology (USA).

Представляет собой простейшее микроядро, отвечающее за создание и планирование задач, обеспечение их взаимодействия и диспетчеризацию прерываний. Реализован простейший приоритетный механизм планирования и единственный механизм взаимодействия — очередь сообщений FIFO. Ядро Linux работает как самая низкоприоритетная задача. В само ядро внесены исправления — макроопределения, отвечающие за запрещения/разрешения прерываний, заменены на соответствующие функции микроядра. Задачи Linux не могут прервать ядро Linux, задачи же микроядра могут.

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

Простые очереди FIFO реализованы для обмена данными между процессами реального времени и процессами Linux.

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

Самый короткий период для периодически вызываемых задач реального времени в RT-Linux на Pentium 120 — менее 150 мкс. Задачи, вызываемые по прерыванию, могут иметь намного меньший период.

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

Задачи реального времени запускаются в адресном пространстве ядра и с привилегиями ядра и могут быть реализованы, например, при помощи модулей Linux.

Минимальный размер системы для записи в ПЗУ (без X-Window) — 2.7 Мб.

5.2.2Windows NT



Системы на основе Windows NT. По поводу использования Windows NT в качестве ОСРВ ведется большое количество дискуссий. Существуют аргументы и «за», и «против».

Аргументы фирмы Microsoft за использование Windows NT в качестве ОСРВ:

  • Многопроцессность и многозадачность системы.

  • Поддержка многопроцессорности.

  • Preemption задач.

  • Preemption прерываний и возможность их маскирования.

  • Асинхронный ввод/вывод.

  • Прямой доступ к оборудованию посредством интерфейса HAL (Hardware Abstraction Level). HAL обеспечивает изоляцию приложения от деталей реализации оборудования, обеспечивая платформенно-независимый прямой доступ к оборудованию.

  • Специальная схема приоритетов. Все приоритеты разделены на две класса:

    • Класс динамических приоритетов (0…15). Приоритеты меняются динамически по алгоритму близкому к принятому в Unix.

    • Класс приоритетов реального времени (16, 22—26, 31). Эти приоритеты фиксированы, задачи из этого класса планируются на основе приоритетной очереди и получают управление раньше задач с динамическими приоритетами.

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

  • Для закрепления страниц задачи в памяти существует специальный системный вызов (VirtualLock()).

  • Представляются объекты синхронизации: критические секции, таймеры, события, mutex и др.

Аргументы против использования Windows NT в качестве ОСРВ:

  • Ядро системы не является preemptive.

  • Механизм DPC (Differed Procedure Call), вызываемый обработчиком прерываний, имеет недостатки:

    • Все процедуры DPC получают один и тот же приоритет и обрабатываются планировщиком в порядке поступления (FIFO). Тем самым низкоприоритетные прерывания будут обрабатываться ранее высокоприоритетных, но поступивших позднее.

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

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

  • Малое количество приоритетов в классе реального времени (7 приоритетов) приводит к тому, что много задач будут иметь одинаковый приоритет и планироваться алгоритмом типа round robin. Следовательно, время до начала исполнения задачи будет случайной величиной. Оно зависит от текущей загруженности системы.

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

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

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

  • Для Windows NT официально не приводятся времена системных вызовов и блокирования прерываний.

  • Систему невозможно использовать без дисплея и клавиатуры.

  • Система предъявляет слишком большие запросы для ОСРВ на память.

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

Приведем несколько известных разработок такого рода.

Расширение RTX обеспечивает детерминированное управление системами на базе Windows XP, основными требованиями к которым являются стабильность рабочих характеристик и высокая степень масштабируемости; при этом RTX остается наиболее популярным расширением реального времени для Embedded Windows.

RTX глубоко интегрировано в ядро Windows XP и для обеспечения необходимых функций использует сервис Windows XP и API WIN32. Ядро реального времени (nucleus) интегрировано в ядро XP (kernel). Каждый процесс RTX выполняется как драйвер устройства ядра XP, при этом процессы не защищены друг от друга. Такая реализация приводит к быстрому переключению контекста, но небезопасна с точки зрения конфиденциальности.

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

В режиме с разделением задачи RTX исполняются в одном из ядер, в котором одновременно присутствуют и некоторые задачи Windows; при этом остальные ядра заняты исключительно исполнением задач Windows.

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

Программный интерфейс реального времени RTAPI (Real-Time API) является расширением Win32 и содержит, прежде всего, набор функций, необходимых для управления устройствами. RTAPI реализован в двух видах — как подмножество вызовов подсистемы реального времени (RTSS — Real-Time Subsystem) и как динамическая библиотека (DLL), которая может вызываться из Win32-приложений. RTAPI содержит следующие группы функций:

  • управление процессами и потоками — предоставляет Win32-совместимый интерфейс для управления, создания, изменения приоритетов, профилирования и завершения потоков реального времени,

  • управление объектами RTSS — предоставляет возможности унифицированного управления объектами RTSS (создание, закрытие, доступ). Объектами RTSS являются: таймеры, обработчики прерываний и исключительных ситуаций (startup, shutdown, blue screen), потоки, процессы, семафоры, мьютексы, разделяемая память, почтовые ящики, консольный и файловый вводы-выводы, регистры.

Опыт компании Ardence, накопленный при разработке операционных систем реального времени (ОСРВ), позволил создать средство одновременного запуска менеджера виртуальной машины VMM (Virtual Machine Manager) и ядра ОСРВ. Оно будет поставляться в составе существующей версии ОСРВ Phar Lap ETS и обеспечит возможность исполнения разделенной управляемой виртуальной машиной тредов реального времени с жесткими детерминистичными характеристиками и ОС общего назначения Windows или Linux.

В RTX версии 7.0 появилась новая и полезная для разработчиков функция — поддержка отладки целевых систем средствами Visual Studio 2005 и .NET 2003. Это позволит выполнять отладку приложений RTSS, исполняющихся в целевой системе с исполнительными модулями RTX, из инструментальной системы.

В число других новых характеристик расширений RTX версии 7.0 входят:

  • полнофункциональная поддержка Windows Server 2003 как в режиме с разделением, так и в режиме с выделением;

  • поддержка Microsoft Visual Studio 2005;

  • расширения данных отладчика RTX Debugger Data Extension с новыми командами, обеспечивающими более широкий доступ к внутренним структурам данных RTX;

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

Расширения RTX широко используются в системах промышленной автоматизации, оборонных и аэрокосмических приложениях, тренажерах, робототехнике, контрольно-измеритель­ной технике и медицинских приборах. Являясь программной средой на основе COTS-технологий, расширения RTX позволяют отказаться от применения дорогих и устаревающих частнофирменных аппаратных решений. Оценочные версии RTX можно загружать из Сети бесплатно. Дополнительную информацию о компании Ardence, расширении RTX 7.0 и других программных продуктах можно получить на сайте www.ardence.com




Система INtime является расширением реального времени Windows, которое было разработано корпорацией Radisys Corporation, а в настоящее время поддерживается корпорацией TenAsys

INtime комбинирует возможности ОСРВ жесткого реального времени со стандартными ОС Windows на платформе NT, не требуя дополнительной аппаратуры. INtime специально разработана под архитектуру процессора x86. Приложения реального времени и не реального времени выполняются на разных виртуальных машинах на единственном компьютере (рис. 5.1).



INtime, в отличие от RTX, слабо связана с ОС Windows NT. Архитектура INtime основана на механизме аппаратного обслуживания задач (hardware tasking), которое обеспечивается процессором Intel. Получается, что два ядра выполняются на одной аппаратуре. Поскольку они разделяют одну аппаратуру, потребовались некоторые модификации NT HAL. Такой подход позволяет защитить и отделить среду выполнения и область памяти от Windows. Внутри INtime каждый процесс приложения имеет свое собственное адресное пространство. Кроме того, ядро и приложения выполняются на разных приоритетных уровнях, что позволяет защитить их друг от друга.

INtime показывает предсказуемое поведение, однако ее сложная архитектура не позволяет достичь системе хорошей производительности. Из-за сегментационных ограничений INtime подходит не для всех систем реального времени.
Операционные системы Microsoft Windows Embedded для встраиваемых систем имеют две разновидности в соответствии с версиями ОС Windows NT и Windows XP [MSEmb]. Версии систем Embedded корпорации Microsoft состоят из многочисленных конфигурируемых частей, которые позволяют легко манипулировать набором установленного программного обеспечения.

Windows NT Embedded использует технические ресурсы Windows NT и позволяет разрабатывать приложения, которые могут быть легко интегрированы в существующую информационную инфраструктуру (рис. 5.2).

Набор средств разработки — Target Designer и Component Designer — позволяет OEM (original equipment manufacturer)- производителям конфигурировать и создавать операционную систему для конкретной аппаратной платформы. Windows NT Embedded обладает специфическими компонентами для создания встраиваемых систем, которые позволяют работать в системах без видеоадаптера, осуществлять загрузку и работу накопителей в режиме «только чтение», выполнять удаленное администрирование и предоставляют дополнительные средства обработки ошибок и восстановления. Windows NT Embedded дает возможность создавать устройства, с которыми работать так же просто, как и со стандартными ПК на основе Windows, и управлять этими новыми устройствами на основе существующих профессиональных продуктов, таких, как Microsoft Systems Management Сервер, HP OpenView, IBM Tivoli, CA Unicenter TNG и др.

Разработчик встраиваемых систем применяет для конфигурирования ОС Target Designer, используя готовый двоичный код Windows NT, дополнительные компоненты для встраивания и дополнительные приложения. В случае необходимости, для создания новых компонентов, не входящих в состав продукта (например, драйверов устройств, приложений и пр.), может использоваться Component Designer. Вновь созданные новые компоненты могут быть импортированы в Target Designer и включены в состав целевой ОС. После конфигурирования ОС с помощью Target Designer происходит проверка взаимосвязей компонентов и строится образ системы, готовый к загрузке и исполнению на целевой системе.

Windows XP Embedded насчитывает до 10 000 отдельных компонентов, а в Windows NT Embedded их было чуть больше 300. Основной отличительной чертой Windows XP Embedded является четкое разграничение компонентов системы, что позволяет разработчикам встраиваемого набора функций при создании образа системы включать только необходимые файлы и максимально сократить размер результирующей системы. Этими компонентами служат отдельные части системы Windows XP Professional.

Компоненты Windows XP Embedded представлены сервисами, приложениями, библиотеками и драйверами — разработчику нужно сконфигурировать необходимый набор функций и собрать из компонентов необходимую конфигурацию в образ среды исполнения (runtime image). Все опции конфигурации собраны воедино в базу данных компонентов. Разработчик имеет к ней доступ и может ее редактировать с помощью специального инструмента — Component Database Manager.

Для каждого компонента в процессе создания определяется ряд параметров:

  • платформа, на которой будет выполняться данный компонент (определяет порядок компиляции и сборки);

  • описание и схема подключения компонента;

  • список ассоциированных ресурсов, таких, как файлы и ключи реестра;

  • зависимости компонента от других компонентов (например, от DirectX или NET runtime);

  • указатель на хранилище файлов (чаще всего это просто локальный каталог, но может быть и сетевым ресурсом);

  • принадлежность к группе для упрощения обращения сразу к нескольким компонентам как к целому.

Сама база данных управляется СУБД MS SQL Server и может быть расположена как локально, на компьютере разработчика, так и на сервере.
Realtime ETS Kernel. Система Realtime ETS Kernel выпускается фирмой Phar Lap SoftWare в двух вариантах:

1. TNT Embedded ToolSuite, Realtime Edition, включающий: Realtime ETS Kernel, ETS TCP/IP, отладчик CodeView с поддержкой Borland Turbo Debugger, ассемблер 386ASM, linker, поддержку компиляторов Visual C/C++, Borland C/C++, Watcom C/C++ и API Win32.

2. Realtime ETS Kernel — полная замена Windows NT, включает компактное ядро (28Кб), поддерживающее Win32 API и использующее стандартные библиотеки компиляторов. Ядро имеет 32 уровня приоритетов и может быть записано в ПЗУ.
Hyperkernel. Система Hyperkernel выпускается фирмой Nematron (Imagination Systems). Представляет собой ядро, обеспечивающее детерминированное планирование и работающее на уровне привилегий 0 процессора Intel 80x86 вместе с Windows NT. Задачи HyperKernel не видны Windows NT. Для них определены 8 уровней приоритетов с preemptive планированием. В качестве средства разработки используются стандартные для Windows NT компиляторы Visual C/C++ и специальные библиотеки. Используются API Win32 и стандартный HAL. Разрешение таймера: 1 микросекунда, минимальный квант времени 20 микросекунд. Время задержки на прерывание — 5микросекунд, переключение контекста — 4 микросекунды на Intel Pentium 133 МГц.

1   ...   10   11   12   13   14   15   16   17   ...   34

Похожие:

Учебное пособие по курсу «Системы реального времени» представлено в семи разделах iconУчебное пособие Новосибирск 2001
Учебное пособие предназначено для студентов всех специальностей всех форм обучения. В первой части пособия рассмотрены основные понятия...

Учебное пособие по курсу «Системы реального времени» представлено в семи разделах iconУчебное пособие может быть рекомендовано студентам медицинских и юридических вузов, слушателям системы послевузовского профессионального образований врачей психиатров,
Усов Г. М., Федорова М. Ю. Правовое регулирование психиатрической помощи: учебное пособие для вузов. Зао "Юстицинформ", 2006 г

Учебное пособие по курсу «Системы реального времени» представлено в семи разделах iconУчебное пособие подготовлено в соответствии с государственным образовательным стандартом по дисциплине «Правоохранительные органы»
Правоохранительные органы: Учебное пособие / Н. В. Угольникова. 4-e изд. М.: Иц риор, 2010. 134 с.: 70x100 1/32. (Карманное учебное...

Учебное пособие по курсу «Системы реального времени» представлено в семи разделах iconУчебное пособие посвящено проблемам профессиональных заболеваний органов дыхания. Рассмотрены вопросы диагностики лечения и профилактики заболеваний легких пылевой и химической этиологии.
Учебное пособие предназначено для системы вузовского и послевузовского профессионального образования специалистов профпатологов пульмонологов...

Учебное пособие по курсу «Системы реального времени» представлено в семи разделах iconУчебное пособие для иностранных студентов Утверждено Ученым Советом хнму
Учебное пособие предназначено для иностранных студентов, изучающих курс «История Украины». Его цель оказание методической помощи...

Учебное пособие по курсу «Системы реального времени» представлено в семи разделах iconУчебное пособие по английскому языку Для студентов юридического факультета
Юридические профессии в Великобритании: Учебное пособие на английском языке. – М.: Импэ им. А. С. Грибоедова, 2008. – 16 с

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

Учебное пособие по курсу «Системы реального времени» представлено в семи разделах iconУчебное пособие для студентов первого курса неязыковых вузов
Учебное пособие предназначено для студентов первого курса неязыковых вузов. Данное учебное пособие сождержит страноведческий материал,...

Учебное пособие по курсу «Системы реального времени» представлено в семи разделах iconУчебное пособие / В. Д. Тульчинская
Сестринский уход при детских заболеваниях: Учебное пособие / В. Д. Тульчинская; Под ред. В. В. Морозова. М.: Инфра-м: Академцентр,...

Учебное пособие по курсу «Системы реального времени» представлено в семи разделах iconУчебное пособие Петрозаводск Издательство Петрозаводского университета 2004 удк 616. 89-07(075. 8)
Деменции позднего возраста: Учебное пособие /М. М. Буркин, В. А. Теревников. Петрозаводск: Изд-во ПетрГУ, 2004. 228 с