Процесс (информатика)

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск
Статусы процессов в современных ОС.

Проце́сс — программа, которая выполняется в текущий момент. Стандарт ISO 9000:2000 определяет процесс как совокупность взаимосвязанных и взаимодействующих действий, преобразующих входящие данные в исходящие.

Компьютерная программа сама по себе — это только пассивная совокупность инструкций, в то время как процесс — это непосредственное выполнение этих инструкций.

Также, процессом называют выполняющуюся программу и все её элементы: адресное пространство, глобальные переменные, регистры, стек, открытые файлы и т. д.

Представление процесса[править | править вики-текст]

Обычно, процесс в вычислительной системе представлен (также говорят, «владеет») следующими ресурсами:

  • памятью (обычно некоторой областью виртуальной памяти), которая включает в себя:
    • исполняемый код;
    • входные и выходные данные процесса;
    • стек вызовов (для отслеживания активных подпрограмм);
    • кучу для хранения промежуточных результатов вычислений, генерируемых во время выполнения;
Контекст текущего процесса выгружается в память, когда выполняется переключение на другой процесс[1].

Операционная система хранит большую часть информации о процессах в таблице процессов.

В операционных системах, поддерживающих потоки выполнения (нити), потоки также владеют собственными ресурсами. Обычно это только состояние процессора, хотя потоки могут использовать и другие ресурсы.

Для снижения вероятности влияния процессов друг на друга и вероятности отказа системы (например, взаимных блокировок или пробуксовки) операционная система обеспечивает изоляцию процессов и выделяет необходимые им ресурсы. Также операционная система предоставляет механизмы для взаимодействия процессов безопасными и предсказуемыми способами.

Создание процесса[править | править вики-текст]

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

Завершение процесса[править | править вики-текст]

Минимум 2 этапа завершения:

  1. Процесс удаляется из всех очередей планирования, то есть ОС больше не планирует выделение каких-либо ресурсов процессу,
  2. Сброс статистики о потреблённых процессом ресурсах с последующим удалением его из памяти.

Причины завершения процесса:

  • Обычный выход,
  • Выход по исключению или ошибке,
  • Недостаточный объем памяти,
  • Превышение лимита отведённого программе времени,
  • Выход за пределы отведённой области памяти,
  • Неверная команда (данные программы интерпретируются как инструкции для процессора),
  • Ошибка защиты (выполнение непривилегированной команды),
  • Завершение родительского процесса,
  • Ошибка ввода-вывода,
  • Вмешательство оператора.

Литература[править | править вики-текст]

Примечания[править | править вики-текст]

  1. Э. Танненбаум. Современные операционные системы = Modern Operating Systems. — 2-е изд. — СПб.: Питер, 2002. — С. 59, 97. — 1040 с. — ISBN 5-318-00299-4.