Фоновая задача
Фо́новая зада́ча (фоновый процесс) — процесс, который работает в фоне, на заднем плане. Имеется в виду, что оболочка операционной системы, которая выполняет фоновый процесс, не ждёт завершения или окончания процесса, как это происходит с обычными программами. Оболочка может запустить ещё много процессов сразу после запуска одного фонового так, что они будут выполняться одновременно. На самом деле процессы будут выполняться поочерёдно — то один, то другой, но скорость переключения между процессами слишком быстра для человеческого восприятия, поэтому нам кажется, что они выполняются одновременно. Типичными фоновыми процессами, выполняющимися в системе, являются обработчики событий и системные службы. В рамках выделенной оперативной памяти может выполняться любое желаемое количество процессов.
Как правило (например, в UNIX), деление процессов на фоновые и процессы переднего плана отражает только отношение процесса к оболочке ОС и к драйверу терминала, а не особенности его исполнения внутри операционной среды и диспетчера.
Так, например, фоновый процесс, как правило, не имеет права принимать ввод пользователя, при попытке сделать это он останавливается, и оболочка ОС выводит об этом сообщение пользователю.
Оболочка ОС UNIX подразделяет запущенные ей группы процессов на «переднего плана», «фоновые» и «приостановленные», и поддерживает перевод групп процессов из одного из выше названных классов в другой. Для этого используется & (амперсенд) в конце командной строки, клавиатурная комбинация Ctrl-Z (приостанавливает текущую группу процессов переднего плана), и команды jobs, fg и bg.
Отличие фоновых процессов от «демонов» (служб) ОС UNIX в том, что «демон» полностью утрачивает ассоциацию с пользовательским терминалом и оболочкой ОС, зачастую продолжая существовать и после выхода породившего его процесса оболочки. Фоновый же процесс по-прежнему сохраняет логическую ассоциацию с терминалом и оболочкой.
Особенности
- Отсутствие пользовательского интерфейса.
- Обычно является демоном или службой.
- Выполняется с более низким приоритетом, чем обычные процессы.
Unix-системы
В Unix-системах процесс можно сделать фоновым, запустив его с амперсандом:
$ command &
См. также
В статье не хватает ссылок на источники (см. также рекомендации по поиску). |