Студопедия — РАБОЧИЕ СТАНЦИИ
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

РАБОЧИЕ СТАНЦИИ






РАБОЧИЕ СТАНЦИИ

Рис. 1-1. Соединение разнородных систем.

Windows NT существует не в вакууме. Она может взаимодействовать с дру­гими ОС Microsoft, с Apple Macintosh и с UNIX-подобными ОС по сетям различ­ного типа, в том числе Microsoft LAN Manager. Пример сетевой конфигурации показан на рис. 1-1.

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

 

2. Цели проекта Windows NT: расширяемость и переносимость.

 

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

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

Ниже перечислены свойства системы, которых стремились достичь проек­тировщики Windows NT:

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

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

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

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

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

Расширяемость

Операционные системы обязательно изменяются с течением времени. Измене­ния обычно вносятся постепенно; это может быть, например, добавление под­держки новых аппаратных устройств, таких как компакт-диски; способности работать с другим типом сети; поддержки новых программных технологий, та­ких как графические интерфейсы пользователя и объектно-ориентированные среды программирования.

Гарантировать целостность кода Windows NT по мере изменения ОС с тече­нием времени было основной целью проекта. Уникальный подход к решению этой проблемы нашли для ОС Mach: создать основу, которая реализует примитивные средства ОС. Прикладные программы, называемые серверами, обеспечивают дополнительные системные средства, включая полные API. При изменении требований базовая часть системы не меняется, а серверы модернизи­руются или создаются новые (Здесь термин "сервер" обозначает процесс на локальной машине, и его не следует путать с удален­ными компьютерами в сети, предоставляющими файловые или сетевые сервисы.).

Windows NT позаимствовала этот подход. Она состоит из привилегиро­ванной исполнительной системы (executive) и набора непривилегированных серверов, называемых защищенными подсистемами (protected subsystems). Тер­мин привилегированный указывает на режим работы процессора. Большинство процессоров имеют привилегированный режим (возможно, несколько), в кото­ром разрешено выполнение всех машинных команд и доступны системные области памяти, а также непривилегированный, в котором некоторые команды запре­щены, а системные области памяти недоступны. В терминологии Windows NT при­вилегированный режим называется режимам ядра (kernel mode), а непривилеги­рованный — пользовательским режимам (user mode).

 

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

Кроме защищенных подсистем, Windows NT имеет множество других свойств, гарантирующих ее расширяемость:

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

• Использование объектов для представления системных ресурсов. Объекты (objects), абстрактные типы данных, доступ к которым осуще­ствляется только через специальный набор сервисов объектов, позво­ляют однотипно управлять системными ресурсами. Добавление новых объектов не нарушает работу старых и не требует изменения существую­щего кода.

• Загружаемые драйверы. Подсистема ввода-вывода Windows NT поддер­живает драйверы, которые могут добавляться к системе в процессе ра­боты. Для поддержки новых файловых систем, устройств и сетей необ­ходимо написать драйвер устройства, драйвер файловой системы или драйвер транспорта и загрузить его в систему.

• Средство удаленного вызова процедур (RPC), позволяющее приложе­ниям вызывать удаленные сервисы независимо от их расположения в сети. Новые сервисы, установленные на любую машину в сети, немед­ленно становятся доступными для приложений на других машинах.

Переносимость

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

Написание системы, которую легко будет переносить, сходно с написани­ем любой переносимой программы — нужно следовать определенным прави­лам. Во-первых, максимально возможный объем кода должен быть написан на языке, доступном на всех машинах, на которые планируется переносить систе­му. Обычно это значит, что код следует писать на языке высокого уровня, пред­почтительно на одном из стандартизованных. Язык ассемблера по своей приро­де не переносим, если только Вы не собираетесь переносить программу исклю­чительно на машины, обратно совместимые с исходной по набору команд (на­пример, с Intel 80386 на Intel 80486).

Во-вторых, следует учесть, в какие физические среды планируется пере­носить программное обеспечение. Любая аппаратура накладывает свои огра­ничения на ОС. Например, ОС, разработанную для 32-разрядной адресации, не удастся перенести на машину с 16-разрядными адресами — разве что ценой огромных усилий.

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

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

Два последних правила тесно связаны друг с другом. Например, можно скрыть аппаратурно-зависимую структуру в абстрактном типе данных, опреде­ленном в программе. Другие модули системы будут работать с этим типом дан­ных посредством абстрактных процедур, а не напрямую с аппаратурой. При пе­реносе ОС необходимо изменить только абстрактный тип данных и связанные с ним процедуры.

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

• Переносимый язык С. Система написана в основном на языке С (стан­дарт ANSI X3.159-1989) с расширениями для поддержки архитектуры обработки исключений Windows NT. Разработчики выбрали язык С, по­скольку он стандартизован, и для него широко доступны компиляторы и средства разработки. Помимо С, небольшие части системы написаны на C++, в том числе графические компоненты среды Windows и фрагменты сетевого пользовательского интерфейса. Язык ассемблера использовался только для тех частей ОС, которые должны работать непосредственно с оборудованием (например, обработчик ловушек), и для компонентов, требующих максимальной скорости выполнения (таких, как целочис­ленная арифметика повышенной разрядности). Однако непереносимый код был тщательно изолирован внутри использующих его компонентов.

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

• Изоляция от платформы. Платформенно-зависимый код в Windows NT инкапсулирован внутри динамически подключаемой библиотеки, известной как слой абстрагирования от оборудования, (hardware abstraction layer, HAL). Платформенно-зависимыми называются свойства, которые могут различаться на двух рабочих станциях, построенных на одном типе процессора разными производителями. HAL обеспечивает абстрагирование оборудования, например кэша и контроллеров прерываний, при помощи слоя низкоуровневого про­граммного обеспечения, так что при переносе на другую платформу не требуется изменять код более высокого уровня.

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

 

3. Цели проекта Windows NT: надежность, совместимость и производительность.

 

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

Структурная обработка исключений (structured exception handling) — это метод перехвата ошибочных состояний и унифицированной их обработки. Она является основным способом защиты Windows NT от программных или ап­паратных ошибок. Всякий раз, когда возникает ненормальное событие, ОС или процессор возбуждают исключение; код обработки исключений, присутствую­щий по всей системе, вызывается в таком случае автоматически, гарантируя, что пользовательским программам и самой системе не будет нанесен вред из-за не обнаруженной ошибки.

Повышению устойчивости способствуют и другие свойства ОС:

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

• Для Windows NT разработана новая файловая система, называемая фай­ловой системой NT (NT file system, NTFS). NTFS способна к восстановле­нию после всех типов дисковых ошибок, включая ошибки в критически важных секторах диска. Для обеспечения восстанавливаемости в ней ис­пользуется избыточное хранение данных и обработка транзакций.

Перечисленные ниже средства защищают Windows NT от внешнего вторжения:

• Архитектура защиты от несанкционированного доступа, основанная на требованиях правительства США, которая предоставляет разнообразные механизмы защиты: регистрация пользователей в системе, квоты на ресур­сы и защита объектов.

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

Совместимость

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

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

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

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

При помощи защищенных подсистем Windows NT предоставляет среду для выполнения приложений, которые используют API — интерфейс, отличный от ее основного интерфейса программирования Win32. При работе на процес­сорах Intel защищенные подсистемы Windows NT обеспечивают двоичную со­вместимость приложениям для существующих ОС Microsoft, включая MS-DOS, 16-разрядную Windows, OS/2 и LAN Manager. На RISC-процессорах MIPS совмести­мость на двоичном уровне достигается для приложений MS-DOS, 16-разрядной Windows и LAN Manager (используется эмулятор). Кроме того, Windows NT обеспечивает совместимость на уровне исходных текстов для приложений POSIX, кото­рые используют POSIX-интерфейсы ОС, определенные стандартом IEEE 1003.1.

 

Для обеспечения совместимости 16-разрядных приложений для Windows на компьютерах с RISC-процессорами используется эмуляция работы процессоров Intel. До версии 3.51 включительно эмулировался режим работы 286-го процессора, что не позволяло исполнять многие 16-разряд­ные приложения (например, Word for Windows 6.0). Начиная с версии 4.0 обеспечивается эмуля­ция работы 486—го процессора, что достаточно для выполнения большинства 16-разрядных про­грамм для Windows.

 

В дополнение к совместимости по программным интерфейсам, Windows NT поддерживает ряд существующих файловых систем, включая файловую сис­тему MS-DOS (FAT), высокопроизводительную файловую систему (HPFS) OS/2, файловую систему для компакт-дисков (CDFS), а также новую, восстанавлива­емую файловую систему NT (NTFS).

Производительность

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

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

Защищенные подсистемы, серверы, которые выполняют функции ОС, должны часто взаимодействовать друг с другом и с приложениями-клиентами. Чтобы это взаимодействие не снижало производительность серверов, в состав ОС был включен высокоскоростной механизм передачи сообщений, так назы­ваемый локальный вызов процедур (local procedure call, LPC).

Каждая защищенная подсистема, обеспечивающая среду ОС, или подсис­тема среды (environment subsystem), была тщательно спроектирована, чтобы часто используемые системные вызовы выполнялись как можно быстрее.

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

 

4. Модели Windows NT: клиент-сервер.

 

Существует множество способов структурирования кода ОС. Один подход, осо­бенно часто применяемый в небольших ОС, например в MS-DOS, состоит в организации системы как набора процедур, каждую из которых может вызывать любая пользовательская процедура. Такая монолитная структура не обеспечива­ет изоляции данных; в разных участках кода используется информация об уст­ройстве всей системы. Расширение ОС этого типа затруднительно, так как изме­нение некоторой процедуры может вызвать ошибки в других частях системы, на первый взгляд не имеющих к ней отношения.

Во всех монолитных ОС, кроме самых простых, приложения отделены от собственно ОС. Иными словами, код ОС исполняется в привилегированном ре­жиме процессора — в этой книге он называется режимом ядра (kernel mode) и имеет доступ к данным системы и к аппаратуре; приложения исполняются в непривилегированном, так называемом пользовательском режиме (user mode), в котором им предоставлен ограниченный набор интерфейсов и ограниченный доступ к системным данным. Когда программа пользовательского режима вызы­вает системный сервис, процессор перехватывает вызов и переключает вызыва­ющий поток в режим ядра. Когда выполнение системного вызова завершается, ОС переключает поток обратно в пользовательский режим и дает возможность вызывающей программе продолжить выполнение. Структура монолитной ОС с разделением пользовательского режима и режима ядра показана на рис. 2-1.

Рис. 2-1. Монолитная операционная система.

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

Рис. 2-2. Послойная операционная система.

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

Третий подход к структурированию ОС — это модель клиент-сервер. Идея его состоит в разделении ОС на несколько процессов, каждый из которых реа­лизует один набор сервисов: например, распределение памяти, создание про­цессов или планирование процессов. Каждый сервер (server) выполняется в пользовательском режиме, проверяя в цикле, не обратился ли к нему за обслужи­ванием какой-либо клиент. Клиент (client), которым может быть либо другой компонент ОС, либо прикладная программа, запрашивает выполнение сервиса, посылая серверу сообщение. Ядро (или микроядро) ОС, выполняющееся в режи­ме ядра, доставляет сообщение серверу; тот выполняет запрашиваемые дей­ствия, после чего ядро возвращает клиенту результаты в виде другого сообще­ния, как показано на рис. 2-3.

Рис. 2-3. Клиент-серверная операционная система.

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

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

Однако послойная модель применяется в системе ввода-вывода исполни­тельной системы NT, и в самых низкоуровневых частях ис­полнительной системы: ядре NT (NT kernel) и слое абстрагирования от обору­дования (hardware abstraction layer, HAL). Все другие компоненты исполнитель­ной системы NT расположены поверх этих двух. Ядро NT выполняет функции ОС низкого уровня,— например, планирование потоков, обработку пре­рываний и исключений, а также многопроцессорную синхронизацию. Оно так­же предоставляет набор процедур и базовых объектов, используемых остальны­ми частями исполнительной системы для реализации конструкций более высо­кого уровня. Ниже ядра располагается динамически подключаемая библиотека (dynamic-link library, DLL) HAL — слой кода, изолирующий ядро и другие части исполнительной системы NT от платформенно-зависимых особенностей аппа­ратуры. HAL работает непосредственно с оборудованием.

Как показывает рис. 2-4, модель клиент-сервер используется в Windows NT главным образом для предоставления API и средств, которые обычно рас­сматривают как среду ОС. Хотя защищенная подсистема (сервер) Win32 обеспе­чивает пользовательский интерфейс и необходима для работы системы, другие серверы также могут подключаться к исполнительной системе, причем они могут загружаться и выполняться одновременно в любой желаемой комбинации. Серверы взаимодействуют с процессами приложений при помощи средства передачи сообщений, предоставляемого исполнительной системой NT.

Использование модели клиент-сервер дает следующие преимущества:

• Упрощает базу ОС — исполнительную систему NT. Одной из задач Win­dows NT было предоставить API Win32, MS-DOS, 16-разрядной Win­dows, POSIX и OS/2. Реализация каждого API в отдельном сервере устра­няет конфликты и дублирование в исполнительной системе и позволя­ет легко добавлять новые API.

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

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

Рис. 2-А. Клиент-серверная структура Windows NT.

 

5. Объектная модель. Симметричная мультипроцессорная обработка.

 

Многозадачность — это техника, применяемая ОС для использования одного процессора несколькими потоками управления. Однако, если у компьютера имеется более одного процессора, то от модели многозадачности следует пе­рейти к модели мультипроцессорной обработки (multiprocessing). Компьютер, имеющий два процессора, может выполнять два потока одновременно. Таким образом, если многозадачная ОС только создает иллюзию одновременного вы­полнения нескольких потоков, то ОС с мультипроцессорной обработкой в дей­ствительности выполняет несколько потоков одновременно — по одному пото­ку на каждом процессоре.

ОС с мультипроцессорной обработкой делятся на две категории — с асим­метричной либо симметричной обработкой, как показано на рис. 2-5.

Операционные системы с асимметричной мультипроцессорной обработ­кой (asymmetric multiprocessing, ASMP) обычно выбирают для исполнения соб­ственного кода один и тот же процессор (например А), в то время как другие процессоры выполняют только пользовательские задачи. Так как код ОС испол­няется на одном процессоре, то ОС ASMP довольно просто создать, усовершен­ствовав существующую однопроцессорную ОС. Особенно хорошо ОС ASMP подходят для работы на асимметричном оборудовании, например, процессо­ре, к которому подключен сопроцессор, или на двух процессорах, совместно использующих не всю доступную память. Однако такую ОС трудно сделать пе­реносимой. Аппаратура разных производителей (и даже разные версии аппа­ратуры одного производителя) имеет тенденцию различаться по типу и степе­ни асимметрии. Либо производители оборудования должны ориентироваться на одну ОС, либо ОС придется постоянно переписывать для каждой аппарат­ной платформы.

Системы с симметричной мультипроцессорной обработкой (symmetric multiprocessing, SMP), к которым относится и Windows NT, позволяют коду ОС системы выполняться на любом свободном процессоре или на всех процессо­рах одновременно, причем каждому из процессоров доступна вся память. Такой подход полнее реализует возможности нескольких процессоров, так как сама ОС может использовать значительную часть процессорного времени компьютера, в зависимости от того, какие приложения на нем исполняются. Исполнение ОС только на одном процессоре может сильно загружать его, в то время как остальные простаивают, что уменьшит производительность системы; при увели­чении числа процессоров в системе возрастает вероятность того, что узким местом станут именно действия, выполняемые ОС. Помимо равномерного рас­пределения системной загрузки, системы SMP сокращают время простоя из-за неисправностей, так как при сбое одного процессора код ОС может исполнять­ся на других. Наконец, поскольку симметричная аппаратура реализуется разны­ми производителями сходным образом, имеется возможность создания перено­симой ОС SMP.

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

Windows NT обладает свойствами, которые принципиально важны для мультипроцессорной ОС:

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

Асимметричная Симметричная

 

Асимметричная

Симметричная



 

Рис. 2-5. Асимметричная и симметричная мультипроцессорная обработка.

 

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

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

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

 

 

Структура Windows NT:

6. Защищенные подсистемы. Исполнительная система.

 

Термин "сервер" подразумевает, что каждая защищенная подсистема обеспечи­вает API, который могут использовать программы. Когда приложение (или дру­гой сервер) вызывает некоторую процедуру API, серверу, реализующему данную процедуру, посылается сообщение при помощи средства локального вызова процедур (local procedure call, LPC) — оптимизированного механизма исполни­тельной системы NT для локальной передачи сообщений. Сервер же посылает ответное сообщение вызывающей программе.

 

В Windows NT имеется два типа защищенных подсистем: подсистемы сре­ды (environment subsystems) и неотъемлемые подсистемы (integral subsystems). Подсистема среды — это сервер пользовательского режима, реализующий API некоторой ОС. Когда приложение вызывает функцию API, этот вызов доставля­ется посредством LPC подсистеме среды. Та исполняет вызов и возвращает ре­зультаты прикладному процессу, посылая другой LPC.

Самая важная подсистема среды в Windows NT — это подсистема Win32, которая предоставляет прикладным программам API 32-разрядной Windows. Кроме того, подсистема среды Win32 реализует графический интерфейс поль­зователя Windows NT и управляет всем вводом пользователя и выводом приложений. В Windows NT также имеются подсистемы среды POSIX,

Рис. 2-6. Блок-схема Windows NT.

OS/2, 16-раз­рядной Windows и MS-DOS (две последние не показаны на рис. 2-6). Данные подсистемы предоставляют свои API, но используют для получения пользова­тельского ввода и отображения результатов подсистему Win32.

Другие защищенные подсистемы — неотъемлемые подсистемы — это сер­веры, выполняющие важные функции ОС. В процессе разработки Windows NT некоторые неотъемлемые подсистемы появлялись и исчезали, но одна присут­ствовала всегда: подсистема защиты. Подсистема защиты исполняется в пользо­вательском режиме и регистрирует правила контроля доступа, определенные для локального компьютера. Например, она отслеживает, какие учетные записи пользователей имеют особые привилегии, доступ к каким системным ресурсам подлежит аудиту и должны ли генерироваться сообщения или предупреждения аудита. Кроме того, подсистема защиты ведет базу данных учетных записей пользователей, содержащую идентификаторы пользователей, пароли, группы, к которым отнесен пользователь, и особые привилегии, которыми он обладает. Она также принимает регистрационную информацию пользователя и иниции­рует аутентификацию подключения пользователя к системе.

Некоторые компоненты сетевого обеспечения Windows NT также реализо­ваны как защищенные подсистемы. Заслуживают упоминания две из них: сервис рабочей станции и сервис сервера. Каждый из этих сервисов (services), как часто называют сетевые подсистемы, является процессом пользовательского режима, реализующим API для доступа и управления, соответственно, сетевым редирек­тором и сервером LAN Manager. Редиректор — это сетевой компонент, ответ­ственный за посылку запросов ввода-вывода по сети, если файл или устройство, к которому осуществляется обращение, не является локальным. На удаленной машине такие запросы принимаются сервером. И редиректор, и сервер LAN Manager реализованы как драйверы файловых систем — т. е. являются частью системы ввода-вывода NT.

Исполнительная система

Исполнительная система NT (NT executive) — это часть Windows NT, исполняю­щаяся в режиме ядра; за исключением пользовательского интерфейса, она сама по себе является законченной ОС. Исполнительная система состоит из ряда ком­понентов, причем каждый из них реализует два набора функций: системные сервисы, к которым могут обращаться как подсистемы среды, так и компоненты исполнительной системы, а также внутренние процедуры, доступные только ком­понентам исполнительной системы. Эти интерфейсы изображены на рис. 2-7.

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

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

Ниже перечислены различные компоненты исполнительной системы и их области ответственности:

• Диспетчер объектов. Создает, поддерживает и уничтожает объекты ис­полнительной системы NT — абстрактные типы данных, представляю­щие системные ресурсы.

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

• Диспетчер процессов. Создает и завершает процессы и потоки. Кроме того, приостанавливает и возобновляет исполнение потоков, хранит и выдает информацию о процессах и потоках NT.

• Средство локального вызова процедур (LPC). Передает сообщения меж­ду клиентскими и серверными процессами, расположенными на одном и том же компьютере. LPC — это гибкая, оптимизированная версия удаленного вызова процедур (remote procedure call, RPC), средства комму­никации между клиент







Дата добавления: 2015-06-12; просмотров: 476. Нарушение авторских прав; Мы поможем в написании вашей работы!



Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...

Композиция из абстрактных геометрических фигур Данная композиция состоит из линий, штриховки, абстрактных геометрических форм...

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

ТЕОРЕТИЧЕСКАЯ МЕХАНИКА Статика является частью теоретической механики, изучающей условия, при ко­торых тело находится под действием заданной системы сил...

Мелоксикам (Мовалис) Групповая принадлежность · Нестероидное противовоспалительное средство, преимущественно селективный обратимый ингибитор циклооксигеназы (ЦОГ-2)...

Менадиона натрия бисульфит (Викасол) Групповая принадлежность •Синтетический аналог витамина K, жирорастворимый, коагулянт...

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

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

Тема 5. Анализ количественного и качественного состава персонала Персонал является одним из важнейших факторов в организации. Его состояние и эффективное использование прямо влияет на конечные результаты хозяйственной деятельности организации.

Билет №7 (1 вопрос) Язык как средство общения и форма существования национальной культуры. Русский литературный язык как нормированная и обработанная форма общенародного языка Важнейшая функция языка - коммуникативная функция, т.е. функция общения Язык представлен в двух своих разновидностях...

Studopedia.info - Студопедия - 2014-2024 год . (0.012 сек.) русская версия | украинская версия