一,進程的概念:
內核的功用:進程管理、文件系統、網絡功能、內存管理、驅動程序、 安全功能等;
Process: 運行中的程序的一個 副本,是被 載入內存的一個指令集合進程ID (Process ID ,PID )號碼被用來標記各個進程UID 、GID 、和SELinux 語境決定對文件系統的存取和 訪問權限,通常從執行進程的 用戶來繼承存在生命週期;
task struct :Linux 內核存儲進程信息的數據結構格式;
task list :多個任務的的task struct 組成的鏈表;
二,進程創建:
init :第一個進程
父子關係
進程:都由其父進程創建,COW
fork(), clone()
三,進程的優先級:
系統優先級: 數字越小,優先級越高
0-139(CentOS4,5) )
各有140個運行隊列和過期隊列
0-98 ,99 (CenOS6)
實時優先級: 99-0 :值最大優先級最高
Nice 值:-20 ,19 對應系統優先級100-139 或99
四,進程內存:
Page Frame: 頁框,用存儲頁面數據,存儲Page 4k
LRU :Least Recently Used 近期最少使用算法, 釋放內存,物理地址空間和線性地址空間
MMU :Memory Management Unit 負責轉換線性和物理地址(cpu管理單元)
IPC: Inter Process Communication
同一主機上
signal
shm: shared memory
semophore 信號量,一種計數器
不同主機上:
rpc: remote procedure call
socket: IP 和端口號
五,進程狀態:
運行態:running
就緒態:ready
睡眠態:
可中斷:interruptable (S)
不可中斷:uninterruptable (D)
停止態:stopped, 暫停於內存中,但不會被調度,除非手動啓動
僵死態:zombie ,結束進程,父進程結束前,子進程不關閉
進程類型:
守護進程: daemon, 在系統引導過程中啓動的進程,和終端無關進程
前臺進程:跟終端相關,通過終端啓動的進程
注意:兩者可相互轉化
進程的分類:
CPU-Bound :CPU 密集型,非交互
IO-Bound :IO 密集型,交互