2.1.4 Процесс

iDevice ikoon 2.1.4 Процесс

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

С процессом связаны следующие параметры:

  • Идентификатор: уникальный номер, по которому различают процессы
  • Статус: показывает текущее состояние процесса (например "запущен")
  • Приоритет: приоритет перед другими процессами
  • Счётчик команд: адрес следующей команды
  • Организация памяти: расположение кода и данных программы
  • Контекстные данные: состояние регистров процессора на момент запуска
  • Статус ввода/вывода: информация о запросах ввода/вывода, связанных с процессом устройствах ввода/вывода, список открытых процессом файлов, итд.
  • Отчётные данные: использованное процессорное время, временные ограничения, итд.

Эта информация хранится в структуре данных, называемой блоком управления процессом (Process Control Block) и которой заведует ОС. Блок управления содержит достаточно информации, чтобы при необходимости процесс можно было прервать и позже продолжить его исполнение, например в случаи прерывания. Когда процесс прерывается, в соответствующие поля его блока управления сохраняются такие параметры как значение счётчика команд и состояние регистров процессора, а статус процесса меняется с "запущен" (Execution) на "заблокирован" (Blocked) или "готов к исполнению" (Ready).

Рисунок 2‑4. Возможности переключения статуса процесса (Источник: Learning Materials for Information Technology Professionals (EUCIP-Mat))

  • Готов к исполнению - процесс поставлен в очередь на исполнение и ожидает, пока ресурсы процессора не освободятся.
  • Запущен - процесс использует выделенные ему ресурсы процессора.
  • Заблокирован - процесс ожидает, пока не произойдёт некоторое событие (например, завершится операция ввода/вывода).