Фоновый процесс
Фоновый процесс — это компьютерный процесс , который выполняется незаметно (т. е. в фоновом режиме) и без вмешательства пользователя. [1] Типичные задачи для этих процессов включают ведение журнала, мониторинг системы, планирование, [2] и уведомление пользователя. [3]
В системе Windows фоновым процессом является либо компьютерная программа , не создающая пользовательский интерфейс , либо служба Windows . Первые запускаются так же, как и любая другая программа, например, через меню «Пуск» . Службы Windows, с другой стороны, запускаются диспетчером управления службами . В Windows Vista и более поздних версиях они запускаются в отдельном сеансе . [ нужна ссылка ]
В Unix или Unix-подобной системе фоновый процесс или задание можно дополнительно идентифицировать как процесс, идентификатор группы процессов которого отличается от идентификатора группы терминалов (TGID). (TGID процесса — это идентификатор процесса лидера группы процессов, открывшего терминал, который обычно представляет собой оболочку входа в систему. TGID идентифицирует управляющий терминал группы процессов.) Этот тип процесса не может получать сигналы клавиатуры от его родительский терминал и обычно не отправляет выходные данные на этот терминал. [4] Это более техническое определение не делает различий между тем, может ли процесс получать вмешательство пользователя. Хотя фоновые процессы обычно используются для целей, требующих небольшого количества ресурсов, любой процесс может быть запущен в фоновом режиме, и такой процесс будет вести себя как любой другой процесс, за исключениями, указанными выше. [1]
Службы Windows
[ редактировать ]В Windows NT семействе операционных систем служба Windows представляет собой выделенный фоновый процесс. [5] Служба Windows должна соответствовать правилам интерфейса и протоколам Service Control Manager — компонента, отвечающего за управление службами Windows. [6]
Службы Windows можно настроить так, чтобы они запускались при запуске операционной системы и работали в фоновом режиме, пока работает Windows. Альтернативно, их можно запустить вручную или по событию. Операционные системы Windows NT включают множество служб , которые запускаются в контексте трех учетных записей пользователей : System
, Network Service
и Local Service
. Эти компоненты Windows часто связаны с хост-процессом для служб Windows: svchost.exe . Поскольку службы Windows работают в контексте своих собственных выделенных учетных записей пользователей, они могут работать, когда пользователь не вошел в систему.
До появления Windows Vista службы, установленные как «интерактивные службы», могли взаимодействовать с рабочим столом Windows и отображать графический интерфейс пользователя . Однако в Windows Vista интерактивные службы устарели и перестали работать должным образом в результате усиления безопасности служб Windows . [7] [8]
Три основных средства управления службами Windows:
- Оснастка «Службы» для консоли управления Microsoft
sc.exe
- Windows PowerShell
Демон
[ редактировать ]Демон — это тип фонового процесса, предназначенный для непрерывной работы в фоновом режиме в ожидании возникновения событий или выполнения условий. [9] При запуске с помощью функции демона демоны отключаются от родительского терминала. [10]
Фоновые задания в Unix
[ редактировать ]Из командной строки Unix фоновый процесс можно запустить с помощью оператора «&». Команда bg может возобновить приостановленное задание (отправив SIGCONT ), запустив его в фоновом режиме. Использование команды fg также переподключит стандартный ввод к родительскому терминалу, выведя его на передний план. Команда jobs выведет список всех процессов, связанных с текущим терминалом, и может использоваться для вывода фоновых процессов на передний план. [4] [11]
Когда сеанс входа в систему завершается путем явного выхода из системы или отключения от сети, все процессы, включая фоновые, по умолчанию завершаются, чтобы они не стали бесхозными процессами . Конкретно, когда пользователь выходит из запускающего процесса оболочки, в рамках завершения работы он отправляет сигнал зависания ( SIGHUP ) всем своим заданиям , чтобы завершить все процессы в соответствующей группе процессов . Чтобы процессы продолжали работать, можно либо не завершать сеанс, либо завершить сеанс, не завершая процессы. Терминальный мультиплексор можно использовать, чтобы оставить сеанс работающим, но отсоединить от него виртуальный терминал, оставив процессы работающими как дочерние процессы сеанса; пользователь может затем повторно подключить сеанс позже. Либо завершение можно предотвратить, либо запустив процесс с помощью команды nohup (говоря процессу игнорировать SIGHUP), либо последующий запуск disown
с идентификатором задания, что либо полностью удаляет задание из списка заданий, либо просто предотвращает отправку SIGHUP. В последнем случае, когда сеанс завершается, дочерние процессы не завершаются либо потому, что им не отправлен SIGHUP, либо потому, что они игнорируют его, и, таким образом, становятся бесхозными процессами, которые затем принимаются процессом инициализации (ядро устанавливает процесс инициализации в качестве родителя), и они продолжают работать без сеанса, теперь называемого демонами .
Пример
[ редактировать ]В этом примере, работающем в Unix , утилита сна запускалась в фоновом режиме. После этого инструмент ps был запущен на переднем плане и вывел приведенный ниже текст. Оба были запущены из оболочки. [12]
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%. [13] от Apple Приложения на iOS ограничены подмножеством функций при работе в фоновом режиме. [3] Как на iOS, так и на Android фоновые процессы могут быть завершены системой, если они используют слишком много памяти. [3] [13]
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Jump up to: а б «Что такое операционная система?», «Процессы» . Учебник по Linux. Архивировано из оригинала 15 августа 2020 года . Проверено 14 ноября 2010 г.
- ^ Мишель Сайран (декабрь 1993 г.). Концепции базы данных Oracle, 10g, выпуск 1 . Корпорация Оракл. В10743-01. Архивировано из оригинала 2 марта 2013 года . Проверено 12 ноября 2010 г.
- ^ Jump up to: а б с Хесус Диас (8 апреля 2010 г.). «Как работает многозадачность в новой iPhone OS 4.0» . Гизмодо. Архивировано из оригинала 2 ноября 2010 года . Проверено 14 ноября 2010 г.
- ^ Jump up to: а б Справочное руководство GNU Bash, издание 4.1, Основы управления заданиями . Free Software Foundation, Inc., 23 декабря 2009 г. Архивировано из оригинала 3 декабря 2010 г. . Проверено 10 ноября 2010 г.
- ^ «Обзор услуг» . Microsoft TechNet . Майкрософт . Проверено 29 марта 2013 г.
- ^ "Услуги" . Сеть разработчиков Microsoft . Майкрософт . Проверено 29 марта 2013 г.
- ^ «Новые Elevation PowerToys для Windows Vista» . Журнал ТехНет . Майкрософт . Июнь 2008 года . Проверено 21 июня 2013 г.
Служба CmdAsSystem настроена как интерактивная, поддержка которой прекращена. Служба может работать некорректно. Проблема в том, что этот скрипт пытается создать и запустить интерактивный сервис. Интерактивные службы не будут работать правильно из-за изоляции сеанса 0 в Windows Vista.
- ^ «Службы в Windows» . MSDN . Майкрософт . 18 октября 2010 г. Проверено 21 июня 2013 г.
- ^ Эрик С. Рэймонд (1 октября 2004 г.). Файл жаргона, версия 4.4.8, «демон» . Архивировано из оригинала 3 ноября 2010 года . Проверено 10 ноября 2010 г.
- ^ Раф (12 июня 2010 г.). Руководство пользователя Linux, «демон» . Архивировано из оригинала 21 октября 2010 года . Проверено 10 ноября 2010 г.
- ^ Оке Нордлунд (7 февраля 2007 г.). «Фоновые процессы в Unix/Linux» . Архивировано из оригинала 13 февраля 2012 года . Проверено 10 ноября 2010 г.
- ^ "POSIX "пс" " . IEEE Std 1003.1, издание 2004 г.
- ^ Jump up to: а б Мэтт Бьюкенен (29 апреля 2010 г.). «Гиз объясняет: как работает многозадачность на телефоне» . Гизмодо. Архивировано из оригинала 17 октября 2010 года . Проверено 14 ноября 2010 г.