Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция_Realtime_2.doc
Скачиваний:
221
Добавлен:
14.02.2015
Размер:
611.33 Кб
Скачать
      1. Немного теории

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

Задачи реального времени имеют специфическое наименование - критические приложения (mission-critical applications). Их общая черта - неприемлемо высокая цена сбоя или отказа оборудования.

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

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

  2. Вторая проблема (надежность) может быть эффективно решена при полном использовании возможностей процессоров Intel 80386 и старше, что предполагает работу ОС в 32-х разрядном режиме процессора.

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

  4. Кроме того, необходима эффективная поддержка сетевых коммуникаций, и взаимодействия между процессами, поскольку реальные технологические системы обычно управляются целым комплексом компьютеров и/или процессов.

  5. Весьма желательно также, чтобы ОС поддерживала множественные потоки управления, а также симметричную мультипроцессорность.

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

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

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

В упрощенном виде эта последовательность представлена на рис. 2-11. Очевидно, что время T int зависит от содержания обработки прерывания, в то время как остальные времена зависят от архитектуры и реализации операционной системы. Как правило, для них выполняется соотношение T sl > T il > T iret. Кроме того, ОС определяет еще один характерный интервал, называемый временем переключения контекста. Этот интервал определяет как часто каждый из активных процессов может получать управление при заданных параметрах квантования времени и обычно он примерно на 20% больше чем Т sl. Таким образом мы можем указать четыре временных параметра, определяющих ‘реактивные’ характеристики ОС. Разумеется эти характеристики зависят также от аппаратуры, но при проведении сравнительных испытаний выясняется, что при равных аппаратных условиях эти характеристики (и соответствующие параметры) могут очень сильно различаться у разных операционных систем причем в тех случаях, когда различия очень велики основная их причина заключается не в эффективности реализации а в архитектурных различиях.

Рис. 2-11.