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

Процессор на компьютере под управлением Windows имеет два разных режима: пользовательский режим и режим ядра.

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

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

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

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

Программное прерывание

Режим ядра

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

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

Читайте также:
Программа для обновления драйверов ноутбука Тошиба

Источник: learn.microsoft.com

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

Операционная система для осуществления своих управляющих функций должна иметь по отношению к приложениям определенные привилегии. Поэтому аппаратура компьютера поддерживает как минимум два режима:

пользовательский режим (user mode) — для работы приложений;

привилегированный режим, он же — режим ядра (kernel mode), или режим суперви­зора (supervisor mode) — для работы ОС или ее частей.

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

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

Урок 28. Режим ядра и режим пользователя

· переключением процессора с задачи на задачу;

· управлением устройствами ввода-вывода;

· доступом к механизмам распределения и защиты памяти.

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

Если аппаратура (процессор) поддерживает хотя бы два уровня привилегий, то ОС может на этой основе создать программным способом сколь угодно развитую систему защиты и соответствующих прав доступа. Прямого соответствия между числом аппаратно реализуемых и программно реализуемых уровней привилегий нет. Так, на базе четырех уровней процессоров архитектуры х86 OS/2 строит трехуровневую, а Windows NT и Unix — двухуровневую систему привилегий.

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

Читайте также:
Установка linux программ на Андроид

Воспользуйтесь поиском по сайту:

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

Источник: studopedia.org

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

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

Различные режимы выполнения программ обеспечиваются на аппаратном уровне. Аппаратура современных компьютеров поддерживает как минимум два режима работы программ:

  • привилегированный режим работы, называемый режимом ядра (kernel mode) или режимом супервизора (supervisor mode);
  • пользовательский режим (user mode).

При работе операционной системы ее ядро работает в режиме ядра, а остальные части ОС и приложения – в режиме пользователя.

Режим ядра – это режим работы компьютера, в котором доступны все его возможности, разрешен доступ ко всем устройствам и разрешены все команды компьютера.

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

Например, могут быть доступны следующие команды доступа к аппаратуре компьютера:

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

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

Таким образом, нет прямого соответствия количества уровней привилегий, которые реализуются аппаратно, и которые организует ОС. В самых распространенных ОС (Windows NT, UNIX) два уровня привилегий. Это режим ядра и режим пользователя.

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

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

Читайте также:
При предыдущем запуске программы произошел сбой касперский

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

Аппаратная зависимость и переносимость ОС

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

Типовые средства аппаратной поддержки ос

Сейчас мы будем говорить о средствах поддержки ОС со стороны аппаратуры.

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

Однако практически все современные аппаратные платформы имеют некоторый типичный набор средств аппаратной поддержки ОС.

Аппаратные средства поддержки ОС:

  1. средства поддержки привилегированного режима (параметры слова состояния процессора, содержащие указания на текущий режим привилегий);
  2. средства преобразования адресов (для преобразования виртуальных адресов программ в адреса физической памяти и обратно);
  3. средства переключения процессов (предназначены для быстрого сохранения состояния приостанавливаемого процесса);
  4. система прерываний;
  5. системный таймер;
  6. средства защиты областей памяти (проверка на аппаратном уровне возможности данной программы работать с определенной областью памяти и выполнять заданные операции).

Источник: studfile.net

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru