Операционные системы могут различаться особенностями реализации внутренних алгоритмов управления основными ресурсами компьютера (процессорами, памятью, устройствами), особенностями использованных методов проектирования, типами аппаратных платформ, областями использования и многими другими свойствами.
Ниже приведена классификация ОС по нескольким наиболее основным признакам.
От эффективности алгоритмов управления локальными ресурсами компьютера во многом зависит эффективность всей ОС в целом. Поэтому, характеризуя ОС, часто приводят важнейшие особенности реализации функций ОС по управлению процессорами, памятью, внешними устройствами автономного компьютера. Так, например, в зависимости от особенностей использованного алгоритма управления процессором операционные системы делят на многозадачные и однозадачные, многопользовательские и однопользовательские, на системы, поддерживающие многопоточную обработку и не поддерживающие ее, на многопроцессорные и однопроцессорные системы.
Поддержка многозадачности. По числу одновременно выполняемых задач операционные системы могут быть разделены на два класса:
· однозадачные (например, MS-DOS);
· многозадачные (OC EC, OS/2, UNIX, Windows NT/2000, Windows 98).
Однозадачные ОС в основном выполняют функцию предоставления пользователю виртуальной машины, делая более простым и удобным процесс взаимодействия пользователя с компьютером. Однозадачные ОС включают средства управления периферийными устройствами, средства управления файлами, средства общения с пользователем.
Многозадачные ОС, кроме вышеперечисленных функций, управляют разделением совместно используемых ресурсов, таких как процессор, оперативная память, файлы и внешние устройства.
Поддержка многопользовательского режима.По числу одновременно работающих пользователей ОС делятся на:
· однопользовательские (MS-DOS, ранние версии OS/2);
· многопользовательские (UNIX, в некотором отношении Windows NT./2000).
Главным отличием многопользовательских систем от однопользовательских является наличие средств защиты информации каждого пользователя от несанкционированного доступа других пользователей. Следует заметить, что не всякая многозадачная система является многопользовательской, и не всякая однопользовательская ОС является однозадачной.
Вытесняющая и невытесняющая многозадачность. Важнейшим разделяемым ресурсом является процессорное время. Способ распределения процессорного времени между несколькими одновременно существующими в системе процессами (или потоками) во многом определяет специфику ОС. Среди множества существующих вариантов реализации многозадачности можно выделить две группы алгоритмов:
· невытесняющая многозадачность (NetWare, Windows 3.x);
Основным различием между вытесняющим и невытесняющим вариантами многозадачности является степень централизации механизма планирования процессов. Во втором случае механизм планирования процессов целиком сосредоточен в операционной системе, а в первом - распределен между системой и прикладными программами. При невытесняющей многозадачности активный процесс выполняется до тех пор, пока он сам, по собственной инициативе, не отдаст управление операционной системе для того, чтобы та выбрала из очереди другой готовый к выполнению процесс. При вытесняющей многозадачности решение о переключении процессора с одного процесса на другой принимается операционной системой, а не самим активным процессом.
Поддержка многопоточности.Важным свойством операционных систем является возможность распараллеливания вычислений в рамках одной задачи. Многопоточная ОС разделяет процессорное время не между задачами, а между их отдельными ветвями (потоками, или нитями).
Многопроцессорная обработка.Другим важным свойством ОС является отсутствие или наличие в ней средств поддержки многопроцессорной обработки - мультипроцессирование. Мультипроцессирование приводит к усложнению всех алгоритмов управления ресурсами.
В наши дни становится общепринятым введение в ОС функций поддержки многопроцессорной обработки данных. Такие функции имеются в операционных системах Solaris фирмы Sun, Open Server компании Santa Crus Operations, OS/2 фирмы IBM, Windows NT/2000 фирмы Microsoft и NetWare фирмы Novell.
Многопроцессорные ОС могут классифицироваться по способу организации вычислительного процесса в системе с многопроцессорной архитектурой: асимметричные ОС и симметричные ОС. Асимметричная ОС целиком выполняется только на одном из процессоров системы, распределяя прикладные задачи по остальным процессорам. Симметричная ОС полностью децентрализована и использует весь пул процессоров, разделяя их между системными и прикладными задачами.
Поддержка сети. Можно говорить о классификации ОС по возможности поддержки ими сети. В этом случае различают сетевые и несетевые ОС. Пример не сетевых ОС: MS-DOS, Windows 98. Пример сетевых ОС: NetWare фирмы Novell, различные версии UNIX, Windows NT/2000.
Сетевые ОС, как правило, имеют две модификации: для установки на сервер – серверные версии, для установки на рабочую станцию – клиентская версия. Примером такого разделения версий являются системы Windows NT и Windows 2000. В системах Windows NT: клиентская версия – Windows NT Workstation, серверная версия - Windows NT Server. В системах Windows 2000: клиентская версия – Windows 2000 Professional, серверных версий несколько, перечислим их в порядке повышения возможностей системы - Windows 2000 Server, Windows 2000 Advanced Server, Windows 2000 Datacenter Server (последние две серверные версии находятся в стадии разработки).
Специфика сетевой ОС проявляется в том, каким образом она реализует сетевые функции: распознавание и перенаправление в сеть запросов к удаленным ресурсам, передача сообщений по сети, выполнение удаленных запросов. При реализации сетевых функций возникает комплекс задач, связанных с распределенным характером хранения и обработки данных в сети: ведение справочной информации обо всех доступных в сети ресурсах и серверах, адресация взаимодействующих процессов, обеспечение прозрачности доступа, тиражирование данных, согласование копий, поддержка безопасности данных.