Лекция "Аппаратно-зависимые компоненты ОС."

  • Лекции
  • doc
  • 28.03.2017
Публикация на сайте для учителей

Публикация педагогических разработок

Бесплатное участие. Свидетельство автора сразу.
Мгновенные 10 документов в портфолио.

Средства поддержки привилегированного режима обычно основаны на системном регистре процессора, часто называемом "словом состояния" машины или процессора. Этот регистр содержит некоторые признаки, определяющие режимы работы процессора, в том числе и признак текущего режима привилегий. Смена режима привилегий осуществляется за счёт изменения слова состояния машины в результате прерывания или выполнения привилегированной команды. Число уровней привилегий может быть разным у разных типов процессоров, однако, наиболее часто используется либо два уровня (ядро-пользователь), либо четыре (например, ядро-супервизор- выполнение-пользователь у платформы VAX, или 0-1-2-3 у процессоров Intel x86/Pentium).
Иконка файла материала Аппаратно-зависимые компоненты ОС..doc
Аппаратно­зависимые компоненты ОС. Как уже отмечалось ранее, решение о том, какие функции ОС будут выполняться  программно, а какие аппаратно, принимается разработчиками ОС, поэтому не  существует четкого разделения между программной и аппаратной реализацией функций  ОС. Несмотря на это, практически все современные аппаратные платформы имеют  некоторый типичный набор средств аппаратной поддержки ОС, в который входят  следующие компоненты: Средства поддержки привилегированного режима обычно основаны на  системном регистре процессора, часто называемом "словом состояния" машины или  процессора. Этот регистр содержит некоторые признаки, определяющие режимы работы  процессора, в том числе и признак текущего режима привилегий. Смена режима  привилегий осуществляется за счёт изменения слова состояния машины в результате  прерывания или выполнения привилегированной команды. Число уровней привилегий  может быть разным у разных типов процессоров, однако, наиболее часто используется  либо два уровня (ядро­пользователь), либо четыре (например, ядро­супервизор­  выполнение­пользователь у платформы VAX, или 0­1­2­3 у процессоров Intel  x86/Pentium). Средства трансляции адресов выполняют операции преобразования  виртуальных адресов, которые содержатся в кодах процесса, в адресафизической  памяти. Таблицы, предназначенные для трансляции адресов, обычно имеют большой  объем, поэтому они хранятся в оперативной памяти, а аппаратура процессора  использует только указатели на эти области. Средства трансляции адресов применяют  данные указатели для доступа к элементам таблиц и аппаратного выполнения алгоритма  преобразования адреса, что значительно ускоряет процедуру трансляции по сравнению с  ее чисто программной реализацией. Средства переключения процессов предназначены для быстрого сохранения  контекста приостанавливаемого процесса и восстановления контекста процесса,  который становится активным. Контекст обычно включает содержимое всех регистров  общего назначения процессора, регистра флагов операций (то есть флагов нуля,  переноса, переполнения и т.п.), а также тех системных регистров и указателей, которые  связаны с отдельным процессом, а не ОС, например указателя на таблицу трансляции  адресов процесса. Для хранения контекстов приостановленных процессов обычно  используются области оперативной памяти, которые поддерживаются указателями  процессора. Система прерываний позволяет компьютеру реагировать на внешние события,  синхронизировать выполнение процессов и работу устройств ввода­вывода, быстро  переходить с одной программы на другую. Прерывание ­ это временное прекращение  выполнения команд программы с сохранением информации о ее текущем состоянии и  передачей управления специальной программе ­ обработчику прерываний. Системный таймер, часто реализуемый в виде быстродействующего регистра­ счетчика, необходим ОС для выдержки интервалов времени. В регистр таймера  программно загружается значение требуемого интервала в условных единицах, из  которого затем автоматически с определенной частотой начинает вычитаться по  единице. Частота "тиков" таймера, как правило, тесно связана с частотой тактового  генератора процессора. Заметим, что не следует путать таймер ни с тактовым  генератором, вырабатывающем сигналы по синхронизации всех операций в компьютере,  ни с системными часами ­ работающей на батареях электронной схеме, ведущие  независимый отсчет времени и календарной даты.средства защиты областей памяти обеспечивают на аппаратном уровне  проверку возможности программного кода осуществлять с данными определенной  области памяти такие операции, как чтение, запись или выполнение (при передачах  управления). Если аппаратура компьютера поддерживает механизм трансляции адресов,  то средства защиты областей памяти встраиваются в этот механизм. Функции  аппаратуры по защите памяти обычно состоят в сравнении уровней привилегий текущего кода процессора и сегмента памяти, к которому производится обращение. Объем машинно­зависимых компонентов ОС зависит от того, насколько велики  отличия в аппаратных платформах, для которых разрабатывается ОС. Например, ОС,  построенная на 32­битовых адресах, для переноса на машину с 16­битовыми адресами  должна быть практически переписана заново. Одно из наиболее очевидных отличий ­  несовпадение системы команд процессоров ­ преодолевается достаточно просто. Как  правило, современная ОС программируется на языке высокого уровня, а затем  соответствующим компилятором вырабатывается код для конкретного типа процессора. Однако во многих случаях различия в организации аппаратуры компьютера лежат  гораздо глубже и преодолеть их таким образом не удается. Например,  однопроцессорный и двухпроцессорный компьютеры требуют применения в ОС  совершенно разных алгоритмов распределения процессорного времени. Аналогично,  отсутствие аппаратной поддержки виртуальной памяти приводит к принципиальному  различию в реализации подсистемы управления памятью. В таких случаях  разработчикам не удается обойтись без внесения в код ОС специфики аппаратной  платформы, для которой эта ОС предназначается. Для уменьшения количества машинно­зависимых модулей производители ОС  обычно ограничивают универсальность машинно­ независимых модулей. Это означает,  что их независимость носит условный характер и распространяется только на несколько  типов процессоров и, естественно, созданных на основе этих процессоров аппаратных  платформ. По этому пути, например, пошли разработчики Windows NT, ограничив количество типов процессоров, поддерживаемых ОС, четырьмя и  поставляя различные варианты кодов ядра для однопроцессорных и многопроцессорных  компьютеров.