1. Раскройте понятие системы реального времени. Приведите классификацию систем реального времени.
Существует несколько определений систем реального времени (СРВ) (real time operating systems (RTOS)), большинство из которых противоречит друг другу. Приведем некоторые из них, чтобы продемонстрировать различные взгляды на назначение и основные задачи СРВ:
1. Системой реального времени называется система, в которой успешность работы любой программы зависит не только от ее логической правильности, но и от времени, за которое она получила результат. Если временные ограничения не удовлетворены, то фиксируется сбой в работе систем.
2. Стандарт POSIX 1003.1 определяет СРВ следующим образом: «Реальное время в операционных системах - это способность операционной системы обеспечить требуемый уровень сервиса в заданный промежуток времени».
3. Иногда системами реального времени называют системы постоянной готовности (on-line системы), или «интерактивные системы с достаточным временем реакции». Обычно это делают фирмы-производители по маркетинговым соображениям. Если интерактивную программу называют работающей в реальном времени, то это означает, что она успевает обрабатывать запросы от человека, для которого задержка в сотни миллисекунд даже незаметна.
4. Часто понятие «система реального времени» отождествляют с понятием «быстрая система». Это не всегда правильно. Время задержки реакции СРВ на событие не так уж важно (оно может достигать нескольких секунд). Главное, чтобы это время было достаточно для рассматриваемого приложения и гарантированно. Часто алгоритм с гарантированным временем работы менее эффективен, чем алгоритм, таким свойством не обладающий. Например, алгоритм «быстрой» сортировки (quicksort) в среднем работает значительно быстрее многих других алгоритмов сортировки, но его гарантированная оценка сложности значительно хуже.
5. Во многих важных сферах приложения СРВ вводятся свои понятия «реального времени». Так, процесс цифровой обработки сигнала называют идущим в «реальном времени», если анализ (при вводе) и/или генерация (при выводе) данных может быть проведен за то же время, что и анализ и/или генерация тех же данных без цифровой обработки сигнала.
Различают следующие классы СРВ:
- исполнительные системы реального времени;
- ядра реального времени;
- UNIX'ы реального времени.
Исполнительные системы реального времени. Признаки систем этого типа - различные платформы для систем разработки и исполнения. Приложение реального времени разрабатывается на host- компьютере (компьютере системы разработки), затем компонуется с ядром и загружается в целевую систему для исполнения. Как правило, приложение реального времени -это одна задача и параллелизм здесь достигается с помощью нитей (threads).
Системы этого типа обладают рядом достоинств, среди которых основным достоинством является высокая скорость и реактивность системы.
Ядра реального времени. В этот класс входят системы с монолитным ядром, где и содержится реализация всех механизмов реального времени этих операционных систем. Системы этого класса, как правило, модульны, хорошо структурированы, имеют наиболее развитый набор специфических механизмов реального времени, компактны и предсказуемы.
Одна из особенностей систем этого класса - высокая степень масштабируемости. На базе этих ОС можно построить как компактные системы реального времени, так и большие системы серверного класса.
UNIX'ы реального времени.
Часть разработчиков операционных систем реального времени попыталась просто переписать ядро UNIX, сохранив при этом интерфейс пользовательских процессов с системой, насколько это было возможно. Реализация этой идеи не была слишком сложной, поскольку не было препятствия в доступе к исходным текстам ядра, а результат оказался замечательным. Получили и реальное время, и весь набор пользовательских приложений - компиляторы, пакеты, различные инструментальные системы.
Однако Unix'ы реального времени имеют следующие недостатки: системы реального времени получаются достаточно большими и реактивность их ниже, чем реактивность систем первых двух классов.
2. Раскройте сущность систем жесткого и систем мягкого реального времени
Рассмотрим основные признаки систем жесткого и мягкого реального времени.
Признаки систем жесткого реального времени:
. недопустимость никаких задержек, ни при каких условиях;
. бесполезность результатов при опоздании;
. катастрофа при задержке реакции;
. цена опоздания бесконечно велика.
Пример системы жесткого реального времени - бортовая система управления самолетом.
Признаки систем мягкого реального времени:
. за опоздание результатов приходится платить;
. снижение производительности системы, вызванное запаздыванием реакции на происходящие события.
Пример - автомат розничной торговли и подсистема сетевого интерфейса. В последнем случае можно восстановить пропущенный пакет, используя сетевой протокол, повторяющий передачу пропущенных пакетов. При этом, конечно, произойдет снижение производительности системы.
Таким образом, различие между системами жесткого и мягкого реального времени определяется следующими требованиями: система называется системой жесткого реального времени, если она "не имеет права опаздывать", и мягкого реального времени - если ей "не следует опаздывать".
3. Приведите типичную структуру построения системы реального времени (Не уверен)
Аппаратурная среда систем реального времени
Систему реального времени можно разделить как бы на три слоя:
1. Ядро - содержит только строгий минимум, необходимый для работы системы: управление задачами, их синхронизация и взаимодействие, управление памятью и устройствами ввода/вывода; размер ядра очень ограничен: часто несколько килобайт.
2. Система управления - содержит ядро и ряд дополнительных сервисов, расширяющих его возможности: расширенное управление памятью, вводом/выводом, задачами, файлами и т.д., обеспечивает также взаимодействие системы и управляющего/управляемого оборудования.
3. Система реального времени - содержит систему управления и набор утилит: средства разработки (компиляторы, отладчики и т.д.), средства визуализации (взаимодействия человека и операционной системы).