Запущенная на выполнение программа порождает в системе один или более процессов (или задач). Подсистема управления процессами контролирует:
- Создание и удаление процессов;
- Распределение системных ресурсов (памяти, вычислительных ресурсов) между процессами;
- Синхронизацию процессов;
- Межпроцессорное взаимодействие.
Число активных процессов может превышать число процессоров компьютера, но в каждый конкретный момент времени на каждом процессоре может выполняться только один процесс. Операционная система управляет доступом процессов к вычислительным ресурсам, создавая иллюзию одновременного выполнения нескольких задач.
Специальный модуль ядра, называемый планировщиком процессов (scheduler), разрешает конфликты между процессами в конкуренции за системные ресурсы (процессор, память, устройства ввода/вывода). Планировщик запускает процесс на выполнение, следя за тем, чтобы процесс монопольно не захватил разделяемые системные ресурсы. Процесс освобождает процессор, ожидая длительной операции ввода/вывода, или спустя выделенный квант времени. В этом случае планировщик выбирает следующий процесс, имеющий наивысший приоритет, и запускает его на выполнение.
Модуль управления памятью обеспечивает размещение оперативной памяти для прикладных задач. Оперативная память является дорогим ресурсом, и ее не бывает “слишком много”. При недостаточном количестве памяти для всех процессов, ядро перемещает части процессов во вторичную память (в специальную область жесткого диска), освобождая память для выполняющегося процесса. При этом реализуется виртуальная память: процесс выполняется в логическом адресном пространстве, превышающем доступную физическую память. Управление виртуальной памятью является задачей модуля управления памятью.
Модуль межпроцессорного взаимодействия отвечает за уведомление процессов о событиях и обеспечивает обмен данными между процессами.