Взаимодействие подсистем с исполнительной системой

Службы исполнительной системы СОС обеспечивают выполнение основных функций ОС для всех подсистем. Службы работают в режиме ядра, что позволяет гарантировать устойчивость ОС, поскольку прямого доступа к ним не имеет ни одно приложение. В результате неправильно работающий компонент режима пользователя (приложение) не сможет случайно остановить функционирование компонента режима ядра.

Подсистемы, построенные на базе исполнительной системы, формируют операционные среды, соответствующие требованиям конкретных клиентских приложений. Благодаря этому общие функции ОС единственный раз реализуются в исполнительной системе, не повторяясь в каждой из подсистем. Это упрощает разработку новых подсистем и облегчает их поддержку.

Эта теоретическая модель является идеализированным описанием системы клиент-сервер, в которой ядро состоит только из средств передачи сообщений. В действительности различные варианты реализации модели клиент-сервер в структуре ОС могут существенно различаться по объему работ, выполняемых в режиме ядра.

На одном краю этого спектра находится разрабатываемая фирмой IBM на основе микроядра Mach операционная система Workplace OS, придерживающаяся чистой микроядерной доктрины, состоящей в том, что все несущественные функции ОС должны выполняться не в режиме ядра, а в непривилегированном (пользовательском) режиме. На другом - Windows NT, в составе которой имеется исполнительная система (NT executive), работающая в режиме ядра и выполняющая функции обеспечения безопасности, ввода-вывода и другие.

Микроядро реализует функции, лежащие в основе операционной системы. Это основа для менее существенных системных служб и приложений. В общем случае, подсистемы, бывшие традиционно неотъемлемыми частями операционной системы - файловые системы, управление окнами и обеспечение безопасности - становятся периферийными модулями, взаимодействующими с ядром и друг с другом.

Главный принцип разделения работы между микроядром и окружающими его модулями - включать в микроядро только те функции, которым абсолютно необходимо исполняться в режиме супервизора и в привилегированном пространстве. Под этим обычно подразумеваются машинозависимые программы (включая поддержку нескольких процессоров), некоторые функции управления процессами, обработка прерываний, поддержка пересылки сообщений, некоторые функции управления устройствами ввода-вывода, связанные с загрузкой команд в регистры устройств.