Расширения Windows NT
Рассмотренные структурные решения Windows определили ее надежность и производительность.
Надежность. Одной из целей проекта Windows NT была надежность. Под надежностью подразумеваются два взаимосвязанных момента. Во-первых, ОС должна быть устойчивой, дающей предсказуемый отклик на ошибочные состояния, даже если они вызваны сбоями аппаратуры. Во-вторых, ОС должна активно защищать себя и своих пользователей от вреда со стороны пользовательских программ, случайного или умышленного.
Структурная обработка исключений (structured exception handling) – это метод перехвата ошибочных состояний и унифицированной их обработки. Она является основным способом защиты Windows NT от программных или аппаратных ошибок. Когда возникает ненормальное событие, ОС или процессор возбуждают исключение; код обработки исключений, присутствующий по всей системе, вызывается автоматически, гарантируя, что пользовательским программам, а системе не будет нанесен вред из-за не обнаруженной ошибки. Повышению устойчивости способствуют и другие свойства ОС:
· Модульная структура, разделяющая исполнительную систему на группы хорошо организованных пакетов. Отдельные компоненты системы взаимодействуют друг с другом через тщательно разработанные программные интерфейсы. Какой-либо компонент можно извлечь и заменить другим, реализующим те же самые интерфейсы.
· Для Windows NT разработана новая файловая система, называемая файловой системой NT (NT file system, NTFS). NTFS способна к восстановлению после всех типов дисковых ошибок, включая ошибки в критически важных секторах диска. Для обеспечения восстанавливаемости в ней используется избыточное хранение данных и обработка транзакций.
Перечисленные ниже средства защищают Windows NT от внешнего вторжения:
· Архитектура защиты от несанкционированного доступа предоставляет разнообразные механизмы защиты: регистрация пользователей в системе, квоты на ресурсы и защита объектов.
· Виртуальная память (virtual memory) предоставляет каждой программе большой объем адресного пространства. При обращении программы по виртуальным адресам диспетчер памяти отображает (транслирует) их в настоящие адреса памяти. Так как ОС управляет расположением в памяти каждой программы, она предотвращает чтение или изменение одним пользователем памяти, занимаемой другим пользователем, если только они явно не объявили ее совместно используемой.
Производительность. Еще одной целью проекта Windows NT было достижение высокой производительности. Приложения с большим объемом вычислений требуют достаточно высокой производительности, чтобы обеспечить пользователю хорошее время отклика. Одного быстродействующего оборудования для этого недостаточно. ОС тоже должна быть быстрой и эффективной.
Системные вызовы, страничные ошибки и другие критические участки вычислений оптимизировались для достижения максимальной скорости обработки.
Защищенные подсистемы, серверы, которые выполняют функции ОС, должны часто взаимодействовать друг с другом и с приложениями-клиентами. Чтобы это взаимодействие не снижало производительность серверов, в состав ОС был включен высокоскоростной механизм передачи сообщений, так называемый локальный вызов процедур (local procedure call, LPC).
Каждая защищенная подсистема, обеспечивающая среду ОС, или подсистема среды (environment subsystem) спроектирована так, чтобы часто используемые системные вызовы выполнялись быстрее.
Модели Windows NT. Структура Windows NT основана на комбинации нескольких моделей. Модель клиент-сервер (client/server) служит в Windows NT для того, чтобы предоставить пользователям различные среды ОС (исходно Windows, MS-DOS, OS/2 и POSIX), а объектная модель (object model) – для унификации управления системными ресурсами и выделения их пользователям. Третья модель, симметричная мультипроцессорная обработка (symmetric multiprocessing, SMP), позволяет Windows NT максимально использовать возможности многопроцессорных машин.
В структуре Windows NT есть элементы как послойной, так и клиент-серверной модели. Часть Windows NT, работающая в режиме ядра, называется исполнительной системой NT (NT executive). В нее входит набор компонентов, реализующих управление виртуальной памятью, управление объектами (ресурсами), ввод-вывод и файловые системы (включая сетевые драйверы), взаимодействие между процессами и фрагменты системы защиты от несанкционированного доступа. Эти компоненты взаимодействуют между собой как модули, а не как слои. Каждый компонент вызывает другие посредством набора тщательно оговоренных внутренних процедур.
Послойная модель применяется в системе ввода/вывода исполнительной системы NT и в самых низкоуровневых частях исполнительной системы: ядре NT (NT kernel) и слое абстрагирования от оборудования (hardware abstraction layer, HAL). Все другие компоненты исполнительной системы NT расположены поверх этих двух. Ядро NT выполняет функции ОС низкого уровня, похожие на те, с которыми мы встречаемся в клиент-серверных ОС с микроядром: планирование потоков, обработку прерываний и исключений, а также многопроцессорную синхронизацию. Оно также предоставляет набор процедур и базовых объектов, используемых остальными частями исполнительной системы для реализации конструкций более высокого уровня. Ниже ядра располагается динамически подключаемая библиотека (dynamic-link library, DLL) HAL – слой кода, изолирующий ядро и другие части исполнительной системы NT от платформенно-зависимых особенностей аппаратуры. HAL работает непосредственно с оборудованием.
Модель клиент-сервер используется в Windows NT (рис. 2.20) для предоставления API и средств, которые рассматривают как среду ОС. Хотя защищенная подсистема (сервер) Win32 обеспечивает пользовательский интерфейс и необходима для работы системы, другие серверы подключаются к исполнительной системе, причем они загружаются и выполняются одновременно в любой комбинации. Серверы взаимодействуют с процессами приложений при помощи средства передачи сообщений, предоставляемого исполнительной системой NT.
Рис. 2.20. Клиент-серверная структура Windows NT |
Хотя Windows NT не является в строгом смысле объектно-ориентированной системой, она использует объекты для представления системных ресурсов. Каждый системный ресурс, который использует несколько процессов – файлы, память и физические устройства, – реализован как объект и обрабатывается объектными сервисами.
Системы с симметричной мультипроцессорной обработкой (symmetric multiprocessing, SMP), к которым относится и Windows NT, позволяют коду ОС системы выполняться на любом свободном процессоре или на всех процессорах одновременно, причем каждому из процессоров доступна вся память.
Windows NT обладает свойствами, которые принципиально важны для мультипроцессорной ОС:
· Код ОС может выполняться на любом из доступных процессоров и на нескольких процессорах одновременно. За исключением ядра, которое выполняет планировку потоков и обработку прерываний, весь код ОС может быть вытеснен (принужден к освобождению процессора) потоком с более высоким приоритетом.
· В одном процессе может быть несколько потоков управления. Поток позволяют процессу выполнять разные части его программы на нескольких процессорах одновременно.
· Серверные процессы могут использовать несколько потоков для одновременной обработки запросов от нескольких клиентов.
· Имеются механизмы совместного использования объектов разными процессами и гибкие возможности коммуникаций между процессами, включая используемую память и оптимизированное средство передачи сообщений.
Проведенный анализ Windows NT показал, что при проектировании Windows NT требования, предъявляемые к ОС РВ, не учитывались: она спроектирована как многоцелевая ОС (МОС) или, более точно, как сетевая ОС (СОС). Тем не менее, в силу того, что Windows NT создавалась разработчиками ОС VMS, в нее включены элементы СРВ. Microsoft ввела понятие класса процессов реального времени. Они диспетчеризуются таким же образом, как это было бы в ОСРВ. Механизм прерываний ISR (Interrupt Service Routine) также реализован очень эффективно. Однако сегодня становится широко распространенным желание потребителей использовать Windows NT в СРВ. Для этого имеется ряд весомых доводов в пользу MS Windows:
1) “эта ОС имеет множество приложений, обеспечивающих решение различных задач обработки и представления информации”;
2) “Windows и ее приложения просты в освоении и, как правило, обладают типовым интуитивно понятным интерфейсом”;
3) “Windows имеет очень широкое распространение, поэтому легко найти специалиста, который мог бы сопровождать системы на базе этой ОС”;
4) “приложения, работающие под управлением Windows, поддерживают общедоступные стандарты обмена данными (например Win32 API). Возможна простая интеграция приложений”;
5) “системы на базе ОС Windows просты в эксплуатации и развитии, что позволяет существенно экономить средства как при поддержке систем, так и при их поэтапном росте”;
6) “большинство Windows-приложений (как и сама ОС) доступны на русском языке”;
7) “развитие ИТ для Windows идет крайне высокими темпами, что позволяет компаниям, использующим эту платформу, "идти в ногу со временем" и быстро получать результат – экономию средств и возврат инвестиций”.
Это позволяет пользователю:
· использовать одну и ту же ОС на всех уровнях промышленной иерархии;
· задействовать для создания приложений реального времени программный интерфейс Win32;
· применять в СРВ большое количество стандартных приложений, созданных для NT и ее сетевые возможности.
Несмотря на то, что сегодня Windows NT не отвечает в полной мере требованиям, предъявляемым к ОС РВ, давление рынка привело к появлению коммерческих решений, расширяющих NT возможностями обработки в реальном времени. Из всех перечисленных подходов к соединению возможностей NT и требований реального времени только первый и последний действительно интересны. Все остальные либо неосуществимы, либо очень ограничены в использовании. Попытки соединить новую мощную технологию с требованиями реального времени развивались по двум направлениям:
– перевести новую OC на уровень контроллеров (клоны UNIX реального времени);
– реализовать в системах нижнего уровня стандартные коммуникационные интерфейсы к системе верхнего уровня (TCP/IP, RPC).
Windows NT и расширения Windows NT – это совершенно разные продукты и расширения реального времени – это отдельные ОС РВ, исполняющиеся параллельно с Windows NT.
Единая ОСРВ для всех уровней иерархии систем автоматизации – на первый взгляд, это условие выполнено. Однако, на нижних уровнях, как правило, требуется жесткое реальное время, и, следовательно, будет использоваться только один компонент расширений, а именно, ядро реального времени. Про стандартное ядро и приложения придется забыть – время их исполнения предсказать невозможно. Все расширения Windows NT весьма велики по объему. Минимальные требования к размеру Flash-памяти (из которой грузится система) 10-16 Мбайт, что ограничивает использование расширений на компактных контроллерах.
В расширениях от VenturCom сделана попытка обеспечить переносимость приложений. Для этого были разработаны дополнения и расширения к WIN32 API. Конечно, это не означает, что приложения реального времени получили доступ к Win32 API, но, по крайней мере, у них вышло не пустое пересечение с программным интерфейсом стандартных приложений. Расширения по версии VentuCom используют стандартные системы разработки (Visual C++).
Приложения реального времени и стандартные приложения NT могут исполняться одновременно с помощью специальных коммуникационных механизмов для обеспечения передачи данных. Стандартные приложения исполняются под управлением стандартного же ядра NT, а расширения реального времени для Windows NT вовсе не превратили саму NT в СРВ, следовательно, предсказать их поведение можно далеко не всегда. Все это нужно учитывать при проектировании приложений жесткого реального времени.
Приложения реального времени не имеют того надежного, снабженного механизмом защиты памяти, окружения, какое имеется у стандартных приложений NT. Поэтому ошибки в кодах приложений реального времени могут привести к разрушению процессов Windows NT, т.е. расширения реального времени для Windows NT не превращают саму Windows NT в СРВ, и к этим расширениям следует относиться не как к глобальному решению, которое снимает все проблемы с использованием Windows NT в реальном времени, а как к компромиссу при решении, например, локальных вопросов:
· прямой доступ к аппаратуре компьютера, который получает в свое распоряжение быстрые таймеры и возможность управления прерываниями;
· работа Windows NT без видеоадаптера и клавиатуры;
· отказ от файла подкачки.
Дата добавления: 2016-04-06; просмотров: 997;