Автор работы: Пользователь скрыл имя, 12 Декабря 2010 в 20:11, реферат
Операционные системы реального времени (ОСРВ) предназначены для обеспечения интерфейса к ресурсам критических по времени систем реального времени. Основной задачей в таких системах является своевременность (timeliness) выполнения обработки данных.
Введение . 3
1. Особенности операционных систем реального времени. 5
1.1Процессы, потоки, задачи. 5
1.2 Планирование, приоритеты. 5
1.3 Память. 7
1.4. Прерывания. 8
1.5. Часы и таймеры . 9
1.6. Стандарты ОСРВ. 9
1.7. Стандарты безопасности. 10
2. Настраиваемость операционных систем. 12
2.1. Адаптация, осуществляемая человеком. 13
2.1.1. Статическая адаптация, инициированная проектировщиком. 13
2.1.2. Динамическая адаптация, инициированная администратором. 16
2.2. Адаптация, инициированная приложением. 17
2.2.1. Адаптация с уровня приложения. 17
2.2.2. Адаптация на уровне ядра. 22
2.3. Автоматическая адаптация. 25
Заключение. 27
Список литературы. 28
Второй способ – это настройка (tuning) системы. Обычно политики ОС параметризуются, и такие параметры могут изменяться либо администратором, либо пользователем. Кроме того, существуют счетчики производительности, которые помогают оценить преимущества той или иной политики, настроенной через параметры. Преимущество этого подхода состоит в том, что здесь не дискредитируются механизмы зашиты. Недостатком можно считать тот факт, что при таком подходе ограничиваются широта применения и уровень детализации.
Динамическая адаптация от имени администратора широко применяется во всех промышленных ОС (Linux, Solaris, Windows NT и т.д.). Windows 2000 имеет сотни счетчиков производительности и соответствующих системных переменных. Ядро Linux интенсивно использует загружаемые модули.
Следует
отметить, что контекст и мотивы
расширения и адаптируемости различны
для промышленных и исследовательских
ОС. В академическом сообществе для ОС
главной движущей силой является производительность,
часто в не удостоверенном (untrusted) контексте.
Инициатор адаптации не может считаться
удостоверенным и, следовательно, целостность
ОС нужно защищать. В промышленных ОС расширяемость,
главным образом, используется для добавления
разных форм функциональности в удостоверенном
контексте, где инициатор адаптации является
удостоверенным (например, администратор
файловой системы). Метод загружаемого
модуля ядра используется для наращивания
ядра новыми драйверами устройств с поддержкой
новых файловых систем с новыми способами
аутентификации, а также другими видами
функциональности. Модули улучшения производительности,
а также механизмов защиты целостности
очень редки на практике. Как следствие
этого, многие исследовательские результаты
по адаптируемости и наращиванию не находят
применения в промышленных ОС.
2.2.
Адаптация, инициированная приложением
Адаптация,
инициированная приложением, может
производиться только динамически, и ее
применение полезно в ОС общего назначения.
В то время как традиционные ОС имели большие
трудности при добавлении новых возможностей,
требующихся, например, для обработки
мультимедийных приложений, настраиваемые
ОС быстрее адаптировались в новых условиях.
Приложение часто знает свои потребности
и может от своего имени инструктировать
ОС о необходимой настройке. Механизмы,
предоставляющие возможность настройки
от имени приложений во время выполнения,
вводят накладные расходы по производительности.
Однако цель динамически настраиваемых
ОС состоит в том, чтобы достичь лучшей
производительности всей системы в целом,
разрешая настройки, которые приводят
к преобладанию преимуществ над накладными
расходами.
2.2.1.
Адаптация с уровня приложения
Рассмотрим системы, которые разрешают приложениям настраивать сервисы ОС через введение кода с уровня пользователя или непривилегированного уровня. Такие ОС обычно называются микроядерными, потому что они структурируются вокруг микроядра. Истинное микроядро должно быть минимальным, и следует предполагать отсутствие в нем каких-либо сервисов или политик.
Микроядерный подход существует довольно давно. Однако первые поколения микроядерных ОС показали результаты, далекие от ожидаемых. На практике так и не была реализована желаемая адаптируемость из-за низкой производительности и недостаточного уровня детализации настройки в ранних микроядерных ОС. Попытки улучшить показатели привели к тому, что фундаментальные библиотеки ОС, такие как файловая система Unix, были опять интегрированы в ядро, что улучшило производительность, но совсем не помогло увеличить настраиваемость.
Новое поколение микроядерных ОС намного больше отвечает целям настраиваемости. Однако критическим остается вопрос производительности, связанный со значительным количеством переключений между доменами (как между пользовательским уровнем и ядром, так и между адресными пространствами), а также с местоположением основной памяти [Lie93].
Выбранный набор абстракций, интегрированных в ядро, существенным образом влияет на производительность и гибкость. Чем меньше абстракций, тем большая гибкость остается для приложений. В ядре должны присутствовать только те абстракции, которые необходимы для деятельности самого ядра. Это хорошо сформулировано в работах Лидке [Lie95, Lie96] о системе L4 – в ней ядерными абстракциями являются адресные пространства, потоки, IPC и уникальные идентификаторы. На основе этих абстракциями в L4 поддерживается рекурсивная конструкция адресных пространств – исходное адресное пространство включает всю память и порты ввода/вывода и принадлежит исходной подсистеме или приложению.
Результатом
приближения микроядерной философии
к ее логической крайности становится
ОС, в которой все системные
сервисы выведены за пределы ядра
и реализованы в виде библиотек, а само
ядро представляет собой попросту абстракцию
аппаратных ресурсов. Такой экстрим реализован
в ОС Exokernel [EKO95]. В ядре Exokernel отсутствуют
какие-либо абстракции ОС и весь его интерфейс
сведен к надстройке над аппаратурой.
Единственная функция, которая оставлена
в Exokernel – это выделение, возврат и мультиплексирование
физических ресурсов (страниц памяти,
квантов времени процессора, блоков дисков
и т.п.) безопасным образом. Композиция
наиболее используемых интерфейсов в
Exokernel до сих пор остается большой проблемой
[SSF99].
К
микроядерным ОС можно отнести систему
2K [2K]. Система 2K основана на компонентах,
и ее основной задачей является обеспечение
настраиваемого каркаса для поддержки
адаптации в сетевом окружении. Способность
к адаптации регулируется параметрами,
такими как пропускная способность сети,
связность, доступность памяти, протоколы
взаимодействия и компоненты аппаратных
средств. ОС 2K основывается на технологии
Corba, и в ней для адаптации используются
данные метауровня и методы, которые предлагает
уровень ORB (object request broker). Компонент 2K –
это динамически загружаемый программный
модуль, который хранится в динамически
подключаемой библиотеке (DLL). Следует
отметить, что в системе 2K используется
крупный уровень детализации.
Портал-ориентированная система – это микроядро, которое имеет минимально возможный код и работает в самом доступном привилегированном режиме. Такие системы обладают доменами защиты, которые обеспечивают безопасность работы пользователя. Порталы используются для взаимодействия между доменами. Домен защиты состоит из набора страниц и совокупности порталов, причем порталы могут разделять и страницы, и порталы.
Примером
портал-ориентированной
В системе SPACE [PBK91] единственной абстракцией, присутствующей в ядре, является обобщение управления исключительными ситуациями, т.е. механизм управления прерываниями. Если бы такой обобщенный механизм управления исключительными ситуациями мог бы быть реализован на аппаратном уровне, операционную систему можно было бы считать “безъядерной”.
Система
Pebble [MBG00], так же, как и SPACE, поддерживает
взаимодействие через домены защиты,
реализованное как обобщение
управления прерываниями. Как и Kea, Pebble
осуществляет взаимодействие доменов
через порталы и допускает реконфигурацию
порталов. Порталы реализуются как обобщенные
обработчики прерываний. Ядро Pebble содержит
только код, реализующий передачу потоков
от одного домена защиты другому, и небольшое
количество функций поддержки режима
ядра. Как и Exokernel, Pebble отдает реализацию
абстракций ресурсов на уровень пользователя,
но, в отличие от Exokernel, Pebble обеспечивает
совокупность высокоуровневых абстракций,
которые реализуются компонентами пользовательского
уровня, что упоминалось в разделе о статической
адаптации, инициированной проектировщиком.
Каждый компонент уровня пользователя
выполняется в своем собственном домене
защиты, изолированном аппаратными средствами
защиты памяти.
Системы Fluke и EROS являются системами мандатов, которые структурированы вокруг микроядра. Здесь под мандатом понимается пара, состоящая из идентификатора объекта и набора санкционированных операций над этим объектом (его интерфейс). Примером таких мандатов могут служить дескрипторы файлов в UNIX. В системах мандатов каждый процесс содержит мандаты и может совершать только те операции, которые санкционированы этими мандатами. Мандаты – единственные средства инициации операций над объектами, и единственные операции, которые могут выполняться с помощью мандата — это операции, разрешенные этим мандатом. Это означает, что каждый ресурс обслуживается через посредника и полностью инкапсулирован.
Архитектура вложенных процессов системы Fluke сочетает микроядро с виртуальными машинами [FHL96]. Ядро обеспечивает базовые сервисы и интерфейс к ним. Виртуальные машины используют этот интерфейс и реэкспортируют его на следующий уровень. Каждый слой полностью симулирует среду для вышележащего уровня – интерфейс между слоями всегда один и тот же, что позволяет компоновать сервисы с помощью наложения (stacking) виртуальных машин. Благодаря такому наложению, или многоуровневому представлению Fluke поддерживает вертикальную декомпозицию сервисов, в то время как микроядро обеспечивает горизонтальную декомпозицию, перенося традиционную функциональность ядра на серверы пользовательского уровня, расположенные как бы рядом (side-by-side).
Необходимость
поддерживать согласованность интерфейсов
между виртуальными машинами вносит
большие трудности при
Система EROS (Extremely Reliable Operating System) состоит из ядра, которое реализует небольшой набор примитивных мандатных типов [SSF99]. Возможности, которые предлагает ядро EROS, относятся к довольно низкому уровню. Большинство системных функций реализуется приложениями уровня пользователя. Например, ядро EROS напрямую предоставляет страницы дисковой памяти, но не файловой системы. Файловая абстракция полностью строится на уровне приложений, и файловое приложение просто хранит содержимое файла в адресном пространстве, увеличивая адресное пространство по мере необходимости так, чтобы оно могло содержать весь файл. Обязанность файлового приложения состоит в том, чтобы реализовать такие операции, как чтение и запись, которые выполняются над файлом.
Такой метод проектирования – создание высокоуровневых функций за счет объединения базовых примитивов операционной системы в повторно используемые компоненты – основная стратегия для создания приложений EROS. Каждый экземпляр компонента реализуется с помощью отдельного процесса, а ядро обеспечивает высокопроизводительный механизм связи между процессами, позволяющий эффективно объединять эти компоненты. Фактически, крайне редко приложения EROS работают с предлагаемыми ядром объектами напрямую. Большинство приложений повторно использует компоненты, предоставляемые системой, или реализуют новые компоненты, которые обеспечивают необходимую функцию структурированным способом.
Приложения
EROS структурируются как