後台行程
後台行程(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).(英文)