Режим пользователя

Режим пользователя — менее привилегированный по сравнению с режимом ядра режим работы процессора. Он не имеет прямого доступа к аппаратуре. Выполняющийся в этом режиме код непосредственно имеет дело лишь с объектами своего адресного пространства (рис. 6.6).

[image]

Системные службы он вызывает через интерфейсы прикладных программ (Application Program Interface, API). Поддерживающие их приложения и подсистемы работают в режиме пользователя. При запуске приложения создается процесс (process), реализованный в виде объекта (object). Объект состоит из исполняемой программы, пространства адресов виртуальной памяти и одного или нескольких потоков.

Особенности процесса пользовательского режима таковы:

не имеет прямого доступа к оборудованию. Это сделано в целях защиты от неверно работающих приложений или от несанкционированного доступа. Запросы на использование аппаратных ресурсов должны быть разрешены компонентом режима ядра;

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

может быть выгружен из физической памяти в виртуальную память на жестком диске. Виртуальная память (virtual memory, VRАМ) использует пространство жесткого диска как дополнительную оперативную память. В результате процесс режима пользователя получает доступ к памяти, размер которой превышает объем ОЗУ;

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

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