Что такое привилегированный режим процессора
Для надежного управления ходом выполнения приложений операционная система должна иметь по отношению к приложениям определенные привилегии. Иначе некорректно работающее приложение может вмешаться в работу ОС и, например, разрушить часть ее кодов. Операционная система должна обладать исключительными полномочиями также для того, чтобы играть роль арбитра в споре приложений за ресурсы компьютера в мультипрограммном режиме. Ни одно приложение не должно иметь возможности без ведома ОС получать дополнительную область памяти, занимать процессор дольше разрешенного операционной системой периода времени, непосредственно управлять совместно используемыми внешними устройствами.
Обеспечить привилегии операционной системе невозможно без специальных средств аппаратной поддержки. Аппаратура компьютера должна поддерживать как минимум два режима работы - пользовательский режим (user mode) и привилегированный режим, который также называют режимом ядра (kernel mode) или режимом супервизора (supervisor mode). Подразумевается, что операционная система или некоторые ее части работают в привилегированном режиме, а приложения - в пользовательском режиме.
Так как ядро выполняет все основные функции ОС, то чаще всего именно ядро становится той частью ОС, которая работает в привилегированном режиме. Иногда это свойство - работа в привилегированном режиме - служит основным определением понятия «ядро».
Приложения ставятся в подчиненное положение за счет запрета выполнения в пользовательском режиме некоторых критичных команд, связанных с переключением процессора с задачи на задачу, управлением устройствами ввода-вывода, доступом к механизмам распределения и защиты памяти. Выполнение некоторых инструкций в пользовательском режиме запрещается безусловно (очевидно, что к таким инструкциям относится инструкция перехода в привилегированный режим), тогда как другие запрещается выполнять только при определенных условиях. Важно, что условия разрешения выполнения критичных инструкций находятся под полным контролем ОС, и этот контроль обеспечивается за счет набора инструкций, безусловно запрещенных для пользовательского режима.
Аналогичным образом обеспечиваются привилегии ОС при доступе к памяти. Например, выполнение инструкции доступа к памяти для приложения разрешается, если инструкция обращается к области памяти, отведенной данному приложению операционной системой, и запрещается при обращении к областям памяти, занимаемым ОС или другими приложениями. Полный контроль ОС над доступом к памяти достигается за счет того, что инструкции конфигурирования механизмов защиты памяти разрешается выполнять только в привилегированном режиме.
Очень важно, что механизмы защиты памяти используются операционной системой не только для защиты своих областей памяти от приложений, но и для защиты областей памяти, выделенных ОС какому-либо приложению, от остальных приложений. Говорят, что каждое приложение работает в своем адресном пространстве. Это свойство позволяет локализовать некорректно работающее приложение в собственной области памяти, так что его ошибки не оказывают влияния на остальные приложения и операционную систему. Между количеством уровней привилегий, реализуемых аппаратно, и количеством уровней привилегий, поддерживаемых ОС, нет прямого соответствия. Так, на базе четырех уровней, обеспечиваемых процессорами компании Intel, операционные системы Windows NT, UNIX и некоторые другие ограничиваются двухуровневой системой.
С другой стороны, если аппаратура поддерживает хотя бы два уровня привилегий, то ОС может на этой основе создать программным способом сколь угодно развитую систему защиты. На основе двух режимов привилегий процессора ОС может построить сложную систему индивидуальной защиты ресурсов, примером которой является типичная система защиты файлов и каталогов. Такая система позволяет задать для любого пользователя определенные права доступа к каждому из файлов и каталогов.
Отметим, что повышение устойчивости операционной системы, обеспечиваемое переходом ядра в привилегированный режим, достигается за счет некоторого замедления выполнения системных вызовов. Системный вызов привилегированного ядра инициирует переключение процессора из пользовательского режима в привилегированный, а при возврате к приложению - переключение из привилегированного режима в пользовательский (рис. 2.1). Во всех типах процессоров из-за дополнительной двукратной задержки переключения переход на процедуру со сменой режима выполняется медленнее, чем вызов процедуры без смены режима.
Работа приложений Пользовательский режим
Работа ядра Привилегированный режим
Время переключения режимов
Рис. 2. 1. Смена режимов при выполнении системного вызова
к привилегированному ядру
Архитектура ОС, основанная на привилегированном ядре и приложениях пользовательского режима, стала, по существу, классической. Ее используют многие популярные операционные системы, в том числе многочисленные версии UNIX, VAX VMS, IBM OS/390, OS/2, и с определенными модификациями - Windows NT.
В некоторых случаях разработчики ОС отступают от этого класси-ческого варианта архитектуры, организуя работу ядра и приложений в одном и том же режиме. Так, известная специализированная операционная система NetWare компании Novell использует привилегированный режим процессоров Intel x86/ Pentium как для работы ядра, так и для работы своих специфических приложений – загружаемых модулей NLM. При таком построении ОС обращения приложений к ядру выполняются быстрее, так как нет переключения режимов, однако при этом отсутствует надежная аппаратная защита памяти, занимаемой модулями ОС, от некорректно работающего приложения. Разработчики NetWare пошли на такое потен-циальное снижение надежности своей операционной системы, поскольку ограниченный набор ее специализированных приложений позволяет компенсировать этот архитектурный недостаток за счет тщательной отладки каждого приложения.
привилегированный режим — Режим операционной системы, при котором обеспечивается выполнение всех или части привилегированных команд. [Е. С. Алексеев, А. А. Мячев. Англо русский толковый словарь по системотехнике ЭВМ. Москва 1993] Тематики информационные технологии в целом EN… … Справочник технического переводчика
привилегированный режим — privilegijuotasis režimas statusas T sritis automatika atitikmenys: angl. master mode; privileged mode; trusted mode vok. privilegierter Betrieb, m; privilegierter Modus, m rus. привилегированный режим, m pranc. mode privilégié, m … Automatikos terminų žodynas
Режим супервизора — привилегированный режим работы процессора, как правило используемый для выполнения ядра операционной системы. В данном режиме работы процессора доступны привилегированные операции, как то операции ввода вывода к периферийным устройствам,… … Википедия
РЕЖИМ НАИБОЛЬШЕГО БЛАГОПРИЯТСТВОВАНИЯ — [англ. most favoured nation clause < most наиболее + favoured привилегированный, пользующийся преимуществом + nation нация + clause статья закона, оговорка к статье] экон. предоставление одной стороной другой стороне максимально возможных… … Словарь иностранных слов русского языка
ПРАВОВОЙ РЕЖИМ ИНОСТРАННЫХ ГРАЖДАН — порядок и характер регулирования правового положения иностранных граждан национальным законодательством страны. Существует несколько видов режимов: режим национального пребывания предоставление иностранным гражданам такого объема прав, свобод и… … Энциклопедический словарь «Конституционное право России»
Кольца защиты — Кольца привилегий архитектуры x86 в защищённом режиме Кольца защиты архитектура информационной безопасности и функциональной отказоустойчивости, реализующая аппаратное ра … Википедия
Mach — У этого термина существуют и другие значения, см. Мах. Необходимо проверить качество перевода и привести статью в соответствие со стилистическими правилами Википедии. Вы можете помочь улучшить эту статью … Википедия
Кольца защиты (безопасность) — Кольца привилегий архитектуры защищённом режиме Кольца защиты архитектура информационной безопасности и функциональной отказоустойчивости, реализующая аппаратное разделение системного и пользовательского уровней привилегий. Структуру привилегий… … Википедия
Кольцо 0 — Кольца привилегий архитектуры защищённом режиме Кольца защиты архитектура информационной безопасности и функциональной отказоустойчивости, реализующая аппаратное разделение системного и пользовательского уровней привилегий. Структуру привилегий… … Википедия
Кольцо защиты — Кольца привилегий архитектуры защищённом режиме Кольца защиты архитектура информационной безопасности и функциональной отказоустойчивости, реализующая аппаратное разделение системного и пользовательского уровней привилегий. Структуру привилегий… … Википедия
Иностранцы — Конституционн … Википедия
Основным характерным признаком ядра является то, что оно выполняется в привилегированном режиме.
Рассмотрим особенности этого режима.
Для обеспечения эффективного управления ресурсами компьютера ОС должна иметь определенные привилегии относительно прикладных программ. Надо, чтобы прикладные программы не вмешивались в работу ОС, и вместе с тем ОС должна иметь возможность вмешаться в работу любой программы, например для переключения процессора или решение конфликта в борьбе за ресурсы.
Для реализации таких привилегий нужна аппаратная поддержка: процессор должен поддерживать по крайней мере два режима работы - привилегированный (защищенный режим или режим ядра) и режим пользователя. Подразумевается, что ОС или некоторые её части работают в привелигерованном режиме, а прриложения –в пользовательском режиме.
В режиме пользователя недопустимы команды, которые являются критическими для работы системы (переключение задач, обращение к памяти за заданными границами, доступ к устройствам ввода-вывода и т.п.).
Рассмотрим, каким образом используются разные режимы процессора во время взаимодействия между ядром и прикладными программами.
После загрузки ядро включает процессор в привилегированный режим и получает полнейший контроль над компьютером. Каждое приложение запускается и выполняется в режиме пользователя, где оно не имеет доступа к ресурсам ядра и других программ.
Когда нужно выполнить действие, реализованное в ядре, приложение делает системный вызов. Ядро перехватывает его, включает процессор в привилегированный режим, выполняет действие, переключает процессор назад в режим пользователя и возвращает результат приложению.
Системный вызов выполняется медленнее чем вызов функции, реализованной в режиме пользователя, потому что процессор дважды переключается между режимами. Для повышения производительности в некоторых ОС часть функциональности реализована в режиме пользователя, поэтому для доступа к ней системные вызовы использовать не нужно.
Реализация архитектуры операционных систем
В реальных ОС обычно используют некоторую комбинацию подходов к реализации архитектуры ОС.
Монолитные системы
ОС, в которых все базовые функции сконцентрированы в ядре, называют монолитными системами.
В случае реализации монолитного ядра ОС становится производительнее (процессор не переключается между режимами во время взаимодействия между ее компонентами), но менее надежной (весь ее код выполняется в привилегированном режиме, и ошибка в каждом из компонентов будет критической).
Монолитность ядра не означает, что все его компоненты должны постоянно находиться в памяти. Современные ОС дают возможность динамично размещать в адресном пространстве ядра фрагменты кода (модуль ядра).
-простота разработки; -большой объем оперативной памяти занимаемый ОС;
-высокая скорость работы. -сбой какого либо модуля ОС приводит к сбою всей системы
Примеры: ОС с ядром UNIX такие как: LINUX, BSD
Системы с микроядром
Микроядро –это небольшая часть функций ядра, которая реализуется в привелегированном режиме и осуществляет связь между компонентами системы и выполняет базовое распределение ресурсов.
Суть микроядерной архитектуры состоит в следующем. В привилегированном режиме остается работать только очень небольшая часть ОС, называемая микроядром. Микроядро защищено от остальных частей ОС и приложений. В состав микроядра обычно входят машинно-зависимые модули, а также модули, выполняющие некоторые базовые функции ядра по управлению процессами, обработке прерываний, управлению виртуальной памятью и некоторые другие.
Другие функции ОС выполняются процессами режима пользователя (серверными процессами, серверами). Серверы могут отвечать за поддержку файловой системы, за работу с процессами, памятью и т.п..
Чтобы выполнить системный вызов, процесс (пользовательская программа) обращается к микроядру. Микроядро посылает серверу запрос, сервер выполняет работу и пересылает ответ назад, а микроядро переправляет его клиенту (рис. 1.2). Клиентами могут быть не только процессы пользователя, а и другие модули ОС.
Рис.1.2-Системный вызов в архитектуре с микроядром
Преимущества подхода системы с микроядром:
♦ небольшие размеры микроядра, которое упрощает его разработку и отладку;
♦ высокая надежность системы, вследствие того, что серверы работают в режиме пользователя и в них нет прямого доступа к аппаратному обеспечению;
Главным недостатком применения микроядра является снижения производительности. Вместо двух переключений режима процессора в случае системного вызова происходит четыре (два - во время обмена между клиентом и микроядром, два - между сервером и микроядром).
Примером применения архитектуры с микроядром является Windows NT версий 3.1 и 3.5, а также ОС реального времени QNX.
Для надежного управления ходом выполнения приложений операционная система должна иметь по отношению к приложениям определенные привилегии. Иначе некорректно работающее приложение может вмешаться в работу ОС и, например, разрушить часть ее кодов. Операционная система должна обладать исключительными полномочиями также для того, чтобы играть роль арбитра в споре приложений за ресурсы компьютера в мультипрограммном режиме. Ни одно приложение не должно иметь возможности без ведома ОС получать дополнительную область памяти, занимать процессор дольше разрешенного операционной системой периода времени, непосредственно управлять совместно используемыми внешними устройствами.
Обеспечить привилегии операционной системе невозможно без специальных средств аппаратной поддержки. Аппаратура компьютера должна поддерживать как минимум два режима работы - пользовательский режим (user mode) и привилегированный режим, который также называют режимом ядра (kernel mode) или режимом супервизора (supervisor mode). Подразумевается, что операционная система или некоторые ее части работают в привилегированном режиме, а приложения - в пользовательском режиме.
Так как ядро выполняет все основные функции ОС, то чаще всего именно ядро становится той частью ОС, которая работает в привилегированном режиме. Иногда это свойство - работа в привилегированном режиме - служит основным определением понятия «ядро».
Приложения ставятся в подчиненное положение за счет запрета выполнения в пользовательском режиме некоторых критичных команд, связанных с переключением процессора с задачи на задачу, управлением устройствами ввода-вывода, доступом к механизмам распределения и защиты памяти. Выполнение некоторых инструкций в пользовательском режиме запрещается безусловно (очевидно, что к таким инструкциям относится инструкция перехода в привилегированный режим), тогда как другие запрещается выполнять только при определенных условиях. Важно, что условия разрешения выполнения критичных инструкций находятся под полным контролем ОС, и этот контроль обеспечивается за счет набора инструкций, безусловно запрещенных для пользовательского режима.
Аналогичным образом обеспечиваются привилегии ОС при доступе к памяти. Например, выполнение инструкции доступа к памяти для приложения разрешается, если инструкция обращается к области памяти, отведенной данному приложению операционной системой, и запрещается при обращении к областям памяти, занимаемым ОС или другими приложениями. Полный контроль ОС над доступом к памяти достигается за счет того, что инструкции конфигурирования механизмов защиты памяти разрешается выполнять только в привилегированном режиме.
Очень важно, что механизмы защиты памяти используются операционной системой не только для защиты своих областей памяти от приложений, но и для защиты областей памяти, выделенных ОС какому-либо приложению, от остальных приложений. Говорят, что каждое приложение работает в своем адресном пространстве. Это свойство позволяет локализовать некорректно работающее приложение в собственной области памяти, так что его ошибки не оказывают влияния на остальные приложения и операционную систему. Между количеством уровней привилегий, реализуемых аппаратно, и количеством уровней привилегий, поддерживаемых ОС, нет прямого соответствия. Так, на базе четырех уровней, обеспечиваемых процессорами компании Intel, операционные системы Windows NT, UNIX и некоторые другие ограничиваются двухуровневой системой.
С другой стороны, если аппаратура поддерживает хотя бы два уровня привилегий, то ОС может на этой основе создать программным способом сколь угодно развитую систему защиты. На основе двух режимов привилегий процессора ОС может построить сложную систему индивидуальной защиты ресурсов, примером которой является типичная система защиты файлов и каталогов. Такая система позволяет задать для любого пользователя определенные права доступа к каждому из файлов и каталогов.
Отметим, что повышение устойчивости операционной системы, обеспечиваемое переходом ядра в привилегированный режим, достигается за счет некоторого замедления выполнения системных вызовов. Системный вызов привилегированного ядра инициирует переключение процессора из пользовательского режима в привилегированный, а при возврате к приложению - переключение из привилегированного режима в пользовательский (рис. 3.2). Во всех типах процессоров из-за дополнительной двукратной задержки переключения переход на процедуру со сменой режима выполняется медленнее, чем вызов процедуры без смены режима.
Рис. 3. 2. Смена режимов при выполнении системного вызова
к привилегированному ядру
Архитектура ОС, основанная на привилегированном ядре и приложениях пользовательского режима, стала, по существу, классической. Ее используют многие популярные операционные системы, в том числе многочисленные версии UNIX, VAX VMS, IBM OS/390, OS/2, и с определенными модификациями - Windows NT.
В некоторых случаях разработчики ОС отступают от этого класси-ческого варианта архитектуры, организуя работу ядра и приложений в одном и том же режиме. Так, известная специализированная операционная система NetWare компании Novell использует привилегированный режим процессоров Intel x86/ Pentium как для работы ядра, так и для работы своих специфических приложений – загружаемых модулей NLM. При таком построении ОС обращения приложений к ядру выполняются быстрее, так как нет переключения режимов, однако при этом отсутствует надежная аппаратная защита памяти, занимаемой модулями ОС, от некорректно работающего приложения. Разработчики NetWare пошли на такое потен-циальное снижение надежности своей операционной системы, поскольку ограниченный набор ее специализированных приложений позволяет компенсировать этот архитектурный недостаток за счет тщательной отладки каждого приложения.
Многослойная структура ОС
Вычислительную систему, работающую под управлением ОС на основе ядра, можно рассматривать как систему, состоящую из трех иерархически расположенных слоев: нижний слой образует аппаратура, промежуточный - ядро, а утилиты, обрабатывающие программы и приложения, составляют верхний слой системы (рис. 3. 3).
Рис.3. 3. Трехслойная схема вычислительной системы
Слоистую структуру вычислительной системы принято изображать в виде системы концентрических окружностей, иллюстрируя тот факт, что каждый слой может взаимодействовать только со смежными слоями. Действительно, при такой организации ОС приложения не могут непосредственно взаимодействовать с аппаратурой, а только через слой ядра.
Поскольку ядро представляет собой сложный многофункциональный комплекс, то многослойный подход обычно распространяется и на структуру ядра.
Ядро может состоять из следующих слоев (рис. 3. 4.):
Средства аппаратной поддержки |
Машинно-зависимые компоненты ядра |
Базовые механизмы ядра |
Менеджеры ресурсов |
Интерфейс системных вызовов |
Рис3. 4. Структура ядра
Средства аппаратной поддержки ОС. До сих пор об операционной системе говорилось как о комплексе программ, но часть функций ОС может выполняться и аппаратными средствами. Поэтому иногда можно встретить определение операционной системы как совокупности программных и аппаратных средств, что и отражено на рис. 3. 3. К операционной системе относят, естественно, не все аппаратные устройства компьютера, а только средства аппаратной поддержки ОС, то есть те, которые прямо участвуют в организации вычислительных процессов: средства поддержки привилегированного режима, систему прерываний, средства переключения контекстов процессов, средства защиты областей памяти и т. п.
Машинно-зависимые компоненты ОС. Этот слой образуют программные модули, в которых отражается специфика аппаратной платформы компьютера. В идеале этот слой полностью экранирует вышележащие слои ядра от особенностей аппаратуры. Это позволяет разрабатывать вышележащие слои на основе машинно-независимых модулей, существующих в единственном экземпляре для всех типов аппаратных платформ, поддерживаемых данной ОС.
Базовые механизмы ядра. Этот слой выполняет наиболее примитивные операции ядра, такие, как программное переключение контекстов процессов, диспетчеризацию прерываний, перемещение страниц из памяти на диск и обратно и т. п. Модули данного слоя не принимают решений о распределении ресурсов - они только отрабатывают принятые «наверху» решения, что и дает повод называть их исполнительными механизмами для модулей верхних слоев. Например, решение о том, что в данный момент нужно прервать выполнение текущего процесса «А» и начать выполнение процесса «В», принимается менеджером процессов на вышележащем слое, а слою базовых механизмов передается только директива о том, что нужно выполнить переключение с контекста текущего процесса на контекст процесса «В».
Менеджеры ресурсов. Этот слой состоит из мощных функциональных модулей, реализующих стратегические задачи по управлению основными ресурсами вычислительной системы. Обычно на данном слое работают менеджеры (называемые также диспетчерами) процессов, ввода-вывода, файловой системы и оперативной памяти. Разбиение на менеджеры может быть и несколько иным, например, менеджер файловой системы иногда объединяют с менеджером ввода-вывода, а функции управления доступом пользователей к системе в целом и ее отдельным объектам поручают отдельному менеджеру безопасности. Каждый из менеджеров ведет учет свободных и используемых ресурсов определенного типа и планирует их распределение в соответствии с запросами приложений. Например, менеджер виртуальной памяти управляет перемещением страниц из оперативной памяти на диск и обратно. Для исполнения принятых решений менеджер обращается к нижележащему слою базовых механизмов с запросами о загрузке (выгрузке) конкретных страниц. Внутри слоя менеджеров существуют тесные взаимные связи, отражающие тот факт, что для выполнения процессу нужен доступ одновременно к нескольким ресурсам - процессору, области памяти, возможно, к определенному файлу или устройству ввода-вывода. Например, при создании процесса менеджер процессов обращается к менеджеру памяти, который должен выделить процессу определенную область памяти для его кодов и данных.
Интерфейс системных вызовов. Этот слой является самым верхним слоем ядра и взаимодействует непосредственно с приложениями и системными утилитами, образуя прикладной программный интерфейс операционной системы. Функции API, обслуживающие системные вызовы, предоставляют доступ к ресурсам системы в удобной и компактной форме, без указания деталей их физического расположения.
Приведенное разбиение ядра ОС на слои является достаточно условным. В реальной системе количество слоев и распределение функций между ними может быть и иным. В системах, предназначенных для аппаратных платформ одного типа, например ОС NetWare, слой машинно-зависимых модулей обычно не выделяется, сливаясь со слоем базовых механизмов и, частично, со слоем менеджеров ресурсов. Не всегда оформляются в отдельный слой базовые механизмы - в этом случае менеджеры ресурсов не только планируют использование ресурсов, но и самостоятельно реализуют свои планы.
Возможна и противоположная картина, когда ядро состоит из большего количества слоев. Например, менеджеры ресурсов, составляя определенный слой ядра, в свою очередь, могут обладать многослойной структурой. Прежде всего это относится к менеджеру ввода-вывода, нижний слой которого составляют драйверы устройств, например драйвер жесткого диска или драйвер сетевого адаптера, а верхние слои - драйверы файловых систем или протоколов сетевых служб, имеющие дело с логической организацией информации.
Способ взаимодействия слоев в реальной ОС также может отклоняться от описанной выше схемы. Для ускорения работы ядра в некоторых случаях происходит непосредственное обращение с верхнего слоя к функциям нижних слоев, минуя промежуточные.
Выбор количества слоев ядра является ответственным и сложным делом: увеличение числа слоев ведет к некоторому замедлению работы ядра за счет дополнительных накладных расходов на межслойное взаимодействие, а уменьшение числа слоев ухудшает расширяемость и логичность системы. Обычно операционные системы, прошедшие долгий путь эволюционного развития, например многие версии UNIX, имеют неупорядоченное ядро с небольшим числом четко выделенных слоев, а у сравнительно «молодых» операционных систем, таких, как Windows NT, ядро разделено на большее число слоев, и их взаимодействие формализовано в гораздо большей степени.
Современные аппаратные архитектуры компьютеров реализуют базовые средства поддержки операционных систем. К ним принадлежат:
-привилегированный режим процессора,
-средства переключения задач,
-поддержка управления памятью (механизмы трансляции адресов, защита памяти),
-защита устройств ввода-вывода,
-базовая система ввода-вывода (BIOS).
Рассмотрим эти средства подробнее.
Система прерываний является основным механизмом, который обеспечивает функционирование ОС. С помощью прерываний процессор получает информацию о событиях, не связанных с основным циклом его работы (получением инструкций по памяти и их выполнением). Прерывания бывают двух типов: аппаратные и программные.
Аппаратное прерывание - это специальный сигнал (запрос прерывания, IRQ), который передается процессору от аппаратного устройства.
К аппаратным прерываниям принадлежат:
-прерывание введения-вывода, которые поступают от контролера периферийного устройства; например, такое прерывание генерирует контролер клавиатуры при нажатии на клавишу;
-прерывание, связанные с аппаратными или программными ошибками (такие прерывания возникают, например, в случае сбоя контролера диска, доступа к запрещенной области памяти или деление на нуль).
Программные прерывания генерирует прикладная программа, выполняя специальную инструкцию прерывания. Такая инструкция есть в системе команд большинства процессоров. Обработка программных прерываний процессором не отличается от обработки аппаратных прерываний.
Если прерывания состоялось, то процессор немедленно передает управление специальной процедуре - обработчику прерывания. После выхода из обработчика процессор продолжает выполнение инструкций прерванной программы. Различают два типа прерываний в зависимости от того, какая инструкция будет выполнена после выхода из обработчика:
-для отказов повторяется инструкция, которая вызвала прерывание,
-для ловушек - выполняется следующая инструкция.
Все прерывания ввода-вывода и программные прерывания принадлежат к категории ловушек, большинство прерываний через ошибки относятся к отказам.
Если ОС не занятая выполнениям какой-нибудь задачи, она ожидает прерывание, которое и привлекает ее к работе. Поэтому можно считать, что современные ОС управляются прерываниями.
Для реализации привилегированного режима процессора в одном из его регистры предусмотрены специальный бит (бит режима), который показывает, в каком режиме находится процессор. В случае программного или аппаратного прерывания процессор автоматически переключается в привилегированный режим, и именно поэтому ядро ОС (которое состоит из обработчиков прерываний) всегда получает управление в этом режиме. За любой попытки непосредственно выполнить привилегированную инструкцию в режиме пользователя происходит аппаратное прерывание.
Средства переключения задач дают возможность сохранять содержимое регистров процессора (контекст задачи) в случае прекращения задачи и восстанавливать данные перед ее дальнейшим выполнением.
Механизм трансляции адресов обеспечивает преобразование адресов памяти, с которыми работает программа, у адреса физической памяти компьютера. Аппаратное обеспечение генерирует физический адрес, используя специальные таблицы трансляции.
Защита памяти обеспечивает проверку прав доступа к памяти во время каждой попытки его получить. Средства защиты памяти интегрированные с механизмами трансляции адресов: в таблицах трансляции поддерживается информация о правах, необходимых для их использования, и о лимите (размеры участка памяти, к которой можно получить доступ с их помощью). Невозможно получить доступ к памяти сверх лимита или при отсутствии прав на использование таблицы трансляции.
Системный таймер является аппаратным устройством, которое генерирует прерывание таймера через определенные промежутки времени. Такие прерывания обрабатывает ОС; информацию от таймера чаще всего используют для определения времени переключения задач.
Защита устройств ввода-выводы основывается на том, что все инструкции ввода-вывода определены как привилегированные. Прикладные программы осуществляют ввод-вывод не прямо, а при посредничестве ОС.
Базовая система ввода-вывода (BIOS) - служебный программный код, который сохраняется в постоянном запоминающем устройстве и предназначен для изоляции ОС от конкретного аппаратного обеспечения. Укажем, что средства BIOS не всегда дают возможность использовать все возможности архитектуры: например, процедуры BIOS для архитектуры IА-32 не работают в защищенном режиме. Поэтому современные ОС используют их только для начальной загрузки системы.
Читайте также: