Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
GLAVA3_red.doc
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
116 Кб
Скачать
☆

3.6.2. Трансляция библиотек

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

Эффективность этого подхода связана с тем, что большинство сегодняшних программ работают под управлением GUI (графических интерфейсов пользователя) типа Windows, Mac или UNIX Motif, при этом приложения тратят примерно 60%-80% своего времени на обращение и выполнение функций GUI и других библиотечных вызовов операционной системы. Именно это свойство приложений позволяет прикладным программным средам компенсировать большие затраты времени, связанные с покомандным эмулированием программы. Прикладная программная среда имеет в своем составе библиотеки, имитирующие внутренние библиотеки GUI, но написанные с использованием команд процессора компьютера на котором выполняется приложение. Таким образом, достигается существенное ускорение выполнения программ с API другой операционной системы. Иногда такой подход называют трансляцией, чтобы отличить его от более медленного процесса эмулирования.

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

3.6.3. Способы реализации прикладных программных сред

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

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

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

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

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

Выводы

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

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

  • Ядро, являясь структурным элементом ОС, в свою очередь, может быть логически разложено на следующие слои (начиная с самого нижнего):

    • машинно-зависимые компоненты ОС;

    • базовые механизмы ядра;

    • менеджеры ресурсов;

    • интерфейс системных вызовов.

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

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

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

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

  • Микроядерные ОС удовлетворяют большинству требований, предъявляемых к современным ОС, обладая переносимостью, расширяемостью, надежностью и создавая хорошие предпосылки для поддержки распределенных приложений. За эти достоинства приходится платить снижением производительности, что является основным недостатком микроядерной архитектуры.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]