Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Скидка до 20% на услуги дата-центра. Аренда серверной стойки. Colocation от 1U!

Миграция в облако #SotelCloud. Виртуальный сервер в облаке. Выбрать конфигурацию на сайте!

Виртуальная АТС для вашего бизнеса. Приветственные бонусы для новых клиентов!

Виртуальные VPS серверы в РФ и ЕС

Dedicated серверы в РФ и ЕС

По промокоду CITFORUM скидка 30% на заказ VPS\VDS

VPS/VDS серверы. 30 локаций на выбор

Серверы VPS/VDS с большим диском

Хорошие условия для реселлеров

4VPS.SU - VPS в 17-ти странах

2Gbit/s безлимит

Современное железо!

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 минимизируется количество страничных прерываний. Для этого предпринимаются следующие меры:

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

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

 

Бесплатный конструктор сайтов и Landing Page

Хостинг с DDoS защитой от 2.5$ + Бесплатный SSL и Домен

SSD VPS в Нидерландах под различные задачи от 2.6$

✅ Дешевый VPS-хостинг на AMD EPYC: 1vCore, 3GB DDR4, 15GB NVMe всего за €3,50!

🔥 Anti-DDoS защита 12 Тбит/с!

VPS в России, Европе и США

Бесплатная поддержка и администрирование

Оплата российскими и международными картами

🔥 VPS до 5.7 ГГц под любые задачи с AntiDDoS в 7 локациях

💸 Гифткод CITFORUM (250р на баланс) и попробуйте уже сейчас!

🛒 Скидка 15% на первый платеж (в течение 24ч)

Новости мира IT:

Архив новостей

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 7861149
Пресс-релизы — pr@citforum.ru
Обратная связь
Информация для авторов
Rambler's Top100 TopList This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2019 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...