程序是linux重要的一部分,了解linux就必須要去了解程序.
程序是linux資源封裝單位,資源指的占用的記憶體,檔案系統,訊號,執行緒是排程執行的單元.
linux可以做到程序間的資源隔離.程序的描述就是資源的描述.pcb(process control block)是作業系統用來描述程序的,linux中pcb就是用task_struct來描述的.
task_struct
pid-程序屬性. *mm-指向記憶體資源的指標,fs-檔案系統資源,根路徑,和當前路徑指標.
files-程序開啟的檔案,檔案描述符陣列. signal-不同程序可以對訊號做不同的處理方式.
2、linux程序task_struct有3種資料結構
1、鍊錶,排程演算法會將task_struct掛在鍊錶上。
2、紅黑樹-父子程序會用樹來表示,cfs(完全公平排程演算法)會用到紅黑樹。
3、雜湊表-通過pid會用到雜湊表。
實時系統和作業系統一般有3種狀態,執行,就緒,睡眠。
程序有cpu操作時就為執行態,無cpu是可能是就緒或者睡眠,就緒是指所有資源都準備好了,就等cpu執行了。而睡眠
態指的是程序資源還沒有準備好,例如網口讀資料。資料還沒有傳送。此時即便有cpu參與都沒法執行,該狀態就為睡眠態,一旦收到了資料則變為就緒態,cpu參與後則變為執行態。
殭屍態:子程序退出後,所有資源都消失了,父程序在wait中得知子程序退出的原因,殭屍態就在子程序退出到wait之前。
深度睡眠和淺度睡眠的區別:深度睡眠只能在資源到位的情況下才醒過來,淺度睡眠在資源到位或者訊號都能後醒過來,一般都是淺度睡眠。
Linux程序簡介
在一台伺服器上面看到有如下這麼多類似的程序 2 root 20 0 0 0 0 s 0 0.0 0 00.00 kthreadd 3 root rt 0 0 0 0 s 0 0.0 0 00.00 migration 0 4 root 20 0 0 0 0 s 0 0.0 0 00.09 ksoft...
linux 程序相關簡介
簡單的說,程序是處於執行狀態的程式,乙個執行著的程式可能有多個程序。程序一般分為互動程序 批處理程序和守護程序三類。守護程序總是活躍的,一般是後台執行,守護程序一般是由系統在開機時通過指令碼自動啟用啟動或超級管理使用者root來啟動。程序的屬性 程序標誌符 程序id,核心分配,該標誌符非負,範圍0 ...
Linux 殭屍程序 孤兒程序 守護程序簡介
linux程序簡介 pid t fork void pid t 在linux中被定義為 int 示例 include include include intmain printf father process.d n i 兩次執行這條print,i值不同,因為已經有了不同的位址空間。return0 ...