Программно-технический комплекс Учебное пособие Новочеркасск юргту (нпи) 2010. Удк 519. 23 (075. 8) Ббк 22. 17я73
Вид материала | Учебное пособие |
- Практикум Новочеркасск юргту (нпи) 2010 удк 330 (075. 8) Ббк 65. 012. 1я73, 2097.42kb.
- Учебно-методическое пособие Новочеркасск юргту (нпи) 2011 г. Удк 004 : 012 (076) ббк, 1329.07kb.
- Учебно-методическое пособие Новочеркасск юргту (нпи) 2011 г. Удк 004 : 012 (076) ббк, 994.64kb.
- Пособие предназначено для студентов, изучающих курсы «Экономики» и«Экономической теории», 4766.75kb.
- Учебно-методическое пособие Новочеркасск 2006 удк 004. 4 (07), 341.54kb.
- Учебное пособие к практическим занятиям по дисциплине «Физическая культура» Новочеркасск, 1055.75kb.
- Конспект лекций москва 2004 удк 519. 713(075)+519. 76(075) ббк 22. 18я7, 1805.53kb.
- Данное пособие предназначено для кураторов академических групп младших курсов, а также, 1695.39kb.
- Пособие предназначено для студентов специальности «Прикладная информатика (в экономике)», 1911.82kb.
- Учебное пособие тверь 2008 удк 519. 876 (075. 8 + 338 (075. 8) Ббк 3817я731-1 + 450., 2962.9kb.
2.2. Операционная система Windows NT
2.2.1. Ужесточение требований к ОС 90-х годов
Осенью 1988 года Microsoft пригласила на работу Дэвида Н. Катлера (David N. Cutler), чтобы возглавить новый проект создания ОС Microsoft 90-х годов. В результате анализа проблемы были сформулированы основные требования, предъявляемые рынком к новой ОС:
Переносимость позволило бы быстро переходить от одной архитектуры к другой.
Мультипроцессорная обработка и масштабируемость ОС позволило бы запускать одно и то же приложение как на однопроцессорных, так и на многопроцессорных машинах. В предельном случае несколько приложений выполняют с максимальной скоростью, а приложения, требующие большого объема вычислений, повышают производительность, распределяя работу между несколькими процессорами.
Распределенные вычисления в сети позволили малым компьютерам связываться друг с другом, совместно используя аппаратные или вычислительные ресурсы (в форме файл-серверов, серверов печати и серверов вычислений).
Совместимость с POSIX. Во второй половине 80-х годов стали определять POSIX (переносимый интерфейс ОС, основанный на UNIX” (portable operating system interface basic on UNIX)) в качестве международного стандарта программного обеспечения для интерфейсов ОС UNIX-типа. Стандарт POSIX (стандарт IEEE 1003.1-1988) поощряет фирмы, реализующие UNIX-подобные интерфейсы, делать их совместимыми, чтобы программисты могли легко переносить свои приложения с одной системы на другую.
Для удовлетворения сформулированных требований, предъявляемых рынком к новой ОС, фирма ссылка скрыта разработала подсистему реального времени RTX (Real-Time Extensions) для Windows NT при поддержке Microsoft. Microsoft передала лицензию на исходные тексты такого компонента Windows NT, как Уровень Абстракции Аппаратуры (HAL, Hardware Abstraction Level), который в основном и определяет характеристики ОС по обработке прерываний. RTX добавляет дополнительные вызовы к интерфейсу прикладного программирования (RTAPI, Real-Time API), а также загружает модифицированный HAL, который изолирует аппаратные прерывания от ядра Windows NT. RTX предоставляет для системы таймер реального времени и уменьшает время отклика. RTX обеспечивает для процессов доступ к физическим адресам памяти и портов ввода/вывода, а также специальные методы работы со страничной памятью, исключающие свойственные Windows NT задержки. Соответствующим образом отрабатываются попытки перезагрузки или тяжелые остановы.
2.2.2. Операционные системы реального времени и Windows NT
Процессы в Windows NT принадлежат двум различным классам приоритетов: динамическому и реального времени. Большинство процессов принадлежат динамическому классу, который допускает изменение своих приоритетов ОС в зависимости от таких факторов, как являются ли они фоновыми задачами или они недавно ожидают. Это хорошо для GPOS (General propose OS) , так как позволяет всем потокам быть запущенными и предоставляет пользователям более быструю реакцию от активного приложения. Однако правила, определяющие эти изменения приоритетов, не подходят для RTOS (real-time OS). Поэтому Microsoft включила ряд приоритетов выше динамического класса, назвав их (Real-Time Class) класс приоритетов реального времени. Процессы в классе реального времени имеют фиксированный приоритет, менять который может лишь само приложение, а приоритет процессов динамического класса может меняться диспетчером. В Windows NT имеется только 7 различных уровней для нити в данном процессе. А у большинства ОСРВ имеется по крайней мере 256 различных уровней (чем больше имеется уровней, тем более предсказуемо поведение системы). В Windows NT многие нити будут выполняться с одинаковыми приоритетами, то есть предсказуемость поведения системы будет посредственной. В Windows NT процессы выполняются в своем собственном пространстве памяти. Добиться этого позволяют механизмы виртуальной памяти и подкачки. Это для СРВ порождает непредсказуемость, особенно если система отправит страницу из памяти на диск.
Потоки, запущенные с этими приоритетами, выполняются до процессов, запущенных с приоритетами из динамического класса. ОС не изменяет их приоритет и определяет большой контроль за разработчиком. Microsoft не рекомендует, чтобы потоки тратили много времени в этом классе, так как они имеют приоритет выше, чем некоторые системные задачи, такие, как сброс кэша диска и контроль ввода. Блокировка инверсии приоритетов происходит в потоках, ожидающих мьютекса. Большинство RTOS решают эту проблему путем инверсии приоритетов, но Windows NT использует схему, где потоки, которые не запускаются некоторое время, принимают случайный приоритет, повышая возможность быть запущенным. Это приводит к непредсказуемости и поэтому неприемлемо для СРВ.
Базовая идея построения Windows NT основана на принципах модульности и объектно-ориентированного программирования. Эта идея распространена и на ядро ОС и определяет ее функциональную независимость от аппаратуры для чего используют уровень абстрагирования от аппаратуры (hardware abstraction layer, HAL). Структура Windows NT включает две части: одна работает в пользовательском режиме (защищенные подсистемы Windows NT), а другая – в режиме ядра (исполнительная система NT) (рис. 2.3).
|
Рис. 2.3. Блок схема Windows NT |
В Windows NT имеется два типа защищенных подсистем: подсистемы среды (environment subsystems) и неотъемлемые подсистемы (integral subsystems). Подсистема среды – это сервер пользовательского режима, реализующий API некоторой ОС. Когда приложение вызывает функцию API, этот вызов доставляется посредством LPC подсистеме среды. Та исполняет вызов и возвращает результаты прикладному процессу, посылая другой LPC.
Самая важная подсистема среды в Windows NT – это подсистема Win32, которая предоставляет прикладным программам API 32-разрядной Windows и реализует графический интерфейс пользователя Windows NT и управляет всем вводом пользователя и выводом приложений. В Windows NT имеются подсистемы среды POSIX, OS/2, 16-разрядной Windows и MS-DOS. Данные подсистемы предоставляют свои API, но используют для получения пользовательского ввода и отображения результатов подсистему Win32.
Другие защищенные подсистемы – неотъемлемые подсистемы – это серверы, выполняющие важные функции ОС. Подсистема защиты исполняется в пользовательском режиме и регистрирует правила контроля доступа, определенные для локального компьютера, ведет базу данных учетных записей пользователей, содержащую идентификаторы пользователей, пароли, группы, к которым отнесен пользователь, и особые привилегии, которыми он обладает. Она также принимает регистрационную информацию пользователя и инициирует аутентификацию подключения пользователя к системе.
Некоторые компоненты сетевого обеспечения Windows NT также реализованы как защищенные подсистемы: сервис рабочей станции и сервис сервера. Каждый из этих сервисов (services), как часто называют сетевые подсистемы, является процессом пользовательского режима, реализующим API для доступа и управления, соответственно, сетевым редиректором4 и сервером LAN Manager. На удаленной машине такие запросы принимаются сервером. И редиректор, и сервер LAN Manager реализованы как драйверы файловых систем, т. е. являются частью системы ввода/вывода NT.
Исполнительная система NT (NT executive) – это часть Windows NT, исполняющаяся в режиме ядра; за исключением пользовательского интерфейса, она сама по себе является законченной ОС. Исполнительная система состоит из ряда компонентов, причем каждый из них реализует два набора функций: системные сервисы, к которым могут обращаться как подсистемы среды, так и компоненты исполнительной системы, а также внутренние процедуры, доступные только компонентам исполнительной системы. Исполнительная система NT способна поддерживать любое число серверных процессов. Серверы предоставляют исполнительной системе NT пользовательские и программные интерфейсы, а также обеспечивают среды для выполнения приложений разных типов.
Хотя исполнительная система и предоставляет системные сервисы, похожие на API, она отличается от подсистем среды. Исполнительная система не исполняется постоянно в собственном процессе, а работает в контексте некоторого существующего процесса, завладевая выполняющимся потоком, когда происходит важное системное событие. Компоненты исполнительной системы поддерживают независимость друг от друга, для чего каждый из них создает необходимые системные структуры данных и работает с ним. Интерфейсы между компонентами контролируются, можно удалить компонент и заменить другим, работающим иначе. Если новый компонент корректно реализует все системные сервисы и внутренние интерфейсы, то ОС работает как прежде. Сопровождение ОС также упрощается, поскольку компоненты исполнительной системы NT взаимодействуют предсказуемым образом.
Основные компоненты исполнительной системы и их области ответственности:
- Диспетчер объектов создает, поддерживает и уничтожает объекты исполнительной системы NT – абстрактные типы данных, представляющие системные ресурсы.
- Справочный монитор защиты гарантирует выполнение политики защиты на локальном компьютере, оберегает ресурсы ОС, обеспечивая защиту объектов и аудит во время выполнения.
- Диспетчер процессов создает и завершает процессы и потоки, а также приостанавливает и возобновляет исполнение потоков, хранит и выдает информацию о процессах и потоках NT.
- Средство локального вызова процедур (LPC) передает сообщения между клиентскими и серверными процессами, расположенными на одном и том же компьютере. LPC – это гибкая, оптимизированная версия удаленного вызова процедур (remote procedure call, RPC), средства коммуникации между клиентскими и серверными процессами по сети, являющегося промышленным стандартом.
- Диспетчер виртуальной памяти реализует виртуальную память (virtual memory, VM) – схему управления памятью в виде подкачки страниц (paging), которая предоставляет каждому процессу большое собственное адресное пространство и защищает это пространство от других процессов. Если память используется интенсивно, то диспетчер виртуальной памяти переносит содержимое выбранного блока памяти на диск и загружает обратно, когда он снова понадобится.
- Ядро реагирует на прерывания и исключения, направляет потоки на выполнение, выполняет межпроцессорную синхронизацию и предоставляет набор элементарных объектов и интерфейсов, используемый остальными частями исполнительной системы NT для реализации объектов более высокого уровня.
- Система ввода/вывода состоит из группы компонентов, отвечающих за выполнение ввода/вывода на разнообразные устройства. В систему ввода/вывода входят следующие подкомпоненты:
- Диспетчер ввода/вывода реализует средства ввода/вывода, не зависящие от типа устройства, и устанавливает модель для ввода/вывода исполнительной системы NT .
- Файловые системы образуют драйверы NT, принимающие запросы файлового ввода/вывода и транслирующие их в запросы, привязанные к конкретному устройству.
- Сетевой редиректор (network redirector) и сетевой сервер (network server) это драйверы файловой системы, передающие удаленные запросы ввода/вывода на машины в сети и принимающие от них такие запросы.
- Драйверы устройств исполнительной системы NT. Низкоуровневые драйверы, напрямую работающие с оборудованием для записи вывода или считывания ввода с физических устройств или с сети.
- Диспетчер кэша повышает производительность файлового ввода/вывода, сохраняя информацию, считанную с диска последней, в системной памяти, использует средство подкачки страниц диспетчера виртуальной памяти для автоматической записи информации на диск в фоновом режиме.
- Слой абстрагирования от оборудования (HAL) это кодовая прослойка между исполнительной системой NT и аппаратной платформой, на которой работает ОС. Она скрывает аппаратно-зависимые детали, такие как интерфейсы ввода/вывода, контроллеры прерываний и механизмы межпроцессорных связей. Чтобы обращаться к аппаратуре непосредственно, исполнительная система NT сохраняет максимальную переносимость, обращаясь к функциям HAL, когда ей нужна платформенно-зависимая информация.
Windows NT – это переносимая ОС с ограничением объема кода, который зависит от конкретной архитектуры оборудования. Код, зависящий от платформы, т. е. от способа реализации производителем, располагается в HAL и поставляется с компьютером. Драйверы устройств содержат код, зависящий от устройства, но избегают кода, зависящего от процессора или платформы, вызывая процедуры ядра NT и HAL.