Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Интерфейсы операционных систем



40. Основные принципы построения операционных систем

Архитектура системы — ее структура и основные принципы построения.

Основные принципы построения ОС:

1. Принцип модульности

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

? Особо важное значение имеют привилегированные, повторно входимые и реентерабельные модули.

Во всех операционных системах можно выделить:

1) часть наиболее важных управляющих модулей, которые должны постоянно находиться в оперативной памяти вместе с некоторыми системными структурами данных, необходимыми для функционирования операционной системы, они образуют ядро операционной системы. В его состав, как правило, входят модули по управлению системой прерываний, средства по переводу программ из состояния счета в состояние ожидания, готовности и обратно, средства по распределению основных ресурсов, таких как оперативная память и процессор;

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

2. Принцип особого режима работы Ядро операционной системы и низкоуровневые драйверы, управляющие работой каналов и устройств ввода-вывода, должны работать в специальном режиме работы процессора (привилегированном).

Это необходимо по причинам:

1) позволяет существенно повысить надежность выполнения вычислений.

2) ряд функций должен выполняться централизованно, под управлением операционной системы (прежде всего, функции, связанные с управлением процессами ввода-вывода данных).

3. Принцип виртуализации

Сейчас используется практически в любой операционной системе.

Виртуализация ресурсов позволяет:

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

? абстрагироваться от конкретных ресурсов, обобщить их свойства и работать с некоторой абстракцией.

Проявления концепции виртуальности:

1) понятие виртуальной машины. Любая операционная система скрывает от пользователя и его приложений реальные аппаратные и иные ресурсы, заменяя их некоторой абстракцией. В результате пользователи видят и используют виртуальную машину в составе:

? единообразная по логике работы память достаточного для выполнения приложений объема.

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

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

2) возможность организации выполнения в операционной системе приложений, разработанных для другой операционной системы, имеющей совсем другой интерфейс прикладного программирования. Т.е. организация нескольких операционных сред;

3) независимость программ от внешних устройств – связь программ с конкретными устройствами производится не в процессе создания программы, а в период планирования ее исполнения. Этот принцип позволяет одинаково осуществлять операции управления внешними устройствами независимо от их конкретных физических характеристик.

4. Принцип мобильности

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

Сложности:

1) архитектуры разных процессоров могут сильно различаться.

2) для ОС важной является не только архитектура центрального процессора, но и архитектура компьютера в целом.

? Для обеспечения мобильности был создан стандарт на интерфейс прикладного программирования, названный POSIX (Portable Operating System Interface for Computer Environments — интерфейс прикладного программирования для переносимых операционных систем).? Платой за универсальность, прежде всего, является потеря производительности, поэтому ряд разработчиков идут на отказ от принципа мобильности, поскольку не всегда следование этому принципу экономически оправдано.

5. Принцип совместимости

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

? Необходимо разделять вопросы двоичной совместимости и совместимости на уровне исходных текстов приложений.

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

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

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

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

6. Принцип генерируемоемости

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

? Под генерацией операционной системы понимается ее сборка (компоновка) из отдельных программных модулей. В результате генерации получают скомпонованные двоичные коды операционной системы и построенные системные таблицы, отражающие конкретную конфигурацию компьютера.

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

7. Принцип открытости

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

? Этот принцип иногда трактуют как расширяемость системы.

? К открытым операционным системам прежде всего следует отнести UNIX-системы.

8. Принцип обеспечения безопасности вычислений

? Правила безопасности определяют свойства:

- защита ресурсов одного пользователя от других,

- установление квот по ресурсам для предотвращения захвата одним пользователем всех системных ресурсов.? Для обеспечения защиты информации от несанкционированного доступа чаще всего используется механизм учетных записей. Он предполагает проведение аутентификации и aвторизации пользователя.

? Во многих современных операционных системах гарантируется степень безопасности данных, соответствующая уровню С2 в системе стандартов США.

? Основы стандартов в области безопасности были заложены «Критериями оценки надежных компьютерных систем» (Оранжевая Книга).

? Иерархия уровней безопасности, приведенная в Оранжевой Книге, помечает низший уровень безопасности как D, а высший – как А:

? В класс D попадают системы, оценка которых выявила их несоответствие требованиям всех других классов.

? Основные свойства С-систем: наличие подсистемы учета событий, связанных с безопасностью, и избирательный контроль доступа.

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

? Уровень А требует в дополнение ко всем требованиям уровня В выполнения доказательства соответствия системы требованиям безопасности.

42. Микроядерные и макроядерные операционные системы

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

? Микроядро – это минимальная главная часть операционной системы, служащая основой модульных и переносимых расширений.

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

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

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

? Для большинства микроядерных операционных систем основой архитектуры выступает технология микроядра Mach.

? Микроядро обеспечивает только пять типов сервисов:

? управление виртуальной памятью;

? поддержка заданий и потоков;

? взаимодействие между процессами;

? управление поддержкой ввода-вывода и прерываниями;

? сервисы хоста и процессора.

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

? Проблемы монолитных операционных систем:

? опасность возникновения конфликта между различными частями ядра;

? сложность подключения к ядру новых драйверов.

? Очень плодотворным оказался подход, основанный на модели клиент-сервер.

? Микроядерные операционные системы в полной мере используют модель клиент-сервер.

? Микроядерные операционные системы сегодня разрабатываются чаще монолитных. Однако использование технологии клиент-сервер — это еще не гарантия того, что операционная система станет микроядерной.

43. Требования к операционным системам реального времени

Требования к системе реального времени (СРВ):

? ограничение времени отклика;

? одновременность обработки.

Различают системы «мягкого» и «жесткого» реального времени.

Система считается жесткой, если «нарушение временных ограничений недопустимо», и мягкой, если «нарушение времени ограничений нежелательно».

43.Основные требования к ОСРВ:

1. Мультипрограммность и мультизадачность

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

2. Приоритеты задач

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

3. Наследование приоритетов

? Комбинация приоритетов потоков и разделение ресурсов между ними приводит проблеме инверсии приоритетов.

? Время, необходимое для завершения потока высшего приоритета, зависит от нижних уровней приоритетов — это и есть инверсия приоритетов.

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

4. Сихронизация процессов и задач

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

5. Предсказуемость

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

? время от момента прерывания до момента запуска задачи;

? максимальное время выполнения каждого системного вызова;

? максимальное время маскирования прерываний драйверами и супервизорными модулями операционной системы. 44. Интерфейсы операционных систем

? Под интерфейсами операционных систем понимают специальные интерфейсы системного и прикладного программирования (API), предназначенные для выполнения следующих задач.

Управление процессами:

? запуск, приостанов и снятие задачи с выполнения;

? задание или изменение приоритета задачи;

? взаимодействие задач между собой;

? вызов удаленных процедур (RPC).

Управление памятью:

? запрос на выделение блока памяти;

? освобождение памяти;

? изменение параметров блока памяти;

? отображение файлов на память (имеется не во всех системах).

Управление вводом-выводом:

? запрос на управление виртуальными устройствами;

? файловые операции.

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

? Получив от пользователя команду, такой модуль после лексического и синтаксического анализа или сам выполняет действие, или (чаще), обращается к другим модулям ОС, используя механизм API.

? В последние годы большую популярность получили графические интерфейсы (GUI), в которых задействованы соответствующие манипуляторы типа мышь или трекбол. Указание курсором на объект и щелчок или двойной щелчок на соответствующей кнопке мыши приводит к каким-либо действиям. Такая интерфейсная подсистема транслирует «команды» пользователя в обращения к операционной системе.

? Управление GUI является частным случаем задачи управления вводом-выводом и не относится к функциям ядра операционной системы.

? Интерфейс прикладного программирования API разделяют на следующие направления:

? API как интерфейс высокого уровня, принадлежащий к библиотекам RTL;

? API прикладных и системных программ, входящих в поставку операционной системы;

? прочие интерфейсы API.

? Интерфейс прикладного программирования, предназначен для использования прикладными программами системных ресурсов компьютера и реализуемых операционной системой разнообразных системных функций. API описывает совокупность функций и процедур, принадлежащих ядру или надстройкам операционной системы.

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

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

? Варианты реализации API:

? реализация на уровне модулей операционной системы;

? реализация на уровне системы программирования;

? реализация на уровне внешней библиотеки процедур и функций.

Интерфейс POSIX? POSIX— это стандарт, описывающий системные интерфейсы для открытых операционных систем, в том числе оболочки, утилиты и инструментарии.

? Кроме того, согласно POSIX, стандартизированными являются задачи обеспечения безопасности, задачи реального времени, процессы администрирования, сетевые функции и обработка транзакций. Стандарт базируется на UNIX-системах, но допускает реализацию и в других операционных системах.

? Этот стандарт подробно описывает систему виртуальной памяти, многозадачность и технологию переноса операционных систем.

? POSIX представляет собой множество стандартов POSIX.1 – POSIX.12.





Дата публикования: 2014-12-08; Прочитано: 1701 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.014 с)...