1.what is 進程
程序(program)放置在儲存媒體中(如硬盤、光盤、軟盤、磁盤等),為實體的型態存在。
進程:程序被觸發后,執行者的權限與屬性、程序的程序碼與所需數據等都會被載入內存中,操作系統并給予內存內的單元一個識別碼(PID),也就是說進程就是一個正在運行的程序。
2.進程都有哪些狀態:
R(running):該程序正在運行中
S(sleep):表示該程序正在睡眠狀態(idle),但可以被喚醒(signal)
D 表示不可被喚醒的睡眠狀態,通常進程可能在等待I/O的情況T表示停止狀態
T表示停止狀態(sleep),可能是在工作控制(背景暫停)或出錯(traced)狀態
Z(zombie):表示僵尸狀態,程序已經終止但卻無法被移除至內存外
3.怎樣查看進程:
1:圖形方式查看
gonme-system-monitor
2.進程查看命令: ps
-A | 所有進程 |
---|---|
-a | 在當前環境中運行的進程,不包含環境信息 |
-u | 顯示進程用戶信息 |
x | 列出系統中所有運行包含tty輸出設備 |
a | 在當前環境中運行的進程 |
f | 顯示進程的父子關系 |
e | 顯示進程的詳細信息(系統資源的調用) |
ps aux ##顯示系統中所有進程并顯示進程用戶信息
ps ef ##顯示進程詳細信息并顯示進程父子關系
ps ax ##顯示當前系統中的所有進程
pstree ##顯示當前系統的進程樹
4.顯示進程指定信息:
ps -o **** ##顯示進程的指定信息
ps -o user ##進程所有人
ps -o group ##進程所有組
ps -o %cpu ##進程cpu使用率
ps -o %mem ##進程內存使用率
ps -o pid ##進程id
ps -o nice ##進程優先級
示例:顯示進程的名稱,所有人,進程id,cpu使用率和優先級
對進程的排序:
ps ax --sort=+%cpu (升序,+可以省略) / -%cpu(降序) ##按cpu使用率排序
ps ax --sort=+%mem / -%mem(降序) ##按內存使用率排序
示例:列出系統中內存使用量排在前5的進程的pid
5.在stat進程狀態中顯示的信息:
S | 進程狀態 |
---|---|
l | 內存中有鎖定空間 |
N | 優先級低 |
< | 優先級高 |
6.進程優先級
什么是優先級:CPU資源分配的先后順序,就是進程的優先權
優先權高的進程有優先執行的權利。配置進程優先權對多任務環境的Linux很有用,可以改善系統性能。
還可以把進程運行到指定的CPU上,這樣一來,把不重要的進程安排到某個CPU,可以大大改善系統的整體性能。
進程的優先級范圍:
-20~19 數字越小,進程優先級越高。
優先級的查看:
ps ax -o pid,nice,comm
指定某個優先級開啟進程
nice -n 優先級數字 進程名稱
示例:
改變進程優先級:renice
renice -n 優先級數字 進程pid
7.環境中進程的前后臺調用:
jobs | 查看被打入環境后臺的進程 |
---|---|
ctrl+z | 把占用終端的進程打入后臺 |
comm & | 讓命令直接在后臺運行 |
fg jobsnum | 把后臺進程調回前臺 |
bg jobsnum | 把后臺暫停的進程運行 |
8.進程信號:
1、常用的信號等級
1 | 進程重新加載配置(是指在不關閉進程的情況下,類似游戲里的不停服更新) |
---|---|
2 | 刪除進程在內存中的數據 |
3 | 刪除鼠標在內存中的數據 |
9 | 強行結束單個進程(不能被阻塞) |
15 | 正常關閉進程 (可能會被阻塞) |
18 | 運行暫停的進程 |
19 | 暫停某個進程 (不能被阻塞) |
20 | 把進程打入后臺 (可以被阻塞) |
man 7 signal | 查看信號詳細信息 |
killall -信號 進程名字
pkill -u student -信號
9.進程的動態監控:top
l ##顯示cpu每個核的負載
s ##調整刷新頻率
c ##cpu負載排序
m ##內存使用量排序
h ##查看幫助
u ##查看指定用戶進程
k ##對指定進程發起信號
q ##退出
h 查看幫助
q 退出