Windows NT - OC нового поколения

  • Стремясь обеспечить совместимость (compatible) новой операционной сис- темы, разработчики Windows NT сохранили привычный интерфеис Windows и реализовали поддержку существующих файловых систем (таких, как FAT) и различных приложений (написанных для MS — Dos, OS/2 1. x, Windows 3. x и POSIX).Разработчики также включили в состав Windows NT средства рабо ты с различными сетевыми средствами.
  • Достигнута переносимость (portability) системы, которая может теперь работать как на CISC, так и на RISC — процессорах .К CISC относятся Intel-совместимые процессоры 80 386 и выше ;RISC представлены системами с процессорами MIPS R4000, Digital Alpha AXP и Pentium серии P54 и выше.
  • Масштабируемость (scalability) означает, что Windows NT не привязана к однопроцессорной архитектуре компьютеров, а способна полностью использовать возможности, предоставляемые симметричными мультипроцессорными системами .В настоящее время Windows NT может функционировать на компьютерах с числом процессоров от 1 до 32. Кроме того, в случае усложнения стоящих перед пользователями задач и расширения предъявляемых к компьютерной среде требований, Windows NT позволяет легко добавлять более мощные и производительные серверы и рабочии станции к корпоративной сети. Дополнительные преимущества даёт использование единой среды разработки и для серверов, и для рабочих станций.
  • Windows NT имеет однородную систему безопасности (security), удовлетворяющую спецификациям правительства США и соответствующую стандарту безопастности В2 .В корпоративной среде критическим приложениям обеспечивается полностью изолированное окружение.
  • Распределённая обработка (distributed processing) означает, что Windows NT имеет встроенные в систему сетевые возможности. Windows NT также позволяет обеспечить связь с различными типами хост — компьютеров благодаря поддержке разнообразных транспортных протоколов и использованию средств Уклиент-серверФ высокого уровня, включая именованные каналы, вызовы удалённых процедур (RPC — remote procedure call) и Windows — сокеты.
  • Надёжность и отказоустойчивость (reliability and robustness) обеспечивают архитектурными особенностями, которые защищают прикладные программы от повреждения друг другом и операционной системой. Windows NT использует отказоустойчивую структурированную обработку особых ситуаций на всех архитектурных уровнях, которая включает восстанавливаемую файловую систему NTFS и обеспечивает защиту с помощью встроенной системы безопасности и усовершенствованных методов управления памятью.
  • Возможности локализации (allocation) представляют средства для работы во многих странах мира на национальных языках, что достигается применением стандарта ISO Unicod (разработан международной организацией по стандартизации).
  • Благодаря модульному построению системы обеспечивается расширяемость (insibility) Windows NT, что, как будет показано в следующем разделе, позволяет гибко осуществлять добавление новых модулей на различные уровни операционной системы .

Архитектурные модули Windiws NT

Как показано на следующем рисунке, Windows NT представляет из семодульную (более совершенную, чем монолитная) операционную систему, которая состоит из отдельных взаимосвязанных относительно простых модулей. Основными модулями Windows NT являются (перечислены в порядке следования от нижнего уровня архитектуры к верхнему): уровень аппаратных абстракций HAL (Hardware Abstraction Layer), ядро (Kernel), исполняющая система (Executive), защищенные подсистемы (protected subsystems) и подсистемы среды (environment subsystems).

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

  • Уровень аппаратных абстракций виртуализирует аппаратные интерфейсы, обеспечивая тем самым независимость остальной части операционной системы от конкретных аппаратных особенностей. Подобный подход позволяет обеспечить легкую переносимость Windows NT с одной аппаратной платформы на другую.
  • Ядро является основой модульного строения системы и координирует выполнение большинства базовых операций Windows NT. Этот компонент специальным образом оптимизирован по занимаемому объёму и эффективности функционирования .Ядро отвечает за планирование выполнения потоков, синхронизацию работы нескольких процессоров, обработку аппаратных прерываний и исключительных ситуаций.
  • Исполняющая система включает в свой состав набор программных конструкций привилегированного режима (kernel — mode), представляющих базовый сервис операционной системы подсистемам среды. Исполняющая система состоит из нескольких компонентов; каждая из них предназначена для поддержки определённого системного сервиса. Так, один из компонентов — монитор безопасности (Security Reference Monitor) — функционирует совместно с защищёнными подсистемами и обеспечивает реализацию модели безопасности системы.
  • Подсистемы среды представляют собой защищённые серверы пользовательского режима (user-mode), которые обеспечивают выполнение и поддержку приложений, разработанных для различного операционного окружения (различных операционных систем). Примером подсистем среды могут служить подсистемы Win32 и OS/2.

Уровень аппаратных абстракций

Уровень аппаратных абстракций (HAL) представляет собой создаваемый производителями аппаратных средств слой программного обеспечения, который скрывает (или абстрагирует), особенности и различия аппаратуры от верхних уровней операционной системы. Таким образом, благодаря обеспечиваемому HALом фильтру, различные аппаратные средства выглядят аналогично с точки зрения операционной системы; снимается необходимость специальной поднастройки операционной системы под используемое оборудование.

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

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

Уровень аппаратных абстракций позволяет также «скрывать» от остальных уровней операционной системы особенности аппаратной реализации симметричных мультипроцессорных систем.

Ядро

Ядро (Kernel) является Усердцем Ф Windows NT и работает в тесном контакте с уровнем аппаратных абстракций. Этот модуль, в первую очередь, занимается планированием действий компьютерного процессора. В случае если компьютер содержит несколько процессоров, ядро синхронизирует их работу с целью достижения максимальной производительности системы.

Ядро осуществляет диспетчеризацию нитей управления (threads, иногда называются подзадачами, ответвлениями или потоками), которые являются основными объектами в планируемой системе .Нити управления определяются в контексте процесса ;процесс включает адресное пространство, набор доступных процессу объектов и совокупность выполняемых в контексте процесса нитей управления. Объектами являются управляемые операционной системой ресурсы.

Ядро производит диспетчеризацию нитей управления таким образом, чтобы максимально загрузить процессоры системы и обеспечить первоочередную обработку нитей с более высоким приоритетом. (Всего существует 32 значения приоритета, которые сгруппированы в два класса приоритетов: real-time и variable).Подобный подход позволяет достичь максимальной эффективности операционной системы.

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

Ядро управляет двумя типами объектов.

  • Объекты диспетчеризации (dispatcher objects) характеризуются сигнальнымсостоянием (signaled или nonsignaled) и управляют диспетчеризацией и синхронизацией системных операций .Эти объекты включают события, мутанты, мутэксы, семафоры, нити управления и таймеры (events, mutants, mutexes, semaphores, threads, timers).
  • Управляющие объекты (control objects) используются для операций управления ядра, но не воздействуют на диспетчеризацию или синхронизацию.

Управляющие объекты включают в себя асинхронные вызовы процедур, прерывания, уведомления и состояния источника питания, процессы и профили (asynhcronous procedure calls, interupts, power notifies, power statuses, processes, profiles).

Исполняющая система Windows NT

Исполняющая система (Executive), в состав которой входит ядро и уровень аппаратных абстракций HAL, обеспечивает общий сервис системы, который могут использовать все подсистемы среды. Каждая группа сервиса находится под управлением одной из отдельных составляющих исполняющей системы:

  • диспетчера объектов (Object Manager);
  • диспетчера виртуальной памяти (Virtual Memory Manager);
  • диспетчера процессов (Process Manager);
  • средства вызова локальных процедур (Local Procedure Call Facility);
  • диспетчера ввода — вывода (E/O Maneger);
  • мониторы безопасности (Security Reference Monitor).

Монитор безопасности совместно с процессором входа в систему (Logon) и защищёнными подсистемами реализует модель безопасности Windows NT.

Верхний уровень исполняющей системы называется системным сервисом (System Services). Показанный на следующем рисунке системный сервис представляет собой интерфейс между подсистемами среды пользовательского режима и привилегированным режимом.

Диспетчер кэша

Архитектура ввода — вывода содержит единственный диспетчер кэша (Cache Manager), который осуществляет кэширование для всей системы ввода — вывода. Кэширование (Caching) — метод, используемый файловой системой для увеличения эффективности. Вместо непосредственной записи и считывания с диска, часто используемые файлы временно сохраняются в кэш-памяти; таким образом, работа с этими файлами выполняется в памяти. Операции с данными, находящимися в памяти, производятся значительно быстрее операций с данными на диске.