Сетевые операционные системы и их классификация.

05.11.2020 13:58
    Сетевые операционные системы (СОС) созданы для клиент-серверных применений. В общих чертах это означает подсоединение однопользовательской рабочей станции общего назначения (клиента) к многопользовательским серверам и распределение нагрузки между ними.
    Сетевая операционная система необходима для управления потоками сообщений между рабочими станциями и серверами. Она может позволить любой рабочей станции работать с разделяемым сетевым диском или принтером, которые физически не подключены к этой станции. По запросу клиента сервер предоставляет ему различные сервисные функции. Кроме этого, сетевые ОС обеспечивают совместное использование в сети файлов и принтеров — эти возможности встроены в саму ОС. В результате подобная интегрированная сетевая поддержка позволяет компьютеру, например с сетевой операционной системой Windows Server, одновременно взаимодействовать со следующими сетевыми средами:
с сетями Microsoft, включая Windows Server, Windows ХР и т. д.;
с сетями на базе Transmission Control Protocol/Internet Protocol (TCP/IP), включая UNIX-хосты;
с сетями на основе AppleTalk (при использовании Windows NT Server Services for the Macintosh);
с сетями Novell Netware.
    Операционные системы могут различаться особенностями реализации внутренних алгоритмов управления основными ресурсами компьютера (процессорами, памятью, устройствами), особенностями использованных методов проектирования, типами аппаратных платформ, областями использования и многими другими свойствами. По этим признакам проведена классификация ОС, показанная на рис. 55.
 
Рис. 55. Классификация операционных систем.
 
    Алгоритмы управления ресурсами определяют эффективность сетевой операционной системы. Среди них важнейшими являются алгоритмы, которые приведены далее.
    Поддержка многозадачности определяется по числу одновременно выполняемых задач: однозадачные (MS-DOS) и многозадачные (OS/2, UNIX, Windows 98/2000/ХР и др.). Однозадачные ОС включают средства управления периферийными устройства¬ми, средства управления файлами, средства общения с пользователем. Многозадачные ОС, кроме перечисленных функций однозадачных ОС, управляют разделением совместно используемых ресурсов, таких как память, оперативная память, файлы и внешние устройства и др.
    Поддержка многопользовательского режима определяется по числу одновременно работающих пользователей и подразделяется на однопользовательские (MS-DOS, Windows 3.x и др.) и многопользовательские (UNIX, Windows Server). Многопользовательские системы, в отличие от однопользовательских, обладают более развитой системой защиты информации каждого пользователя от несанкционированного доступа других пользователей, а также совместного доступа к разделяемым между ними ресурсам.
    Поддержка вытесняющей и невытесняющей многозадачности определяется по способу распределения процессорного времени между несколькими одновременно существующими в системе процессами. Основным различием между вытесняющей и невытесняющей многозадачностью является степень централизации механизма планирования процессов. У невытесняющей многозадачности механизм планирования процессов сосредоточен в операционной системе, а у вытесняющей распределен между ОС и прикладными программами. При невытесняющей многозадачности активный процесс выполняется до тех пор, пока он сам не отдаст управление операционной системе для того, чтобы она сама выбрала из очереди другой готовый к выполнению процесс. При вытесняющей многозадачности решение о переключении процесса с одного процесса на другой принимается операционной системой, а не самим активным процессом.
    Поддержка многопроцессорной обработки определяется числом процессоров, задействованных на обработку активных процессов. При многопроцессорной обработке все алгоритмы управления усложняются на порядок, данный режим обработки также называют мультипроцессированнем. Многопроцессорные ОС могут классифицироваться по способу организации вычислительного процесса на асимметричные и симметричные. Асимметричные ОС выполняются целиком только на одном из процессов системы, распределяя прикладные задачи по остальным процессорам. Симметричная ОС полностью децентрализована и использует весь пул процессоров, разделяя их между системными и прикладными задачами.
    Особенности построения аппаратных платформ базируются на свойствах операционной системы, ориентированных на аппаратные средства, на которых она реализуется. По типу аппаратуры различают ОС персональных компьютеров, мейнфреймов, кластеров и сетей ЭВМ. Среди перечисленных типов компьютеров могут встречаться как однопроцессорные варианты, так и многопроцессорные. Для больших компьютеров, например многопроцессорных серверов, функции планирования потока выполнения задач реализуются путем использования сложных приоритетных заданий и требуют большей вычислительной мощности, чем в ОС персональных компьютеров, в связи с чем ОС больших машин являются более сложными и функциональными. Сетевые ОС имеют в своем составе средства передачи сообщений между компьютерами по линиям связи. На основе этих сообщений сетевая ОС поддерживает разделение ресурсов компьютера между удаленными пользователями, подключенными к сети. Для реализации этих функций сетевые ОС поддерживают специальные программные компоненты, реализующие коммуникационные протоколы, рассмотренные в предыдущих лекциях.
    Другие требования предъявляются к операционным системам кластеров. Кластер — слабо связанная совокупность нескольких вычислительных систем, работающих совместно для выполнения общих приложений и предоставляющихся пользователю единой системой. Наряду со специальной аппаратурой для функционирования кластерных систем необходима программная поддержка со стороны ОС, которая сводится к синхронизации доступа к разделяемым ресурсам, обнаружению отказов и динамической конфигурации системы. Кроме того, существуют ОС, специально разработанные таким образом, чтобы при необходимости их можно было перенести с одного компьютера на другой. Такие ОС называют мобильными.
    Особенности областей использования для многозадачных ОС подразделяются на три типа в соответствии с использованными при их разработке критериями эффективности:
системы пакетной обработки (например, ОС ЕС);
системы разделения времени (UNIX, VMS);
системы реального времени (QNX, RT/11).
    Системы пакетной обработки предназначались для решения задач в основном вычислительного характера, не требующих быстрого получения результатов. Главной целью и критерием эффективности систем пакетной обработки является максимальная пропускная способность, т. е. решение максимального числа задач в единицу времени.
    Для достижения этой цели в системах пакетной обработки используется следующая схема функционирования: в начале работы формируется пакет задания, каждое задание содержит требование к системным ресурсам; из этого пакета заданий формируется мультипрограммная смесь, т. е. множество одновременно выполняемых задач. Для одновременного выполнения выбираются задачи, предъявляющие отличающиеся требования к ресурсам, так, чтобы обеспечивалась сбалансированная загрузка всех устройств вычислительной машины; например, в мультипрограммной смеси желательно одновременное присутствие вычислительных задач с интенсивным вводом-выводом. Выбор нового задания из пакета заданий зависит от внутренней ситуации, складывающейся в системе, т. е. выбирается «выгодное» задание. Следовательно, в таких ОС невозможно гарантировать то или иное задание в течение определенного периода времени. В системах пакетной обработки переключение процессора с выполнения одной задачи на выполнение другой происходит только в случае, если активная задача сама отказывается от процессора, например из-за необходимости выполнить операцию ввода-вывода. Поэтому одна задача может надолго занять процессор, что делает невозможным выполнение интерактивных задач.
    Таким образом, взаимодействие пользователя с вычислительной машиной, на которой установлена система пакетной обработки, сводится к тому, что он приносит задания, отдает его диспетчеру-оператору, а в конце дня после выполнения всего пакета задания получает результат.     Очевидно, что такой порядок снижает эффективность работы пользователя.
    Системы разделения времени призваны исправить основной недостаток систем пакетной обработки — изоляцию пользователя-программиста от процесса выполнения его задач. Каждому пользователю системы разделения времени предоставляется терминал, с которого он может вести диалог со своей программой. Так как в системах разделения времени каждой задаче выделяется только квант процессорного времени, ни одна задача не занимает процессор надолго, и время ответа оказывается приемлемым. Если квант выбран достаточно небольшим, то у всех пользователей, одновременно работающих на одной и той же машине, складывается впечатление, что каждый из них едино¬лично использует машину. Ясно, что системы разделения времени обладают меньшей пропускной способностью, чем системы пакетной обработки, так как на выполнение принимается каждая запущенная пользователем задача, а не та, которая «выгодна» системе, и, кроме того, имеются накладные расходы вычислительной мощности на более частое переключение процессора с задачи на задачу. Критерием рациональности построения систем разделения времени является не максимальная пропускная способность, а удобство и эффективность работы пользователя.
    Системы реального времени применяются для управления различными техническими объектами, такими, например, как станок, спутник, научно-экспериментальная установка или технологическими процессами, такими, как гальваническая линия, доменный процесс и т. п. Во всех этих случаях существует предельно допустимое время, в течение которого должна быть выполнена та или иная программа, управляющая объектом, в противном случае может произойти авария: спутник выйдет из зоны видимости, экспериментальные данные, поступающие с датчиков, будут потеряны, толщина гальванического покрытия не будет соответствовать норме. Таким образом, критерием эффективности для систем реального времени является их способность выдерживать заранее заданные интервалы времени между запуском программы и получением результата — управляющего воздействия. Это время называется временем реакции системы, а соответствующее свойство системы — реактивностью. Для этих систем мультипрограммная смесь представляет собой фиксированный набор заранее разработанных программ, а выбор программы на выполнение осуществляется исходя из текущего состояния объекта или в соответствии с расписанием плановых работ.
    Некоторые операционные системы могут совмещать в себе свойства систем разных типов, например, часть задач может выполняться в режиме пакетной обработки, а часть — в режиме реального времени или в режиме разделения времени. В таких случаях режим пакетной обработки часто называют фоновым режимом.
    В качестве особенностей методов построения при описании операционной системы часто указываются характерные черты ее структурной организации и основные концепции, положенные в ее основу.
    Рассмотрим три базовые концепции.
    Во-первых, большинство ОС используют монолитное ядро, которое компонуется как одна программа, работающая в привилегированном режиме и использующая быстрые переходы с одной процедуры на другую, не требующие переключения из привилегированного режима в пользовательский, и наоборот. Альтернативой является построение ОС на базе микроядра, работающего также в привилегированном режиме и выполняющего только минимум функций по управлению аппаратурой, в то время как функции ОС более высокого уровня выполняют специализированные компоненты ОС — серверы, работающие в пользовательском режиме. При таком построении ОС работает более медленно, так как часто выполняются переходы между привилегированным режимом и пользовательским, зато система получается более гибкой — ее функции можно наращивать, модифицировать или сужать, добавляя, модифицируя или исключая серверы пользовательского режима. Кроме того, серверы хорошо защищены друг от друга, как и любые пользовательские процессы.
    Во-вторых, построение ОС на базе объектно-ориентированного подхода дает возможность использовать все его достоинства, хорошо зарекомендовавшие себя на уровне приложений, внутри операционной системы, а именно: аккумуляцию удачных решений в форме стандартных объектов, возможность создания новых объектов на базе имеющихся с помощью механизма наследования, хорошую защиту данных за счет внедрения во внутренние структуры объекта, что делает данные недоступными для несанкционированного использования извне, структурированность системы, состоящей из набора хорошо определенных объектов.
    В-третьих, наличие нескольких прикладных сред дает возможность в рамках одной ОС одновременно выполнять приложения, разработанные для нескольких ОС. Многие современные операционные системы поддерживают одновременно прикладные среды MS-DOS, Windows, UNIX (POSIX), OS/2 или хотя бы некоторого подмножества из этого популярного набора. Концепция множественных прикладных сред наиболее просто реализуется в ОС на базе микроядра, над которым работают различные серверы, часть которых реализуют прикладную среду той или иной операционной системы.
    Распределенная организация операционной системы позволяет упростить работу пользователя и программистов в сетевых средах. В распределенной ОС реализованы механизмы, которые дают возможность пользователю представлять и воспринимать сеть в виде традиционного однопроцессорного компьютера. Характерными признаками распределенной организации ОС являются: наличие единой справочной службы разделяемых ресурсов, единой службы времени, использование механизма вызова удаленных процедур RPC (Remote Procedure Call) для прозрачного распределения программных процедур по машинам, многонитевой обработки, позволяющей распараллеливать вычисления в рамках одной задачи и выполнять эту задачу сразу на нескольких компьютерах сети, а также наличие других распределенных служб.