«В основу первой и основной классификации положим степень централизации (связности) операционной системы. Операционные системы Централизованные Однопроцессорные Сетевые Распределенные Многопроцессорные Рис. 5. Классификация по типу централизации. Эта классификация принимает во внимание особенности аппаратных платформ, для которых операционные системы создаются. Централизованные (локальные) операционные системы управляют ресурсами единственного локального компьютера. Они включают два различных с точки зрения алгоритмов подкласса Однопроцессорные системы Многопроцессорные системы Сетевые операционные системы предоставляют пользователю сети некоторую виртуальную машину, работать с которой проще, чем с реальной сетевой аппаратурой. Однако пользователь всегда выполняет специальные операции для доступа к сетевым ресурсам. Сетевые системы включают дополнительные компоненты. серверную часть операционной системы – средства предоставления локальных ресурсов и услуг в общее пользование; клиентская часть операционной системы – средства запроса доступа к удаленным ресурсам и услугам транспортные средства операционной системы – средства обеспечения передачи сообщений между компьютерами сети. Распределенные операционные системы предоставляют пользователю сети единую централизованную виртуальную машину, которая дает максимальную степень прозрачности сетевых ресурсов. Распределенные системы объединяют все компьютеров сети, для работы в тесной кооперации. При работе в таких системах пользователь, запускающий приложение, не знает. На каком компьютере оно реально выполняется. Существует интересное обоснование данной классификации. В главе 6. было отмечено, что основной характеристикой классификации параллельных и распределенных архитектур считают наличие общей или распределенной(локальной для каждого из узлов) памяти. Исходя из этого, вычислительные системы можно разделить на два класса. Системы с сильными связями. Сюда относятся системы, состоящие из нескольких однородных процесооров и массива общей памяти. Системы со слабыми связями. Это системы, состоящие из однородных вычислительных узлов, каждый из которых имеет свою память. Программное обеспечение можно также разделить на два класса. Программное обеспечение с сильными связями. Сюда относятся программы, которые при исполнении на нескольких вычислительных модулях в большой степени являются связанными между собой. Программное обеспечение со слабыми связями. Оно позволяет вычислительным модулям быть независимым друг от друга, но при необходимости взаимодействовать ограниченным количеством способов. В результате можно получить четыре различных комбинации между этими парами, три из котрых явля.тся осмысленными и определяют следующие типы операционных систем (рис. 6.) Параллельные и распределенные компьютеры Сильные связи (многопроцессорные с общей памятью) Централизованная ОС Сильные связи Слабые связи (каждый компьютер имеет свою память) Сетевая ОС Распределенная ОС Слабые связи Программное обеспечение Рис. 6. Обоснование классификации по типу централизации. 2.2.3.2. Классификация по особенностям алгоритмов управления ресурсами [1] «Классификация по особенностям алгоритмов управления ресурсами имеет следующие аспекты. 1. Поддержка многозадачности, а именно: Однозадачные операционные системы выполняют функцию предоставления пользователю виртуальной машины, делая простым и удобным процесс его взаимодействия с компьютером; Многозадачные операционные системы дополнительно управляют разделением совместно используемых ресурсов. В первую очередь они дают возможность одновременно исполнять несколько задач на одном процессоре. 2. Поддержка многопользовательского режима, а именно: Однопользовательские операционные системы не предоставляют средств защиты информации одного пользователя от несанкционированного доступа другого пользователя. Такие системы не предоставляют возможностей разделения ресурсов; Многопользовательские информации имеют. операционные системы такие средства защиты 3. Поддержка многопоточности. Многопоточные операционные системы дают возможность разделять время не только между процессами, но и между отдельными ветвями процессов - потоками 4. Поддержка многопроцессорной обработки. Многопроцессорные операционные системы реализуют более сложные алгоритмы управления ресурсами, предоставляют возможность работать с несколькими процесссорами 5. В операционных системах отдельным направлением идет концепция системы виртуальных машин. Такие операционные системы допускают одновременную работу нескольких полноценных операционных систем, создавая иллюзию того, что ЭВМ находится в их полном распоряжении.» 2.2.3.3. Классификация по особенностям аппаратных платформ [1] «Специфика аппаратных средств, как правило, отражается на специфике операционной системы.» В лекции 2 была рассмотрена «…функциональная классификация компьютеров. Каждый из типов компьютеров в этой классификации имеет определенные свойства, оказывающие непосредственное влияние на свойства операционных систем. Обратим внимание на то, что наибольший интерес в настоящее время вызывают следующие группы операционных систем: Операционные системы для мощных серверов; Операционные системы для мощных станций и персональных компьютеров; Операционные системы для карманных компьютеров» 2.2.3.4. Классификация по областям использования [1] «По особенностям областей использования многозадачные операционные системы могут быть разделены на три типа: Операционные системы пакетной обработки. Они работают с пакетами задач, причем переключение процессора с одной задачи на другую происходит лишь в том случае, если активная задача сама отказывается от процессора. Операционные системы разделения времени. Такие системы предоставляют каждой из задач квант процессорного времени. При этом время ответа программы обычно оказывается достаточно приемлемым, что позволяет использовать эти системы в качестве диалоговых. Операционные системы реального времени. Они применяются для управления некоторыми технологическими объектами и процессами. В них существует предельно допустимое время, в течение которого программа сама должно ответить. Операционные системы реального времени характеризуются тем, что в ответ на события они должны гарантированно реагировать до определенного времени. Проще говоря, когда дается ответ, также важно, как и какой. Многие операционные системы совмещают в себе свойства систем различных типов. Например, часть задач выполняется в режиме разделения времени, а часть – в режиме реального времени.» 2.2.3.5. Классификация по типу архитектуры ядра системы [1] «Существуют следующие основные разновидности архитектуры ядра. Монолитное ядро. Такое ядро компонуется как одно программа, работающая в привилегированном режиме и использующая быстрые переходы с одной процедуры на другую.(рис. 7. А) Слоистое ядро. В этом случае компоненты операционной системы образуют уровни с хорошо продуманной функциональностью и интерфейсом. Как и в предыдущем случае, компоненты работают в привилегированном режиме. (рис. 7. б) Микроядро. Микроядро выполняет минимум функций по управлению аппаратурой. Обычно в него включаются машинно зависимые программы, некоторые функции управления процессами и обработка прерываний. Функции более высокого уровня выполняют специализированные компоненты операционной системы: сервер процессора, файловый сервер и т.д. Эти компоненты работают в пользовательском, непривилегированном режиме. Данная архитектура основана на подходе клиент-сервер и характеризуется переносимостью, расширяемостью и надежностью (рис. 7. в) Приложение пользователя Приложение пользователя Приложение пользователя Файловый сервер Сервер памяти Сервер процессора Непривилегированный режим Системные службы Процесс А Процесс B Сетевой сервер Системные службы Файловый сервер Процесс C Процесс D Процесс E Привилегированный режим Процессор (а) Монолитное ядро Микроядро Управление памятью и устройствами ввода-вывода Управление процессом Процессор (б) Слоистое ядро Процессор (в) Микроядро Рис. 7. Классификация по типу архитектуры ядра Концепция системы виртуальных машин может быть поддержана экзоядром. Каждый пользователь может быть обеспечен абсолютной копией реального компьютера, но с подмножеством ресурсов. На экзоядро возложена задача распределения ресурсов для виртуальных машин и проверка использования ресурсов. Отметим, что архитектура ядра в значительной степени влияет на всю архитектуру операционной системы.»