- •Общие сведения, ос 90-х годов.
- •Рабочие станции
- •Цели проекта Windows nt: расширяемость и переносимость.
- •Расширяемость
- •Переносимость
- •Цели проекта Windows nt: надежность, совместимость и производительность.
- •Совместимость
- •Производительность
- •Модели Windows nt: клиент-сервер.
- •Объектная модель. Симметричная мультипроцессорная обработка.
- •Защищенные подсистемы. Исполнительная система.
- •Исполнительная система
- •Основные понятия: сессия регистрации, подсистемы среды.
- •Сессия регистрации
- •Подсистемы среды
- •Базовые сервисы: объекты, объекты в памяти.
- •Объекты
- •Объекты размещаются в памяти ос.
- •Ввод-вывод и файловые системы
- •Интернационализация, регионы, Unicode.
- •Интернационализация
- •Регионы
- •Структурная обработка исключений.
- •Удержание объектов
- •Учет использования ресурсов
- •Методы объектов.
- •Защита объектов. Маркеры доступа.
- •Маркеры доступа
- •Списки контроля доступа. Общий принцип работы.
- •Как все это работает вместе
Базовые сервисы: объекты, объекты в памяти.
Подсистемы среды реализуют свои API, обращаясь к базовым сервисом (native services) — системным сервисам, предоставляемым компонентами исполнительной системы NT. Например, диспетчер виртуальной памяти обеспечивает сервисы выделения и освобождения памяти, а диспетчер процессов — сервисы создания и завершения процессов и потоков. Как показано на рис. 2-11, когда подсистема вызывает базовый сервис NT, аппаратура детектирует этот вызов и передает управление исполнительной системе NT. После этого выполнение сервиса осуществляется в режиме ядра.
Так как базовые сервисы используются различными подсистемами среды, то они должны быть универсальными — и даже примитивными. Они должны быть гибкими и не иметь лишних ограничений. Наконец, базовые сервисы не должны вызывать побочных эффектов, которые могут конфликтовать с разнообразными потребностями подсистем среды.
Одним из способов достижения гибкости базовых сервисов состоит в том, что они способны работать с любым процессом, заданным вызывающей программой. В вызове задается описатель процесса, и сервис выполняет действия над заданным процессом. Например, подсистема может вызвать базовый сервис для того, чтобы создать поток или выделить память для одного из своих процессов-клиентов. Конечно, большинство обычных процессов не могут выполнять подобные действия с другими процессами. Подсистемы среды обладают мощными маркерами доступа, дающими им власть над их клиентами.
Основными пользователями базовых сервисов являются защищенные подсистемы DLL и компоненты исполнительной системы NT. Приложения, исполняемые под Windows NT, написаны для одного из программных интерфейсов — Win32, MS-DOS, 16-разрядной Windows, POSIX или OS/2, — которые реализуются подсистемами среды.
Объекты
Многие из базовых сервисов NT — это объектные сервисы. Иными словами, они выполняют некоторое действие над объектом в исполнительной системе NT. Поток открывает описатель объекта и затем использует этот описатель при вызове сервисов, работающих с объектом.
Рис. 2-11. Вызов базового системного сервиса.
Ресурсы, поддерживающие совместное использование, включая процессы, потоки, файлы и распределяемую память, реализованы в исполнительной системе NT как объекты. Таким образом, ОС может воспользоваться сходством свойств ресурсов и использовать общий код для работы с разными типами ресурсов, где только возможно. Объектная система NT — это центральная точка выполнения различных задач управления ресурсами, таких как именование ресурсов; установка пределов, так называемых квот (quotas) объема ресурсов, используемых процессом; совместное использование ресурса двумя процессами и защита ресурсов от несанкционированного доступа.
Подсистемы среды часто вызывают объектные сервисы для создания, открытия описателя, манипулирования или удаления объектов. Так, при запуске пользователем какого-либо приложения Win32, например Microsoft Excel, подсистема Win32 вызывает диспетчер процессов NT для создания процесса (в котором будет исполняться Excel) и получения его описателя. В свою очередь, диспетчер процессов вызывает диспетчер объектов, чтобы создать объект-процесс и объект-поток. Аналогично, при сохранении пользователем новой таблицы Excel подсистема Win32 обращается к диспетчеру ввода—вывода NT, чтобы создать файловый объект, представляющий файл, в котором хранится электронная таблица, и открыть описатель этого объекта. Диспетчер ввода-вывода обращается для выполнения этой задачи к диспетчеру объектов. Данный процесс иллюстрируется рис. 2-12.
Основной объем обработки, связанной с управлением ресурсами, осуществляется в NT тогда, когда некоторый процесс создает объект и/или открывает описатель объекта. Например, когда процесс (в нашем случае подсистема Win32) создает объект, он может (но необязательно) задать имя объекта. Присвоение объекту имени делает возможным совместное использование этого объекта несколькими процессами. Процесс, желающий использовать распределяемый объект, просто выбирает его имя, обращаясь к диспетчеру объектов NT, и затем открывает описатель объекта.
