linux 进程简介
進程相關知識簡介
進程定義:
一個運行中的程序即一個process
task struct:
內核存儲進程信息的固定格式稱為task struct,task struct記錄了例如該進程內存下一跳位置等信息。
task list:
多個task struct組成的鏈表
進程的創建
內核創建第一個進程init,用來管理用戶控件所有進程
所有用戶空間都有init或其父進程創建
父進程所指向的內存即其子進程所指向的進程。待“成熟”后子進程會復制一份父進程的內存空間中的數據,創建屬于自己的內存空間。這種機制被稱為fork,clone.
父進程創建子進程的目的:讓子進程來完成指定任務,完成后終止子進程。
進程的優先級:
0~99:實時優先級,越大優先級越高
100~139:靜態優先級,越小優先級越高
nice值:-20~+19
進程的優先級有什么作用?
內核通過優先級來判斷先后運行的程序。相同優先級的進程被分到同一隊列(最多140個隊列),從而無論進程有多少,內核每次只需遍歷進程隊列的首部,就可判定需運行哪個隊列中的進程。
每個優先級隊列分為兩層分別是:已運行過的隊列和未運行過的進程。
進程內存:
page frame:內核將內存分為若干份,每份4k即page frame。
進程所占用的內存都是經過內核將若干連續或間斷的page frame ,虛擬成的虛擬內存。
linux進程分類:根據進程占用CPU高還是IO高可分為
CPU-Bound:cpu密集型
IO-Bound:IO密集型
linux進程類型:
守護進程:與終端無關,在系統啟動過程中啟動的進程
前臺進程:與終端相關,通過終端啟動。
前臺進程可以送往后臺,以守護模式運行。
linux進程狀態:
R:running:運行態
S:interruptable:可中斷睡眠狀態,大多數進程處于此狀態。處于這個狀態的進程因為等待某事件的發生(比如等待socket連接、等待信號量),而被掛起。
D:uninterruptable:不可終端睡眠狀態,不可中斷,指的并不是CPU不響應外部硬件的中斷,而是指進程不響應異步信號。該狀態存在的意義就在于,內核的某些處理流程是不能被打斷的。
T:stopped:停止態
Z:zombie:僵死態,子進程終止后等待父進程“收尸”,或其父進程掛掉子進程成為孤兒進程。
linux進程狀態詳情可參考:http://blog.csdn.net/shenwansangz/article/details/51981459
?
?
轉載于:https://www.cnblogs.com/wxxjianchi/p/9557706.html
總結
以上是生活随笔為你收集整理的linux 进程简介的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 会话(cookie的使用,路径和Sess
- 下一篇: PAT L2-005 集合相似度