Машинно-зависимые компоненты ОС. Уменьшение количества машинно-зависимых модулей ОС. Переносимость ОС: основные правила разработки

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

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

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

набор средств аппаратной поддержки ОС

  • средства поддержки привилегированного режима;
  • средства трансляции адресов;
  • средства переключения процессов;
  • система прерываний;
  • системный таймер;
  • средства защиты областей памяти.

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

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

23 стр., 11114 слов

Программные средства учебного назначения

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

Рисунок 1.1 — организация ОС

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

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

1.1 Средства поддержки привилегированного режима

Средства поддержки привилегированного режима обычно основаны на системном регистре процессора, часто называемом “словом состояния” машины или процессора. Этот регистр содержит некоторые признаки, определяющие режимы работы процессора, в том числе и признак текущего режима привилегий. Смена режима привилегий осуществляется за счёт изменения слова состояния машины в результате прерывания или выполнения привилегированной команды. Число уровней привилегий может быть разным у разных типов процессоров, однако, наиболее часто используется либо два уровня (ядро-пользователь), либо четыре. В обязанности средств поддержки привилегированного режима входит проверка допустимости выполнения активной программой инструкций процессора при текущем уровне привилегированности.

1.2 Средства трансляции адресов

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

1.3 Средства переключения процессов

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

1.4 Система прерываний позволяет

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

4 стр., 1948 слов

Память и внимание

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

1.5 Системный таймер

тактовым генератором

1.6 Средства защиты областей памяти

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

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

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

Объем машинно-зависимых компонентов

ограничивают универсальность машинно-независимых модулей

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

Разработчики ОС могут пользоваться слоем драйверов BIOS как частью машинно-зависимого слоя ОС либо заменить все или часть драйверов BIOS компонентами ОС.

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

12 стр., 5896 слов

Дочерние и зависимые общества как юридические лица

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

Операционные системы характеризуют свойством переносимости.

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

переносимой

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

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

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

2) По возможности минимизировать объем машинно-зависимых частей кода, непосредственно взаимодействующих с аппаратными средствами. Всегда следует избегать прямого манипулирования регистрами и другими аппаратными средствами процессора. Для уменьшения аппаратной зависимости разработчики ОС должны также исключить возможность использования по умолчанию стандартных конфигураций аппаратуры или их характеристик. Аппаратно-зависимые параметры можно “спрятать” в программно-задаваемые пользователем данные абстрактного типа. Для осуществления всех необходимых действий по управлению аппаратурой, представленной этими параметрами, должен быть написан набор аппаратно-зависимых функций. Каждый раз, когда какому-либо модулю ОС требуется выполнить некоторое действие, связанное с аппаратурой, он манипулирует абстрактными данными, используя соответствующую функцию из имеющегося набора. Когда ОС переносится, то соответственно изменяются только эти данные и функции, которые ими манипулируют. Например, в ОС Windows NT диспетчер прерываний преобразует аппаратные уровни прерываний конкретного типа процессора в стандартный набор уровней прерываний IRQL, с которым работают остальные модули ОС. Поэтому при переносе Windows NT на новую аппаратную платформу необходимо переписать те коды диспетчера прерываний, которые, в частности, занимаются отображением уровней прерывания на абстрактные уровни IRQL, а модули ОС, пользующиеся этими абстрактными уровнями, изменений не потребуют. Более того, в Windows NT любой ресурс системы, одновременно задействованной более чем в одном процессе, включая файлы, совместно используемую память и физические устройства, реализован в виде объекта и управляется рядом функций. Такой подход сокращает число преобразований, которые необходимо внести в ОС в процессе ее эксплуатации. Если, скажем, изменилось что-то в аппаратуре, то все, что необходимо сделать, — это заменить соответствующий объект.

5 стр., 2105 слов

Патофизиология нервной системы

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

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

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

операционная система приложение машинный зависимый

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

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

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

19 стр., 9278 слов

Острый живот. Роль медицинской сестры в подготовке пациента к ...

... при остром животе., Задачи работы: 1. Рассмотреть особенности предоперационной подготовки пациента при 2. Изучить современные принципы предоперационной подготовки пациента при 3. Проанализировать сестринский процесс при предоперационной подготовке пациента при остром животе ... «острый живот». Термин «острый живот» является собирательным понятием. Это один из наиболее распространенных синдромов, широко ...

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

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

1. Дейтел, Х., М. Операционные системы. Основы и принципы. Т. 1 / Х. М. Дейтел, Д.Р. Чофнес. — М.: Бином, 2016. — 1024 c.

2. Назаров, С.В. Современные операционные системы: Учебное пособие / С.В. Назаров. — М.: Бином. Лаборатория знаний, 2013. — 367 c.

3. Синицын, С.В. Операционные системы: Учебник для студентов учреждений высш. проф. образования / С.В. Синицын, А.В. Батаев, Н.Ю. Налютин. — М.: ИЦ Академия, 2012. — 304 c.

4. Синицын, С.В. Операционные системы: Учебник для студентов учреждений высш. проф. образования / С.В. Синицын, А.В. Батаев, Н.Ю. Налютин. — М.: ИЦ Академия, 2012. — 304 c.