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