Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Режимы ядра_прочитайте на четверг _это следующа...docx
Скачиваний:
2
Добавлен:
27.11.2019
Размер:
74.73 Кб
Скачать

Режимы ядра и пользователя Windows

Система Windows NT проектировалась, как переносимая операционная система, в которой весь код, зависимый от процессора и аппаратного обеспе­чения, изолирован в модуле, называемом уровнем аnnаратных абстракций (llard\vare abstraction layer - HAL).

Windows NT раньше поддерживала несколько архитектур центральных процессоров, включая PowerPC и Alpha, современные версии Windows NT поддерживают только процессоры компа­нии Intel и совместимые с ними модели (например, компании AMD).

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

Каждая страница памяти имеет связанный с ней тег, который опреде­ляет возможность чтения или записи этой страницы, а также уровень привилегий, необходимых для чтения и записи. Эта возможность пред­назначена для защиты пользовательских процессов друг от друга и ДЛя защиты системных кода и данных от пользовательских процессов. Об­ратите внимание, что системный код, выполняемый в режиме ядра, незащищен от другого кода, который выполняется в режиме ядра.

Страницы памяти, которые содержат код (в отличие от данных), могут быть отмечены как предназначенные только для чтения пользователь­скими процессами и кодом на уровне ядра

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

Процесс, контекст процесса и потоки

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

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

Операци­онная система создает несколько процессов для своих нужд, а также опре­деленные процессы в ответ на пользовательские команды, например когда пользователь запускает приложение, такое, как Мiсrоsоft Word или Мiсrоsоft Excel. Если драйвер вызывается во время работы процесса, считается, что он работает в контексте вызывающего процесса.

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

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