Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Режим ядра и пользовательский режим

Читайте также:
  1. I. Демократия как тип политического режима.
  2. II. Дополнительные сигналы командиру вертолета в режиме висения
  3. II. Режим методического дня
  4. II. Тоталитарный политический режим.
  5. III Построить графики амплитудных характеристик усилителя для четырех различных нагрузок и режима холостого хода, и определить динамический диапазон усилителя для каждого случая.
  6. III. Авторитарный политический режим.
  7. III. Авторитарный политический режим.

Для предотвращения доступа приложений к важным данным ОС и риска их модификации Windows использует два режима доступа к процессору (даже если имеются еще какие-то режимы процессора): пользовательский (User mode) и ядра (Kernel mode). Код приложений работает в пользовательском режиме. Код ОС (системные сервисы и драйверы в режиме ядра). В режиме ядра предоставляется доступ ко всей системной памяти и разрешается выполнять любые системные команды процессора, тем самым предоставляя ОС более высокий уровень привилегий, чем приложение. В процессоре Intel x86 определено четыре уровня привилегий (колец, rings). ОС использует уровень 0 для кода ядра и уровень 3 для приложений. Это связано с тем, что большинство процессоров, на которых должна работать Windows (не Intel x86) имеет два уровня привилегий.

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

Для перехода в режим ядра есть недекларированная макрокоманда: mode set=sv (ASM). При компиляции требуется указать опцию для разрешения вставки этой команды. Для обхода содержимое макрокоманды надо объявить константой. Выполнение в сегменте кода невозможно.

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

Замечание: переключение из пользовательского режима приложения в режим ядра не влияет на планирование, т.к. контекст выполнения остается тем же самым. Поэтому приложение работает часть времени в пользовательском режиме, часть – в режиме ядра. Это можно проверить. На слайде 8 изображены счетчики, которые используются для измерения различных долей времени.

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

 


Дата добавления: 2015-07-07; просмотров: 245 | Нарушение авторских прав


Читайте в этой же книге: Модель вычислителя | Модель коллектива вычислителей | Принципы технической реализации модели коллектива вычислителей | Классификация архитектур вычислительных систем | Примеры реализаций вычислительных систем. | Прерывания | Основные технологии программирования | Общие подходы к построению ОС. | Подходы к построению ОС. | Виртуализация |
<== предыдущая страница | следующая страница ==>
Инструментарий ОС (на основе Windows)| Основные концепции построения Windows

mybiblioteka.su - 2015-2024 год. (0.007 сек.)