Proces na pozadí - Background process

Proces na pozadí je počítačový proces, který běží v zákulisí (tj. Na pozadí) a bez zásahu uživatele. Mezi typické úkoly pro tyto procesy patří protokolování, monitorování systému, plánování a upozornění uživatelů. Proces na pozadí je obvykle podřízený proces vytvořený řídicím procesem pro zpracování výpočetní úlohy. Po vytvoření se podřízený proces spustí sám, provede úkol nezávisle na řídicím procesu a uvolní řídicí proces při provádění tohoto úkolu.

V systému Windows je proces na pozadí buď počítačový program , který nevytváří uživatelské rozhraní , nebo služba Windows . První z nich se spouští stejně jako jakýkoli jiný program, například pomocí nabídky Start . Služby Windows naopak spouští správce řízení služeb . Ve Windows Vista a novějších jsou spuštěny v samostatné relaci . Neexistuje žádný limit na to, do jaké míry může systémová služba nebo proces na pozadí využívat systémové prostředky. Ve skupině operačních systémů Windows Server od operačních systémů Microsoft se očekává, že procesy na pozadí budou hlavními spotřebiteli systémových prostředků.

V systému Unix nebo Unixu lze proces nebo úlohu na pozadí dále identifikovat jako proces, jehož ID skupiny procesů se liší od ID skupiny koncových skupin (TGID). (TGID procesu je ID procesu vedoucí skupiny procesů, která otevřela terminál, což je obvykle přihlašovací shell. TGID identifikuje řídicí terminál skupiny procesů.) Tento typ procesu nemůže přijímat signály z klávesnice jeho nadřazený terminál a obvykle nebude odesílat výstup na tento terminál. Tato techničtější definice nerozlišuje mezi tím, zda může proces obdržet zásah uživatele. Přestože se procesy na pozadí obvykle používají pro účely vyžadující málo prostředků, jakýkoli proces lze spustit na pozadí a takový proces se bude chovat jako jakýkoli jiný proces, s výjimkami uvedenými výše.

Služby Windows

V řadě operačních systémů Windows NT je služba Windows vyhrazeným procesem na pozadí. Služba Windows musí odpovídat pravidlům rozhraní a protokolům Správce služeb , součásti odpovědné za správu služeb Windows.

Služby systému Windows lze nakonfigurovat tak, aby se spouštěly při spuštění operačního systému a aby běžely na pozadí, pokud běží systém Windows. Alternativně je lze spustit ručně nebo pomocí události. Operační systémy Windows NT patří k různým službám , které probíhají v rámci tří uživatelských účtů : System, Network Servicea Local Service. Tyto součásti Windows jsou často spojeny s Host Process for Windows Services: svchost.exe . Protože služby systému Windows fungují v kontextu jejich vlastních vyhrazených uživatelských účtů, mohou fungovat, když uživatel není přihlášen.

Před Windows Vista mohly služby nainstalované jako „interaktivní služby“ interagovat s desktopem Windows a zobrazovat grafické uživatelské rozhraní . Se systémem Windows Vista, ale interaktivní služby se stal zastaralý a přestal správně pracuje, jako výsledek Zabezpečení služeb systému Windows .

Tři hlavní způsoby správy služeb systému Windows jsou:

  1. Modul snap-in služby pro konzolu Microsoft Management Console
  2. sc.exe
  3. Windows PowerShell

Démon

Démon je typ procesu na pozadí navržený tak, aby běžel nepřetržitě na pozadí a čekal, až dojde k událostem nebo podmínkám, které mají být splněny. Tyto procesy obvykle používají minimální systémové prostředky a provádějí úkoly, které vyžadují malý až žádný vstup od uživatele. Při spuštění s funkcí démona se démoni odpojí od svého nadřazeného terminálu.

Spuštění a obnovení na Unixu

Z příkazového řádku Unixu lze proces na pozadí spustit pomocí operátoru „&“. Nástroj bg může obnovit pozastavenou úlohu (odeslání SIGCONT ) spuštěním na pozadí. Pomocí obslužného programu fg se také znovu připojí standardní vstup k jeho nadřazenému terminálu a přenese se do popředí. Úlohy nástroj vypíše všechny procesy spojené s aktuálním terminálu a může být použit, aby procesy na pozadí do popředí.

Když relace přihlášení skončí, explicitní odhlášení nebo odpojení od sítě, všechny procesy, včetně procesů na pozadí, budou ve výchozím nastavení ukončeny, aby se zabránilo tomu, že se stanou osiřelými procesy . Konkrétně, když uživatel ukončí proces spouštění shellu, v rámci vypnutí odešle signál zavěšení ( SIGHUP ) všem svým úlohám , aby ukončil všechny procesy v odpovídající skupině procesů . Aby procesy pokračovaly v běhu, nelze relaci ukončit nebo relaci ukončit bez ukončení procesů. Terminál multiplexer lze použít k opuštění běžící relace, ale odpojit virtuální terminál od něj, takže procesy běžící jako podřízené procesy ze zasedání; uživatel pak může relaci připojit znovu později. Nebo ukončení lze zabránit buď spuštěním procesu pomocí příkazu nohup (sdělením procesu ignorovat SIGHUP), nebo následným spuštěním disowns ID úlohy, které buď úlohu zcela odstraní ze seznamu úloh, nebo jednoduše zabrání tomu, aby byl SIGHUP odesláno. V druhém případě, když relace skončí, podřízené procesy nejsou ukončeny, a to buď proto, že nejsou odeslány SIGHUP, nebo proto, že je ignorují, a tak se stávají osiřelými procesy, které jsou následně přijaty procesem init (jádro nastavuje proces init jako jejich rodič) a pokračují v běhu bez relace, nyní nazývané démoni .

Příklad

V tomto případě běží na Unixu se spánek nástroj byl vypuštěn do pozadí. Poté byl nástroj ps spuštěn v popředí, kde vygeneroval níže uvedený text. Oba byli vypuštěni z granátu.

  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

Chytré telefony

Mnoho novějších verzí operačních systémů pro smartphony a PDA nyní obsahuje možnost spouštět procesy na pozadí. Kvůli hardwarovým limitům jsou procesy na pozadí v mobilních operačních systémech často omezeny na určité úkoly nebo úrovně spotřeby. V systému Android je využití procesoru pro procesy na pozadí omezeno na 5 - 10%. Aplikace třetích stran na iOS od Apple jsou při běhu na pozadí omezeny na podmnožinu funkcí. V systémech iOS i Android mohou procesy na pozadí systém zabít, pokud používají příliš mnoho paměti.

Viz také

Reference