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

Режим пользователя — менее привилегированный по сравнению с режимом ядра режим работы процессора.

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

При запуске приложения создается процесс (process), реализованный в виде объекта (object). Объект состоит из исполняемой программы, пространства адресов виртуальной памяти и одного или нескольких потоков.

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

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

  • не имеет прямого доступа к оборудованию. Это сделано в целях защиты от неверно работающих приложений или от несанкционированного доступа. Запросы на использование аппаратных ресурсов должны быть разрешены компонентом режима ядра;
  • ограничен размерами выделенного адресного пространства. Ограничение размера памяти, используемой процессом, позволяет обеспечить дополнительную защиту ОС. Это ограничение устанавливается путем выделения процессу диапазона фиксированных адресов;
  • может быть выгружен из физической памяти в виртуальную память на жестком диске. Виртуальная память (virtual memory, VRAM) использует пространство жесткого диска как дополнительную оперативную память. В результате процесс режима пользователя получает доступ к памяти, размер которой превышает объем ОЗУ;
  • приоритет процесса данного типа ниже, чем у процессов режима ядра. Поэтому в сравнении с последними ему, как правило, предоставляется меньше процессорного времени. Это предохраняет ОС от снижения производительности или возникновения задержек, связанных с ожиданием завершения работы приложений.

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

Яндекс.Метрика