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


Для надежного управления ходом выполнения приложений ОС должна иметь по отношению к приложениям определенные привилегии

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

· чтобы играть роль арбитра в споре приложений за ресурсы компьютера в мультипрограммном режиме.

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

 

 

Утилиты ОС Системные обрабатывающие Приложения

программы пользователей

 

                                                       
                           


 

Пользовательский режим

Привилегированный режим

 
 


 

 

Рис. 3. Архитектура ОС с ядром в привилегированном режиме.

 

Приложения ставятся в подчиненное положение за счет запрета выполнения в пользовательском режиме некоторых критичныхкоманд, связанных с

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

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

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

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

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

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

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

 

Работа Системный Работа

Приложения вызов приложения

Пользователь-

ский режим

 

 

Привилегированный

Работа ядра режим

 

Время переключения

режимов

 

Рис. 4. Смена режимов при выполнении системного вызова

к привилегированному ядру.

 

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

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

 

 

Пользовательский режим

 
 


Привилегированный

режим

       
 
   
 

 


NLM

 

                   
   
       
 
 

 

 


Рис. 5. Упрощенная архитектура ОС Netware.

 

В одном режиме работают также ядро и приложения тех ОС, которые разработаны для процессоров, вообще не поддерживающих привилегированного режима работы. Наиболее популярным процессом такого типа был процессор Intel 8088/86, послуживший основой для персональных компьютеров компаний IBM. Некорректно написанные приложения вполне могли разрушить основные модули MS-DOS, что иногда и происходило, но область использования MS-DOS (и многих подобных ей ранних ОС для ПК, таких как MSX, CP/M) и не предъявляла высоких требований к надежности ОС.

 



Дата добавления: 2016-06-05; просмотров: 6525;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.011 сек.