Ядро системы. Привилегированный режим и режим пользователя.

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

Важнейшие функции ОС, за выполнение которых отвечает ядро: обработка прерываний, управление памятью, управление вводом-выводом.

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

Применение режимов. После загрузки ядро переключает процессор в привилегированный режим и получает полный контроль над компьютером. Каждое приложение запускается и выполняется в режиме пользователя, где оно не имеет доступа к ресурсам ядра и других программ. Когда необходимо выполнить действие, реализованное в ядре, приложение делает системный вызов. Ядро перехватывает его, переключает процессор в привилегированный режим, выполняет действие, переключает процессор назад в режим пользователя и возвращает результат приложения.

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