Ос семейства windows nt являются ос реального времени

Сегодня становится широко распространенным желание потребителей использовать Windows NT в системах реального времени. Для этого имеется ряд весомых, на первый взгляд, причин: Win32 API считается стандартом, а на его базе разработано огромное количество программ; графический интерфейс стал сегодня очень популярным; для NT имеется немало готовых решений для коммерческих применений; в среду NT включены многие виды средств разработки. Тем не менее, возможно ли использование Windows NT для разработки системы реального времени?

Сегодня становится широко распространенным желание потребителей использовать Windows NT в системах реального времени. Для этого имеется ряд весомых, на первый взгляд, причин: Win32 API считается стандартом, а на его базе разработано огромное количество программ; графический интерфейс стал сегодня очень популярным; для NT имеется немало готовых решений для коммерческих применений; в среду NT включены многие виды средств разработки. Тем не менее, возможно ли использование Windows NT для разработки системы реального времени?

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

1. «Жесткие» и «мягкие» системы реального времени

Система реального времени (СРВ) — это аппаратно-программный комплекс, который должен своевременно и предсказуемо реагировать на поступающие извне раздражители. Основное требование к СРВ — своевременность обработки событий. Реакция на событие должна уложиться в пределы заранее определенного лимита времени, а превышение этого лимита или опоздание считается программным сбоем.

В обычных интерактивных системах, не являющихся СРВ, например, в текстовом редакторе, превышение временного лимита не считается программным сбоем, а классифицируется как проблема производительности, которая может быть решена путем установки более мощного процессора.

Еще одним важным требованием к СРВ является одновременная обработка событий: если несколько событий происходят одновременно, все они должны быть обработаны своевременно. Это означает, что имманентным свойством системы реального времени должен быть параллелизм. Чтобы этого добиться, необходимо установить более одного процессора или придерживаться многозадачного подхода.

В зависимости от отношения к опозданиям системы реального времени делятся на «жесткие» (hard) и «мягкие» (soft).

В жесткой системе:

  • опоздания не допускаются ни при каких обстоятельствах;
  • в случае опоздания результаты обработки уже никому не нужны;
  • опоздание считается катастрофическим сбоем;
  • стоимость опоздания бесконечно велика.

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

В мягкой системе реального времени:

  • повышается стоимость опоздания;
  • допускается низкая производительность в случае опоздания.

Примером мягкой системы является подсистема сетевого интерфейса. Если подтверждение о приеме посланного пакета не поступило после истечения определенного времени, то пакет считается потерянным. В этом случае можно просто повторить посылку пакета и примириться со значительным снижением производительности системы.

Итак, разница между жесткой и мягкой системами зависит от предъявляемых к ним требований. Система называется жесткой, если «система не должна опаздывать никогда», и мягкой, если «система не должна опаздывать, как правило».

Не следует путать операционную систему реального времени (ОС РВ) с системой реального времени. Первая ОС используется для создания системы реального времени. ОС РВ должна быть предсказуемой — это не значит, что она должна быть быстрой, это означает, что при построении СРВ можно добиться того, чтобы максимальное время, затрачиваемое на определенную работу, укладывалось в заранее установленный лимит, сравнимый с требованиями приложения. Windows 3.11, например, даже на сколь угодно быстром процессоре бесполезна для построения СРВ, поскольку любое приложение может захватить управление и заблокировать все остальное.

2. Удовлетворяет ли Windows NT требованиям, предъявляемым к ОС РВ?

2.1. Нити и приоритеты

Очевидно, что NT — многонитевая ОС, она позволяет вытеснение и тем самым удовлетворяет требованию 1 (см. врезку).

В Windows NT имеются два класса приоритетов: класс реального времени и динамический класс. Процессы в классе реального времени имеют фиксированный приоритет, менять который может лишь само приложение, тогда как приоритет процессов динамического класса может меняться диспетчером. Процесс имеет базовый уровень приоритета. Нить в процессе может иметь приоритет в диапазоне плюс/минус 2 около базового уровня или один из двух крайних уровней класса (16 или 31 для реального времени). Например, нить в процессе с базовым уровнем 24 может иметь приоритет 16, 22 — 26, 31. Очевидно, что гарантировать предсказуемость системы можно только при использовании процессов первого класса.

Казалось бы, второе требование также удовлетворено. Но малое число возможных уровней препятствует реализации СРВ на базе NT. Большинство современных ОС РВ позволяет иметь по крайней мере 256 различных уровней. Чем больше имеется уровней, тем более предсказуемо поведение системы. В Windows NT имеется только 7 различных уровней для нити в данном процессе. В результате многие нити будут выполняться с одинаковыми приоритетами и, как следствие, предсказуемость поведения системы будет посредственной. Более того, общее число уровней для всех процессов класса только 16 и положение не спасает даже замена нитей процессами, не говоря уже о том, что переключение контекста для процессов снижает производительность.

В ОС РВ вызовы системы синхронизации (семафоры или критические секции) должны уметь управлять наследованием приоритетов. В Windows NT это невозможно, поэтому требование 4 не удовлетворяется.

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

Таким образом, малое число приоритетов и невозможность решить проблему инверсии делают Windows NT пригодной только для очень простых СРВ.

2.2. Предсказуемость системных вызовов Win32 API

Для тестирования системных вызовов был написан процесс (принадлежащий классу реального времени), содержащий вызовы системы синхронизации нитей, и измерялось время, затраченное на каждый вызов. При запуске на Pentium 100 МГц с 24 Мбайт памяти оказалось, что максимальное значение на вызове mutex достигает 670 мкс при среднем времени 35 мкс. Это произошло потому, что во время работы теста происходили обращения к диску и по сети. Если компьютер искусственно загрузить обращениями к диску и сетевой обработкой, то задержки возрастают аж до нескольких миллисекунд. Win32 API очень богат, но не предназначен для реального времени. Например, запросы mutex обрабатываются в порядке поступления, а не в порядке приоритетов, что снижает предсказуемость. Для синхронизации нитей в одном процессе критические секции следует предпочесть всем другим способам (этот вызов затрачивает всего несколько мкс по сравнению с 35 мкс на вызов mutex).

Несмотря на все достоинства API, ядро и менеджер ввода/вывода Windows NT недостаточно приспособлены к обработке событий реального времени на уровне приложений.

2.3. Управление прерываниями в NT

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

Прерывания обрабатываются в два этапа. Сначала выполняется очень короткая программа обслуживания прерываний (ISR). Впоследствии работа завершается выполнением DPC — процедуры отложенного вызова. Возникает следующий поток событий:

  • Происходит прерывание.
  • Процессор сохраняет PC, SP и вызывает диспетчер.
  • ОС сохраняет контекст и вызывает ISR.
  • В ISR выполняется критическая работа (чтение/запись аппаратных регистров).
  • DPC ставится в очередь.
  • ОС восстанавливает контекст.
  • Процессор восстанавливает PC, SP.
  • Ожидающие в очереди DPC выполняются на уровне приоритета DISPATCH_LEVEL.
  • После завершения всех DPC ОС переходит к выполнению приложений.

ISR должно быть как можно короче, поэтому большинство драйверов выполняют значительную часть работы в DPC (которая может быть вытеснена другим ISR), ожидая окончания других DPC, ранее попавших в очередь (все DPC имеют одинаковый приоритет).

Из документации по NT следует, что ISR может быть вытеснена другим ISR с более высоким приоритетом, и что DPC имеет более высокий приоритет, чем пользовательские и системные нити. Но поскольку все DPC имеют одинаковый уровень приоритета и ISR должна быть сведена к минимуму, ваш DPC будет вынужден ждать других и ваше приложение будет зависеть от остальных драйверов устройств непредсказуемым образом. Задержки системных вызовов, описанные в предыдущем разделе, обусловлены именно тем, что DPC от драйверов жесткого диска и сети блокируют все другие.

В настоящих ОС РВ разработчик знает, на каком уровне выполняются драйверы всех других устройств. Обычно имеется свободное пространство для прерываний выше стандартных драйверов. Вся критическая работа выполняется в ISR, что позволяет настроить конфигурацию драйвера в зависимости от временных ограничений приложения.

2.4. Управление памятью в NT

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

3. Может ли Windows NT использоваться в качестве ОС РВ?

Итак, можно сделать вывод, что Windows NT, предназначенная в основном для классических приложений, не является хорошей платформой для поддержания обработки в реальном времени. Тем не менее на ее базе можно все-таки построить простую мягкую СРВ, время от времени допускающую опоздания.Следующие обстоятельства могут облегчить построение СРВ на базе NT:

  • загрузка CPU низка (DPC имеют достаточно времени);
  • критическая работа (или даже вся) делается на уровне DPC или (еще лучше) на уровне ISR. В таком случае непонятно, зачем вообще нужна ОС.

Но для жесткой СРВ использование Windows NT невозможно — система реального времени никогда не будет предсказуемой.Что следует изменить в Windows NT, чтобы ее можно было использовать в жестких СРВ?

a) Класс процессов реального времени должен иметь больше уровней.

б) Необходимо решить проблему инверсии приоритетов.

в) Время, затрачиваемое каждым системным вызовом, должно быть предсказуемо и известно.

г) Система прерываний должна быть заменена целиком:

  • DPC должны иметь много уровней приоритетов.
  • DPC должны быть вытесняемыми более приоритетными DPC.
  • Драйверы от третьих фирм и системные драйверы должны быть настраиваемыми (уровни прерываний ISR, уровни прерываний DPC)
  • Драйверы от третьих фирм должны быть открыты для разработчиков, должно быть известно по крайней мере максимальное время, затрачиваемое на работу ISR и DPC.
  • Должно быть известно время маскирования прерываний.

Готовы ли разработчики Microsoft ввести эти усовершенствования в NT или они полагают, что рынок слишком мал, и оставят его свободным для третьих фирм?

4. Коммерческие решения, расширяющие NT возможностями обработки в реальном времени

Существуют разные варианты использования технологии NT для разработки систем реального времени:

  • Использование NT как она есть для построения мягкой системы реального времени.
  • Реализация Win32 API над другой ОС РВ.
  • Совместная работа на одном процессоре NT и другой ОС РВ (или ее части).
  • Использование мультипроцессорной архитектуры, когда NT выполняется на одном процессоре (или более), а часть реального времени — на остальных.

Во многих решениях производители модифицируют HAL или ядро NT. Политика Microsoft заключается в том, чтобы не допускать никаких модификаций ядра NT, кроме драйверов устройств. Это единственно возможный способ связи с ядром. Политика компании относительно HAL другая. HAL (Hardware Abstraction Layer) — уровень аппаратных абстракций — уровень, лежащий ниже программного обеспечения, который виртуализирует интерфейс NT с аппаратурой, допуская переносимость NT с одной аппаратной платформы на другую. Такие модификации HAL, как манипуляции с часами или замена методов обработки прерываний, представляются беспримерно незаконным использованием HAL. Они создают нестандартную среду и могут привести к проблемам сопровождения, если, например, Microsoft изменит HAL в следующих версиях. Поэтому различие в решениях, предлагаемых поставщиками, заключается в попытках сделать модификации HAL минимальными.

Также возможен перехват HAL посредством трюков с процессором Intel. Однако это можно реализовать только на платформе Intel. Механизмы перехвата посредством обработки исключительных ситуаций на уровне устройства поглощают определенную вычислительную мощность.

4.1. Использование NT как таковой

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

Иногда вводят усовершенствования в механизм обработки прерываний. Единственный способ сделать это — перехватить прерывание, для чего необходимо добавить специальное аппаратное расширение. LP-Elektronik, например, перехватывает прерывание и использует затем NMI (немаскируемое прерывание, не используемое на уровне NT) для обработки событий реального времени. Этот подход применим только тогда, когда процессор имеет отдельный стек прерываний. Программа NMI должна быть написана аккуратно: в ней нельзя использовать вызовы ОС и она должна быть как можно короче, чтобы не потерять другие прерывания. Такое решение дает минимальную задержку прерывания, но требует дополнительной аппаратуры. Как и в других решениях, здесь необходим дополнительный механизм связи между NT и частью реального времени. Разница в том, что при этом требуется большая аккуратность в использовании NMI.

4.2. Реализация Win32 API над другой ОС РВ

Добавление Win32 API к ОС, предназначенной для обработки в реальном времени, избавляет от необходимости модифицировать HAL или использовать другие трюки с NT. Преимущества такого подхода:

  • имеется переносимость,
  • небольшой след,
  • поведение ОС РВ известно.

Недостатки:

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

Среди коммерческих реализаций этого подхода — QNX и VxWorks, использующие библиотеку Willows.

4.3. Совместная работа на одном процессоре NT и ОС РВ

Мощность современных процессоров достаточна для одновременного функционирования NT и программ реального времени. Возможны две разновидности такого подхода:

  • модификация HAL c перехватом прерываний и включением небольшого диспетчера или ОС РВ;
  • выполнение NT, как одной из задач над (супервизором) ОС РВ.

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

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

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

Задачи реального времени используют собственный интерфейс с системой, в большинстве случаев отличный от Win32 API. Среда разработки может быть обычной для используемой ОС РВ средой и может взаимодействовать со средой NT. Задачи реального времени будут выполняться, не получая преимуществ от механизма защиты памяти NT. Особо аккуратно следует продолжать выполнение частей реального времени, когда NT рухнет и сгенерирует голубой экран. След памяти — это комбинация следа NT (8 Мбайт в стандартной конфигурации) плюс минимальные требования для части ОС РВ.

Простота части реального времени может привести к высокой производительности, которая зависит от используемого ядра реального времени. Преимущества здесь таковы:

  • Сохранение (почти) всей среды NT нетронутой означает, что все программное обеспечение, устройства и драйверы устройств NT можно использовать (чтобы выполнять части приложения, не связанные с реальным временем). Поддерживается совместимость с NT;
  • Можно включить защиту для задач реального времени, зависящую от используемой ОС РВ.

Недостатки:

  • Отсутствует переносимость между реальным временем и средой NT, за исключением случая, когда RT-API разработан на базе Win32;
  • драйверы устройств NT нельзя использовать в части реального времени;
  • Среда разработки усложняется, если для задач реального времени требуется отдельная среда;
  • Может быть много уровней задач и поэтому много уровней определений контекста. Переключение этих контекстов требует времени.

Известны следующие коммерческие реализации подхода, не требующего модификации аппаратуры: IMAGINATION с HyperKERNEL; RADISYS с комбинацией iRMX/NT; VenturCom с RTX, KPX и RTAPI.

В реализации фирмы RadiSys ОС РВ iRMX работает, как первичная ОС, загружающая Windows NT в качестве низкоприоритетной задачи. Пользователь работает только с NT, не видя и не чувствуя iRMX. Все управляющие функции выполняются, как высокоприоритетные задачи iRMX, изолированные в памяти от приложений и драйверов NT. Используя функции защиты памяти внутри процессора Intel, Windows NT защищена от задач реального времени.

Комбинация iRMX/NT преодолела трудности, которые возникают при модификации HAL и оставляют пользователя уязвимым при сбоях жесткого диска, сбоях драйверов и системных сбоях NT («голубой экран смерти»). В этом решении управляющая программа в случае краха NT может либо продолжить нормальное выполнение, либо произвести правильное закрытие системы (shutdown).

Реализация фирмы VenturCom состоит из двух этапов. На первом — мягкая реализация RTX 3.1 содержит интерфейс прикладной программы реального времени RTAPI, который дает время реакции 1-5 мск. RTAPI 1.0 работает со стандартным NT. Единственное изменение, обеспечивающее лучшую синхронизацию событий реального времени, внесено в часы. Так как в Windows NT имеются некоторые плохо предсказуемые процессы, то RTAPI позволит построить только мягкую СРВ с небольшим временем отклика, но недостаточно предсказуемую. Впрочем, большую часть непредсказуемости NT можно устранить, ограничив доступ к системному диску и сети.

Чтобы сделать NT более предсказуемой, необходимо прерывать ее внутренние задачи. В основе второй жесткой реализации RTX 4.1 лежит модификация HAL. В обеспечении детерминизма важную роль играют программируемые часы. В каждый тик часов — аппаратное прерывание с регулярными интервалами времени — предпочтение отдается задаче реального времени. Оставшееся время предоставляется процессам NT, в том числе и процессам мягкого реального времени. Чем чаще тикают часы, тем больше возможностей у процессора для выполнения задач реального времени. Необходимо добиться баланса между многими факторами: частота тиков, время, выделенное для обработки в реальном времени, время, выделенное для выполнения задач NT.

4.4. Использование многопроцессорной архитектуры

Простое решение здесь состоит в том, что NT выполняется на одной группе процессоров, а часть реального времени — на другой. Возможно применение архитектур параллельной шины с VMEbus, PCI, PMC или архитектур последовательной шины с Ethernet. Если необходимо, подсистемы могут быть связаны механизмом IPC и процедурами удаленного вызова. Преимущества такого решения:

  • Нет модификаций каждой ОС;
  • Можно применять в больших сложных системах;
  • Для каждой подсистемы можно выбрать свою, наиболее подходящую ОС РВ;
  • Можно использовать имеющиеся среды разработки.

Недостатки:

  • Высокая стоимость;
  • Поведение в реальном времени зависит от поведения канала межпроцессорной связи. Поведение прерываний на шине в таких структурах предсказуемо лишь при хорошей организации;
  • Среды разработки относятся к разным мирам.

***

Чудес не бывает. Если вы хотите сохранить высокую совместимость с NT, то надо будет заплатить и более высокую цену. Если вы интересуетесь только частью интерфейса Win32 API, то можете работать с ОС РВ, имеющей этот интерфейс.

Имеется множество запросов на комбинации NT и РВ. Даже если это и не лучшее решение, рынок должен следовать желаниям заказчика. Разумеется, лучше всего было бы регулярное модифицировать саму Windows NT. Но пока компания Microsoft оставляет эту нишу свободной и она спонтанно заполняется производителями, зачастую использующими разные трюки, приводящие к несовместимости. Следует помнить, что использование трюков может в будущем привести к проблемам сопровождения.


Необходимые требования к ОС для обеспечения предсказуемости

Требование 1. ОС РВ должна быть многонитевой и допускать вытеснение (preemtible).

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

Требование 2. Диспетчеризация должна осуществляться на базе приоритетов.

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

Требование 3. Механизм синхронизации нитей должен быть предсказуемым.

Механизм захвата ресурсов и межнитевых связей необходим, поскольку нити разделяют общие ресурсы.

Требование 4. Должна существовать система наследования приоритетов.

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

Чтобы избежать этого, ОС РВ должна допускать «наследование» приоритета, подталкивая нить с низшим приоритетом. Наследование приоритета означает, что блокирующая нить наследует приоритет нити, которую она блокирует (конечно, только если последняя обладает более высоким приоритетом).

Требование 5. Временные характеристики ОС должны быть предсказуемы и известны.

Разработчик СРВ должен знать, сколько времени затрачивается на ту или иную системную работу. Кроме того, должны быть известны уровни системных прерываний и уровни IRQ (линий запросов прерываний) драйверов устройств, максимальное время, которое они затрачивают и т.п.

Евгений Хухлаев — сотрудник Института прикладной математики имени М.В. Келдыша РАН, (Москва).

Сегодня становится
широко распространенным желание
потребителей использовать Windows
NT
в системах
реального времени [9]. Для этого имеется
ряд весомых, на первый взгляд, причин:
Win32
API
считается стандартом, а на его базе
разработано огромное количество
программ; графический интерфейс стал
сегодня очень популярным; для NT
имеется немало готовых решений для
коммерческих применений; в среду NT
включены многие виды средств разработки.
Тем не менее, возможно ли использование
Windows
для разработки системы реального
времени?

Перечислим необходимые требования к ос для обеспечения предсказуемости.

Требование 1.
ОС РВ должна
быть многонитевой и допускать вытеснение
(preemtible).

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

Требование 2.
Диспетчеризация
должна осуществляться на базе приоритетов.

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

Требование 3.
Механизм
синхронизации нитей должен быть
предсказуемым.

Механизм захвата
ресурсов и межнитевых связей необходим,
поскольку нити разделяют общие ресурсы.

Требование 4. Должна
существовать система наследования
приоритетов.

Разделение нитями
с разными приоритетами общих ресурсов
может привести к классической проблеме
инверсии приоритетов. Чтобы избежать
этого, ОС РВ должна допускать «наследование»
приоритета, подталкивая нить с низшим
приоритетом. Наследование приоритета
означает, что блокирующая нить наследует
приоритет нити, которую она блокирует
(конечно, только если последняя обладает
более высоким приоритетом).

Требование 5.
Временные
характеристики ОС должны быть предсказуемы
и известны.

Разработчик СРВ
должен знать, сколько времени затрачивается
на ту или иную системную работу. Кроме
того, должны быть известны уровни
системных прерываний и уровни IRQ
(линий запросов прерываний) драйверов
устройств, максимальное время, которое
они затрачивают и т.п.

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

Удовлетворяет ли Windows nt требованиям, предъявляемым к ос рв?

Очевидно, что NT
– многонитевая ОС, она позволяет
вытеснение и тем самым удовлетворяет
требованию 1.

В Windows
NT
имеются
два класса приоритетов: класс реального
времени и динамический класс. Процессы
в классе реального времени имеют
фиксированный приоритет, менять который
может лишь само приложение, тогда как
приоритет процессов динамического
класса может меняться диспетчером.
Процесс имеет базовый уровень приоритета.
Нить в процессе может иметь приоритет
в диапазоне плюс/минус 2 около базового
уровня или один из двух крайних уровней
класса (16 или 31 для реального времени).
Например, нить в процессе с базовым
уровнем 24 может иметь приоритет 16, 22 –
26, 31. Очевидно, что гарантировать
предсказуемость системы можно только
при использовании процессов первого
класса.

Казалось бы, второе
требование также удовлетворено. Но
малое число возможных уровней препятствует
реализации СРВ на базе NT.
Большинство современных ОС РВ позволяет
иметь по крайней мере 256 различных
уровней. Чем больше имеется уровней,
тем более предсказуемо поведение
системы. В Windows
NT
имеется
только 7 различных уровней для нити в
данном процессе. В результате многие
нити будут выполняться с одинаковыми
приоритетами и, как следствие,
предсказуемость поведения системы
будет посредственной. Более того, общее
число уровней для всех процессов класса
только 16 и положение не спасает даже
замена нитей процессами, не говоря уже
о том, что переключение контекста для
процессов снижает производительность.

В ОС РВ вызовы
системы синхронизации (семафоры или
критические секции) должны уметь
управлять наследованием приоритетов.
В Windows NT
это невозможно, поэтому требование 4 не
удовлетворяется.

Еще одна проблема
обусловлена реализацией некоторых
вызовов системы GUI.
Они обрабатываются синхронно (вызывающая
нить приостанавливается, пока не
завершится системный вызов) процессом,
выполняемым с более низким приоритетом
(динамического класса). В результате
нить может помешать нити с более высоким
приоритетом – возникает инверсия
приоритета.

Таким образом,
малое число приоритетов и невозможность
решить проблему инверсии делают Windows
NT
пригодной
только для очень простых СРВ.

Соседние файлы в предмете Системы реального времени

  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
Автор статьи

Люба Снежкова

Эксперт по предмету «Информатика»

Задать вопрос автору статьи

Общие понятия об операционных системах

Ресурсы компьютера, такие как процессор, оперативная память, периферийные устройства, могут эффективно работать только в том случае, если их совместную работу координируют специальные программы. Иначе устройства будут работать несогласованно или вообще не смогут приносить пользу. Поэтому на любом компьютере используется операционная система. Операционной системой (ОС) – называется комплекс управляющих программ, предназначенных для управления вычислительным процессом и наиболее эффективного использования всех ресурсов вычислительной системы. Операционная система осуществляет планирование вычислительного процесса и управление его ходом. Все программы, которые мы устанавливаем на компьютер, работают под управлением и контролем операционной системы. Все устройства, которые мы подключаем к компьютеру, «общаются» с операционной системой через специальные программы – драйверы устройств. Кроме того, операционная система предоставляет пользователю интерфейс для взаимодействия с ресурсами компьютера.

Учим создавать игры

Создавай 3D-графику и концепты, придумывай персонажей, учись программировать с нуля

Записаться на курс

Операционные системы в зависимости от их назначения могут обладать или не обладать следующим рядом свойств:

  • Многозадачность — возможность запускать и выполнять одновременно более одной программы.
  • Работа в режиме реального времени. ОС с этим свойством используются чаще всего для управления автоматическими комплексами. Их главная черта – это способность быстро реагировать на непредсказуемый поток внешних событий;
  • Многопользовательский режим. Специальный режим, который позволяет работать нескольким пользователям за несколькими терминалами, разделяя при этом ресурсы одного и того же компьютера;
  • Распределенность. При распределенном режиме работы пользователь , может обращаться к ресурсам разных компьютеров. ОС так управляет этими ресурсами, что у пользователя создается впечатление работы за одним единственным компьютером.
  • Встроенность. Встроенные ОС работают на компьютере, который встроен в какое-то устройство и управляет этим устройством. Других функций такой компьютер не выполняет. Встроенная ОС поставляется только вместе с устройством и не распространяется отдельно от него.
  • Интерактивность. Интерактивные системы рассчитаны на пользователя, который сидит за терминалом и ожидает отклика системы на свои действия.

«Операционная система Windows» 👇

Противоположностью интерактивным ОС являются ОС с пакетной обработкой, которые вообще не предполагают наличия пользователя.

Интерактивные системы могут иметь текстовый интерфейс, а могут иметь графический интерфейс.

Операционные системы семейства Windows

Современные ОС семейства Windows – это графические, интерактивные, многозадачные ОС корпорации Microsoft. Семейство ОС Windows состоит из двух групп:

  • Windows 9x. Группа ОС для $16$ и $32$ –разрядных процессоров. Производились с $1995$ по $2000$ год. В настоящее время ОС этой группы являются устаревшими;
  • Windows NT. Это группа современных ОС. Все ОС этой группы бывают $32$ и $64$-разрядными и работают соответственно на $32$ и $64$-разрядных процессорах. Именно к этой группе относятся популярные системы Windows XP, Windows $7$, Windows $8$. Имеются ОС, предназначенные для управления серверными компьютерами ;
  • Windows для смартфонов. К этой группе относятся ОС Windows CE, Windows mobile, Windows Phone, Windows $10$ Mobile. Системы этой группы можно приобрести исключительно в составе готовых смартфонов.;
  • Windows Embedded. Группа встраиваемых ОС реального времени применяемых для различных специализированных устройств. Например, для информационных и платежных терминалов, систем видеонаблюдения.

Далее работа операционной системы будет проиллюстрирована на примере Windows $7$.

Файловая система

Одним из основных понятий неразрывно связанных с понятием операционной системы является файловая система. Файловой системой называется целый сложный механизм, который ответственен за сохранение данных на жестком диске и других внешних носителях. Этот механизм работает следующим образом. Для того чтобы пользователь мог обращаться к данным, которые он сохранил на диске, эти данные должны быть как-то поименованы естественным для пользователя образом. Такая поименованная часть диска называется файлом. Размер файла может быть любым – пользователь сохраняет под единым именем столько данных, сколько он считает целесообразным. Область данных (винчестер, флешку, съемный винчестер и т.д.) разбивается на так называемые секторы размером по $512$ байт. А секторы объединяются в кластеры. Кластер является минимальной адресуемой единицей дисковой памяти, которая выделяется под хранение файла. Один кластер может хранить данные только одного файла. Размер кластера фиксирован и является различным для разных файловых систем. Процесс разметки области хранения данных называется форматированием.

Рисунок 1.

ОС Windows $7$ поддерживает четыре типа файловых систем:

  • FAT16. Это довольно старая файловая система, предназначенная для дисков размером менее $512$ Мб. Максимальный объем, который поддерживает FAT $16$, равен $2$ Гб.
  • FAT32. Используется для флеш-памяти размером больше $2$ Гб.
  • exFAT. Была разработана как улучшенная версия FAT$32$ для флеш-памяти.
  • NTFS. Эта файловая система является базовой для Windows $7$. Она была создана, чтобы полностью вытеснить FAT$16$ и FAT$32$. NTFS быстрее и надежнее своих предшественниц, имеет средства для шифрования данных. ОС Windows $7$ может быть установлена только на диск, который отформатирован в файловой системе NTFS, но при этом Windows может работать с другими областями хранения данных, которые отформатированы в FAT$16$, FAT$32$ и exFAT.

Рисунок 2.

Для операционных систем других семейств используются совершенно другие файловые системы. Например, для ОС Linux жесткий диск форматируется в файловой системе ext$3$. Можно на одном и том же компьютере один раздел диска отформатировать в NTFS и установить там Windows $7$, а другой раздел отформатировать в ext$3$ и установить на нем Linux. В этом случае работая под Windows пользователь вообще не будет видеть раздел отформатированный в ext$3$ и никак не сможет получать из него данные.

Для того чтобы узнать, какая файловая система (из доступныx для Windows) выбрана на определенном разделе жесткого диска нужно нажать правой кнопкой мыши на пиктограмме диска и выбрать в контекстном меню пункт «свойства». В открывшемся окне можно прочитать информацию о размере диска, количестве свободного места и файловой системе.

Находи статьи и создавай свой список литературы по ГОСТу

Поиск по теме

1. Концепции Windows NT

Операционная система Windows NT реализована в двух вариантах: Windows NT Server и Windows NT Workstation. Windows NT Server 4.0 — сетевая операционная система с приложениями для Internet, сервисами файлов и печати, службой удаленного доступа, встроенным маршрутизатором, индексированием файлов и управлением сетью. Второй вариант Windows NT — Windows NT Workstation 4.0 во многом напоминает NT Server, но она оптимизирована в качестве операционной системы для рабочей станции. С точки зрения архитектуры и возможностей Windows NT Server является надмножеством Windows NT Workstation и включает в себя все возможности последней. Далее, в случаях когда не указывается, какая из ОС имеется в виду, комментарии относятся к обеим.

1.1. История создания, основные версии, перспективы развития

1.1.1. Истоки Windows NT

Начало работ по созданию Windows NT приходится на конец 88го года. Microsoft поручила Дэвиду Катлеру (David Cutler) возглавить новый проект в области программного обеспечения: разработку ОС новой технологии (New Technology — NT). Дэвид Катлер был главным консультантом фирмы DEC, он проработал в этой фирме 17 лет, разрабатывая ОС и компиляторы: VAX/VMS, ОС для MicroVAX I, OS RSX-11M, компиляторы VAX PL/1, VAX C.

Сначала Windows NT развивалась как облегченный вариант OS/2 (OS/2 Lite), который за счет усечения некоторых функций мог бы работать на менее мощных машинах. Однако со временем, увидев как успешно принимается потребителями Windows 3.0, Microsoft переориентировалась и стала разрабатывать улучшенный вариант Windows 3.1. Новая стратегия Microsoft состояла в создании единого семейства базирующихся на Windows операционных систем, которые охватывали бы множество типов компьютеров, от самых маленьких ноутбуков до самых больших мультипроцессорных рабочих станций.

Windows NT, как было названо следующее поколение Windowsсистем, относится к самому высокому уровню в иерархии семейства Windows. Эта операционная система, первоначально поддерживавшая привычный графический интерфейс (GUI) пользователя Windows, явилась первой полностью 32-разрядной ОС фирмы Microsoft. Win32 API — программный интерфейс для разработки новых приложений — сделал доступными для приложений улучшенные свойства ОС, такие как многонитевые процессы, средства синхронизации, безопасности, ввода-вывода, управление объектами.

Концептуальные преимущества Windows NT по сравнению с парой MS-DOS/Windows 3.1 были очевидны. Ее 32-битная основа вместе с истинными многозадачностью и многонитевостью существенно повышали потенциал системы.

Первые ОС семейства NT — Windows NT 3.1 и Windows NT Advanced Server 3.1 появились в июле 1993 года. Кодовое название следующей версии Windows NT 3.5 — Daytona, — совпадающее с названием скоростной трассы во Флориде, возможно, говорило о том, что ее главным достоинством является скорость. Действительно, производительность версии 3.5 возросла в 1,5 раза по сравнению в версией 3.1, и после ее появления многие корпоративные пользователи, которые отвергли версию 3.1 по тем или иным причинам, пересмотрели свое отношение к линии NT: в 1995 году доля Windows NT в своем секторе рынка возросла в 2 раза и составила 15%.

1.1.2. Особенности версии Windows NT 4.0

В августе 1996 года вышла очередная версия Windows NT 4.0. Сначала предполагалось, что эта очередная версия Windows NT получит номер 3.52, однако ей был присвоен номер 4.0, который раньше упоминался в компьютерной прессе в связи с другой ожидаемой версией Windows NT, имеющей кодовое название Cairo. Возможно это говорит о том, что в этой последней версии (Windows NT 4.0) появилось так много новых важных свойств, которые требуют более значимых изменений в кодировке. Новшества, внесенные в Windows NT Server 4.0, в основном связаны с улучшением интерфейса пользователя, расширением поддержки Internet, появлением новых и модернизацией существующих инструментов администрирования и повышением производительности системы.

В Windows NT 4.0 было внесено много существенных изменений, среди которых наиболее значительными являются следующие:

  • реализация интерфейса в стиле Windows 95;
  • ориентировка в сторону Internet и intranet;
  • архитектурные изменения, позволившие резко повысить производительность графических операций;
  • модификация средств взаимодействия с NetWare — Gateway и клиент NCP поддерживают теперь NDS;
  • поддержка многопротокольной маршрутизации;
  • появление в Windows NT 4.0 эмулятора Intel’овских процессоров для RISC-платформ.

Имеются и другие улучшения в версии 4.0. Так, например, в Windows NT Server 4.0 значительно улучшена наращиваемость по сравнению с Windows NT Server 3.51, что позволяет достигать значительно более высокой производительности на компьютерах с 4 процессорами, а также обеспечивает линейный рост производительности на машинах с восемью и большим числом процессоров.

Производительность Windows NT Server 4.0 при работе в качестве сервера файлов также значительно возросла и превысила производительность Windows NT Server 3.51 по некоторым данным более чем в 2 раза.

Новые административные средства Windows NT могут работать удаленно на клиентах Windows 95. Кроме того, Windows NT Server обеспечивает сервис удаленной загрузки для клиентов Windows 95. (Это полезно для бездисковых рабочих станций.)

В Windows NT 4.0 использован новый графический интерфейс с пользователем в стиле Windows 95. Хотя некоторым пользователям такая перемена не всегда нравится, но этим Microsoft восстанавливает принцип «единого интерфейса для всех платформ», который изначально считался одной из сильных сторон Windows NT. В сети с клиентскими станциями, работающими под управлением Windows 95 или Windows NT (а также в смешанной сети, включающей такие станции), администраторы Windows NT Server могут выполнять свои функции, применяя тот же интерфейс, что и пользователи рабочих станций.

Помимо внешних изменений, модернизация графического интерфейса не сильно отразилась на методах управления сетью. Базовый инструментарий администратора Windows NT Server остался прежним. Программы User Manager for Domains, Server Manager, Disk Administrator, Event Viewer, Performance Monitor, DHCP Manager, WINS Manager, Network Client Administrator, License Manager и Migration Tool for NetWare не претерпели существенных изменений. Remote Access Administrator также не изменился, но теперь он перенесен из отдельной папки в меню Administrative Tools. Новый редактор системной политики System Policy Editor, совместимый как с Windows NT, так и с Windows 95, заменил редактор профилей пользователей User Profile Editor, знакомый вам по версиям Windows NT Server 3.x. В версию 4.0 вошли четыре дополнения: административные программы-мастера Administrative Wizards, уже упоминавшийся System Policy Editor, а также расширенное средство Windows NT Diagnostics и программа Network Monitor (программа мониторинга работы сети, ранее поставлявшаяся только в составе продукта Microsoft Systems Management Server).

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

Windows NT 4.0 имеет несколько полезных системных компонентов для мониторинга, заимствованных у Systems Management Server компании Microsoft. Основное приложение — инструмент Performance Monitor, графически отслеживающий выбранные системные события. В частности Performance Monitor может быть использован для получения диаграмм загруженности ЦПУ, общего ввода/вывода сетевых плат и количества переданных байт по HTTP.

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

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

Другие новшества в Windows NT Server 4.0 связаны, в основном, с Internet и intranet. Важное место среди них занимают следующие, вошедшие в комплект поставки, программные компоненты:

  • Internet Information Server (IIS) версии 2.0 — продукт Microsoft, предоставляющий услуги Web-, ftp- и gopher-сервера, возможности Internet Information Server сравнимы, а по ряду тестов и превосходят аналогичный популярный продукт Server Netscape. Microsoft Internet Information Server 2.0, является самым быстрым сервером Web для Windows NT Server — он на 40 процентов превосходит производительность своего предшественника — версию 1.0;
  • Объектная модель распределенных компонентов — Distributed Component Object Model (DCOM), которая обеспечивает безопасную связь между компонентами через Internet;
  • DNS/WINS Server, который позволяет легко находить в Internet или intranet-сетях нужные Web-узлы;
  • технология PPTP (point-to-point tunneling protocol), которая расширяет функциональность сервера удаленного доступа Windows NT Server (RAS) и обеспечивает возможности создания частных сетей в Internet;
  • программа FrontPage, которая позволяет создавать Web-страницы на основе разнообразных шаблонов, проверять правильность ссылок и осуществлять общее управление создаваемыми Web-узлами;
  • индексный сервер Microsoft Search Server, который позволяет легко находить информацию на распределенных серверах intranet-сети в рамках любых документов, в том числе и созданных в Microsoft Office.

Два средства новой системы, предназначенные для работы в Internet, представляют особый интерес для администраторов. Во-первых, это служба имен DNS. Она позволяет использовать DNS-имена, но поддерживает только статическую адресацию. Для снятия этого ограничения Microsoft предлагает интеграцию служб DNS и WINS, назвав это сочетание «истинно динамической DNS». Теперь, когда клиенту WINS нужно определить IP-адрес, соответствующий символьному NetBIOS-имени, он обращается сначала к базе данных WINS, а затем — собственно к DNS. Таким образом, в системе на равных можно применять и динамически распознаваемые имена WINS, и статические имена DNS.

Кроме того, в состав Windows NT 4.0 вошла Web-ориентированная утилита администрирования, открывающая доступ к средствам администрирования Windows NT из любого Web-броузера. Из соображений безопасности для удаленного администрирования следует использовать Web-броузеры, способные регистрировать пользователя непосредственно на сервере Windows NT (т. е. такие, как Internet Explorer) или поддерживать протокол SSL.

Одно из усовершенствований связано с тем, что повышающаяся роль Internet’а и клиент-серверных систем ведет к росту числа мобильных пользователей. Microsoft в связи с этим улучшила RAS (улучшила поддержку ISDN) и предоставила средства безопасной работы с RAS через Internet. В RAS реализованы протоколы PPTP (создает зашифрованный трафик через Internet) и Multilink PPP (позволяет объединять несколько каналов в один). Клиентами могут быть Windows NT 4.0 Workstation или Windows 95.

Распределенная модель объектной компоновки (Distributed Component Object Model) — еще одно ключевое дополнение к Windows NT Server 4.0. Модель объектной компоновки (COM) позволяет разработчикам программ создавать приложения, состоящие из отдельных компонент. Распределенная модель (DCOM) в Windows NT Server 4.0 расширяет COM таким образом, что позволяет отдельным компонентам взаимодействовать через Internet. DCOM является растущим стандартом Internet, опубликованным в соответствии с форматом, определенным в спецификациях RFC 1543.

При разработке Windows NT 4.0 Microsoft решила пожертвовать стабильностью ради производительности. С этой целью были внесены изменения в архитектуру: библиотеки менеджера окон и GDI, а также драйверы графических адаптеров были перенесены из пользовательского режима в режим ядра. Это изменение означает отход от принятой в предыдущих версиях Windows NT 3.х концепции микроядра.

Перенос графической библиотеки и драйверов в область ядра повышает скорость выполнения графического ввода-вывода. Эти изменения особенно сказались на скорости выполнения приложений Win32, в то время как приложения Windows-16 и графические приложения DOS работают примерно также, как и в версии 3.5.

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

1.1.3. Новые свойства Windows NT 5.0

В конце 1997 ожидается появление Windows NT 5.0 — усовершенствованной версии Windows NT. Это будет не только полностью 32-разрядная, но также и полностью объектно-ориентированная система. Основу Windows NT 5.0 составляет объектно-ориентированная файловая система, реализованная на базе стандарта OLE 2.0, которая позволяет хранить не файлы, а объекты. Объектно-ориентированный подход позволяет с наименьшими затратами обеспечивать корректность многочисленных копий данных, таких как документы, электронные таблицы, приложения и других видов информации, хранящихся на разных машинах сети.

Версия Windows NT 5.0 обещает много, и нововведения прежде всего коснутся следующих подсистем:

  • Active Directory — глобальная справочная служба, которая развивает 2-х уровневый подход к разрешению имен DNS. Active Directory содержит информацию не только о файлах, но и об объектах других типов, например:

    Имя компьютера , IP-адрес
    Имя пользователя, пароль, почтовый адрес, …
    Имя приложения, компьютер, версия, права доступа…

  • Distributed File System (Dfs) — распределенная файловая система (свободно доступна на www.microsoft.com). Каталоги этой файловой системы, находящиеся на разных серверах, монтируются в общее дерево, начинающееся на корневом сервере с корневым share-именем. Различные поддеревья одного share могут состоять из файловых систем не только Microsoft, но и Novell NCP и Sun NFS. Некоторые ветви распределенной файловой системы могут по желанию администратора реплицироваться прозрачным образом.
  • Distributed Component Object Model (DCOM) — программные объекты (ActiveX или другие) могут распределяться по серверам сети и вызываться приложениями с любого компьютера. Информация о месте расположения объектов регистрируется в Active Directory.
  • Средства обеспечения безопасности: проверка прав доступа к документам в системе Windows NT 5.0 будет осуществляться по методу Kerberos или с помощью электронной подписи, а передача документов по сети будет реализована с использованием шифрования.

1.1.4. Требования к аппаратуре

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

Для работы Windows NT Workstation 4.0 компьютер должен иметь процессор не ниже i486 (в этой версии системы корпорация Microsoft отказалась от какой-либо поддержки процессоров i386), ОЗУ емкостью не менее 12 Мбайт и 108 Мбайт дискового пространства. И хотя эта ОС вполне работоспособна на компьютерах, имеющих оперативную память менее 16 Мбайт, однако рекомендуется устанавливать ее при наличии ОЗУ, емкость которого вдвое превышает допустимый минимум, т. е. составляет 24 Мбайт, а свободное дисковое пространство равно, по крайней мере, 216 Мбайт. Запустить Windows NT Workstation 4.0 можно и на системе, обладающей меньшими ресурсами, но тогда вряд ли пользователь останется доволен ее производительностью.

Для Windows NT Server 4.0 Microsoft определяет следующие аппаратные требования: процессор не ниже i486, ОЗУ емкостью 16 Мбайт и не менее 148 Мбайт непрерывного свободного дискового пространства. Для ознакомления с функциональными возможностями системы это, возможно, и достаточно, но для «промышленного» использования этих минимальных требований явно недостаточно. Для сервера с низкой или средней загруженностью (определяется числом обслуживаемых пользователей) необходимо наличие 32 Мбайт оперативной памяти и жесткого диска емкостью не менее 1 Гбайт.

Полный список аппаратуры, прошедшей тестирование на совместимость с Windows NT, содержится в документации к системе и на сервере www.microsoft.com.

1.1.5. Области использования Windows NT

Обладая высокой производительностью, стабильностью, развитыми средствами безопасности, и имея в своем арсенале широкий набор базовых системных функций, Windows NT Server может найти применения в различных областях, и прежде всего он может быть использован в качестве сервера в корпоративной сети. Здесь весьма полезной оказывается его способность выполнять функции контроллера доменов, что позволяет структурировать сеть и тем самым упрощать задачи администрирования и управления. Он используется также в качестве файл-сервера, принт-сервера, сервера приложений, сервера удаленного доступа и сервера связи (программного маршрутизатора).

Клиентами в сети с Windows NT Server могут являться компьютеры с установленными на них различными операционными системами. Стандартно поддерживаются: Windows NT Workstation, MS-DOS, OS/2, Windows for Workgroups, Windows 95, клоны UNIX, Macintosh. Основные клиенты входят в стандартную поставку Windows NT Server.

Windows NT Server является мощной платформой для сложных сетевых приложений, особенно тех, которые построены с использованием технологии клиент-сервер. В сочетании с серверами BackOffice он может удовлетворить очень широкий круг потребностей корпоративных пользователей. Так, под управлением Windows NT Server может работать сервер баз данных SQL Server фирмы Microsoft, а также серверы баз данных других известных фирм, такие как серверы баз данных Oracle и Sybase, Adabas и InterBase.

На платформе Windows NT Server может быть установлена мощная система администрирования Microsoft System Management Server, функциями которой является инвентаризация аппаратной и программной конфигурации компьютеров сети, автоматическая установка программных продуктов на рабочие станции, удаленное управление любым компьютером и мониторинг сети.

Windows NT Server может использоваться как сервер связи с мэйнфреймами IBM и системами IBM AS400. Для этого создан специальный продукт Microsoft SNA Server, позволяющий легко объединить в одной сети IBM PC-совместимые рабочие станции и мощные мейнфреймы. SNA Sever является шлюзом, позволяющим осуществлять доступ к рабочей станции как к серверам локальной сети, так и к мэйнфреймам без необходимости использования двух сетевых карт или нескольких стеков сетевых протоколов. Это приводит к снижению стоимости оборудования и уменьшению объема требуемой оперативной памяти. Обеспечивая прозрачный доступ к мэйнфреймам, SNA Server, будучи интегрированным с системой безопасности NT Server, обеспечивает авторизацию доступа к хосту. SNA Server может работать с любым из протоколов, поддерживаемых в NT Server: IPX/SPX, TCP/IP или NetBEUI.

Windows NT Server является платформой для Microsoft Exchange — нового высоко производительного пакета для коллективной работы, построенного на основе почтового сервера.

Наконец, последняя версия Windows NT 4.0 является надежной платформой для приложений, ориентированных на Internet: Web-серверов, Web-броузеров, информационно-поисковых систем, систем электронной коммерции в сети Internet.

Операционная система Windows NT Workstation позиционируется прежде всего как клиент в сетях Windows NT Server, а также в сетях NetWare, Unix, Vines. В сетях NetWare рабочие станции Windows NT восполняют известный пробел — отсутствие хорошего сервера приложений. Компьютер с установленной на нем Windows NT может быть рабочей станцией и в одноранговых сетях, выполняя одновременно функции и клиента, и сервера. Windows NT Workstation может применяться в качестве ОС автономного компьютера, если необходимы повышенная производительность или секретность, а также при реализации сложных графических приложений, например, в системах автоматизированного проектирования.

1.2. Микроядерная структура — основа стабильности системы

При разработке структуры Windows NT была в значительной степени использована концепция микроядра. В соответствии с этой идеей ОС делится на несколько подсистем-серверов, каждая из которых выполняет отдельный набор сервисных функций — например, сервис памяти, сервис по созданию процессов или сервис по планированию процессов. Каждый сервер выполняется в пользовательском режиме, выполняя циклическую проверку, не появился ли запрос от клиента на одну из его сервисных функций. Клиент, которым может быть либо другая компонента ОС, либо прикладная программа, запрашивает сервис, посылая сообщение на сервер. Этот запрос перехватывается ядром, которое из-за ограниченности выполняемых функций в случае такой организации называется микроядром. Ядро ОС, работая в привилегированном режиме, доставляет сообщение нужному серверу. Сервер выполняет операцию, после чего ядро возвращает результаты клиенту с помощью другого сообщения (рисунок 1.1). Микроядро играет роль регулировщика — оно проверяет сообщения, пересылает их между серверами и клиентами и предоставляет доступ к аппаратуре.

Рис. 1.1. Структура ОС на базе микроядра

Использование концепции микроядра способствует переносимости операционных систем, поскольку весь машинно-зависимый код изолирован в микроядре, а значит для переноса системы на новый процессор требуется меньше изменений, и все они логически сгруппированы вместе. Операционная система Windows NT может работать на компьютерах, построенных на базе процессоров Intel, PowerPC, DEC Alpha, MIPS.

Технология микроядер является основой построения множественных прикладных сред, которые обеспечивают совместимость программ, написанных для разных ОС. Абстрагируя интерфейсы прикладных программ от расположенных ниже операционных систем, микроядра позволяют гарантировать, что вложения в прикладные программы не пропадут в течение нескольких лет, даже если будут сменяться операционные системы и процессоры. В среде Windows NT, кроме «родных» 32-битовых приложений, могут выполняться приложения MS-DOS, 16-битовые Windows-приложения, Posix- и OS/2-приложения.

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

Рис. 1.2. Структура Windows NT

Так как защищенные подсистемы автоматически не могут совместно использовать память, они общаются друг с другом посредством посылки сообщений. Сообщения могут передаваться как между клиентом и сервером, так и между двумя серверами. Все сообщения проходят через executive. Защищенные подсистемы Windows NT работают в пользовательском режиме и создаются Windows NT во время загрузки операционной системы. Сразу после создания они начинают бесконечный цикл своего выполнения, отвечая на сообщения, поступающие к ним от прикладных процессов и других подсистем. Для упрощения на рисунке взаимодействие приложений с защищенными подсистемами иллюстрируется стрелками, соединяющими их напрямую, однако в действительности взаимодействие приложений с защищенными подсистемами реализуется через ядро путем обмена сообщениями.

Поддержку защищенных подсистем обеспечивает исполнительная часть Windows NT — executive, которая работает в пространстве ядра и никогда не сбрасывается на диск. Ее составными частями являются:

  • Менеджер объектов. Создает, удаляет и управляет объектами NT executive — абстрактными типами данных, используемыми для представления ресурсов системы.
  • Монитор безопасности. Устанавливает правила защиты на локальном компьютере. Охраняет ресурсы операционной системы, выполняет защиту и регистрацию исполняемых объектов.
  • Менеджер процессов. Создает и завершает, приостанавливает и возобновляет процессы и нити, а также хранит о них информацию.
  • Менеджер виртуальной памяти.
  • Средства локального вызова процедур. Передают сообщения между клиентскими и серверными процессами одного и того же компьютера.
  • Подсистема ввода-вывода. Включает в себя следующие компоненты: 1) менеджер ввода-вывода предоставляет средства ввода-вывода, независимые от устройств; 2) файловые системы, NT-драйверы, выполняющие файл-ориентированные запросы на ввод-вывод, транслирующие их в вызовы обычных устройств; 3) сетевой редиректор и сетевой сервер, драйверы файловых систем, передающие удаленные запросы на ввод-вывод на машины сети и получающие запросы от них; 4) драйверы устройств NT executive, низкоуровневые драйверы, которые непосредственно управляют устройством; 5) менеджер кэша, реализующий кэширование диска.

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

  • планирование нитей,
  • обработка прерываний и исключительных ситуаций,
  • синхронизация процессоров для мультипроцессорных систем,
  • восстановление системы после сбоев.

Обратиться к ядру можно только посредством прерывания. Ядро расположено над уровнем аппаратных абстракций (Hardware Abstraction Level HAL), который концентрирует в одном месте основную часть машинно-зависимых процедур. Располагается HAL между NT executive и аппаратным обеспечением и скрывает от системы такие детали, как контроллеры прерываний, интерфейсы ввода/вывода и механизмы взаимодействия между процессорами. Такое решение позволяет легко переносить Windows NT с одной платформы на другую путем замены только слоя HAL.

Среди всех защищенных подсистем можно выделить так называемые подсистемы окружения — Win32, 16-битный Windows, DOS, OS/2, Posix. Каждая из этих подсистем реализует соответствующий прикладной программный интерфейс. Windows NT использует подсистемы окружения со следующими целями:

  • Обеспечить несколько программных интерфейсов (APIs), сохраняя как можно более простым базовый программный код (NT executive).
  • Экранировать базовую операционную систему от изменений или расширений в поддерживаемых API.
  • Объединить часть глобальных данных, требуемых всем API, и в то же время отделить данные, требуемые одному API от данных, требуемых другим API.
  • Защитить окружение каждого API от приложений, а также от окружений других API и защитить базовую операционную систему от различных окружений.
  • Позволить операционной системе расширяться в будущем за счет новых API.

1.3. Планирование процессов и нитей

В отличие от Windows, в которой реализована многозадачность без вытеснения (non-preemptive multitasking), в Windows NT используется механизм многозадачности с вытеснением (preemptive multitasking).

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

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

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

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

Windows NT поддерживает 32 уровня приоритетов, разделенных на два класса — класс реального времени и класс переменных приоритетов (рисунок 1.3). Нити реального времени, приоритеты которых находятся в диапазоне от 16 до 31, являются более приоритетными процессами и используются для выполнения задач, критичных ко времени.

В Windows NT определено 4 класса приоритетов процессов:

  • IDLE_PRIORITY_CLASS — уровень 4
  • NORMAL_PRIORITY_CLASS — уровень 9 при интерактивной работе процесса (forground) и уровень 7 при работе в фоновом режиме (background)
  • HIGH_PRIORITY_CLASS — уровень 13
  • REALTIME_PRIORITY_CLASS — уровень 24

Большинство приложений либо не определяет класс приоритета процесса при его создании, либо устанавливает его в значение NORMAL_PRIORITY_CLASS. Класс IDLE — самый низкоприоритетный — хорошо использовать для работ, некритичных к скорости их выполнения, например, при наблюдении за состоянием системы или же при резервном копировании на ленту. Высокий приоритет (HIGH_PRIORITY_CLASS) следует использовать только тогда, когда это абсолютно необходимо, так как нити такого процесса будут выполняться всегда перед нитями процесса с нормальным приоритетом. В Windows NT с приоритетом HIGH работает процесс Task Manager. Обычно он находится в состоянии ожидания, но при нажатии комбинации клавиш Ctrl+Esc нить Task Manager пробуждается и немедленно вытесняет любые нити обычных приложений. Приоритеты реального времени системными процессами Windows NT (и тем более офисными приложениями) не используются. Этот класс приоритетов нужно использовать только для систем реального времени, например, сбора данных от промышленных установок, управления движущимися объектами и т.п.

Рис. 1.3. Система очередей готовых нитей

Все нити, созданные процессом определенного класса, имеют сначала приоритет процесса. Но в ходе своего выполнения нить может изменить свой приоритет относительного базового приоритета процесса с помощью системного вызова SetThreadPriority. Этот вызов имеет параметр, который может принимать 5 относительных значений, понижая приоритет относительно базового на 2 или 1 единицу, повышая его на 2 или 1 единицу или делая его равным базовому. Имеется еще 2 абсолютных значения этого параметра — IDLE и CRITICAL. Значение IDLE делает приоритет нити равным 1 независимо от его базового приоритета (для процессов REALTIME приоритет становится равным 16), а значение CRITICAL повышает приоритет до 15 для всех процессов (для процессов REALTIME приоритет повышается до 31).

На выполнение всегда выбирается нить с самым высоким приоритетом. Каждый раз, когда необходимо выбрать нить для выполнения, диспетчер прежде всего просматривает очередь готовых нитей реального времени и обращается к другим нитям, только когда очередь нитей реального времени пуста. Обычно большинство нитей в системе попадают в класс нитей с переменными приоритетами, диапазон приоритетов которых от 0 до 15. Этот класс имеет на-звание «переменные приоритеты» потому, что диспетчер настраивает систему, выбирая (понижая или повышая) приоритеты нитей этого класса.

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

Итак, нить освобождает процессор, если:

  • нить блокируется, уходя в ожидание,
  • нить завершается,
  • нить исчерпала квант,
  • нить вытеснена более приоритетной нитью.

При планировании нитей в Windows NT используются концепции квантования, абсолютных приоритетов и динамических приоритетов.

  • Квантование — нитям отводится квант времени, по истечении которого выполнение нити прекращается.
  • Абсолютные приоритеты — при появлении в очереди нити с более высоким приоритетом, чем у активной в данный момент, выполнение последней немедленно прерывается.
  • Динамические приоритеты — приоритеты нитей могут изменяться системой: понижаются у нитей, исчерпавших квант, повышаются у нитей, недоиспользовавших квант из-за перехода в состояние ожидания.

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

1.4. Управление памятью

Windows NT поддерживает сегментностраничную модель виртуальной памяти и использует для этих целей аппаратную поддержку таких процессоров как Intel 80386 и выше, MIPS R4000, DEC Alpha и Power PC. Для этого в NT executive имеется специальный компонент — менеджер виртуальной памяти.

Менеджер ВП обеспечивает для процессов следующие наборы функций:

  • управление виртуальным адресным пространством процесса;
  • разделение памяти между процессами;
  • защита виртуальной памяти одного процесса от других процессов.

Средства защиты памяти в Windows NT существуют в четырех формах.

  • Отдельное адресное пространство для каждого процесса. Аппаратура запрещает нити доступ к физическим адресам другого процесса.
  • Два режима работы: режим ядра, в котором нитям разрешен доступ к системным данным, и пользовательский режим, в котором это запрещено.
  • Страничный механизм защиты. Каждая виртуальная страница имеет набор признаков, который определяет разрешенные типы доступа в пользовательском режиме и в режиме ядра.
  • Объектно-ориентированная защита памяти. Каждый раз, когда процесс открывает указатель на секцию, монитор ссылок безопасности проверяет, разрешен ли доступ процесса к данному объекту.

Каждый раз, когда нить использует адрес, менеджер ВП вместе с аппаратными средствами транслирует виртуальный адрес в физический. Подсистема виртуальной памяти, управляя процессом трансляции виртуальных адресов, гарантирует, что нить одного процесса не сможет получить доступ к физической странице памяти, относящейся к другому процессу.

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

Каждый процесс NT executive имеет большое виртуальное адресное пространство размером в 4Гб, из которых 2 Гб резервируются для системных нужд. (Процессор MIPS R4000 требует, чтобы 2 Гб адресного пространства были зарезервированы для системы. Хотя другие процессоры требуют меньше, для переносимости системы Windows NT всегда резервирует 2 Гб.) Младшие адреса виртуального адресного пространства доступны для нитей, работающих и в пользовательском, и в привилегированном режимах, они указывают на области памяти, уникальные для каждого процесса. Старшая часть адресов доступна для нитей только тогда, когда они выполняются в привилегированном режиме. Виртуальное адресное пространство процесса показано на рисунке 1.4.

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

Рис. 1.4. Виртуальное адресное пространство

Верхняя часть системной памяти управляется менеджером виртуальной памяти и используется для хранения остальных системных данных и кода. Часть этой области резервируется для кода и данных, которые могут быть вытеснены на диск с помощью страничного механизма, а другая часть никогда не вытесняется из памяти (в ней, например, размещается код, который осуществляет страничный обмен).

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

  • загрузка страницы в память при возникновении страничного прерывания,
  • проверка прав доступа к отсутствующим страницам и дополнение аппаратных средств защиты страниц, загруженных в память,
  • обновление структур данных подсистемы управления памятью.

Процесс принятия решения о замене страниц системой виртуальной памяти обычно включает три фазы: извлечение, размещение, замена.

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

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

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

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

Менеджер виртуальной памяти Windows NT использует локальный алгоритм FIFO (First Input First Output). В соответствии с алгоритмом FIFO из памяти удаляется та страница, которая дольше всего там находится. Локальность в данном случае означает, что поиск страницы-кандидата на выгрузку осуществляется только среди страниц того процесса, который требует загрузки новой страницы. Существуют и глобальные стратегии, в соответствии с которыми поиск замещаемой страницы выполняется на множестве страниц всех процессов. Локальный вариант стратегии не дает одному процессу возможность захватить всю имеющуюся память.

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

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

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

  • Каждому процессу предоставляется рабочий набор страниц достаточно большого размера, чтобы избежать частых страничных отказов.
  • Менеджер виртуальной памяти производит автоматический тримминг рабочего набора каждого процесса, чтобы сделать доступными для других процессов области памяти, занимаемые редко используемыми страницами.


Содержание |
Вперед

Like this post? Please share to your friends:
  • Основные компоненты windows 2012 что это
  • Оснастка exchange 2010 для windows 10
  • Ос семейства windows nt являются ос пакетной обработки
  • Оснастка ad для windows server 2012
  • Ос семейства windows nt являются интерактивными ос