В операционных системах Posix * nix есть два аспекта переднего плана / фона.
Один из них абсурдно прост: оболочка или какой-либо другой родительский процесс либо равен , либо не ожидает (через некоторое изменение wait(2)
), пока ребенок не завершит работу. Если родитель ждет, это на переднем плане. Если это не так, это фон. В оригинальных версиях * nix это была целая история. Как вы можете видеть, оболочка фактически реализовала меньше для реализации магического паттерна % command &
, чем просто % command
, но лишь немногие другие системы могли это сделать.
Теперь, это оставляет несколько свободных концов. Процессы имеют управляющие терминалы, а терминалы имеют группы процессов. Есть лидеры сессий и лидеры групп процессов. Хорошо иметь сигналы, направленные одновременно только на, скажем, один подключенный конвейер в фоновом режиме. Задания в фоновом режиме, которые пытаются терминальный ввод-вывод, получают сигнал Когда пользователи выходят из системы, ОС может захотеть восстановить виртуальный или физический терминал для безопасности и для того, чтобы предоставить следующему пользователю беспрепятственный доступ. Таким образом, вся история становится более сложной. 4.1BSD
в сущности представил современный полнофункциональный механизм управления работой.
Я дал вам ключевые слова для поиска, если вы хотите узнать на более подробном уровне, чем этот.