Фоновый процесс

редактировать

A фоновый процесс - это компьютерный процесс, который выполняется за кулисами (т. Е. В фоновом режиме) и без вмешательства пользователя. Типичные задачи для этих процессов включают ведение журнала, мониторинг системы, планирование и уведомление пользователей. Фоновый процесс обычно является дочерним процессом, созданным процессом управления для обработки вычислительной задачи. После создания дочерний процесс будет работать сам по себе, выполняя задачу независимо от процесса управления, освобождая процесс управления для выполнения этой задачи.

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

В Unix или В Unix-подобной системе фоновый процесс или задание может быть дополнительно идентифицировано как тот, чей идентификатор группы процессов отличается от идентификатора конечной группы (TGID). (TGID процесса - это идентификатор процесса лидера группы процессов, открывшего терминал, который обычно является оболочкой входа в систему. TGID идентифицирует управляющий терминал группы процессов.) Этот тип процесса не может получать сигналы клавиатуры от его родительский терминал и обычно не отправляет вывод на этот терминал. Это более техническое определение не делает различия между тем, может ли процесс получать вмешательство пользователя. Хотя фоновые процессы обычно используются для целей, требующих небольшого количества ресурсов, любой процесс может выполняться в фоновом режиме, и такой процесс будет вести себя так же, как и любой другой процесс, с указанными выше исключениями.

Содержание
  • 1 Службы Windows
  • 2 Демон
    • 2.1 Запуск и возобновление в Unix
    • 2.2 Пример
  • 3 Смартфоны
  • 4 См. Также
  • 5 Ссылки
Службы Windows

В Windows NT семейство операционных систем, служба Windows - это выделенный фоновый процесс. Служба Windows должна соответствовать правилам интерфейса и протоколам Service Control Manager, компонента, отвечающего за управление службами Windows.

Службы Windows можно настроить для запуска при запуске операционной системы, и работать в фоновом режиме, пока работает Windows. Кроме того, они могут быть запущены вручную или по событию. Операционные системы Windows NT включают многочисленные службы, которые запускаются в контексте трех учетных записей пользователей : Система, Сетевая службаи Локальная служба. Эти компоненты Windows часто связаны с хост-процессом для служб Windows: svchost.exe. Поскольку службы Windows работают в контексте своих собственных выделенных учетных записей пользователей, они могут работать, когда пользователь не вошел в систему.

До Windows Vista службы, установленные как «интерактивные службы», могли взаимодействовать с Windows рабочим столом и отображать графический интерфейс пользователя. В Windows Vista, однако, интерактивные службы стали устаревшими и перестали работать должным образом в результате усиления защиты служб Windows.

Три основных средства управления службами Windows:

  1. Службы Snap- in для Microsoft Management Console
  2. sc.exe
  3. Windows PowerShell
Daemon

Демон - это тип фонового процесса, предназначенный для непрерывной работы в фоновом режиме в ожидании события (событий).) или условия, которые должны быть выполнены. Эти процессы обычно используют минимальные системные ресурсы и выполняют задачи, которые практически не требуют ввода от пользователя. При запуске с помощью функции демона демоны отключаются от своего родительского терминала.

Запуск и возобновление в Unix

Из командной строки Unix фоновый процесс можно запустить с помощью оператора «». Утилита bg может возобновить приостановленное задание (отправив SIGCONT ), запустив его в фоновом режиме. Использование утилиты fg также повторно подключит стандартный ввод к его родительскому терминалу, переведя его на передний план. Утилита заданий перечислит все процессы, связанные с текущим терминалом, и может использоваться для вывода фоновых процессов на передний план.

Когда сеанс входа в систему завершается через явный выход из системы или отключение от сети, все процессы, в том числе фоновые, по умолчанию будут завершены, чтобы они не стали потерянными процессами. Конкретно, когда пользователь выходит из процесса запуска оболочки, как часть завершения работы, он отправляет сигнал зависания (SIGHUP ) всем своим заданиям, чтобы завершить все процессы в соответствующем группа процессов. Чтобы процессы продолжали работать, можно либо не завершить сеанс, либо завершить сеанс без завершения процессов. Терминальный мультиплексор можно использовать, чтобы оставить сеанс запущенным, но отсоединить от него виртуальный терминал, оставив процессы запущенными как дочерние процессы сеанса; затем пользователь может повторно подключить сеанс позже. Или завершение работы можно предотвратить, запустив процесс с помощью команды nohup (указав процессу игнорировать SIGHUP) или последовательно запустив disown с заданием id, который либо полностью удаляет задание из списка заданий, либо просто предотвращает отправку SIGHUP. В последнем случае, когда сеанс завершается, дочерние процессы не завершаются либо потому, что им не отправляется сигнал SIGHUP, либо потому, что они его игнорируют и, таким образом, становятся потерянными процессами, которые затем принимаются процессом init ( ядро устанавливает процесс инициализации в качестве родительского), и они продолжают работать без сеанса, теперь они называются демонами.

Пример

В этом примере, запущенном на Unix, спящий утилита была запущена в фоновом режиме. После этого инструмент ps был запущен на переднем плане, где он выводил текст ниже. Оба были запущены из оболочки.

PID TT STAT TIME COMMAND 54659 10 S 0: 00.06 su (zsh) 54703 10 IN 0: 00.00 - sleep 1000 54852 10 R + 0: 00.00 - ps -U botty -axd
Смартфоны

Многие новые версии операционных систем смартфон и КПК теперь включают возможность запуска фоновых процессов. Из-за аппаратных ограничений фоновые процессы в мобильных операционных системах часто ограничиваются определенными задачами или уровнями потребления. На Android использование ЦП для фоновых процессов ограничено 5–10%. Сторонние приложения на Apple iOS ограничены набором функций при работе в фоновом режиме. Как на iOS, так и на Android фоновые процессы могут быть остановлены системой, если они используют слишком много памяти.

См. Также
Ссылки
Последняя правка сделана 2021-05-11 05:34:15
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте