Общее описание операционных систем реального времени

Автор работы: Пользователь скрыл имя, 31 Октября 2010 в 11:01, Не определен

Описание работы

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

Файлы: 1 файл

ОСРВ.doc

— 247.00 Кб (Скачать файл)
 

   Рост  популярности Linux побуждает разработчиков внимательнее присмотреться к этой операционной системе. В данный момент эта ОС готова к стабильной работе, а открытость ее исходных текстов и архитектуры наряду с растущей популярностью заставляет программистов переносить свои наработки на многие аппаратные платформы: SGI, IBM, Intel, Motorola и т. д.

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

   RTLinux - это операционная система, в которой небольшое ядро реального времени сосуществует с Posix-like ядром Linux. Основная цель - сделать доступными сложные службы и оптимизированное поведение системы в стандартных ситуациях для системы с разделением времени, и, в то же время, выполнять задачи реального времени. В прошлом операционные системы реального времени примитивны - простые программы, которые предлагали пользователю чуть больше, чем просто библиотека основных функций. Но в наше время пользователи требуют доступ к TCP/IP, графическому дисплею и системе окон, базам данных и другим службам, которые не являются ни примитивными, ни простыми. Одно из решений - добавить non-real-time службы к базовому ядру реального времени, что и было проделано в VXworks и, немного по-другому, в микроядре QNX. Вторая возможность - модифицировать стандартное ядро и сделать его полностью прерываемым.

2.3.2 Организация RTLinux

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

   В RTLinux все прерывания обслуживаются ядром  реального времени, а затем передаются стандартному ядру, но только в том случае, если нет необходимости запускать одну из задач реального времени. Для того чтобы минимизировать количество изменений в стандартном ядре, этот механизм реализован при помощи эмулирования ICH (Interrupt Control Hardware). Ядро реального времени и пользовательские задачи Linux могут обмениваться данными через неблокируемые очереди и сегменты разделяемой памяти.

   С точки  зрения программиста очереди выглядят как стандартные последовательные устройства UNIX, доступ к которым возможен при помощи системных вызовов POSIX read/write/open/ioctl. Разделяемая память доступна через системный вызов mmap.

   RTLinux использует Linux для загрузки, доступа к большинству  устройств, работы с сетью,  файловыми системами, управлением  процессами Linux и загрузки модулей ядра, что дает возможность легко модифицировать систему реального времени.

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

   На  практике оказалось, что идея RTLinux очень  удачна. В самом худшем случае запаздывание прерываний на 486/33Mhz PC оказалось менее 30 мкс, что близко к аппаратному пределу. Для прикладных задач симбиоз систем реального времени и оптимизированной для "общего случая" оказался очень удачным. Наиболее часто используемая конфигурация RTLinux - примитивные задачи реального времени со статически распределяемой памятью без ее защиты, простым планировщиком с фиксированными приоритетами без защиты от нереализуемых планов, аппаратным запрещением прерываний, разделяемая память - единственный механизм синхронизации задач реального времени и ограниченный набором операций над FIFO-очередями, подсоединенными к обычным процессам Linux.

   Ядро Linux позволяет в динамике загружать  и выгружать модули ядра. Представив отдельные части ядра реального  времени в виде модулей, легко  изменять ядро реального времени. Уже  написаны альтернативные планировщики и модуль семафоров. Во время работы системы можно загрузить модуль с задачами реального времени, затем выгрузить стандартный планировщик и загрузить, например, EDF планировщик. Можно пробовать разные комбинации модулей, пока не будет найдена оптимальная.

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

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

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

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

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

   Необходимо  отметить, что компания LynuxWorks начала поставки (17.05.2002) встраиваемой ОС BlueCat Linux для комплекта разработчика ПО Intel Internet Exchange Architecture Software Developers Kit (Intel IXA SDK) 2.0, предназначенного для семейства сетевых процессоров Intel IXP1200. ОС BlueCat Linux распространяется бесплатно совместно с Intel IXA SDK 2.0.

   VxWorks давно  стала де-факто стандартом для  подавляющего большинства систем, использующих встроенные ОС. Флэш-память вычислительной системы IXP1200 содержит загрузчик ядра VxWorks. Для разработчиков это упрощает задачу написания новых программ. Кроме того, уже реализована возможность работы сетевого процессора под управлением ОС Linux (с расширениями реального времени). Осуществляется программная поддержка некоторыми производителями ОС Linux (например,LynuxWorks и т. д.).

2.4 Контроль и управление  в реальном времени  с использованием OS9

2.4.1 Введение

   Для управления из единого центра одной или многими удалёнными установками и проверки их состояния фирма CS (Франция) разработала систему контроля. Она может применяться для управления энергетическими объектами, в системах кондиционирования воздуха, системах безопасности, технологических установках, сетях, промышленных конвейерах и уже внедрена на многих гражданских и военных объектах.

   Система предоставляет аппаратное и программное  решение всех аспектов контроля. Широкие  возможности сопряжения обеспечивают сбор данных с наружных датчиков, оконечных устройств, программируемых блоков ввода/вывода и с хост-систем.

   В системе  контроля можно выделить два уровня:

  • Уровень 1 для сбора и обработки локальных данных;
  • Уровень 2 для сбора и анализа данных с удаленных объектов.
 

   Задачи  на уровне 1 выполняются блоком GESCAP (например, рабочей станцией на процессоре 68010 фирмы Motorola с ОЗУ 1 Мбайт), а на уровне 2 - блоком GESVA (например, рабочей  станцией на процессоре 68030 фирмы Motorola с ОЗУ 4 Мбайт). В блоках GESVA и GESCAP используется одна и та же операционная система (OS-9) и прикладное программное обеспечение. Различны только видеотерминалы и функциональные возможности. Благодаря этой однородности облегчается установка, использование и поддержание работоспособности системы.

   Поскольку пользовательский интерфейс GESVA и GESCAP соответствует интуитивным представлениям, работа по конфигурированию не вызывает трудностей и не требует никаких  особых познаний в информатике. Пользователь имеет дело с всплывающими меню и  диалоговыми окнами, обеспечивающими доступ к следующим стандартным функциям. 

   Конфигурирование  аналоговых или цифровых блоков ввода/вывода (аварийные сигналы, сообщения, приоритеты, и т.д.):

  • логические операции (И, ИЛИ ...) над входными данными;
  • установление соответствия разъёмов каждому устройству ввода/вывода;
  • перегруппировка устройств ввода/вывода;
  • графическое взаимодействие с элементами анимации.
 

   Функции отображения состояния:

состояние блоков ввода/вывода, устройств, соединений, аварийных  сигналов, бортовой журнал реального времени.  

   Графические функции:

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

   Функции связи:

  • протокол связи JBUS/MODBUS (RS-232/RS-422);
  • связь с системой помощи в локализации и устранении неисправностей (GESDOC).

   Функции выдачи на печать:

  • распечатка структуры системы;
  • распечатка списка сигналов тревоги и событий.

   Функции различного назначения:

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

2.4.2 Как развивалась  эта прикладная  система?

   Основными требованиями к программному обеспечению  были:

  • один и тот же состав прикладных программ и единый пользовательский интерфейс на различных платах и типах отображения;
  • быстрая развитая многооконная среда, расходующая как можно меньше памяти;
  • многозадачная, прошиваемая в ПЗУ операционная система реального времени с небольшими требованиями к объему памяти.

   В результате выбрана операционная система OS9, наилучшим  образом отвечающая перечисленным  требованиям.

   В качестве многооконной среды разработки выбран пакет WINOTOOLS. С помощью утилит WINOTOOLS можно без программирования разрабатывать  все элементы пользовательского интерфейса (окна, средства графического ввода данных, кнопки, предупреждающие сообщения и т.п.).

   Благодаря скромным требованиям к объему памяти и малому времени реакции, WINOTOOLS в  сочетании с характеристиками OS9 является идеальной средой разработки разнообразных прикладных программ реального времени, работающих в графическом режиме.

2.4.3 Утилиты WINOTOOLS:

  • PAINT - объектно-ориентированный графический редактор для разработки пользовательских интерфейсов, пультов управления и диаграмм. PAINT разработан таким образом, чтобы его можно было настраивать и интегрировать в пользовательскую прикладную программу. Все файлы графических данных, созданные с помощью PAINT, могут целиком модифицироваться без обращения к исходным кодам (импортируются файлы в формате GIF).
  • SCRIPT - язык, позволяющий моделировать все диалоги с пользовательским интерфейсом до написания строки исходного кода. Эта утилита позволяет производить быструю проверку правильности пользовательского интерфейса.
  • DATABASE (БАЗА ДАННЫХ) - библиотека С-функций, обеспечивающая управление базой данных (соответствие данных и индексных файлов базы данных).
  • БИБЛИОТЕКА ВВОДА/ВЫВОДА - библиотека С-функций, обеспечивающая сопряжение пользовательского интерфейса с устройствами ввода/вывода.

2.5 Windows NT

2.5.1 Возможность использования  Windows NT в качестве  ОС реального времени

   В последнее  время приобретают популярность расширения реального времени для Windows NT. Это обусловлено с одной  стороны - расширением областей применения компьютерного управления, с другой стороны - сравнительно малой известностью и высокой стоимостью специализированных операционных систем реального времени. Но даже если бы это было не так и о других системах было бы известно не меньше - все равно Win NT RTX была бы наиболее популярна. Ведь не даром соотношение пользователей ОС семейства Windows к пользователям Linux/Unix систем - 1000 к 1. Вполне логично, что человек, работая дома в одной системе, хочет видеть такую же, понятную ему удобную систему и на работе. Интерфейс Win32 является стандартным и хорошо знакомым большому числу программистов и пользователей. Под NT существует огромное число готовых приложений (в том числе коммуникационных), а также популярные средства разработки. К сожалению, Windows NT "в чистом виде" нельзя отнести к операционным системам реального времени. Обсуждению причин этого посвящены статьи Martin Timmerman и Jean-Christophe Monfret в Real-Time Magazine Q21997.

Информация о работе Общее описание операционных систем реального времени