Операционные системы реального времени. Назначение, применение, стандарты

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

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

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

Принято различать системы мягкого (soft) и жесткого (hard) реального времени. В системах жесткого реального времени неспособность обеспечить реакцию на какие-либо события в заданное время ведет к отказам и невозможности выполнения поставленной задачи. В большинстве русскоязычной литературы такие системы называют системами с детерминированным временем. При практическом применении время реакции должно быть минимальным. Системами мягкого реального времени называются системы, не попадающие под определение "жесткие", т.к. в литературе четкого определения для них пока нет. Системы мягкого реального времени могут не успевать решать задачу, но это не приводит к отказу системы в целом. В системах реального времени необходимо введение некоторого директивного срока (в англоязычной литературе – deadline), до истечения которого задача должна обязательно (для систем мягкого реального времени – желательно) выполниться. Этот директивный срок используется планировщиком задач как для назначения приоритета задачи при ее запуске, так и при выборе задачи на выполнение.

Определение

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

Типы задач

Всякий процесс содержит одну или несколько задач. Операционная система позволяет задаче порождать новые задачи. Задачи по своей манере действовать можно разделить на 3 категории.

1. Циклические задачи. Характерны для процессов управления и интерактивных процессов.

2. Периодические задачи. Характерны для многих технологических процессов и задач синхронизации.

3. Импульсные задачи. Характерны для задач сигнализации и асинхронных технологических процессов.

Виды программирования

В зависимости от архитектуры целевого компьютера и назначения, подходы к написанию программ можно разделить на 3 группы.

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

2. Параллельное программирование. Различают квазипараллельные программы, состоящие из нескольких независимых процессов, и истинно-параллельные программы, состоящие из нескольких связанных между собой параллельно работающих процессов или/и задач. Конечное состояние программы может зависеть от временных характеристик компьютера, когда процессы или/и задачи могут завершаться в разном порядке.

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

Виды ресурсов

По своей природе ресурсы можно разделить на

• аппаратные:

— процессор,

— область памяти,

— периферийные устройства,

— прерывания,

• программные:

— программа,

— данные,

— файлы,

— сообщения.

По своим характеристикам ресурсы разделяют на:

• активные:

— способны изменять информацию (процессор),

• пассивные:

— способны хранить информацию,

• локальные:

— принадлежат одному процессу время жизни совпадает с временем жизни процесса,

• разделяемые:

— могут быть использованы несколькими процессами; существуют, пока есть хоть один процесс, который их использует,

• постоянные:

— используются посредством операций "захватить" и "освободить",

• временные

— используются посредством операций "создать" и "удалить".

Разделяемые ресурсы бывают:

• не критичные:

— могут быть использованы одновременно несколькими процессами (например, жесткий диск или канал Ethernet)

• критичные:

— могут быть использованы только одним процессом, и пока этот процесс не завершит работу с ресурсом, последний не доступен другим процессам (например, разделяемая память, доступная на запись).

Типы взаимодействия процессов

По типу взаимодействия различают

• сотрудничающие процессы:

— процессы, разделяющие только коммуникационный канал, по которому один передает данные, а другой их получает;

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

• конкурирующие процессы:

— процессы, использующие совместно разделяемый ресурс;

— процессы, использующие критические секции;

— процессы, использующие взаимные исключения.

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

Определение. Взаимное исключение (mutual exclusion , mutex) — это способ синхронизации параллельно работающих процессов (задач), использующих разделяемый постоянный критичный ресурс. Если ресурс занят, то системный вызов "захватить ресурс" переводит процесс (задачу) из состояния выполнения в состояние ожидания. Когда ресурс будет освобожден посредством системного вызова "Освободить ресурс", то этот процесс (задача) вернется в состояние выполнения и продолжит свою работу. Ресурс при этом перейдет в состояние "занят".

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

При синхронизации задач необходимо бороться с 3-мя проблемами:

1. "блокировка" ("lockout"):

• процесс (задача) ожидает ресурс, который никогда не освободится,

2. "тупик" ("deadlock")

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

3. "застой" ("starvation")

• процесс (задача) монополизировал процессор.

Для минимизации этик проблем используются следующие идеи.

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

• Задачи делятся на группы:

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

— готовые задачи, у которых есть все необходимые пассивные ресурсы, но нет процессора; являются кандидатами на получение процессора в случае его освобождения;

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

Основные области: применения ОСРВ

В течение длительного времени основными потребителями ОСРВ были военная и космическая области. Сейчас ситуация кардинально изменилась и ОСРВ можно встретить даже в товарах широкого потребления.

Основные области применения ОСРВ:

• Военная и космическая области: бортовое и встраиваемое оборудование:

— системы измерения и управления, радары;

— цифровые видеосистемы, симуляторы;

— ракеты, системы определения положения и привязки к местности.

• Промышленность:

— автоматические системы управления производством (АСУП) (computer aided manufacturing (CAM)), автоматические системы управления технологическим процессом (АСУГП);

— автомобилестроение: стимуляторы, системы: управления мотором, автоматическое сцепление, системы антиблокировки колес...

— энергетика: сбор информации, управление данными и оборудованием...

— телекоммуникации: коммуникационное оборудование, сетевые коммутаторы, телефонные станции...

— банковское оборудование (например, во многих банкоматах работает ОСРВ QNX).

• Товары широкого потребления:

— мобильные телефоны, например, в телефонах стандарта GSM работает ОСРВ pSOS;

— цифровые телевизионные декодеры;

— цифровое телевидение (мультимедиа, видеосерверы...);

— компьютерное и офисное оборудование (принтеры, копиры), например, в факсах применяется ОСРВ VxWorks, в устройствах чтения компакт-дисков - ОСРВ VRTX32.

Отметим, что часто ОСРВ существуют в нескольких вариантах: полном и сокращенном, когда объем системы, составляет несколько килобайтов.

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

Мартин Тиммерман сформулировал следующие необходимые требования для ОСРВ [DEDSYS]:

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

http://www.studfiles.ru

Категории: