Архитектура операционных систем семейства Windows NT. 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Архитектура операционных систем семейства Windows NT.



Windows NT – это относительно новая операционная система. Она была разработана в 1989 г. как операционная система 90-х годов и позднее. Базовая идея покоится на объектно-ориентированном программировании, строя операционную систему на модулях. Это идея была также распространена на ядро операционной системы, так чтобы ядро было функционально независимо от аппаратуры. Это было достигнуто, используя уровень абстрагирования от аппаратуры (hardware abstraction layer, HAL).

HAL Следуя объектно-ориентированной модели, все компоненты операционной системы взаимодействуют, посылая сообщения друг другу. Вызовы к системным сервисам реализованы по средством сообщений, который посылаются из процесса в пользовательском режиме в сервис ядра операционной системы. Это позволяет каждой части ОС разрабатываться независимо и увеличивает общую надежность проекта. Приложения не имеют непосредственный доступ к аппаратуре, когда управление осуществляется сервисами, запущенными на уровне ядра. Это позволяет переносить NT легко на другие аппаратные платформы.

Управление задачами Процессы в Windows NT принадлежат двум различным классам приоритетов: динамическому и реального времени. Большинство процессов принадлежат динамическому классу, который допускает изменение своих приоритетов операционной системой в зависимости от таких факторов как являются ли они фоновыми задачами или они недавно ожидают. Это хорошо для GPOS (General propose OS), так как позволяет всем потокам быть запущенными и предоставляет пользователям более быструю реакцию от активного приложения. Однако правила, определяющие эти изменения приоритетов не подходят для RTOS (real-time OS). Поэтому Microsoft включила ряд приоритетов выше динамического класса, назвав их (Real-Time Class) класс приоритетов реального времени.

Потоки, запущенные с этими приоритетами всегда выполняются до тех, которые запущены с приоритетами из динамического класса. Операционная система не изменяет их приоритет никогда, таким образом оставляет большой контроль за разработчиком. Microsoft не рекомендует, чтобы потоки тратили много времени в этом классе, так как они имеют приоритет выше чем некоторые системные задачи, такие как сброс кэша диска и контроль ввода.

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

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

Память Виртуальная память была включена с самого начала и каждый процесс запускается в своем собственном адресном пространстве. Это увеличивает надежность предотвращая процессы от разрушающего воздействия других процессов. Но это также изолирует задачи от аппаратуры и намного более сложно иметь доступ к ним непосредственно.

Управление виртуальной памятью включает механизм свопинга. Для бизнес-приложений это прекрасно, но для систем реального времени, которые должны откликаться на внешние события в предопределенных временных рамках, это веет к непредсказуемости, когда система должна получить страницу памяти с диска. Поэтому Windows NT позволяет закрыть страницы в памяти, вызвав функцию VirtualLock. Память для окна может быть свопирована, если оно сжато в иконку. Таким образом, можно избежать проблемы свопинга для приложений реального времени, ограничиваясь доступной физической памятью.

На уровне драйвера устройств, однако, свопинг можно обойти.

Метод управления прерываниями.

Системы реального мира взаимодействуют с реальным миром через аппаратуру компьютера. Внешние события преобразуются в прерывания и управляются драйверами устройств. Прерывания генерируются аппаратурой. На них откликаются драйверы устройств. Чтобы увеличить оперативность отклика ОС на прерывание был выбран оригинальный механизм. Управление прерываниями происходит в два этапа. Во-первых, прерывания управляются очень короткими Interrupt Service Routine (ISR) (модуль обслуживания прерываний). Он выполняет минимальную работу по сохранению содержимого аппаратных регистров и подтверждает прерывание. Затем он для остатка работы запрашивает DPC (Deferred Procedure Call) (процедура отложенного вызова), которая выполняется позднее. DPC размещается в очереди FIFO и запускается тогда, когда предыдущие DPC закончили свое выполнение. В очереди DPC нет никаких приоритетов. Так, что DPC с более низким приоритетом прерываний будет выполняться до DPC с более высоким приоритетом (но позже пришедшим). Нет способа определить сколько DPC стоит в очереди и сколько времени они будут выполняться

Win 32 API Все эти точки выглядят скорее как отрицательные для тех кто ищет серьезную надежную RTOS. Но Windows NT имеет свои преимущества и главный из них Win32 API. Этот интерфейс прикладного программирования должен быть широко используемым в мире так, что существует много разработчиков, знакомы с ним и хорошо его понимающих. У него много объектов синхронизации. Легкие и понятные инструменты разработчика. Это значительно упрощает работу программистов и открывает рынок реального времени для новых разработчиков и производителей.

 



Поделиться:


Последнее изменение этой страницы: 2017-02-06; просмотров: 490; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 13.58.112.1 (0.007 с.)