Супервизор задач.

Ядро ОС и низкоуровневые драйверы, управляющие работой каналов и устройств ввода-вывода, должны работать в специальном режиме работы процессора. Это необходимо по нескольким причинам. Во-первых, введение специального режима работы процессора, в котором должен исполняться только код ОС, позволяет существенно повысить надежность выполнения вычислений. Это касается выполнения как управляющих функций самой ОС, так и прикладных задач пользователей. Категорически нельзя допускать, чтобы какая-нибудь прикладная программа могла вмешиваться в вычисления, связанные с супервизорной частью ОС. Во-вторых, ряд функций должен выполняться исключительно централизованно, под управлением ОС. К этим функциям мы должны отнести функции, связанные с выполнением процессами ввода-вывода: все операции ввода-вывода данных объявляются привилегированными. Это легче всего сделать, если процессор может работать, как минимум, в двух режимах: привилегированном и пользовательском. В первом режиме процессор может выполнять все команды, тогда как в пользовательском набор разрешенных команд ограничен. Естественно, что помимо запрета на выполнение команд ввода-вывода в пользовательском режиме работы процессор не должен позволять обращаться к своим системным регистрам- эти регистры должны быть доступны только в привилегированном режиме, то есть исключительно супервизорному коду самой ОС. Попытка выполнить запрещенную команду или обратиться к запрещенному регистру должна вызывать прерывание(исключение), и центральный процессор должен быть предоставлен супервизорной части ОС для управления выполняющимися вычислениями.

Поскольку любая программа требует операций ввода-вывода, прикладные программы для выполнения этих(и некоторых других) операций обращаются к супервизорной части ОС( модуль супервизора иногда называют супервизором задач) с соответствующим запросом. При этом процессор должен переключиться в привилегированный режим работы. Чтобы программы не могли произвольным образом обращаться к супервизорному коду, который работает в привилегированном режиме, им предоставляется возможность обращаться к нему в строгом соответствии с принятыми правилами. Каждый запрос имеет свой идентификатор и должен сопровождаться соответствующим количеством параметров, уточняющих запрашиваемую у ОС функцию(операцию).Поэтому супервизор задач при получении запроса сначала его тщательно проверяет. Если запрос корректный и программа имеет право с ним обращаться, то запрос на выполнение операции, как правило, передается соответствующему модулю ОС. Множество запросов к ОС образует соответствующий системный интерфейс прикладного программирования(Aplication Program Interface, API)