Слайд 1Машинно-зависимые компоненты ОС
Слайд 2Машинно-зависимые компоненты операционной системы.
Этот слой образуют программные модули, в которых
отражается специфика аппаратной платформы компьютера. В идеале этот слой полностью
экранирует вышележащие слои ядра от особенностей аппаратуры. Это позволяет разрабатывать вышележащие слои на основе машинно-независимых модулей, существующих в единственном экземпляре для всех типов аппаратных платформ, поддерживаемых данной ОС. Примером экранирующего слоя может служить слой HAL операционной системы Windows NT.
Слайд 3В хорошо структурированном ядре машинно-зависимые модули локализованы и образуют программный
слой, естественно примыкающий к слою аппаратуры, как это и показано
на рисунке
Слайд 4 Для облегчения переносимости ОС с одной аппаратной платформы на
другую аппаратно-зависимый код локализуют в нескольких модулях ОС. При переносе,
в случае несовпадении системы команд перепрограммируются только эти модули. Разработчики стремятся сократить количество машинно-зависимых модулей. Реально разработчики ОС для переносимости ограничиваются несколькими аппаратными платформами: Pentium, Alpha,DEC, MIPS, многопроцессорные. К аппаратно зависимым модулям ОС относятся также низкоуровневые драйверы внешних устройств. В Intel x86/Pentium разработка машинно-зависимого слоя упрощается за счет встроенной в постоянную память базовой системы ввода-вывода (BIOS) Переносимость, мобильность (portable) ОС.
Слайд 5Основные приемы включают:
Язык программирования ОС – высокого уровня (например язык
С)
Объем машинно-зависимых частей кода - минимальный
Аппаратно-зависимый код в нескольких модулях
Слайд 6Объем машинно-зависимых компонентов ОС зависит от того, насколько велики отличия
в аппаратных платформах, для которых разрабатывается ОС. Например, ОС, построенная
на 32-битовых адресах, для переноса на машину с 16-битовыми адресами должна быть практически переписана заново. Одно из наиболее очевидных отличий — несовпадение системы команд процессоров — преодолевается достаточно просто. Операционная система программируется на языке высокого уровня, а затем соответствующим компилятором вырабатывается код для конкретного типа процессора. Однако во многих случаях различия в организации аппаратуры компьютера лежат гораздо глубже и преодолеть их таким образом не удается.
Слайд 7 Для уменьшения количества машинно-зависимых модулей производители операционных систем
обычно ограничивают универсальность машинно-независимых модулей. Это означает, что их независимость
носит условный характер и распространяется только на несколько типов процессоров и созданных на основе этих процессоров аппаратных платформ. По этому пути пошли, например, разработчики ОС Windows NT, ограничив количество типов процессоров для своей системы четырьмя и поставляя различные варианты кодов ядра для однопроцессорных и многопроцессорных компьютеров.
Слайд 8Особое место среди модулей ядра занимают низкоуровневые драйверы внешних устройств.
С одной стороны эти драйверы, как и высокоуровневые драйверы, входят
в состав менеджера ввода-вывода, то есть принадлежат слою ядра, занимающему достаточно высокое место в иерархии слоев. С другой стороны, низкоуровневые драйверы отражают все особенности управляемых внешних устройств, поэтому их можно отнести и к слою машинно-зависимых модулей. Такая двойственность низкоуровневых драйверов еще раз подтверждает схематичность модели ядра со строгой иерархией слоев.
Слайд 9 Для компьютеров на основе процессоров Intel x86/Pentium
разработка экранирующего машинно-зависимого слоя ОС несколько упрощается за счет встроенной
в постоянную память компьютера базовой системы ввода-вывода — BIOS. BIOS содержит драйверы для всех устройств, входящих в базовую конфигурацию компьютера: жестких и гибких дисков, клавиатуры, дисплея и т. д. Эти драйверы выполняют весьма примитивные операции с управляемыми устройствами, например чтение группы секторов данных с определенной дорожки диска, но за счет этих операций экранируются различия аппаратных платформ персональных компьютеров и серверов на процессорах Intel разных производителей. Разработчики операционной системы могут пользоваться слоем драйверов BIOS как частью машинно-зависимого слоя ОС, а могут и заменить все или часть драйверов BIOS компонентами ОС.
Слайд 10Спасибо за внимание!=)
Мы вас любим*