- •Общие сведения, ос 90-х годов.
- •Рабочие станции
- •Цели проекта Windows nt: расширяемость и переносимость.
- •Расширяемость
- •Переносимость
- •Цели проекта Windows nt: надежность, совместимость и производительность.
- •Совместимость
- •Производительность
- •Модели Windows nt: клиент-сервер.
- •Объектная модель. Симметричная мультипроцессорная обработка.
- •Защищенные подсистемы. Исполнительная система.
- •Исполнительная система
- •Основные понятия: сессия регистрации, подсистемы среды.
- •Сессия регистрации
- •Подсистемы среды
- •Базовые сервисы: объекты, объекты в памяти.
- •Объекты
- •Объекты размещаются в памяти ос.
- •Ввод-вывод и файловые системы
- •Интернационализация, регионы, Unicode.
- •Интернационализация
- •Регионы
- •Структурная обработка исключений.
- •Удержание объектов
- •Учет использования ресурсов
- •Методы объектов.
- •Защита объектов. Маркеры доступа.
- •Маркеры доступа
- •Списки контроля доступа. Общий принцип работы.
- •Как все это работает вместе
Рабочие станции
Рис. 1-1. Соединение разнородных систем.
Windows NT существует не в вакууме. Она может взаимодействовать с другими ОС Microsoft, с Apple Macintosh и с UNIX-подобными ОС по сетям различного типа, в том числе Microsoft LAN Manager. Пример сетевой конфигурации показан на рис. 1-1.
В этой конфигурации серверы могут предоставлять системные средства, такие как работа с файлами, печать или функции управления системами, либо средства приложений, например, обслуживание баз данных. Приложение может даже обращаться к серверу для выполнения задач пользователя, хотя последний и не подозревает о таком взаимодействии. Сконфигурированная как сервер, Windows NT может служить многопользовательской сетевой ОС. Каждая рабочая станция может работать с одним интерактивным пользователем и несколькими удаленными, причем каждый пользователь (или приложение) должен зарегистрироваться в системе, прежде чем получит доступ к ней.
Цели проекта Windows nt: расширяемость и переносимость.
Проект Windows NT требовал тщательной предварительной проработки. Чтобы система удовлетворяла требованиям рынка, критически важно с самого начала было придать ей такие свойства, как поддержка POSIX и наличие защиты.
Прежде чем начать писать несколько сотен тысяч строк кода, из которых должна была состоять Windows NT, проектировщики системы тщательные образом сформулировали цели проекта. Предварительное определение целей помогло в принятии тысяч технических решений, задающих внутреннюю структуру большого программного проекта. При наличии двух альтернативных решений из них выбирали то, которое лучше отвечало этим целям.
Ниже перечислены свойства системы, которых стремились достичь проектировщики Windows NT:
• Расширяемость. Код должен быть написан так, чтобы его удобно было дополнять и модифицировать при изменении требований рынка.
• Переносимость. В соответствии с требованиями рынка код должен легко переноситься с одного процессора на другой.
• Надежность и устойчивость. Система должна защищать себя как от внутренних сбоев, так и от внешнего вторжения. Она должна всегда вести себя предсказуемо, и у приложений не должно быть возможности повредить ОС или нарушить ее функционирование.
• Совместимость. Несмотря на то, что Windows NT призвана расширять существующую технологию, ее пользовательский интерфейс и API должны быть совместимы с существующими системами Microsoft.
• Производительность. Система должна отвечать другим целям проекта, но при этом быть максимально быстрой и обеспечивать минимальное время отклика на каждой аппаратной платформе.
Расширяемость
Операционные системы обязательно изменяются с течением времени. Изменения обычно вносятся постепенно; это может быть, например, добавление поддержки новых аппаратных устройств, таких как компакт-диски; способности работать с другим типом сети; поддержки новых программных технологий, таких как графические интерфейсы пользователя и объектно-ориентированные среды программирования.
Гарантировать целостность кода Windows NT по мере изменения ОС с течением времени было основной целью проекта. Уникальный подход к решению этой проблемы нашли для ОС Mach: создать основу, которая реализует примитивные средства ОС. Прикладные программы, называемые серверами, обеспечивают дополнительные системные средства, включая полные API. При изменении требований базовая часть системы не меняется, а серверы модернизируются или создаются новые (Здесь термин "сервер" обозначает процесс на локальной машине, и его не следует путать с удаленными компьютерами в сети, предоставляющими файловые или сетевые сервисы.).
Windows NT позаимствовала этот подход. Она состоит из привилегированной исполнительной системы (executive) и набора непривилегированных серверов, называемых защищенными подсистемами (protected subsystems). Термин привилегированный указывает на режим работы процессора. Большинство процессоров имеют привилегированный режим (возможно, несколько), в котором разрешено выполнение всех машинных команд и доступны системные области памяти, а также непривилегированный , в котором некоторые команды запрещены, а системные области памяти недоступны. В терминологии Windows NT привилегированный режим называется режимам ядра (kernel mode), а непривилегированный — пользовательским режимам (user mode).
Обычно ОС работает только в режиме ядра, а прикладные программы — только в пользовательском режиме, за исключением тех моментов, когда они вызывают системные сервисы. Однако Windows NT уникальна в том плане, что ее защищенные подсистемы выполняются в пользовательском режиме, как и обычные приложения. Такая структура позволяет модифицировать или добавлять защищенные подсистемы, не нарушая целостности исполнительной системы.
Кроме защищенных подсистем, Windows NT имеет множество других свойств, гарантирующих ее расширяемость:
• Модульность. Исполнительная система представляет собой набор отдельных компонентов, взаимодействующих друг с другом только посредством функциональных интерфейсов. Новые компоненты добавляются к исполнительной системе как новые модули, обращающиеся к интерфейсам других компонентов.
• Использование объектов для представления системных ресурсов. Объекты (objects), абстрактные типы данных, доступ к которым осуществляется только через специальный набор сервисов объектов, позволяют однотипно управлять системными ресурсами. Добавление новых объектов не нарушает работу старых и не требует изменения существующего кода.
• Загружаемые драйверы. Подсистема ввода-вывода Windows NT поддерживает драйверы, которые могут добавляться к системе в процессе работы. Для поддержки новых файловых систем, устройств и сетей необходимо написать драйвер устройства, драйвер файловой системы или драйвер транспорта и загрузить его в систему.
• Средство удаленного вызова процедур (RPC), позволяющее приложениям вызывать удаленные сервисы независимо от их расположения в сети. Новые сервисы, установленные на любую машину в сети, немедленно становятся доступными для приложений на других машинах.
