Автор работы: Пользователь скрыл имя, 17 Апреля 2011 в 10:22, курсовая работа
Цель исследования: Обобщение теоретического материала по теме «Операционные системы реального времени» (ОСРВ)
Введение
§1. Особенности операционных систем реального времени 5
1.1 Классификация операционных систем 5
1.2 Особенности операционных систем реального времени 8
1.2.1 Системы жёсткого и мягкого реального времени 12
1.2.2 Архитектуры операционных систем реального времени 14
1.2.3 Ядро операционной системы реального времени 17
1.3 Функциональные требования к операционным системам реального времени 20
§2. Обзор операционных систем реального времени 29
Заключение 41
Список литературы 42
Федеральное агентство по образованию
Федеральное
государственное
высшего профессионального образования
«Сибирский федеральный университет»
__________________________
Лесосибирский педагогический институт -
филиал Федерального государственного образовательного учреждения
высшего профессионального образования
«Сибирский
федеральный университет»
Факультет Физико-математический (очная форма обучения)
Специальность «Информатика»
Исполнитель:
студент 4 курса ФМФ группы ДЛМ06-03СФИ Мигранов И.В.
Научный руководитель:
Ассистент кафедры МАиВМ
Губанова
А.А.
Лесосибирск 2009
Оглавление
Введение | |
§1. Особенности операционных систем реального времени | 5 |
1.1
Классификация операционных |
5 |
1.2 Особенности операционных систем реального времени | 8 |
1.2.1 Системы жёсткого и мягкого реального времени | 12 |
|
14 |
|
17 |
1.3
Функциональные требования к
операционным системам |
20 |
§2. Обзор операционных систем реального времени | 29 |
Заключение | 41 |
Список литературы | 42 |
Введение
Стремительно развивающийся рынок систем управления жилищем, тотальная автоматизация производства и повсеместный переход к применению цифровых технологий в технике, все более интегрирующееся во все области деятельности современной цивилизации телекоммуникационные технологии, выводит на первый план, как по количеству, так и по значению устройства, которые с одной стороны можно считать полноценными компьютерами, но, с другой стороны, требующих системного программного обеспечения иного класса и иной архитектуры, чем традиционные персональные компьютеры общего назначения.
Операционные системы
Цель исследования: Обобщение теоретического материала по теме «Операционные системы реального времени» (ОСРВ)
Объект изучения: Операционные системы реального времени
Предмет изучения: Практическое применение ОСРВ
Задачи:
Данная
курсовая работа состоит из введения,
двух параграфов, заключения и списка
используемой литературы. В первом
параграфе рассматривается
§1.
Особенности операционных
систем реального времени
Основой любого аппаратно-программного комплекса является операционная система (ОС). Операционной системой называют комплекс программ, обеспечивающий управление ресурсами аппаратно-программного комплекса (вычислительной системы) и процессами, использующими эти ресурсы при вычислениях. Ресурсом в данном контексте является любой логический или физический (и в совокупности) компонент вычислительной системы или аппаратно-программного комплекса и предоставляемые им возможности.
Основными ресурсами являются процессор (процессорное время), оперативная память и периферийные устройства.
Управление ресурсами сводится к выполнению следующих задач: упрощение доступа к ресурсам; распределение их между процессами.
Реализация
первой функции позволяет “спрятать”
аппаратные особенности вычислительной
системы и тем самым
Таким образом, ОС поддерживает следующие интерфейсы: пользовательский (командный язык для управления функционированием системой и набор сервисных услуг); программный (набор услуг, освобождающий программиста от кодирования рутинных операций).
Функция распределения ресурсов является одной из наиболее важных задач, решаемых ОС, однако она присуща не всем ОС, а только тем, которые обеспечивают одновременное выполнение нескольких программ (процессов).
Процессом называется последовательность действий, предписанных программой или ее логически законченной частью, а также данные, используемые при вычислениях. Процесс является минимальной единицей работы, для которой выделяются ресурсы.
В настоящее время существует большое разнообразие ОС, которые классифицируются по следующим признакам ():
В соответствии с первым признаком различаются одно- и многопользовательские ОС. Второй признак делит ОС на одно- и многозадачные (далее речь пойдет только о многозадачных ОС).
В соответствии с третьим признаком ОС делятся:
Четвертый признак делит ОС на одно- и многопроцессорные, сетевые и распределенные.
Для
многопользовательских и
В общем случае согласование эффективнее и надежнее вытеснения, но определяющим фактором при реализации программ становится тот факт, что данная программа не должна монопольно использовать процессорное время.
Подытоживая вышеописанный материал, составим структурно-логическую схему классификаций ОС.
1.2
Особенности операционных
систем реального
времени
Существует
несколько определений
Из приведенных определений следует, что ОСРВ призваны решать задачи, в которых важны не только правильность решения, но и сроки, в которые эти решения принимаются.
Система реального времени строится как программный комплекс, в общем виде, она может быть представлена как комбинация трех компонент прикладное программное обеспечение, операционная система реального времени (ОСРВ) и аппаратное обеспечение (таблица 1):.
Таблица 1
Компоненты системы реального времени
Прикладное ПО | Потоки | Диспетчеризация | |
Меж-потоковое взаимодействие | |||
ОСРВ | API | Обработка прерывания | |
Защита от инверсии приоритетов | Управление потоками | ||
I/O | Управление памятью | ||
Аппаратное обеспечение | CPU | Кэш | Устройства |
При разработке СРВ необходим тщательный анализ соответствия характеристик этих трех компонент требованиям внешнего объекта, для управления или мониторинга которым эта СРВ предназначена. Как уже говорилось, проведение такого анализа требует, чтобы временные характеристики всех компонент системы были хорошо прогнозируемыми.
В целом ряде задач автоматизации программные комплексы должны работать как составная часть более крупных автоматических систем без непосредственного участия человека. В таких случаях СРВ называют встраиваемыми.
Встраиваемые системы - программное и аппаратное обеспечение, составляющее компоненты другой, более большей системы и работающее без вмешательства человека.
Существует
некое различие между системами
реального времени и
Классическим
примером задачи, где требуется ОСРВ,
является управление роботом, берущим
деталь с ленты конвейера. Деталь
движется, и робот имеет лишь маленький
промежуток времени, когда он может
её взять. Если он опоздает, то деталь уже
не будет на нужном участке конвейера,
и, следовательно, работа не будет сделана,
несмотря на то, что робот находится в
правильном месте. Если он подготовится
раньше, то деталь ещё не успеет подъехать,
и он заблокирует ей путь.
Многие операционные системы, работающие не в реальном времени, также поддерживают схожие службы ядра операционной системы. Ключевое различие между операционными системами реального времени и универсальными — это необходимость в детерминированном временном поведении (что присуще ОСРВ).
Формально
детерминированность времени
Универсальные операционные системы зачастую достаточно недетерминированы. Их службы могут добавлять случайные задержки в работу прикладного программного обеспечения и, следовательно, приводить к замедлению начала работы приложения на непрогнозируемую величину. При проектировании обычных операционных систем разработчики не акцентируют свое внимание на математическом аппарате вычисления времени выполнения конкретной задачи и сервиса.
С другой стороны, операционные системы реального времени зачастую идут на шаг впереди базового детерминизма. Для большинства служб ядра эти ОС предлагают постоянное, независимое от загруженности, время, безотносительно к длине отправляемого сообщения или другим факторам, таким как количество задач, очередей и сообщений, контролируемых ОСРВ.
Обобщая
вышеизложенный материал, выведем таблицу
2.
Таблица 2
Сравнение ОСРВ с ОС общего назначения
ОСРВ | ОС общего назначения | |
1. Основная задача | Успеть среагировать на события, происходящие на оборудовании | Оптимально распределить ресурсы компьютера между пользователями и задачами |
2. На что ориентирована | Обработка внешних событий | Обработка действий пользователя |
3. Как позиционируется | Инструмент
для создания конкретного аппаратно- |
Воспринимается
пользователем как набор |
4. Кому предназначена | Квалифицированный разработчик | Пользователь средней квалификации |
Общие
характеристики СРВ:
Основные требования к СРВ:
1.2.1
Системы жёсткого и
мягкого реального времени
Принято различать системы мягкого (soft) и жесткого (hard) реального времени.
В жесткой системе:
Хорошим примером жесткой системы реального времени может служить система управления движением воздушных судов. Очевидно, что бессмысленно посылать команду на изменение курса самолета или космической станции после столкновения.
В мягкой системе реального времени:
Примером мягкой системы является подсистема сетевого интерфейса. Если подтверждение о приеме посланного пакета не поступило после истечения определенного времени, то пакет считается потерянным. В этом случае можно просто повторить посылку пакета и примириться со значительным снижением производительности системы.
Итак, разница между жесткой и мягкой системами зависит от предъявляемых к ним требований. Система называется жесткой, если "система не должна опаздывать никогда", и мягкой, если "система не должна опаздывать, как правило".
СРВ в большинстве случаев решают комбинацию задач жесткого и мягкого реального времени, а также задач, не имеющих критического срока обслуживания. Иногда задача может переходить из статуса мягкого реального времени при пропуске некоторого срока обслуживания в статус задачи жесткого реального времени назначением критического срока обслуживания.
Не следует путать операционную систему реального времени (ОСРВ) с системой реального времени. Первая ОС используется для создания системы реального времени. ОСРВ должна быть предсказуемой - это не значит, что она должна быть быстрой, это означает, что при построении СРВ можно добиться того, чтобы максимальное время, затрачиваемое на определенную работу, укладывалось в заранее установленный лимит, сравнимый с требованиями приложения.
1.2.2
Архитектуры операционных
систем реального времени
За
свою историю архитектура
Рис. 1. Архитектура
монолитной операционной системы
Однако большинство современных ОС, как реального времени, так и общего назначения, строятся именно по этому принципу.
В задачах автоматизации широкое распространение в качестве ОСРВ получили уровневые ОС (рис. 2). Примером такой ОС является хорошо известная система MS-DOS. В системах этого класса прикладные приложения могли получить доступ к аппаратуре не только посредством ядра системы или ее резидентных сервисов, но и непосредственно. По такому принципу строились ОСРВ в течение многих лет. По сравнению с монолитными ОС такая архитектура обеспечивает значительно большую степень предсказуемости реакций системы, а также позволяет осуществлять быстрый доступ прикладных приложений к аппаратуре. Недостатком таких систем является отсутствие в них многозадачности. В рамках такой архитектуры проблема обработки асинхронных событий сводилась к буферизации сообщений, а затем последовательному опросу буферов и обработке. При этом соблюдение критических сроков обслуживания обеспечивалось высоким быстродействием вычислительного комплекса по сравнению со скоростью протекания внешних процессов.
Рис. 2. Архитектура
уровневой операционной системы
Одной из наиболее эффективных архитектур для построения операционных систем реального времени считается архитектура клиент-сервер (Рис. 3). Основным принципом такой архитектуры является вынесение сервисов ОС в виде серверов на уровень пользователя, а микроядро выполняет функции диспетчера сообщений между клиентскими пользовательскими программами и серверами – системными сервисами. Такая архитектура дает массу плюсов с точки зрения требований к ОСРВ и встраиваемым системам. Среди этих преимуществ можно отметить:
Рис.3. Архитектура ОС с использованием архитектуры клиент-сервер
1.2.3
Ядро операционных
систем реального
времени
Ядро
операционной системы реального
времени (RTOS — Real-time Operating System) является
абстрактным уровнем, скрывающим от прикладного
ПО аппаратные особенности процессора
(или набора процессоров), на котором прикладное
ПО будет работать. Это обеспечивается
за счет предоставления прикладному ПО
доступа к пяти основным категориям базовых
служб (функций) (рис. 4).
Рис.4.
Основные службы, предоставляемые ядром
ОС реального времени
В дополнение к сервисам ядра, многие ОСРВ предлагают линейки дополнительных компонентов для организации таких высокоуровневых понятий, как файловая система, сетевое взаимодействие, управление сетью, управление базой данных, графический пользовательский интерфейс и т. д. Хотя многие из этих компонентов намного больше и сложнее, чем само ядро ОСРВ, они, тем не менее, основываются на его сервисах. Каждый из таких компонентов включается во встроенную систему, только если её сервисы необходимы для выполнения встроенного приложения и только для того, чтоб свести расход памяти к минимуму.
1.3
Назначение операционных
систем реального
времени
В течение длительного времени основными потребителями ОСРВ были военная и космическая области. Сейчас ситуация кардинально изменилась и ОСРВ можно встретить даже в товарах широкого потребления.
Основные области применения ОСРВ:
— системы измерения и управления, радары;
— цифровые видеосистемы, симуляторы;
— ракеты, системы определения положения и привязки к местности.
— автоматические системы управления производством (АСУП) (computer aided manufacturing (CAM)), автоматические системы управления технологическим процессом (АСУГП);
— автомобилестроение: стимуляторы, системы: управления мотором, автоматическое сцепление, системы антиблокировки колес;
— энергетика: сбор информации, управление данными и оборудованием;
— телекоммуникации: коммуникационное оборудование, сетевые коммутаторы, телефонные станции;
— банковское оборудование (например, во многих банкоматах работает ОСРВ QNX).
— мобильные телефоны, например, в телефонах стандарта GSM работает ОСРВ pSOS;
— цифровые телевизионные декодеры;
— цифровое телевидение (мультимедиа, видеосерверы);
— компьютерное и офисное оборудование (принтеры, копиры), например, в факсах применяется ОСРВ VxWorks, в устройствах чтения компакт-дисков - ОСРВ VRTX32.
1.4
Функциональные требования
к операционным
системам реального
времени
Расширение области применения СРВ привело к повышению требований к этим системам. В настоящее время обязательным условием, предъявляемым к ОС, претендующей на применение в задачах реального времени, является реализация в ней механизмов многозадачности. Та же тенденция присутствует и в ОС общего назначения. Но для СРВ к реализации механизмов многозадачности предъявляется ряд дополнительных, по сравнению с системами общего назначения, требований. Определяются же эти требования тем обязательным свойством СРВ, о котором уже говорилось – предсказуемостью.
Многозадачность подразумевает параллельное выполнение нескольких действий, однако практическая реализация параллельной работы упирается в проблему совместного использования ресурсов вычислительной системы. И главным ресурсом, распределение которого между несколькими задачами называется диспетчеризацией, является процессор. Поэтому в однопроцессорной системе по настоящему параллельное выполнение нескольких задач невозможно. Существует достаточно большое количество различных методов диспетчеризации, и основные среди них будут рассмотрены далее.
В многопроцессорных системах проблема разделения ресурсов также является актуальной, поскольку несколько процессоров вынуждены разделять между собой одну общую шину. Поэтому при построении СРВ нуждающейся в одновременном решении нескольких задач применяют группы вычислительных комплексов, объединенных общим управлением. Возможность работы с несколькими процессорами в пределах одного вычислительного комплекса и максимально прозрачное взаимодействие между несколькими вычислительными комплексами в пределах, скажем локальной сети, является важной чертой ОСРВ, значительно расширяющей возможности ее применения.
Под понятием задачи в терминах ОС и программных комплексов могут пониматься две разные вещи: процессы и потоки. Процесс является более крупномасштабным представлением задачи, поскольку обозначает независимый модуль программы или весь исполняемый файл целиком с его адресным пространством, состоянием регистров процессора, счетчиком команд, кодом процедур и функций. Поток же является составной частью процесса и обозначает последовательность исполняемого кода. Каждый процесс содержит как минимум один поток, при этом максимальное количество потоков в пределах одного процесса в большинстве ОС ограниченно только объемом оперативной памяти вычислительного комплекса. Потоки, принадлежащие одному процессу, разделяют его адресное пространство, поэтому они могут легко обмениваться данными, также время переключения между такими потоками (то есть время, за которое процессор переход от выполнения команд одного потока к выполнению команд другого) оказывается значительно меньшим, чем время переключение между процессами. В связи с этим в задачах реального времени параллельно выполняемые задачи стараются максимально компоновать в виде потоков, исполняющихся в пределах одного процесса.
Каждый поток имеет важное свойство, на основании которого ОС принимает решение о том, когда предоставить ему время процессора. Это свойство называется приоритетом потока и выражается целочисленным значением. Количество приоритетов (или уровней приоритетов) определяется функциональными возможностями ОС, при этом самое низкое значение (0) закрепляется за потоком idle ОС, который предназначен для корректной работы системы, когда ей «ничего не надо делать».
Поток может находиться в одном из следующих состояний:
Далее
рассматриваются функциональные требования,
предъявляемые на данном этапе к
ОС применяющимся в СРВ.
Диспетчеризация
потоков
Методы диспетчеризации, т.е. предоставления разным потокам доступа к процессору, в общем случае могут быть разделены на две группы. К первой относятся случаи, когда все потоки, которые разделяют процессор, имеют одинаковый приоритет, т.е. их важность с точки зрения системы одинакова:
Появление второй группы методов диспетчеризации связано с необходимостью распределения времени процессора между потоками, имеющими разную важность, т.е. разный приоритет. В таких случаях для потоков с равным приоритетом используется один из указанных выше методов диспетчеризации, а передача управления между разно приоритетными потоками осуществляется одним из следующих методов:
На практике широко применяются как комбинации описанных методов, так и различные их модификации. В СРВ, в контексте задачи диспетчеризации нескольких разноприоритеных потоков, очень важной является проблема распределения приоритетов таким образом, чтобы каждый поток уложился в свой срок критического обслуживания. Если все потоки системы укладываются в свои сроки критического обслуживания, то говорят, что система диспетчируема.
Для СРВ, применяющихся в обработке периодических событий, в 1970 году Лиу и Лейленд предложили математический аппарат, позволяющий определить, является ли система диспетчируемой. Этот аппарат называется «Частотно монотонный анализ» (ЧМА) (Rate Monotonic Analyzing). Эффективность этого математического аппарата привела к тому, что ЧМА был принят в качестве стандарта такими организациями как USA Department of Defense, Boeing, General Dynamics, Magnavox, Mitre, NASA, Panamax, и др. Также среди организаций, установивших ЧМА в качестве стандартного средства анализа и разработки систем жесткого реального времени можно отметить IBM Federal Sector Division, US Navy и European Space Agency.
Подобная позиция ведущих производителей привела к тому, что разработчикам ОСРВ пришлось учитывать требования по применению ЧМА при разработке своих систем. Возможность применения ЧМА ограничена рядом условий, первым из которых является диспетчеризация потоков методом вытесняющей приоритетной многозадачности.
На
основании всего выше сказанного
можно сформировать первое требование
к ОСРВ: ОСРВ должна реализовывать возможность
многозадачности, причем с поддержкой
вытесняющей приоритетной методики диспетчеризации.
Уровни
приоритетов
Как уже говорилось, для организации параллельного выполнения нескольких потоков зачастую необходимо разделение этих потоков по степени важности (или критическому сроку обслуживания). Среди совокупности параллельно выполняющихся задач выделяются потоки жесткого реального времени, потоки мягкого реального времени и потоки, не критичные ко времени обслуживания. Каждая из указанных групп должна иметь свой уровень приоритетов, к тому же потоки жесткого реального времени, в ряде случаев, должны иметь индивидуальные значения приоритетов. Практический опыт разработки систем реального времени говорит, что увеличение количества разно приоритетных потоков приводит к непрозрачности и непредсказуемости системы. Однако в ряде случаев это не так.
Как уже говорилось, на сегодняшний день существует ряд инструментов математического анализа, позволяющих распределить приоритеты между несколькими потоками так, что бы они гарантировано выполняли свои критические сроки обслуживания. Если же для данного набора потоков это невозможно, то результаты математического анализа покажут, какие именно потоки имеют критическое отношение срока обслуживания ко времени выполнения.
Упомянутый ранее аппарат ЧМА позволяет провести такое исследование для случая периодических критических времен обслуживания. Однако для его применения анализируемые потоки должны иметь уникальные значения приоритетов, определяемые периодом каждого потока. В связи с этим требованием разработчики ОСРВ закладывают в своих системах достаточно большое количество приоритетов.
Таким
образом, можно сформировать второе
функциональное требование ОСРВ: ОС должна
иметь достаточно большое (определяется
масштабом задачи) количество приоритетов.
Рекомендуемым значением является 128 уровней.
Естественно, что в прикладных задачах
необходимо крайне осторожно использовать
потоки с разными приоритетами и, по возможности
стремиться к минимизации их количества.
Большое количество разно приоритетных
потоков может привести не только к потере
предсказуемости системы, но и к проблемам
синхронизации на доступе к разделяемым
ресурсам.
Механизмы
синхронизации
Помимо процессорного времени разные потоки могут иметь и другие ресурсы, которые им приходится разделять между собой. Это могут быть переменные в памяти, буферы устройств и т.д. Для защиты от искажения, вызванного одновременным редактированием одних и тех же данных разными потоками, используются специфические переменные, называемые объектами синхронизации.
Третьим
функциональным требованием к ОСРВ
является наличие в ОС механизмов синхронизации
доступа к разделяемым ресурсам. В принципе
механизмы синхронизации присутствуют
в любых многозадачных системах, поскольку
без них нельзя обеспечить корректную
работу нескольких потоков с одним ресурсом
(например, буфером устройства или некоторой
общей переменной). Однако в задачах реального
времени к объектам синхронизации предъявляются
специфические требования. Связано это
с тем, что именно на объектах синхронизации
возможны значительные задержки выполнения
потоков, поскольку назначением этих объектов
является фактически блокирование доступа
к некоторому разделяемому ресурсу. Одной
из наиболее серьезных проблем, возможных
при блокировании ресурса является инверсия
приоритетов.
Защита
от инверсии приоритетов
Итак, проблема инверсии приоритетов оказалась настолько важной для ОСРВ, что реализацию в системе механизмов защиты от этой проблемы вынесли в отдельное функциональное требование к операционным системам реального времени. Давайте разберемся, что это такое? Инверсия приоритетов возникает, когда два потока, высоко приоритетный (В) и низкоприоритетный (Н) разделяют некий общий ресурс (Р). Предположим, также что в системе присутствует третий поток, приоритет которого находится между приоритетами В и Н. Назовем его средним (С). Если поток В переходит в состояние готовности когда активен поток Н и Н заблокировал ресурс Р, то поток В вытеснит поток Н и Р останется заблокирован. Когда В понадобится ресурс Р, то он сам перейдет в заблокированное состояние. Если в состоянии готовности находится только поток Н, то ничего страшного не произойдет, Н освободит заблокированный ресурс и будет вытеснен потоком В. Но если на момент блокирования потока В, в состоянии готовности находится поток С, приоритет которого выше чем у Н, то активным станет именно он, а Н опять будет вытеснен, и получит управление только после того, как С закончит свою работу. Подобная задержка вполне может привести к тому, что критическое время обслуживания потока В будет пропущено. Если В это поток жесткого реального времени, то подобная ситуация недопустима.
Какие же механизмы защиты от этой проблемы используют разработчики операционных систем реального времени? Наиболее широко распространенный и проверенный механизм – это наследование приоритетов.
Суть этого метода заключается в наследовании низкоприоритетным потоком, захватившим ресурс, приоритета от высокоприоритетного потока, которому этот ресурс нужен. В описанном примере это означает следующее. Если Н блокировал ресурс Р, который нужен В, то при блокировании В его приоритет присваивается потоку Н, и, таким образом, он не может быть вытеснен потоком, с меньшим чем у В приоритетом. После того, как поток Н разблокирует ресурс Р, его приоритет понижается до исходного значения и он вытесняется потоком В.
Механизм наследования приоритетов, к сожалению, не всегда может решить проблемы, связанные с блокирование высокоприоритетного потока на заблокированном ресурсе. В случае, когда несколько средне– и низко–приоритетных потоков разделяют некоторые ресурсы с высокоприоритетным потоком возможна ситуация, когда высокоприоритетному потоку придется слишком долго ждать пока каждый из младших потоков не освободит свой ресурс и критический срок обслуживания будет потерян. Однако такие ситуации (разделения ресурсов высокоприоритетного потока) должны отслеживаться разработчиками прикладной системы. В принципе наследование приоритетов является наиболее распространенным механизмом защиты от проблемы инверсии приоритетов.
Другой,
несколько менее
§2.
Обзор операционных
систем реального
времени
VxWorks
Операционные
системы реального времени
Операционная
система VxWorks имеет архитектуру клиент-сервер
и построена в соответствии с технологией
микроядра, т.е. на самом нижнем непрерываемом
уровне ядра обрабатываются только планирование
задач и управление их взаимодействием/
VxWorks может быть скомпонована как для небольших встраиваемых систем с жесткими ограничениями для памяти, так и для сложных систем с развитой функциональностью. Более того, отдельные модули сами являются масштабируемыми. Конкретные функции можно убрать при сборке, а специфические ядерные объекты синхронизации можно опустить, если приложение в них не нуждается.
Хотя система VxWorks является конфигурируемой, т.е. отдельные модули можно загружать статически или динамически, нельзя сказать, что в ней используется подход, основанный на компонентах. Все модули построены над базовым ядром и спроектированы таким образом, что не могут использоваться в других средах.
QNX
Операционная
система QNX Neutrino Realtime Operating System (RTOS) [QNXNeutrino]
корпорации QNX Software Systems является микроядерной
операционной системой, которая обеспечивает
многозадачный режим с приоритетами. QNX
Neutrino RTOS имеет клиент-серверную архитектуру.
В среде QNX Neutrino каждый драйвер, приложение,
протокол и файловая система выполняются
вне ядра, в защищенном адресном пространстве.
В случае сбоя любого компонента он может
автоматически перезапуститься без влияния
на другие компоненты или ядро. Хотя система
QNX является конфигурируемой, т.е. отдельные
модули можно загружать статически или
динамически, нельзя сказать, что она использует
подход, основанный на компонентах. Все
модули полагаются на базовое ядро и спроектированы
таким образом, что не могут использоваться
в других средах.
QNX
Neutrino RTOS состоит из ядра, планировщика
процессов (process manager) и расширенных сервисов
на уровне пользователя. Как истинная
микроядерная операционная система, QNX
Neutrino RTOS реализует в ядре ОС только наиболее
фундаментальные сервисы, такие как передача
сообщений, сигналы, таймеры, планирование
потоков, объекты синхронизации. Все другие
сервисы ОС, драйверы и приложения выполняются
как отдельные процессы, которые взаимодействуют
через синхронную передачу сообщений.
ChorusOS
Операционная
система ChorusOS – это масштабируемая
встраиваемая ОС, широко применяемая в
телекоммуникационной индустрии. В настоящее
время этот бренд развивается и распространяется
корпорацией Sun Microsystems [CHORUSOS]. Для компоновки
и развертывания ОС ChorusOS на конкретных
телекоммуникационных платформах Sun Microsystems
предлагает использовать среду разработки
Sun Embedded Workshop. Корпорация Sun Microsystems представляет
ОС ChorusOS как встраиваемую основу для Sun’овской
сети, управляемой сервисами (Sun's Service-Driven
Network). В сочетании с широким набором сервисов,
полной интеграцией ПО и аппаратуры, удобным
администрированием и поддержкой Java-технологии,
которая посвящена нуждам телекоммуникации,
ОС ChorusOS дает возможность эффективно развертывать
новые возможности и приложения, поддерживая
надежность и функциональность современных
сетей.
TinyOS
Разработка операционной системы TinyOS связана с появлением новой концепции беспроводной связи – Motes.
При проектировании TinyOS основными требованиями являлись достижение энергетической эффективности и создание высокого уровня абстракции системных вызовов для упрощения разработки программ. Эта система обладает всеми отличительными признаками развитой ОС – в первую очередь, крайне простой, но достаточно развитой компонентной моделью. Однако специфика предназначения этой компонентной модели существенно отличается от традиционных разработок, поскольку главной целью компонентности является не облегчение подбора интерфейсов, соответствующих требованиям запрашивающего компонента, а обеспечение развитых и надежных механизмов параллельного выполнения задач в условиях крайне ограниченных ресурсов.
Вышеописанные причины привели разработчиков TinyOS к выбору событийной модели, которая позволяет управлять высокой степенью параллельности выполнения задач в ограниченном пространстве памяти. Подход к управлению многопоточности, основанный на стеках, потребовал бы значительно больших ресурсов памяти, чем предполагалось в данном проекте. Для каждого контекста исполнения потребовалось бы выделение памяти для наихудшего варианта, либо нужно было бы применить какой-либо слишком изощренный и сложный метод управления памятью.
Архитектура TinyOS объединяет такое привычную составляющую, как планировщик задач (scheduler), и оригинальное понятие – компонентный граф. Термин "компонент" здесь одновременно и соответствует общепринятому пониманию, и существенно расширяет его. Так, интерфейс компонента TinyOS состоит из двух множеств – верхнего, предоставляемого этим компонентом, и нижнего, требуемого для его функционирования. Каждое из этих множеств содержит описания команд и событий – синхронных и асинхронных процессов.
Согласно
описанию системы, компонент имеет
4 взаимосвязанные части – набор
команд, набор обработчиков событий,
инкапсулированный фрейм
Команды
являются неблокируемыми запросами
к компонентам нижележащего слоя.
Команда сохраняет необходимые
параметры в своем фрейме и
может инициировать поток для его последующего
выполнения. Чтобы не возникало неопределенных
задержек, время ответа от вызванной команды
не должно превышать заданного интервала
времени, при этом команда должна вернуть
статус, указывающий, успешно она завершилась
или нет. Команда не может подавать сигналы
о событиях.
Обработчики событий прямо или косвенно имеют дело с аппаратными событиями. Самый нижний слой компонентов содержит обработчики, непосредственно связанные с аппаратными прерываниями. Обработчик событий может положить информацию в свой фрейм, запустить потоки, подать сигнал вышележащему уровню о событиях или вызвать команды нижележащего слоя. Аппаратное событие инициирует фонтан обработки, которая распространяется вверх по уровням через события и может вернуться вниз через команды. Чтобы избежать циклов в цепочке команд/событий, команды не могут подавать сигналы о событиях. Как команды, так и события предназначены для выполнения небольшой, строго фиксированной порции обработки, которая возникает внутри контекста выполняющегося потока.
Основная работа возлагается на потоки. Потоки в TinyOS являются атомарными и, в отличие от потоков в других ОС, выполняются вплоть до своего завершения, хотя они и могут быть вытеснены событиями. Потоки могут вызывать команды нижележащего уровня, сигнализировать о событиях более высокому уровню и планировать другие потоки внутри компонента. Семантика потока “выполнение вплоть до завершения” позволяет иметь один стек, который выделяется выполняющемуся потоку, что очень существенно в системах с ограниченной памятью. Потоки дают возможность симулировать параллельную обработку внутри каждого компонента, т.к. они выполняются асинхронно по отношению к событиям. Однако потоки не должны блокироваться или простаивать в ожидании, потому в таких случаях они будут препятствовать развитию обработки в других компонентах. Пучки потоков обеспечивают средство для встраивания произвольных вычислительных обработок в модель, управляемую событиями.
В системе предусмотрена также отдельная абстракция задачи, понимаемая как продолжительный вычислительный процесс. Взаимоотношение между понятиями “команда” и “задача” следующее: команда – это атомарная составляющая задачи. Команда ставится в очередь на исполнение планировщика, затем она выполняется и может быть временно прервана обработкой события.
Планировщик работает по принципу очереди FIFO, т.е. для передачи управления следующей задаче требуется полное завершение предыдущей задачи. Однако, в зависимости от требований приложения, могут использоваться и более сложные механизмы планирования, основанные на приоритетах или на дедлайнах. Ключевым моментом является то, что планировщик ориентирован на энергосбережение: процессор засыпает, если очередь планировщика пуста, а периферийные устройства работают, и каждое из них может разбудить систему. Когда очередь становится пустой, новый поток может быть запущен на исполнение только в результате какого-либо события, которое может возникнуть только в аппаратных устройствах. Планировщик имеет крайне малые размеры – всего 178 байтов, данные планировщика занимают только 16 байтов.
В TinyOS полностью отсутствуют механизмы блокирования исполнения, что означает необходимость введения индикации завершения продолжительной операции соответствующим асинхронным событием. Традиционные приемы построения ОС реального времени и привычные отработанные архитектурные решения здесь оказались неприменимы. В результате вся ОС и ее компоненты построены по принципу конечных автоматов – переходов из состояния в состояние.
Итак, TinyOS состоит из набора компонентов, из которых разработчики собирают систему для каждого конкретного сенсора. Для компоновки системы из набора компонентов, которые статически компонуются с ядром, используется специальный описательный язык. После проведения компоновки модификация системы невозможна.
Для обеспечения динамичности во время выполнения была разработана виртуальная машина, которая является надстройкой над ОС TinyOS. Код для виртуальной машины можно загрузить в систему во время выполнения. Для работы этой виртуальной машины необходимы 600 байт оперативной памяти и менее 8 KB памяти команд 8-битового микроконтроллера. Программы виртуальной машины представляются 8-битовыми инструкциями всего трех типов, объединяемых в "капсулы" – атомарные последовательности не более чем двадцати четырех инструкций.
Иерархическая структура сети получается автоматически благодаря тому, что все сенсоры следуют простым правилам, заложенным в TinyOS. Правила эти, к примеру, определяют способ поиска кратчайшего пути до ближайшего стационарного узла, а уже в зависимости от того, где и как расположены сенсоры, сеть принимает привычную для системных администраторов древообразную форму. В TinyOS учитывается также и то, что некоторые виды сенсоров могут работать от солнечных батарей или иных источников энергии, зависящих от погоды, поэтому при потере связи с ближайшим узлом сети происходит смена маршрута, по которому пересылаются пакеты.
Заключение
Проанализировав теоретические исследования по данной теме, мы выяснили, что существуют различные виды операционных систем. Каждый из типов ОС применяется в той или иной области.
Таким образом, в результате исследования теоретических источников мы пришли к следующим выводам.
Операционной системой реального времени называется операционная система, реагирующая в предсказуемое время на непредсказуемое появление внешних событий.
Мы выяснили, что существует разделения на системы жесткого и мягкого реального времени. Расширение области применения СРВ привело к повышению требований к этим системам. В настоящее время обязательным условием, предъявляемым к ОС, претендующей на применение в задачах реального времени, является реализация в ней механизмов многозадачности. Та же тенденция присутствует и в ОС общего назначения. Но для СРВ к реализации механизмов многозадачности предъявляется ряд дополнительных, по сравнению с системами общего назначения, требований. Определяются же эти требования тем обязательным свойством СРВ, о котором уже говорилось – предсказуемостью.
Таким образом, поставленные нами задачи решены.
Список
литературы