Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Аппаратно-зависимые компоненты ОС



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

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

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

– средства трансляции адресов;

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

– система прерываний;

– системный таймер;

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

Средства поддержки привилегированного режима обычно основаны на системном регистре процессора, часто называемом “словом состояния” машины или процессора. Этот регистр содержит некоторые признаки, определяющие режимы работы процессора, в том числе и признак текущего режима привилегий. Смена режима привилегий осуществляется за счет изменения слова состояния машины в результате прерывания или выполнения привилегированной команды. Число уровней привилегий может быть разным у разных типов процессоров, однако, наиболее часто используется либо два уровня (ядро–пользователь), либо четыре (например, ядро–супервизор–выполнение–пользователь у платформы VAX, или 0–1–2–3 у процессоров Intel x86/Pentium). В обязанности средств поддержки привилегированного режима входит проверка допустимости выполнения активной программой инструкций процессора при текущем уровне привилегированности.

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

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

Система прерываний позволяет компьютеру реагировать на внешние события, синхронизировать выполнение процессов и работу устройств ввода-вывода, быстро переходить с одной программы на другую. Прерывание – это временное прекращение выполнения команд программы с сохранением информации о ее текущем состоянии и передачей управления специальной программе – обработчику прерываний. Механизм прерываний, таким образом, нужен для того, чтобы оповестить процессор о возникновении в вычислительной системе некоторого непредсказуемого события, которое не синхронизировано с циклом работы процессора. Примерами таких событий могут служить завершение операции ввода-вывода внешним устройством (такой, как запись блока данных контроллером диска), некорректное завершение арифметической операции (такой, как переполнение регистра), истечение интервала астрономического времени. Когда выполняются все необходимые для возникновения прерывания условия, его источник (контроллер внешнего устройства, таймер, арифметический блок процессора и т.п.) выставляет определенный электрический сигнал. Этот сигнал останавливает выполнение процессором последовательности команд, задаваемой исполняемым кодом, и вызывает автоматический переход на заранее определенную процедуру, называемую процедурой обработки прерываний. В большинстве моделей процессоров переход на процедуру обработки прерываний сопровождается заменой слова состояния машины (или даже всего контекста процесса), что позволяет одновременно с переходом по нужному адресу выполнить переход в привилегированный режим. После завершения обработки прерывания обычно происходит возврат к исполнению прерванного кода. Прерывания играют важную роль в работе любой ОС, являясь ее движущей силой. Действительно, большая часть действий ОС инициируется прерываниями различного типа. Даже системные вызовы от приложений выполняются на многих аппаратных платформах с помощью специальной инструкции прерывания, вызывающей переход к выполнению соответствующих процедур ядра (например, инструкция int в процессорах Intel или SVC в мэйнфреймах IBM). Более подробно о механизме прерываний будет рассказано в юните 2 “Управление процессами”.

Системный таймер, часто реализуемый в виде быстродействующего регистра-счетчика, необходим ОС для выдержки интервалов времени. В регистр таймера программно загружается значение требуемого интервала в условных единицах, из которого затем автоматически с определенной частотой начинает вычитаться по единице. Частота “тиков” таймера, как правило, тесно связана с частотой тактового генератора процессора. Заметим, что не следует путать таймер ни с тактовым генератором, вырабатывающем сигналы по синхронизации всех операций в компьютере, ни с системными часами – работающей на батареях электронной схеме, ведущие независимый отсчет времени и календарной даты. При достижении нулевого значения счетчика таймер инициирует прерывание, которое обрабатывается соответствующей процедурой ОС. Прерывания от системного таймера используются ОС в первую очередь для слежения за тем, как отдельные процессы расходуют время процессора. Например, в системе разделения времени при обработке очередного прерывания от таймера планировщик процессов может принудительно передать управление другому процессу, если данный процесс исчерпал выделенный ему квант времени.

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

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

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

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





Дата публикования: 2015-10-09; Прочитано: 2334 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...