вывода. Как правило, предлагают три вида обслуживания: пакетная обработка, обработка транзакций (групповых операций)
и разделение времени. В случае пакетной обработки задачи обрабатываются без участия пользователей. Например, состав-
ление разнообразных отчетов может быть выполнено в пакетном режиме. В случае обработки транзакций выполняется боль-
шое число маленьких запросов, таких как бронирование билетов, операции с кредитными карточками и т.д. Запросы невели-
ки, но система одновременно обрабатывает сотни и тысячи таких запросов в секунду. В режиме разделения времени система
позволяет множеству удаленных пользователей одновременно выполнять задачи на одной машине. Типичным примером
является многопользовательская база данных. Пример ОС для мэйнфрейма – OS/390.
Серверы одновременно обслуживают множество пользователей, позволяя им делить между собой программные и аппарат-
ные ресурсы. Серверы предоставляют возможность работы с печатающими устройствами, файлами, Интернетом. На серве-
рах хранятся Web-страницы и обрабатываются входящие запросы. UNIX, Windows 2000, Linux – примеры серверных ОС.
Для работы с системами, в которых объединены несколько процессоров, требуются специальные ОС, часто многопроцес-
сорные ОС представляют собой серверные ОС со специальными возможностями связи. Основная задача ОС для ПК – пре-
доставление удобного интерфейса пользователю. Эти ОС используются для доступа к Интернету, работы с текстом, элек-
тронными таблицами и т.д. Все клоны ОС Windows, Linux.
ОС реального времени используются, когда процессы, которыми управляет машина, например, сборочной линией на про-
изводстве, должны удовлетворять жестким временным требованиям. Если действия должны происходить строго в указан-
ный диапазон времени – это жесткая СРВ, если же время от времени возможны пропуски сроков выполнения операции, на-
пример, цифровое аудио и мультимедийные системы, то это гибкая СРВ. Примерами СРВ являются VxWorks и QNX. Для
карманных компьютеров, а также встроенных систем, управляющих широким спектром бытовых и прочих устройств
(телевизоры, микроволновые печи, мобильные телефоны) используются встроенные ОС. Они могут обладать характеристи-
ками ОС реального времени, но имеют меньший размер, память, ограниченную мощность. Примерами являются PalmOS и
Windows CE. Смарт-карта – устройство размером с кредитную карту, содержащее центральный процессор. Часто ОС для
смарт-карт являются патентованными системами. Часть смарт-карт являются Java-ориентированными, у них ПЗУ содержит
интерпретатор виртуальной Java-машины (JVM). Некоторые из смарт-карт позволяют управлять несколькими апплетами
одновременно, что приводит к многозадачности и необходимости планирования, требуется управление ресурсами и защи-
той. Все эти задачи выполняет, как правило, примитивная ОС, находящаяся на смарт-карте.
В монолитных ОС все части системы сильно связаны между собой. Поэтому изменение или удаление какой-либо части тре-
бует хорошего знания всей архитектуры ОС и может повлечь необходимость изменения остальных модулей. При этом воз-
никает ряд проблем, связанных с тем, что функции макроядра работают в едином адресном пространстве. Это вызывает
опасность возникновения конфликтов, а также сложность подключения новых драйверов. Структура как таковая отсутству-
ет. ОС представляет собой набор процедур, каждая из которых может вызывать при необходимости любые другие. Для по-
строения такой системы компилируются все отдельные процедуры, с помощью компоновщика связываются в единый объ-
ектный файл. Поскольку для каждой процедуры доступны все другие, практически отсутствует сокрытие деталей реализа-
ции. Монолитные системы могут поддерживать механизм прерываний. В этом случае предполагается некоторая структура
ОС: На верхнем уровне лежит главная программа, которая вызывает требуемую служебную процедуру. Ниже идет набор
служебных процедур, выполняющих системные вызовы. На самом низу лежат утилиты, обслуживающие системные проце-
дуры.
Многоуровневые системы имеют организацию в виде иерархии уровней. Первой подобной системой была система THE,
созданная Дейкстрой в 1968 году. Она содержала 6 уровней. 0 – распределение процессора и многозадачность, 1 – управле-
ние памятью, 2 – связь оператор-процесс, 3 – управление ВВ, 4 – программы пользователя, 5 – оператор. Уровень 0 занимал-
ся распределением времени процессора, переключая процессы при возникновении прерывания или срабатывании таймера.
Выше этого уровня система состояла из последовательных процессов, каждый из которых можно было программировать не
беспокоясь о том, что на одном процессоре запущено несколько процессов. Т.е. уровень 0 обеспечивал базовую многозадач-
ность процессора. Уровень 1 управлял памятью. Он выделял процессам память в ОЗУ и на магнитном барабане, если ОЗУ не
хватало. По мере необходимости страницы с барабана попадали в ОЗУ. Выше этого уровня процессам не было необходимо-
сти заботиться о том, где они находятся – в ОЗУ или на барабане. Уровень 2 управлял связью между консолью оператора и
процессами. Все процессы выше этого уровня имели свою собственную консоль оператора. Уровень 3 управлял устройства-
ми ВВ и буферизацией данных. Любой процесс выше 3 уровня работал уже не с конкретными устройствами ВВ, а с абст-
рактными УВВ с удобными для пользователя характеристиками. Дальнейшее обобщение концепции многоуровневых систем
было сделано в системе MULTICS. Уровни представляли серию концентрических колец, внутренние кольца являлись более
привилегированными, чем внешние. Если внешнее кольцо хотело вызвать процедуру из кольца внутреннего, выполнялся
эквивалент системного вызова с тщательной проверкой параметров и возможности доступа. Многоуровневые системы про-
сты в реализации. При разработке каждого из уровней нет необходимости знать устройство более низкого уровня, достаточ-
но знать, как к обратиться к функциям этого уровня. Упрощается тестирование. Поскольку отладка идет снизу вверх по-
слойно, то можно быть уверенным, что возникшая ошибка находится именно в тестируемом слое. Упрощается модификация
систем. При необходимости достаточно изменить функциональность одного из уровней, не меняя остальных. Недостаток
подобных систем в том, что запрос от пользователя вынужден проходить все слои поочередно, аналогично и результат за-
проса передается от уровня к уровню. Кроме того весьма непросто разделить систему на нужное количество уровней, опре-
делить их иерархию и разграничить возможности каждого слоя.
Виртуальные машины развились на основе проработки двух принципов: 1. система с разделением времени обеспечивает
многозадачность, 2. расширенную машину с более удобным интерфейсом, чем предоставляемый непосредственно оборудо-
ванием. Первая ОС такого рода VM/370. Монитор виртуальной машины работает с оборудованием и обеспечивает многоза-
дачность, предоставляя верхнему слою не одну, а несколько виртуальных машин. В отличие от других ОС, эти ВМ не явля-