關於程序的分類

2021-10-09 02:25:17 字數 910 閱讀 9248

普通程序與後台程序

預設情況下,程序是在前台執行的,這時就把shell給佔據了,我們無法進行其它操作。對於那些沒有互動的程序,很多時候,我們希望將其在後台啟動,可以在啟動引數的時候加乙個』&'實現這個目的,後台程序會隨著shell的退出而結束。

守護程序

如果乙個程序永遠都是以後臺方式啟動,並且不能受到shell退出影響而退出,乙個正統的做法是將其建立為守護程序(daemon)。守護程序值得是系統長期執行的後台程序,類似windows服務。守護程序資訊通過ps –a無法檢視到,需要用到–x引數,當使用這條命令的時候,往往還附上-j引數以檢視作業控制資訊,其中tpgid一欄為-1就是守護程序。

守護程序與後台程序

後台程序的檔案描述符也是繼承于父程序,例如shell,所以它也可以在當前終端下顯示輸出資料。但是daemon程序自己變成了程序組長,其檔案描述符號和控制終端沒有關聯,是控制台無關的。

基本上任何乙個程式都可以後台執行,但守護程序是具有特殊要求的程式,比如要脫離自己的父程序,成為自己的會話組長等,這些要在**中顯式地寫出來換句話說,守護程序肯定是後台程序,但反之不成立。

孤兒程序

乙個父程序退出,而它的乙個或多個子程序還在執行,那麼那些子程序將成為孤兒程序。孤兒程序將被init程序(程序號為1)所收養,並由init程序對它們完成狀態收集工作。

殭屍程序

乙個程序使用fork建立子程序,如果子程序退出,而父程序並沒有呼叫wait或waitpid獲取子程序的狀態資訊,那麼子程序的程序描述符仍然儲存在系統中。這種程序稱之為僵死程序。

補充在unix/linux中,正常情況下,子程序是通過父程序建立的,子程序在建立新的程序。子程序的結束和父程序的執行是乙個非同步過程,即父程序永遠無法**子程序 到底什麼時候結束。 當乙個 程序完成它的工作終止之後,它的父程序需要呼叫wait()或者waitpid()系統呼叫取得子程序的終止狀態。

關於關卡的分類

原來關卡還有分型別的!我簡要講一下集中關卡型別,算是我的一點點心得體會!遊戲中大部分關卡都很標準,也就是說,這些關卡都是根據前期制定的高度概念化的遊戲大綱來製作的。但是,在製作的過程中還是會出現一些特殊的關卡型別。這些特殊的關卡型別之所以會存在,是為了把標 準關卡連貫起來,讓關卡與關卡之間達到遊戲高...

關於記憶體的分類

在進行c c 程式設計時,程式設計師需要對記憶體的了解比較精準,經常需要操作的記憶體可分為以下幾類 1.棧區 stack 由編譯器自動分配和釋放,存放函式的引數值 區域性變數的值等,其操作方式類似於資料結構中的棧 2.堆區 heap 一般由程式設計師分配和釋放,若程式設計師不釋放,程式結束時可能由作...

關於測試的分類

單元測試是對軟體的組成單元進行測試。目的是檢驗軟體基本組成單元的正確性。測試的物件是軟體設計的最小單位 模組。測試階段 編碼後或者編碼前 測試物件 最小模組 測試人員 白盒測試工程師或者開發工程師 測試依據 和注釋 詳細的文件設計 測試方法 白盒測試 測試內容 模組介面測試,區域性資料結構測試,路徑...