後台進程
![本頁使用了標題或全文手工轉換](http://upload.wikimedia.org/wikipedia/commons/thumb/c/cd/Zh_conversion_icon_m.svg/35px-Zh_conversion_icon_m.svg.png)
後台進程(Background Process)是一種在不需用戶干預的情況下運行於操作系統後台的計算機進程[1] ,通常用於執行如日誌記錄、系統監測、作業調度[2]以及用戶提醒[3]等任務。
在UNIX與類UNIX系統中,後台進程的進程組ID(即PGID,可用ps命令獲得)與控制終端進程組ID(即TPGID)不同,因而也可以此辨識後台進程。後台進程無法接收從鍵盤傳送的信號(如Ctrl-C)[4],但從更專業的定義來說,程序是否能收到用戶的中斷信號並非後台進程的判別標準。
雖然後台進程通常用於僅需少量資源的應用,但任何進程無論占用資源多少都可以運行在後台,且即使程序在後台運行,其行為與前台進程也並無差異[1]。
運行與「返回」
[編輯]在類UNIX系統的命令行模式下,用戶可使用「&」操作符以啟動進程並使之運行於後台,但標準輸出(stdout)和標準錯誤輸出(stderr)若未重定向則仍於前台(即當前父終端)輸出。命令bg可將掛起的進程轉移到後台繼續執行,而相對應的,命令fg則可使一個後台進程返回前台(即進程啟動時所在的父終端)執行。除此之外,命令jobs可用於列出與當前終端相關聯的所有進程(其中也包括後台進程)及其狀態,因而也可用於將後台進程轉至前台[4][5]。
守護程序
[編輯]守護程序(Daemon)是一種特殊的不間斷運行的後台進程,常用於等待特定事件的發生或者預設條件的滿足以觸發事件[6],這些進程一般使用最少的系統資源,其所執行的任務也基本不需要來自用戶的輸入。當進程配合daemon函數啟動後,守護進程就會與其父終端脫離聯繫[7],因而也不會在當前終端中輸出信息。
智能手機
[編輯]現今許多新型智能手機與PDA的操作系統都可以運行後台進程,但移動設備操作系統上的後台程序所能完成的任務與能分配到的資源也因硬件性能差異而常有所限制,如Android上後台進程的CPU使用率就限定於5%~10%的範圍內[8],而iOS上的第三方應用程序在後台運行時也只能完成指定範圍內的任務[3];除此以外,在iOS和Android上,系統也會在後台進程占用的系統存儲空間過多時將其殺死[3][8]。
參見
[編輯]參考資料
[編輯]- ^ 1.0 1.1 What is an Operating System?, Processes. The Linux Tutorial. [14 November 2010]. (原始內容存檔於2020-08-15).(英文)
- ^ Michele Cyran. Oracle® Database Concepts, 10g Release 1. Oracle Corporation. December 1993 [12 November 2010]. B10743-01. (原始內容存檔於2013-03-02).(英文)
- ^ 3.0 3.1 3.2 Jesus Diaz. How Multitasking Works in the New iPhone OS 4.0. Gizmodo. 8 April 2010 [14 November 2010]. (原始內容存檔於2010-11-02).(英文)
- ^ 4.0 4.1 GNU Bash Reference Manual, Edition 4.1, Job Control Basics. Free Software Foundation, Inc. 23 December 2009 [10 November 2010]. (原始內容存檔於2011-08-23).(英文)
- ^ Åke Nordlund. Background Processes in Unix/Linux. 7 February 2007 [10 November 2010]. (原始內容存檔於2012-02-13).(英文)
- ^ Eric S. Raymond. The Jargon File, version 4.4.8, "daemon". 1 October 2004 [10 November 2010]. (原始內容存檔於2010-11-03).(英文)
- ^ raf. Linux User's Manual, "daemon". 12 June 2010 [10 November 2010]. (原始內容存檔於2010-10-21).(英文)
- ^ 8.0 8.1 Matt Buchanan. Giz Explains: How Multitasking Works on a Phone. Gizmodo. 2010-04-29 [14 November 2010]. (原始內容存檔於2010-10-17).(英文)