Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






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






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

1. Большая часть кода д.б. написана на языке, трансляторы которого имеются на всех машинах, куда предполагается переносить систему (написана на большинстве ЯВУ).

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

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

 

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

 

31)Совместимость и множественные прикладные среды.

 

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

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

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

 

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

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

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

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

 

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

 

 

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

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

В пространстве ядра системы размещаются прикладные программные интерфейсы всех ОС.

 

 

 

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

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

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

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

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

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

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

 

 

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

32) Организация многопроцессорных операционных систем. Схема ведущий – ведомый. Схема с раздельными ядрами. Симметричная схема.

 

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

В частности, ОСы многопроцессорных компьютеров должны гарантировать, что,

ü во – первых, все процессоры загружены работой,

ü во - вторых, процессы равномерно распределены в системе,

ü в - третьих, выполнение взаимосвязанных процессов синхронизировано,

ü в - четвертых, процессы работают с состоятельными копиями данных, хранящихся в общей памяти,

ü в - пятых обеспечивают взаимные исключения.

Основные схемы организаций ОС для многопроцессорных компьютеров:

Ведущий/ведомый:

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






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.