1) функции связи с оператором в реальном времени для подготовки
устройств к работе, переопределения конфигурации и изменения состояния
системы. Этот интерфейс, как правило дает возможность оператору запускать
программы, прерывать выполнение программ, запрашивать информацию об
использовании аппаратуры и о ходе выполнения конкретной программы, сообщать
системе о соответствии наборов данных конкретным устройствам и т.д.
2) функции, относящиеся к выполнению операций ввода-вывода. В
частности, в состав операционной системы входят программы обработки очередей
запросов на выполнение ввода-вывода, распределения устройств и каналов
конкретным программам, а также наборам данных;
3) механизмы мультипрограммирования, способствующие использованию
процессоров выполняющимися программами. Иногда частью операционной
системы считаются и механизмы управления, которые предоставляют
выполняющимся программам системное обслуживание соответствующих уровней,
но эти же механизмы могут считаться расширением системы, поскольку они
реализуют управляющие функции высшего уровня;
4) механизмы, обеспечивающие методы доступа к ресурсам вычислительной
системы. Например, компоненты считывания и управления входным потоком в
пакетном режиме и интерпретации поступающих с терминалов команд в диалоговом
режиме позволяют установить связь между системой и программистами для приема
запросов последних на соответствующее обслуживание. Указанные компоненты
операционной системы фиксируют запросы на вычислительные ресурсы и
присваивают их отправителям статусы, согласно которым они могут получать
требуемое обслуживание. Компоненты, обеспечивающие доступ, могут также
считаться не входящими непосредственно в операционную систему. В таком случае
эти компоненты образуют подсистемы, напоминающие по характеру
взаимоотношений с системой прикладные программы.
Трансляторы тоже не принято рассматривать как часть операционной
системы. Однако иногда они оказываются настолько сильно связанными с другими
компонентами программного обеспечения, что понятие проекции, соответствующей
лишь основным частям операционной системы, становится бессмысленным. Многие
функции современных операционных систем в прошлом считались функциями
компиляторов и обеспечивались библиотеками компиляторов. Вообще,
распределение функций между компиляторами и операционной системой является
весьма гибким, поэтому невозможно однозначно ответить на вопрос о роли как
компиляторов, так и системы в обеспечении выполняющихся программ памятью и
прочими ресурсами. Во многих простых диалоговых системах только с одним
языком программирования процессы компиляции, распределения и управления
настолько взаимосвязаны, что строго определить, где кончается операционная
система, а где начинается компилятор, не представляется возможным.
Решение о включении какого-либо элемента программного обеспечения в
операционную систему зависит от позиции разработчика, от требуемых сервисных
возможностей системы и от сложившихся традиций. Многие компоненты,