Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОС_модуль1.doc
Скачиваний:
11
Добавлен:
25.08.2019
Размер:
276.48 Кб
Скачать

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

А теперь поговорим о средствах поддержки аппаратуры со стороны ОС.

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

«Аппаратные средства поддержки ОС» – среда для установки и работы ОС. С другой стороны в каждой ОС присутствуют «Средства аппаратной поддержки ОС» или «Машинно-зависимые компоненты». Перечислим основные элементы.

Особенности аппаратной платформы, учитываемые ОС:

  1. система команд процессоров;

  2. состав регистров процессоров;

  3. количество типов прерываний и их состав;

  4. формат вектора прерываний (таблицы ссылок на процедуры обработки прерываний);

  5. особенности подключения внешних устройств;

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

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

Для того чтобы количество машинно-зависимых модулей было меньше, разработчики ОС, как правило, ограничивают универсальность остальных модулей. Это означает, что их универсальность носит условный характер и распространяется только на несколько типов процессоров, на которые и рассчитана ОС. Например, ОС Windows NT рассчитана на 4 типа процессора (варианты Intel x86 и Pentium), и в зависимости от количества процессоров в компьютере поставляются различные варианты кодов ядра.

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

  1. бо’льшая часть кода должна быть написана на стандартном языке высокого уровня;

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

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

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