- •Общие сведения, ос 90-х годов.
- •Рабочие станции
- •Цели проекта Windows nt: расширяемость и переносимость.
- •Расширяемость
- •Переносимость
- •Цели проекта Windows nt: надежность, совместимость и производительность.
- •Совместимость
- •Производительность
- •Модели Windows nt: клиент-сервер.
- •Объектная модель. Симметричная мультипроцессорная обработка.
- •Защищенные подсистемы. Исполнительная система.
- •Исполнительная система
- •Основные понятия: сессия регистрации, подсистемы среды.
- •Сессия регистрации
- •Подсистемы среды
- •Базовые сервисы: объекты, объекты в памяти.
- •Объекты
- •Объекты размещаются в памяти ос.
- •Ввод-вывод и файловые системы
- •Интернационализация, регионы, Unicode.
- •Интернационализация
- •Регионы
- •Структурная обработка исключений.
- •Удержание объектов
- •Учет использования ресурсов
- •Методы объектов.
- •Защита объектов. Маркеры доступа.
- •Маркеры доступа
- •Списки контроля доступа. Общий принцип работы.
- •Как все это работает вместе
Объектная модель. Симметричная мультипроцессорная обработка.
Многозадачность — это техника, применяемая ОС для использования одного процессора несколькими потоками управления. Однако, если у компьютера имеется более одного процессора, то от модели многозадачности следует перейти к модели мультипроцессорной обработки (multiprocessing). Компьютер, имеющий два процессора, может выполнять два потока одновременно. Таким образом, если многозадачная ОС только создает иллюзию одновременного выполнения нескольких потоков, то ОС с мультипроцессорной обработкой в действительности выполняет несколько потоков одновременно — по одному потоку на каждом процессоре.
ОС с мультипроцессорной обработкой делятся на две категории — с асимметричной либо симметричной обработкой, как показано на рис. 2-5.
Операционные системы с асимметричной мультипроцессорной обработкой (asymmetric multiprocessing, ASMP) обычно выбирают для исполнения собственного кода один и тот же процессор (например А), в то время как другие процессоры выполняют только пользовательские задачи. Так как код ОС исполняется на одном процессоре, то ОС ASMP довольно просто создать, усовершенствовав существующую однопроцессорную ОС. Особенно хорошо ОС ASMP подходят для работы на асимметричном оборудовании, например, процессоре, к которому подключен сопроцессор, или на двух процессорах, совместно использующих не всю доступную память. Однако такую ОС трудно сделать переносимой. Аппаратура разных производителей (и даже разные версии аппаратуры одного производителя) имеет тенденцию различаться по типу и степени асимметрии. Либо производители оборудования должны ориентироваться на одну ОС, либо ОС придется постоянно переписывать для каждой аппаратной платформы.
Системы с симметричной мультипроцессорной обработкой (symmetric multiprocessing, SMP), к которым относится и Windows NT, позволяют коду ОС системы выполняться на любом свободном процессоре или на всех процессорах одновременно, причем каждому из процессоров доступна вся память. Такой подход полнее реализует возможности нескольких процессоров, так как сама ОС может использовать значительную часть процессорного времени компьютера, в зависимости от того, какие приложения на нем исполняются. Исполнение ОС только на одном процессоре может сильно загружать его, в то время как остальные простаивают, что уменьшит производительность системы; при увеличении числа процессоров в системе возрастает вероятность того, что узким местом станут именно действия, выполняемые ОС. Помимо равномерного распределения системной загрузки, системы SMP сокращают время простоя из-за неисправностей, так как при сбое одного процессора код ОС может исполняться на других. Наконец, поскольку симметричная аппаратура реализуется разными производителями сходным образом, имеется возможность создания переносимой ОС SMP.
В отличие от ASMP, системы SMP обычно проектируются и пишутся полностью заново, так как, чтобы гарантировать правильную работу, их код должен следовать строгим правилам. Конкуренция за ресурсы и другие вопросы производительности принимают в мультипроцессорных системах более острую форму, чем в обычных ОС, и должны учитываться при проектировании системы.
Windows NT обладает свойствами, которые принципиально важны для мультипроцессорной ОС:
• Код ОС может выполняться на любом из доступных процессоров и на нескольких процессорах одновременно. За исключением ядра, которое выполняет планировку потоков и обработку прерываний, весь код ОС может быть вытеснен (принужден к освобождению процессора) потоком с более высоким приоритетом.
Асимметричная Симметричная
Асимметричная
Симметричная
Рис. 2-5. Асимметричная и симметричная мультипроцессорная обработка.
• В одном процессе может быть несколько потоков управления. Потоки позволяют процессу выполнять разные части его программы на нескольких процессорах одновременно.
• Серверные процессы могут использовать несколько потоков для одновременной обработки запросов от нескольких клиентов.
• Имеются удобные механизмы совместного использования объектов разными процессами и гибкие возможности коммуникаций между процессами, включая совместно используемую память и оптимизированное средство передачи сообщений.
Структура Windows NT:
