Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Theory 2.Architecture _WinNT.doc
Скачиваний:
3
Добавлен:
01.05.2025
Размер:
91.65 Кб
Скачать

5.3. Адресные пространства

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

Рисунок 5.2 Виртуальное адресное пространство пользовательского процесса в Windows NT

Из 4 Гбайт виртуального адресного пространства для пользовательского процесса доступна нижняя половина за вычетом самых младших 64 Кбайт. В виртуальном адресном пространстве процесса реализована плоская модель памяти, качественно структура доступной для процесса памяти совпадает с таковой в Windows 9x, но в Windows NT адресные пространства процессов полностью изолированы друг от друга. Верхняя часть виртуального адресного пространства процесса, в которой находятся системные DLL, в Windows NT содержит не сами эти DLL, а только модули-заглушки. Обращение процесса к системе происходит в пределах адресного пространства процесса. Но такое обращение попадает к модулю-заглушке, который формирует сообщение-запрос к подсистеме-серверу на выполнение системного вызова. Средства вызова локальных процедур передают это сообщение процессу-серверу, они же передают ответ сервера в модуль-заглушку, а тот формирует отклик на системный вызов. У пользовательского процесса, таким образом, создается впечатление, что системный вызов был выполнен в пределах его адресного пространства, но если пользовательский процесс испортит верхнюю часть доступного ему адресного пространства, то он испортит только свои модули-заглушки и никак не повлияет на работу других процессов.

5.4. Ввод-вывод

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

5.5. Процессы-серверы

Часть системы, работающая в пользовательском режиме, представлена процессами-серверами. Процессы-серверы выполняются каждый в своем адресном пространстве, полностью изолированном от пользовательских процессов и от других серверов. Серверу доступны все 4 Гбайта его виртуального адресного пространства. Процессы-серверы могут быть подсистемами сред или специальными серверами. Подсистемы сред обеспечивают для пользовательских процессов среды выполнения, соответствующие спецификациям тех или иных операционных систем. Подсистема работает в пользовательском режиме, но ее виртуальное адресное пространство полностью отделено от адресного пространства любого приложения. Взаимодействие между приложениями и подсистемами происходит только через вызовы локальных процедур, что делает процесс-сервер защищенным от клиентов. Основной и обязательной подсистемой является Win32, остальные среды могут устанавливаться по выбору. Подсистема Win32 обеспечивает выполнение приложений Windows NT и Windows 9x, а также эмулирует среды MS DOS и Windows 3.1. Среда Win32 обеспечивает наиболее полную функциональность, и другие серверы обращаются к ней для выполнения некоторых функций. Приложения MS DOS и Windows 3.1 выполняются в контексте процесса, являющегося Виртуальной Машиной MS DOS. Виртуальная Машина MS DOS - это процесс Win32, который эмулирует процессор Intel 8086, прерывания BIOS, прерывания MS DOS и системные функции Windows 3.1 и драйверы реального режима. Каждая Виртуальная Машина MS DOS выполняется в собственном изолированном виртуальном адресном пространстве и обеспечивает для выполняющихся в ней приложений адресное пространство, соответствующее MS DOS или Windows 3.1.

Специальными серверами являются службы Windows NT, такие как регистратор событий, подсистема безопасности, средства вызова удаленных процедур и т.п., а также компоненты промежуточного программного обеспечения фирмы Microsoft, устанавливаемые по выбору - такие как MS SQL Server, MS Transaction Server и т.п. Со временем значимость подсистем сред (кроме среды Win32) падает, так как Microsoft не ставит перед собой задачи поддержки приложений, разработанных для других сред, но значительно возрастает роль серверных процессов, в которых выполняются продукты семейства MS BackOffice.