No Image

Ядро в привилегированном режиме

1 просмотров
22 января 2020

Режим супервизора, привилегированный режим [1] , режим ядра (англ. kernel mode ) — привилегированный режим работы процессора, как правило, используемый для выполнения ядра операционной системы.

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

У некоторых современных процессоров может присутствовать ещё более привилегированный режим гипервизора, как правило, используемый с целью виртуализации, то есть обеспечения параллельной работы сразу нескольких операционных систем на одном процессоре. В этом случае настройки, сделанные из режима гипервизора [3] , могут вносить некоторые ограничения на прямой доступ к системным ресурсам и периферии из режима супервизора с целью предоставить гипервизору возможность арбитража и разграничения доступа к системным ресурсам и периферии незаметно для работающих параллельно операционных систем.

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

Аппаратура компа должна поддерживать не менее двух режимов (пользовательский и режим ядра).

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

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

Структура ОС.

Вычислительная система, работающая под управлением ОС на основе ядра, рассматривается как многослойная структура. Пример 3 слойная: 3-утилиты и обрабатывающие программы; 2-ядро; 1 аппаратура. Отдельный модуль может выполнить свою работу самостоятельно или обратиться к другому модулю своего слоя или обратиться за помощью к ниже лежащему слою через межслойный интерфейс. Ядро можно рассмотреть как несколько слоев

1. Средства аппаратной поддержки. Самый распространенный вид-это система прерываний, средства защиты памяти.

2. Машинно-зависимые компоненты. Этот слой экранирует вышележащие слои от особенности аппаратуры, т.е. вышележащие слои должны быть аппаратно-независимыми.

3. Базовые механизмы ядра. Пример: программное переключение процесса, диспетчеризация прерываний, перемещение страниц (из памяти ни диск и обратно). Модули этого слоя не принимают решений о распределении ресурсов, они образуют принятые на веру решения.

4. Менеджеры ресурсов.Этот слой образован модулями, которые реализуют стратегические задачи управления основными ресурсами. Пример: менеджер или диспетчер процесса, ввод/вывод файловой системы, оперативная память.

5. Интерфейс системных вызовов.Этот верхний слой ядра непосредственно взаимодействует с приложениями и системными утилитами, образуя прикладной программный интерфейс операционной системы. Пример: операционная система ”Юникс” имеет не упорядоченное ядро с небольшим количеством четко выделенных слоев. Операционная система Windows NT ядро разделено на большое количество слоев и взаимодействие формализовано в большей степени.

Разбиение ядра на слои условное. Ос прошли долгий путь эволюционного развития. Слои выделены нечетко и ядро является неупорядоченным. Ядро разделено на большое число слоев. Их взаимодействие жестко формализовано (Windows NT).

Аппаратная зависимость и переносимость операционной системы.

Многие операционные системы работают на различных аппаратных платформах без существенных изменений в своем составе.

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

Вопрос о границе между ПО и АО устанавливают разработчики. Современные аппаратные платформы имеют типовой набор средств аппаратной поддержки ОС:

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

Основан на системном регистре процессора: словосостояние процессора PSW. Регистр содержит , определяющий режим работы процессора. В том числе текущий режим привилегий.

2* средства трансляции адресов. Это средства преобразования виртуального адреса в физический.

3* средства переключения процессов. Предназначены для быстрого сохранения контекста переключаемого процесса и восстановление процесса.

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

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

5* системный таймер. Прерывания от таймера используются ОС для слежения за расходом времени отдельными процессами.

6* Средства защиты областей памяти. Обеспечивают на аппаратном уровне проверку защиты областей памяти.

Машинно-зависимые компоненты.

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

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

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

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

Читайте также:  Счетчик импульсов овен си8 настройка

3. Аппаратнозависимый код должен быть надежно изолирован в нескольких модулях, а не распределен по всей системе. У разработчика появляется возможность создать вариант машинно независимой части операционной системы.

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

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

Для обеспечения ОС разработчики ОС должны следовать определенным правилам:

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

Например, диспетчер прерываний приобретает аппар уровни прерываний контрольная точка процессора . в стандартный набор прерываний, с которым работают ост модули ОС.

Вывод: при переносе Windows NT на другую аппаратную платформу необходимо изменить один модуль, который преобразует аппаратные прерывания в стандартный набор прерываний.

  1. аппаратно-зависимый код должен быть надежно изолирован в нескольких модулях. Не допускается распределение машинно-зависимого кода по всей системе.

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

Микроядерная архитектура.

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

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

  1. машинозависимые модули
  2. модули выполняющие некоторые базовые функции (управление процессами, обработка прерываний, управление виртуальной памятью, пересылка сообщений, управление устройствами вв/выв).

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

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

Менеджеры ресурсов, вынесенные в пользовательский режим, называются серверами приложений.

Для реализации микроядерной архитектуры необходим эффективный способ вызова процедур одного процесса из другого. Поддержка этого механизма – главная задача микроядра.

Механизм обращения к функциям ОС, оформленным в виде серверов, выглядит следующим образом:

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

Достоинства и недостатки микроядерной архитектуры:

(+)ОС построенные на концепции микроядерной архитектуры, удовлетворяют большинству современных требований.

-поддержка распределенных приложений.

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

Каждый сервер выполняется в виде отдельного процесса в собственной области памяти и поэтому защищен от других серверов – надежность.

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

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

При выполнении системного вызова: в классической два переключения, в микроядерной – четыре.

Совместимость и множественные прикладные среды.

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

  1. вызов функции API прикладных программ интерфейса, которая содержит данное приложение, должно поддерживаться операционной системой.
  2. внутренняя структура исполняемого файла приложения должна соответствовать структуре исполняемых файлов данной операционной системы.

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

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

Способы реализации прикладных программных средств.

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

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

Достоинства и недостатки микроядерной архитектуры при конструировании множественных прикладных сред.

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

Не нашли то, что искали? Воспользуйтесь поиском:

Лучшие изречения: Только сон приблежает студента к концу лекции. А чужой храп его отдаляет. 8960 – | 7624 – или читать все.

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

Читайте также:  Хорошие электродуховки настольные отзывы

Обеспечить привилегии операционной системе невозможно без специальных средств аппаратной поддержки. Аппаратура компьютера должна поддерживать как минимум два режима работы — пользовательский режим (user mode) и привилегированный режим, который также называют режимом ядра (kernel mode), или режимом супервизора (supervisor mode). Подразумевается, что операционная система или некоторые ее части работают в привилегированном режиме, а приложения — в пользовательском режиме.

Так как ядро выполняет все основные функции ОС, то чаще всего именно ядро становится той частью ОС, которая работает в привилегированном режиме (рис. 3.3). Иногда это свойство — работа в привилегированном режиме — служит основным определением понятия «ядро».

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

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

Очень важно, что механизмы защиты памяти используются операционной системой не только для защиты своих областей памяти от приложений, но и для защиты областей памяти, выделенных ОС какому-либо приложению, от остальных приложений. Говорят, что каждое приложение работает в своем адресном пространстве. Это свойство позволяет локализовать некорректно работающее приложение в собственной области памяти, так что его ошибки не оказывают влияния на остальные приложения и операционную систему. Между количеством уровней привилегий, реализуемых аппаратно, и количеством уровней привилегий, поддерживаемых ОС, нет прямого соответствия. Так, на базе четырех уровней, обеспечиваемых процессорами компании Intel, операционная система OS/2 строит трехуровневую систему привилегий, а операционные системы Windows NT, UNIX и некоторые другие ограничиваются двухуровневой системой.

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

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

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

Архитектура ОС, основанная на привилегированном ядре и приложениях пользовательского режима, стала, по существу, классической. Ее используют многие популярные операционные системы, в том числе многочисленные версии UNIX, VAX VMS, IBM OS/390, OS/2, и с определенными модификациями — Windows NT.

В некоторых случаях разработчики ОС отступают от этого классического варианта архитектуры, организуя работу ядра и приложений в одном и том же режиме. Так, известная специализированная операционная система NetWare компании Novell использует привилегированный режим процессоров Intel x86/ Pentium как для работы ядра, так и для работы своих специфических приложений — загружаемых модулей NLM (рис. 3.5). При таком построении ОС обращения приложений к ядру выполняются быстрее, так как нет переключения режимов, однако при этом отсутствует надежная аппаратная защита памяти, занимаемой модулями ОС, от некорректно работающего приложения. Разработчики NetWare пошли на такое потенциальное снижение надежности своей операционной системы, поскольку ограниченный набор ее специализированных приложений позволяет компенсировать этот архитектурный недостаток за счет тщательной отладки каждого приложения.

Читайте также:  Телевизор 60 годов фото

В одном режиме работают также ядро и приложения тех операционных систем, которые разработаны для процессоров, вообще не поддерживающих привилегированного режима работы. Наиболее популярным процессором такого типа был процессор Intel 8088/86, послуживший основой для персональных компьютеров компании IBM. Операционная система MS-DOS, разработанная компанией Microsoft для этих компьютеров, состояла из двух модулей msdos.sys и io.sys, составлявших ядро системы (хотя название «ядро» для этих модулей не употреблялось, по своей сути они им являлись), к которым с системными вызовами обращались командный интерпретатор command.com, системные утилиты и приложения. Архитектура MS-DOS соответствует архитектуре ОС, приведенной на рис. 3.2. Некорректно написанные приложения вполне могли разрушить основные модули MS-DOS, что иногда и происходило, но область использования MS-DOS (и многих подобных ей ранних операционных систем для персональных компьютеров, таких как MSX, СР/М) и не предъявляла высоких требований к надежности ОС.

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

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

Преимущества микроядерной архитектуры:

1. Высокая мобильность;

2. Высокая степень расширяемости (конфигурируемость ОС упрощается);

3. Повышение надёжности – каждый сервер выполняется в виде отдельного процесса в своей собственной области памяти, и, таким образом, защищён от других серверов; так как код микроядра меньше, чем код ядра, то и отлаживать его легче.

Недостаток микроядерной архитектуры состоит в снижении производительности примерно на 40% по сравнению с классической архитектурой.

Многие современные операционные системы совмещают в себе свойства систем разных типов. Например, часть задач исполняется в режиме разделе­ния времени, а часть — в режиме реального времени.

При классификации по типу ядра основываются на разновидностях архитектуры ядра, приведенных ниже:

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

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

· Микроядро. Микроядро выполняет минимум функций по управлению ап­паратурой. Обычно в него включаются машинно-зависимые программы, некоторые функции управления процессами и обработка прерываний. Функции более высокого уровня выполняют специализированные ком­поненты операционной системы — сервер процессора, файловый сервер и т. п. Эти компоненты работают в пользовательском, непривилегиро­ванном режиме. Данная архитектура основана на подходе "клиент-сер­вер" и характеризуется переносимостью, расширяемостью и надежностью (рис. 4, в).

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

Отметим, что архитектура ядра в значительной степени влияетна всю архи­тектуру операционной системы.

Контрольные вопросы: Может ли компьютер работать без ОС? 1. Дайте сравнительный анализ двух типов архитектуры ОС. 2. Какие из приведенных ниже терминов являются синонимами?

  1. привилегированный режим;
  2. защищенный режим;
  3. режим супервизора;
  4. пользовательский режим;
  5. реальный режим;
  6. режим ядра.

Ответ: «привилегированный режим», «режим супервизора», «режим ядра». 3. В чем состоят отличия в работе процессора в привилегированном и пользовательском режимах? 4. В идеале микроядерная архитектура ОС требует размещения в микроядре только тех компонентов ОС, которые не могут выполняться в пользовательском режиме. Что заставляет разработчиков операционных систем отходить от этого принципа и расширять ядро за счет перенесения в него функций, которые могли бы быть реализованы в виде процессов-серверов? Ответ: 7. Стремление повысить производительность системы.

Рис. 4. Классификация по типу архитектуры ядра

Домашнее задание:

  1. Конспект лекций
  2. Подготовиться к итоговой работе

Лекция 5 (2/10)

Проверка Д/З: 1). У 3 чел. Проверить конспекты 2). Итоговая письменная работа

Раздел 2. МАШИННО-ЗАВИСИМЫЕ СВОЙСТВА

Дата добавления: 2013-12-12 ; Просмотров: 1800 ; Нарушение авторских прав? ;

Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет

Комментировать
1 просмотров
Комментариев нет, будьте первым кто его оставит

Это интересно
Adblock detector