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

Аппаратно-зависимый код

Читайте также:

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

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

    Правила обеспечивающие мобильность ОС

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

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

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

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

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

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

    Когда ОС переносится, то изменяются только эти данные и функции которые ими манипулируют.

    Аппаратно-зависимый код

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

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

    В результате происходит подмен ареальной аппаратуры некоторой унифицированной виртуальной машиной одинаковой для всех вариантов аппаратной платформы.

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


    Поиск по сайту:



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