Слайд 2Виды совместимости
Способы реализации совместимости
Слайд 3Виды совместимости
Конкретные архитектурные и функциональные особенности любой ОС должны касаться
лишь системных программистов и могут совершенно не быть известны пользователю.
Свойство ОС, характеризующее возможность выполнения в ОС приложений, написанных для других ОС, называется совместимостью.
Слайд 4Виды совместимости
Существует 2 принципиально отличающихся вида совместимости, которые не следует
путать
Совместимость
на двоичном
уровне
Совместимость
на уровне
исходных
текстов
Слайд 5Виды совместимости
Приложения обычно хранятся в компьютере в виде исполняемых
файлов, содержащих двоичные образы кодов и данных.
Двоичная совместимость дости-гается в
том случае, если можно взять исполняемую программу, рабо-тающую в среде одной ОС и запустить ее на выполнение в среде другой ОС.
Слайд 6Виды совместимости
Совм-ть на уровне исх. текстов требует наличия соответствующих компиляторов
в составе ПО ПК, на котором предполагается исполь-зовать данное приложение,
а также совм-ти на уровне библиотек и системных вызовов. При этом необходима перекомпиляция исход-ных текстов программ в новые исполняемые модули.
Слайд 7Виды совместимости
Таким образом, совместимость на уровне исходных текстов наиболее
важное значение имеет для разработчиков приложений, в распоряжении которых находятся
эти исходные тексты.
Слайд 8Виды совместимости
Для пользователей значение имеет только двоичная совместимость, так как
только в этом случае они могут без специальных навыков и
умений использовать программный продукт, поставляемый в виде двоичного исполняемого кода, в различных операционных средах и на разных компьютерах.
Слайд 9Виды совместимости
Каким типом совместимости - двоичной или совместимостью исходных текстов
обладает ОС, зависит от многих факторов.
Самый значительный из них -
архитектура процессора, на котором работает ОС.
Слайд 10Виды совместимости
Чтобы достичь двоичной совм-ти достаточно соблюсти условия:
вызовы функций
API, которые содержат приложения должны поддерживаться данной ОС;
внутренняя структура
исполняемого файла приложения должна
соответствовать структуре исполняемых файлов данной ОС.
Самый значительный из них - архитектура процессора, на котором работает ОС.
Слайд 11Виды совместимости
Несравнимо сложнее достигнуть двоичной совместимости операционным системам, предназначенным для
выполнения на процессорах, имеющих различающиеся архитектуры.
Кроме соблюдения приведенных выше условий,
необходимо также организовать эмуляцию двоичного кода.
Слайд 12Виды совместимости
Для того, чтобы компьютер смог интерпретировать машинные инструкции, которые
ему
изначально непонятны, на нем должно быть установлено специальное
программное обеспечение –эмулятор
Слайд 13Виды совместимости
Назначение эмулятора в том, чтобы последовательно выбирать каждую двоичную
инструкцию процессора, например, Intel, программным способом дешифровать ее, чтобы определить,
какие действия она задает, затем выполнять эквива-лентную подпрограмму, написанную в инструкциях процессора, например, Motorola.
Слайд 14Виды совместимости
Тем не менее, существует другой, гораздо более эффективный выход
из описанной ситуации – использо-вание так называемых прикладных программных сред.
Одной из составляющих, формирующих программную среду, является набор функций интерфейса прикладного программирования API, которым ОС обеспечивает свои приложения.
Слайд 15Виды совместимости
Для сокращения времени выполнения чужих программ прикладные среды имитируют
обращения к библиотечным функциям.
Слайд 16Виды совместимости
Эффективность данного подхода определяется тем, что большинство современных программ
работают под управлением графических интерфейсов пользователя (GUI) типа Windows, UNIX
при этом приложения, как правило, наибольшую часть времени тратят на выполнение, некоторых хорошо предсказуемых действий
Слайд 17Виды совместимости
Они непрерывно осуществляют вызовы библиотек GUI для манипулирования
окнами и для других, связанных с GUI, действий. Именно эта
особенность приложений позволяет прикладным средам компенсировать большие затраты времени, потраченные на покомандное эмулирование программы.
Слайд 18Виды совместимости
Тщательно спроектированная программная среда имеет в своем составе
библиотеки, имитирующие внутренние библиотеки GUI, но написанные на "родном" коде
данной ОС. Таким образом, достигается существенное ускорение выполнения программ с API другой операционной системы.
Слайд 19Виды совместимости
Для того чтобы отличить такой подход от более
медленного процесса эмулирования кода по одной команде за раз, его
называют трансляцией
Слайд 20Виды совместимости
Для того, чтобы программа, написанная для одной ОС,
могла быть выполнена в рамках другой ОС, недостаточно лишь обеспечить
совместимость API. Вполне может случиться так, что концепции, положенные в основу разных ОС, войдут в противоречие друг с другом.
Слайд 21Виды совместимости
Например, в одной ОС приложению может быть разрешено непосредственно
управлять устройствами ввода-вывода, а в другой действия являются прерогативой ОС.
Совершенно естественно, что каждая ОС имеет свои собственные механизмы защиты ресурсов, свои алгоритмы обработки ошибок и исключительных ситуаций, особую структуру процесса и схему управления памятью, свою семантику доступа к файлам и графический пользовательский интерфейс.
Слайд 22Виды совместимости
Все эти отличия определяются спецификой аппаратной платформы, на которой
работает ОС, особенностями ее реализации или заложенные разра-ботчиками системы как
присущие данной системе свойства.
Для обеспечение совместимости необходимо организовать бесконфликтное сосуществование в рамках одной ОС нескольких способов управления ресурсами компьютера
Слайд 23Способы реализации совмест-ти
Задачей прикладной среды является выполнение программы по возможности
так, как если бы она выполнялась на "родной" ОС. Но
потребности этих программ могут входить в конфликт с конструкцией данной ОС.
Специализированные драйверы устройств не всегда отвечают требованиям безопасности, возможны конфликты между схемами управления памятью и оконными системами.
Слайд 24Способы реализации совмест-ти
Также прикладная среда должна выполнять программы с
приемлемой скоростью.
Этому требованию не могут удовлетворить широко используемые ранее эмулирующие
системы.
Для сокращения времени на выполнение чужих программ прикладные среды используют имитацию программ на уровне библиотек.
Слайд 25Способы реализации совмест-ти
Несмотря на то, что реализация на практике полноценной
прикладной среды, полностью совместимой со средой другой ОС является очень
сложной задачей, существует несколько типовых подходов к ее решению.
Эти варианты отличаются особен-ностями архитектурных решений и функциональными возможностями, обеспечивающими различную степень переносимости приложений.
Слайд 26Способы реализации совмест-ти
Трансляция системных вызовов с помощью прикладных программных сред
Слайд 27Способы реализации совмест-ти
ОС1 поддерживает кроме своих "родных" приложений приложения ОС2
и ОСЗ.
Для этого есть прикладные программные среды, которые транслируют интерфейсы
"чужих" API OC2 и API ОСЗ в интерфейс своей "родной" API OC1.
Слайд 28Способы реализации совмест-ти
Существует способ построения множественных прикладных сред, использующий концепцию
микро-ядерного подхода. При этом важно отделить базовые, общие для всех
прикладных сред механизмы ОС от специфических для каждой из прикладных сред высокоуровневых функций, решающих стратегические задачи
Слайд 29Способы реализации совмест-ти
В соответствии с микроядерной архитектурой функции ОС реализу-ются
микроядром и серверами пользовательского режима.
Важно: каждая прикладная среда оформляется в
виде отдельного сервера пользовательского режима и не включает базовых механизмов
Слайд 30Способы реализации совмест-ти
Приложения, используя API, обращаются с системными вызовами
к соответствующей прикладной среде через микроядро. Прикладная среда обрабатывает запрос,
выполняет его (возможно, обращаясь для этого за помощью к базовым функциям микроядра) и отсылает приложению результат
Слайд 31Способы реализации совмест-ти
В ходе выполнения запроса прикладной среде приходится обращаться
к базовым механизмам ОС, реализуемым микроядром и другими серверами ОС.
Такому подходу к конструированию множественных прикладных средств присущи все достоинства и недостатки микроядерной архитек-туры, в частности:
Слайд 32Способы реализации совмест-ти
очень просто можно добавлять и исключать прикладные
среды, что является следствием хорошей расширяемости микроядерных ОС;
надежность и
стабильность: при отказе одной из прикладных сред все остальные сохраняют работоспособность;
низкая производительность микроядер-ных ОС сильно сказывается на скорости работы прикладных сред, а значит, и на скорости выполнения приложений.
Слайд 33Способы реализации совмест-ти
Множественные прикладные сре-ды обеспечивают совместимость на двоичном уровне
данной ОС с при-ложениями, написанными для других ОС. В результате
пользователи полу-чают большую свободу выбора ОС и более легкий доступ к качественному программному обеспечению.
Слайд 34Способы реализации совмест-ти
Вывод
Чтобы программа, написанная для одной ОС, могла быть
выполнена в рамках другой ОС, недостаточно совместимости API. Необходимо "родное"
окружение: структура процесса, средства управления памятью, средства обработки ошибок и исключительных ситуаций, механизмы защиты ресурсов и семантика файлового доступа.
Слайд 35Способы реализации совмест-ти
Вывод
Значит поддержка
нескольких прикладных
программных сред
является очень
непростой задачей,
тесно связанной со
структурой
ОС
Слайд 36Системные вызовы (system calls) –интерфейс между ОС и пользовательской программой.
Они создают, удаляют и используют различные объекты, главные из которых
– процессы и файлы. Пользова-тельская программа запрашивает сервис у ОС, осуществляя системный вызов. Имеются библиотеки процедур, которые загружают машинные регистры определенными пара-метрами и осуществляют преры-вание процессора, после чего управление передается обработчику данного вызова, входящему в ядро операционной системы.
Слайд 37 При системном вызове задача переходит в привилегированный режим или режим
ядра (kernel mode). Поэтому системные вызовы иногда еще называют программными
преры-ваниями, в отличие от аппаратных прерываний, которые чаще называют просто прерываниями.
В большинстве ОС системный вызов осуществляется командой прог-раммного прерывания (INT).
Слайд 38 Прерывание (hardware interrupt) – это событие, генерируемое внешним (по отношению
к процессору) устройством. Посредством аппаратных прерываний аппаратура либо информирует процессор
о том, что произошло какое-либо событие, требующее немедленной реакции (например, пользователь нажал клавишу), либо сообщает о завершении асинхронной операции ввода-вывода (например, закончено чтение данных с диска в основную память).
Слайд 39Важный тип аппаратн. прерываний – прерывания таймера, генерируе-мые периодически через
фиксиро-ванный промежуток времени.
Прерывания таймера использу-ются ОС при планировании процессов. Каждый
тип аппаратных прерываний имеет собственный номер, однозначно определяющий источник прерывания.
Слайд 40 Аппаратное прерывание – это асинхронное событие, то есть оно возникает
вне зависимости от того, какой код исполняется процессором в данный
момент.
Обработка аппаратного прерывания не должна учитывать, какой процесс является текущим.
Слайд 41 Исключительная ситуация (exception) – событие, возникающее в результате попытки выполнения
программой команды, которая по каким-либо причинам не может быть выполнена
до конца.
Примерами таких команд могут быть попытки доступа к ресурсу при отсутствии достаточных привилегий или обращения к отсутствующей странице памяти.
Слайд 42
Исключительные ситуации как и системные вызовы являются синхронными событиями, возникающими
в контексте текущей задачи.
Исключительные ситуации можно разделить на исправимые и
неисправимые.
Слайд 43К исправимым относятся такие исключительные ситуации, как от-сутствие нужной информации
в оперативной памяти. После устра-нения причины исправимой исклю-чительной ситуации программа
может выполняться дальше. Возникновение в процессе работы ОС исправимых исключительных ситуаций считается нормой.
Слайд 44 Неисправимые исключительные ситуации чаще всего возникают в результате ошибок в
программах (например, деление на ноль).
Обычно в таких случаях ОС реагирует
завершением программы, вызвавшей исключительную ситуацию.
Слайд 45Файлы предназначены для хранения информации
на внешних носителях, то есть принято,
что информация, записанная, например, на диске, должна находиться
внутри файла. Обычно
под файлом понимают именованную часть пространства на носителе информации.
Слайд 46Главная задача файловой системы (ФС) – скрыть особен-ности ввода-вывода и
дать прог-раммисту простую абстрактную модель файлов, независимых от устройств. Для
чтения, создания, удаления, записи, открытия и закрытия файлов имеется обшир-ная категория системных вызовов (создание, удаление, открытие, закрытие, чтение и т.д.).
Слайд 47Пользователям хорошо знакомы такие связанные с организацией файловой системы понятия,
как:
каталог,
текущий каталог,
корневой каталог,
путь.
Для манипулирования этими объектами в ОС имеются системные
вызовы.