Фоновый процесс - Background process

А фоновый процесс это компьютерный процесс это работает за кулисами (т.е. в фоновом режиме) и без вмешательства пользователя.[1] Типичные задачи для этих процессов включают в себя ведение журнала, мониторинг системы, планирование,[2] и уведомление пользователя.[3] Фоновый процесс обычно является дочерним процессом, созданным процессом управления для обработки вычислительной задачи. После создания дочерний процесс будет работать сам по себе, выполняя задачу независимо от процесса управления, освобождая процесс управления от выполнения этой задачи.[нужна цитата ]

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

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

Службы Windows

В Windows NT семья операционные системы, служба Windows - это специальный фоновый процесс.[5] Служба Windows должна соответствовать правилам интерфейса и протоколам Менеджер по управлению услугами, компонент, отвечающий за управление службами Windows.[6]

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

Перед Виндоус виста, службы, установленные как "интерактивные службы", могут взаимодействовать с Windows рабочий стол и показать графический интерфейс пользователя. Однако в Windows Vista интерактивные службы стали устарел и перестали работать должным образом в результате Повышение безопасности служб Windows.[7][8]

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

  1. Оснастка служб для Консоль управления Microsoft
  2. sc.exe
  3. Windows PowerShell

Демон

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

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

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

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

Пример

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

  PID TT STAT TIME КОМАНДА54659 10  S 0: 00.06 вс (zsh)54703 10  В 0: 00.00 - спать 100054852 10  R + 0: 00.00 - ps -U botty -axd

Смартфоны

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

Смотрите также

Рекомендации

  1. ^ а б «Что такое операционная система? Процессы». Учебник по Linux. Получено 14 ноября 2010.
  2. ^ Мишель Сиран (декабрь 1993 г.). Oracle Database Concepts, 10g, выпуск 1. Корпорация Oracle. B10743-01. Получено 12 ноября 2010.
  3. ^ а б c Хесус Диас (8 апреля 2010 г.). «Как многозадачность работает в новой iPhone OS 4.0». Gizmodo. В архиве из оригинала 2 ноября 2010 г.. Получено 14 ноября 2010.
  4. ^ а б Справочное руководство GNU Bash, редакция 4.1, основы управления заданиями. Free Software Foundation, Inc. 23 декабря 2009 г. В архиве из оригинала от 3 декабря 2010 г.. Получено 10 ноября 2010.
  5. ^ «Обзор услуг». Microsoft TechNet. Microsoft. Получено 29 марта 2013.
  6. ^ "Услуги". Сеть разработчиков Microsoft. Microsoft. Получено 29 марта 2013.
  7. ^ «New Elevation PowerToys для Windows Vista». Журнал TechNet. Microsoft. Июнь 2008 г.. Получено 21 июн 2013. Служба CmdAsSystem настроена как интерактивная, поддержка которой прекращается. Служба может работать некорректно. Проблема в том, что этот сценарий пытается создать и запустить интерактивную службу. Интерактивные службы не будут работать правильно из-за изоляции сеанса 0 в Windows Vista.
  8. ^ «Сервисы в Windows». MSDN. Microsoft. 18 октября 2010 г.. Получено 21 июн 2013.
  9. ^ Эрик С. Раймонд (1 октября 2004 г.). Жаргонный файл, версия 4.4.8, "демон". В архиве из оригинала от 3 ноября 2010 г.. Получено 10 ноября 2010.
  10. ^ raf (12 июня 2010 г.). Руководство пользователя Linux, «демон». В архиве из оригинала 21 октября 2010 г.. Получено 10 ноября 2010.
  11. ^ Оке Нордлунд (7 февраля 2007 г.). «Фоновые процессы в Unix / Linux». Архивировано из оригинал 13 февраля 2012 г.. Получено 10 ноября 2010.
  12. ^ "POSIX" ps"". IEEE Std 1003.1, издание 2004 г..
  13. ^ а б Мэтт Бьюкенен (29 апреля 2010 г.). «Giz объясняет: как многозадачность работает на телефоне». Gizmodo. В архиве из оригинала 17 октября 2010 г.. Получено 14 ноября 2010.