sonyps4.ru

Типы операционных систем. Понятие операционной системы

Переносимость.

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

Существует несколько «долгоживущих» популярных операционных систем (разновидности UNIX, MS-DOS, Windows NT, OS/2), для которых наработана широкая номенклатура приложений. Некоторые из них пользуются широкой популярностью. Поэтому для пользователя, переходящего по тем или иным причинам с одной ОС на другую, очень привлекательна возможность запуска в новой операционной системе привычного приложения. Если ОС имеет средства для выполнения прикладных программ, написанных для других операционных систем, то про нее говорят, что она обладает совместимостью с этими ОС. Следует различать совместимость на уровне двоичных кодов и совместимость на уровне исходных текстов. Понятие совместимости включает также поддержку пользовательских интерфейсов других ОС.

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

-3. 7. Совместимость и множественные прикладные среды

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

-3. 7. 1. Двоичная совместимость и совместимость исходных текстов

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

Совместимость на уровне исходных текстов требует наличия соответствующего компилятора в составе программного обеспечения компьютера, на котором предполагается выполнять данное приложение, а также совместимости на уровне библиотек и системных вызовов. При этом необходима перекомпиляция имеющихся исходных текстов в новый исполня-емый модуль. Совместимость на уровне исходных текстов важна в основном для разработчиков приложений, в распоряжении которых эти исходные тексты всегда имеются. Но для конечных пользователей практическое значение имеет только двоичная совместимость, так как только в этом случае они могут использовать один и тот же коммерческий продукт, поставляемый в виде двоичного исполняемого кода, в различных операционных средах и на различных машинах. Для пользователя, купившего в свое время пакет (например, Lotus 1-2-3) для MS-DOS, важно, чтобы он мог запускать этот полюбившийся ему пакет без каких-либо изменений и на своей новой машине, работающей под управлением, например, Windows NT. Обладает ли новая ОС двоичной совместимостью или совместимостью исходных текстов с существующими операционными системами, зависит от многих факторов. Самый главный из них – архитектура процессора, на котором работает новая ОС. Если процессор использует тот же набор команд (возможно, с некоторыми добавлениями) и тот же диапазон адресов, тогда двоичная совместимость может быть достигнута довольно просто.


Для этого достаточно соблюдения сле­дующих условий:

вызовы функций API, которые содержит приложение, должны поддерживать­ся данной ОС;

внутренняя структура исполняемого файла приложения должна соответство­вать структуре исполняемых файлов данной ОС.

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

Пусть, например, требуется выполнить DOS-программу для IBM PC-совместимого компьютера на компьютере Macintosh. Компьютер Macintosh построен на основе процессора Motorola 680x0, а компьютер IBM PC - на основе процессора Intel 80x86. Процессор Motorola имеет архитектуру (систему команд, состав регистров и т. п.), отличную от архитектуры процессора Intel, поэтому ему непонятен двоичный код DOS-программы, содержащей инструкции этого процессора. Для того чтобы компьютер Macintosh смог интерпретировать машинные инструкции, которые ему изначально непонятны, на нем должно быть установлено специальное программное обеспечение - эмулятор .

Эмулятор должен последовательно выбирать каждую двоичную инструкцию процессора Intel, программным способом дешифрировать ее, чтобы определить, какие действия она задает, а затем выполнять эквивалентную подпрограмму, написанную в инструкциях процессора Motorola. Так как к тому же у процессора Motorola нет в точности таких же регистров, флагов и внутреннего арифметико-логического устройства, как в Intel, он должен также имитировать (эмулировать) все эти элементы с использованием своих регистров или памяти. Состояние эмулируемых регистров и флагов после выполнения каждой команды должно быть абсолютно таким же,как и в реальном процессоре Intel. Это простая, но очень медленная работа, так как одна команда процессора Intel исполняется значительно быстрее, чем эмулирующая его последовательность ко­манд процессора Motorola.

-3. 7. 2. Трансляция библиотек

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

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

Например, для Windows-программы, работающей на Macintosh, при интерпретации команд процессора Intel 80x86 производительность может быть очень низкой. Но когда производится вызов функции GUI открытия окна, модуль ОС, реализующий прикладную среду Windows, может перехватить этот вызов и перенаправить его на перекомпилированную для процессора Motorola 680x0 подпрограмму открытия окна. В результате на таких участках кода скорость работы программы может достичь (а возможно, и превзойти) скорость работы на своем «родном» процессоре.

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

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

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

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

Один из наиболее очевидных вариантов реализации множественных приклад­ных сред основывается на стандартной многоуровневой структуре ОС. На рис. 3. 8 операционная система OS1 поддерживает кроме своих «родных» приложений приложения операционной системы OS2. Для этого в ее составе имеется специальное приложение – прикладная программная среда, которая транс­лирует интерфейс «чужой» операционной системы –API OS2 в ин­терфейс своей «родной» операционной системы – API OS1.

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

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

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

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

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

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

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

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

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

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

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

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




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




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


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




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




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


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




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


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




Виды совместимости Эффективность данного подхода определяется тем, что большинство современных программ работают под управлением графических интерфейсов пользователя (GUI) типа Windows, UNIX при этом приложения, как правило, наибольшую часть времени тратят на выполнение, некоторых хорошо предсказуемых действий


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


Виды совместимости Тщательно спроектированная программная среда имеет в своем составе библиотеки, имитирующие внутренние библиотеки GUI, но написанные на "родном" коде данной ОС. Таким образом, достигается существенное ускорение выполнения программ с API другой операционной системы.




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


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


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


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


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


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




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


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


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


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


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


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


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


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




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


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


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


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




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




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






Главная задача файловой системы (ФС) – скрыть особен- ности ввода-вывода и дать прог- раммисту простую абстрактную модель файлов, независимых от устройств. Для чтения, создания, удаления, записи, открытия и закрытия файлов имеется обшир- ная категория системных вызовов (создание, удаление, открытие, закрытие, чтение и т.д.).



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

Виды совместимости Существует 2 принципиально отличающихся вида совместимости, которые не следует путать Совместимость на двоичном на уровне исходных текстов

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

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

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

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

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

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

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

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

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

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

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

Виды совместимости Эффективность данного подхода определяется тем, что большинство современных программ работают под управлением графических интерфейсов пользователя (GUI) типа Windows, UNIX при этом приложения, как правило, наибольшую часть времени тратят на выполнение, некоторых хорошо предсказуемых действий

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

Виды совместимости Тщательно спроектированная программная среда имеет в своем составе библиотеки, имитирующие внутренние библиотеки GUI, но написанные на "родном" коде данной ОС. Таким образом, достигается существенное ускорение выполнения программ с API другой операционной системы.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Главная задача файловой системы (ФС) – скрыть особенности ввода-вывода и дать программисту простую абстрактную модель файлов, независимых от устройств. Для чтения, создания, удаления, записи, открытия и закрытия файлов имеется обширная категория системных вызовов (создание, удаление, открытие, закрытие, чтение и т. д.).

Пользователям хорошо знакомы такие связанные с организацией файловой системы понятия, как: vкаталог, vтекущий каталог, vкорневой каталог, vпуть. Для манипулирования этими объектами в ОС имеются системные вызовы.

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

Различают совместимость на двоичном уровне (в котором хранятся приложения в ОС) и совместимость на уровне исходных текстов.

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

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

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

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

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

Более эффективно использование так называемых прикладных программных сред. Сегодня в типичных программах 60…80 % времени тратится на выполнение функций GUI (графического интерфейса пользователя) и других библиотечных вызовов ОС.



Тщательно спроектированная программная прикладная среда имеет в своем составе библиотеки, имитирующие внутренние библиотеки GUI, но написанные на своем «родном» коде.

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

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

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

Выводы

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

2. Все задачи, решаемые операционной системой, выполняют ее четыре основные подсистемы: подсистема управления процессами, подсистема управления памятью, подсистема управления файлами и внешними устройствами, подсистема защиты данных и администрирования.

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

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

Вопросы для самопроверки

1. Дайте определение операционной системы.

2. Каковы функции операционная система предоставляет для пользователя?

3. Каковы функции операционная система предоставляет для прикладного программиста?

4. Какие задачи решает операционная система в отношении аппаратуры вычислительной системы?

5. Что такое API?

6. В чем суть мультипрограммирования?

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

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

9. Какие задачи операционной системы относятся к работе подсистемы управления файлами и внешними устройствами?

10. Какие задачи операционной системы относятся к работе подсистемы защиты данных и администрирования?

11. Дайте определение понятия файл и каталог?

12. Дайте определение сетевой операционной системы

13. Какие операционные системы называют распределенными?

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

15. Что называется сетевой службой?

16. Как могут быть реализованы сетевые службы в одноранговой сети?

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

18. В чем суть многослойного подхода к построению операционной системы?

19. Зачем нужен привилигированный режим работы процессора?

20. Каковы особенности функционирования ядра операционной системы?

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

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

23. Какие задачи решают средства аппаратой поддержки операционной системы?

24. Какие особенности функционирования менеджеров ресурсов в операционной системе с микроядерной архитектурой?

25. Каковы достоинства и недостатки микроядерной архитектуры операционной системы?

26. В чем заключается совместимость операционных систем?

27. В чем суть механизма эмуляции работы операционной системы?

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

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

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

Операционная система в режиме реального времени: Является многозадачной операционной системой, которая направлена ​​на выполнение приложений реального времени. Операционные системы в режиме реального времени часто используют специализированные алгоритмы планирования таким образом, что они могут достичь детерминированного характера поведения. Главным объектом операционных систем реального времени является их быстрая и предсказуемая реакция на события. Система управляется событиями, переключается между задачами на основе их приоритетов, с разделением времени переключения задач.

Windows CE, ОС-9, Symbian и LynxOS вот некоторые из широко известных операционных систем реального времени.

Многопользовательские и однопользовательские операционные системы: Компьютерные операционные системы этого типа позволяют нескольким пользователям получать доступ в компьютерную систему одновременно. Системы с разделением времени могут быть классифицированы как многопользовательские системы, поскольку они позволяют множественный доступ пользователей к компьютеру через разделение времени. Однопользовательские операционные системы в отличие от многопользовательских операционных систем могут использоваться только одним пользователем одновременно. Возможность создания несколько пользователей в операционной системе Windows, не делает ее многопользовательской системой. Скорее, только администратор сети является реальным пользователем. Но для Unixи подобных операционных систем, есть возможность сразу двум пользователям войти в систему в одно время, и эта возможность ОС делает ее многопользовательской операционной системой.

Windows 95, Windows2000, MaxOS и P al m OS являются примерами однопользовательских операционных систем. U ni x и Op enVMS примеры многопользовательских операционных систем.

Многозадачность и однозадачность операционных систем: Когда разрешено запускать одновременно только одну программу, система группируются под категорией однозадачной системы, а в случае, если операционная система позволяет выполнение нескольких задач одновременно, классифицируется как многозадачная операционная система. Многозадачность может быть двух типов, а именно упреждающей или кооперативной. В многозадачной операционной системе посвящает один слот для каждой из программ. Unix-подобные операционные системы, такие как Solaris и Linux, поддерживают многозадачность. Кооперативная многозадачность достигается при опоре на каждом процессе, чтобы дать время для других процессов в определенном порядке. Этот вид многозадачности похож на идею блока многопоточности, в которой один поток проходит, пока другой заблокирован каким-либо другим событием. MS Windowsдо Windows 95 используют для поддержки кооперативную многозадачность.

PalmOS для Palm КПК являются однозадачными операционными системами. 9x Windows, поддерживает многозадачность. DOS + является относительно менее известной многозадачной операционной системой. Он может поддерживать многозадачность из четырех 86-битных программ.

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

Амеба, Plan9 и ЛОКУС (разработанные в 1980-х годах) являются примерами распределенных операционных систем.

Встроенные системы: Операционные системы, предназначенные для использования во встраиваемых компьютерных системах. Они предназначены для работы на небольших машинах, таких как КПК. Они способны работать с ограниченным числом ресурсов. Они очень компактны и эффективны.

Windows CE, FreeBSD и Mini x 3 примеры встраиваемых операционных систем. Использование Linuxво встраиваемых компьютерных систем называют Embedded Linux.

Мобильная операционная система: Хотя она по функционалу и не является родом операционных систем, мобильная ОС, безусловно, важное упоминание в списке типов операционных систем. Мобильная ОС управляет мобильным устройством, ее дизайн поддерживает беспроводную связь и мобильные приложения. Она имеет встроенную поддержку мобильных мультимедийных форматов. Планшетные ПК и смартфонов работают на мобильных операционных системах.

Blackberry OS, Androidот Googleи IOS от Apple являются одними из самых известных мобильных операционных систем.

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

Интернет и сеть: В онлайн-обработке данных, пользователь остается в контакте с компьютером и процессы выполняются под управлением центрального процессора компьютера. Когда процессы не выполняются под прямым контролем процессора, обработка упоминается как в автономном режиме. Давайте возьмем пример пакетной обработки. Здесь дозирование или группировка данных может быть сделана без пользователя и вмешательства центрального процессора; это может быть сделано в автономном режиме. Но выполнение самого процесса может произойти под непосредственным управлением процессора, то есть в Интернете.

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



Загрузка...