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

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

Во многих версиях ОС UNIX транслятор прикладных сред реализуется виде обычного приложения. В ОС, построенных с использованием микроядерной концепции, таких как, например, Windows NT или Workplace OS, прикладные среды выполняются в виде серверов пользовательского режима. А в OS/2 с ее более простой архитектурой средства организации прикладных сред встроены глубоко в ОС.

1 способ. На рис. 12 ОS1 поддерживает кроме своих “родных” приложений приложения OS2 и OS3. Для этого в ее составе имеются специальные приложения – прикладные программные среды, - которые транслируют интерфейсы “чужих” API OS2 и API OS3 в интерфейс своей “родной” ОС - API OS1.

Прикладная среда OS2. Прикладная среда OS3.

Способы реализации прикладных программных сред - №1 - открытая онлайн библиотека Способы реализации прикладных программных сред - №2 - открытая онлайн библиотека

Способы реализации прикладных программных сред - №3 - открытая онлайн библиотека Способы реализации прикладных программных сред - №4 - открытая онлайн библиотека

           
    Способы реализации прикладных программных сред - №5 - открытая онлайн библиотека
    Способы реализации прикладных программных сред - №6 - открытая онлайн библиотека
  Способы реализации прикладных программных сред - №7 - открытая онлайн библиотека
 

Способы реализации прикладных программных сред - №8 - открытая онлайн библиотека Способы реализации прикладных программных сред - №8 - открытая онлайн библиотека

Способы реализации прикладных программных сред - №10 - открытая онлайн библиотека Способы реализации прикладных программных сред - №10 - открытая онлайн библиотека

Способы реализации прикладных программных сред - №12 - открытая онлайн библиотека Способы реализации прикладных программных сред - №13 - открытая онлайн библиотека Способы реализации прикладных программных сред - №14 - открытая онлайн библиотека

           
    Способы реализации прикладных программных сред - №15 - открытая онлайн библиотека   Способы реализации прикладных программных сред - №16 - открытая онлайн библиотека
  Способы реализации прикладных программных сред - №17 - открытая онлайн библиотека
 

Пользовательский режим.

Способы реализации прикладных программных сред - №18 - открытая онлайн библиотека Привилегированный режим.

 
  Способы реализации прикладных программных сред - №19 - открытая онлайн библиотека

1 – Обычное приложение OS1 4 – Транслятор системных вызовов..

2 – Приложения OS2. 5 – Приложение OS3.

3 – API OS2. 6 – API OS3 7 – Транслятор системных вызовов..

Рис. 12. Прикладные программные среды, транслирующие системные вызовы.

2 способ. Р еализация множественных прикладных сред ОС имеет несколько равноправных прикладных интерфейсов. В приведенном на рис. 13 примере ОС поддерживает приложения, написанные для OS1, OS2 и OS3. Для этого непосредственно в пространстве ядра системы размещены прикладные программные интерфейсы всех этих ОС: API OS1, API OS2 иAPI OS3.

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

 
  Способы реализации прикладных программных сред - №20 - открытая онлайн библиотека

Пользовательский

режим.

Привилегированный

режим.

Рис. 13. Реализация совместимости на основе нескольких равноправных API.

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

Такому подходу к конструированию множественных прикладных сред присуще всем достоинства и недостатки микроядерной архитектуры, в частности:

· очень просто можно добавить и исключить прикладные среды, что является следствием хорошей расширяемости микроядра ОС;

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

· Низкая производительность микроядерных ОС сказывается на скорости работы прикладных сред, а значит, и на скорости выполнения приложения.

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

Серверы ОС.

Способы реализации прикладных программных сред - №21 - открытая онлайн библиотека Способы реализации прикладных программных сред - №22 - открытая онлайн библиотека

….

Приложения.

Способы реализации прикладных программных сред - №23 - открытая онлайн библиотека Способы реализации прикладных программных сред - №23 - открытая онлайн библиотека Способы реализации прикладных программных сред - №25 - открытая онлайн библиотека Способы реализации прикладных программных сред - №25 - открытая онлайн библиотека

Способы реализации прикладных программных сред - №27 - открытая онлайн библиотека Способы реализации прикладных программных сред - №28 - открытая онлайн библиотека Способы реализации прикладных программных сред - №29 - открытая онлайн библиотека ….

 
  Способы реализации прикладных программных сред - №30 - открытая онлайн библиотека

Способы реализации прикладных программных сред - №31 - открытая онлайн библиотека Способы реализации прикладных программных сред - №32 - открытая онлайн библиотека

Способы реализации прикладных программных сред - №33 - открытая онлайн библиотека

Способы реализации прикладных программных сред - №34 - открытая онлайн библиотека

 
  Способы реализации прикладных программных сред - №35 - открытая онлайн библиотека

Пользовательский

режим.

 
  Способы реализации прикладных программных сред - №36 - открытая онлайн библиотека

Способы реализации прикладных программных сред - №37 - открытая онлайн библиотека Привилегированный

режим.

Рис. 14. Микроядерный подход к реализации множественных прикладных сред.

Выводы по главе

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

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

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

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

- Базовые механизмы ядра;

- Менеджеры ресурсов;

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

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

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

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

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

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

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