1、什么是進(jìn)程
(1)開發(fā)代碼稱之為程序,將開發(fā)的代碼運(yùn)行起來,稱為進(jìn)程
(2)當(dāng)運(yùn)行一個程序,那么將運(yùn)行的程序叫進(jìn)城
(3)當(dāng)程序運(yùn)行為進(jìn)程后,系統(tǒng)會該進(jìn)程分配內(nèi)存,以及進(jìn)程的身份和權(quán)限
(4)在進(jìn)程的過程中,系統(tǒng)會有各種指標(biāo)來表示當(dāng)前運(yùn)行的狀態(tài)。
2、程序和進(jìn)程的區(qū)別
(1)程序是數(shù)據(jù)和指令的集合,是一個靜態(tài)的概念。如:/bin/ls和/bin/cp等二進(jìn)制文件,同時程序可以長期存在系統(tǒng)里。
(2)進(jìn)程是程序運(yùn)行的過程,是一個動態(tài)的概念,晉城市存在生命周期的概念的,進(jìn)程會隨著程序的終止而銷毀,不會永久存在系統(tǒng)里。
3、進(jìn)程的生命周期
生命周期是指以個對象的生老病死,它的用處很廣泛。
當(dāng)父進(jìn)程接收到任務(wù)調(diào)度時,會通過foc派子進(jìn)程來處理,那么子進(jìn)程會繼承父進(jìn)程屬性
(1)子進(jìn)程在處理任務(wù)代碼時,父進(jìn)程會進(jìn)入等待狀態(tài)…
(2)子進(jìn)程在處理任務(wù)代碼時,會執(zhí)行退出,然后喚醒父進(jìn)程來回收子進(jìn)程的資源
(3)如果子進(jìn)程在處理任務(wù)過程中,父進(jìn)程退出,子進(jìn)程沒有退出,那么這些子進(jìn)程就沒有父進(jìn)程來管理了,就成了僵尸進(jìn)程。
注:每個進(jìn)程都是父進(jìn)程的PPID,子進(jìn)程則是PID
3、監(jiān)控進(jìn)程狀態(tài)
程序在運(yùn)行后,需要了解進(jìn)程的運(yùn)行狀態(tài)。查看進(jìn)程的狀態(tài)分為:靜態(tài)和動態(tài)
(1)使用ps命令查看當(dāng)前的進(jìn)程狀態(tài)(靜態(tài))
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 1.4 128408 6984 ? Ss 08:07 0:04 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
root 2 0.0 0.0 0 0 ? S 08:07 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S 08:07 0:00 [ksoftirqd/0]
root 5 0.0 0.0 0 0 ? S< 08:07 0:00 [kworker/0:0H]
root 6 0.0 0.0 0 0 ? R 08:07 0:00 [kworker/u256:0]
root 7 0.0 0.0 0 0 ? S 08:07 0:00 [migration/0]
root 8 0.0 0.0 0 0 ? S 08:07 0:00 [rcu_bh]
root 9 0.0 0.0 0 0 ? R 08:07 0:01 [rcu_sched]
root 10 0.0 0.0 0 0 ? S< 08:07 0:00 [lru-add-drain]
root 11 0.0 0.0 0 0 ? S 08:07 0:00 [watchdog/0]
root 13 0.0 0.0 0 0 ? S 08:07 0:00 [kdevtmpfs]
root 14 0.0 0.0 0 0 ? S< 08:07 0:00 [netns]
狀 態(tài) 描 述
USER 啟動進(jìn)程的用戶
PID 進(jìn)程運(yùn)行的ID
%CPU 進(jìn)程占用CPU百分比
%MEM 進(jìn)程占用內(nèi)存百分比
VSZ 進(jìn)程占用虛擬內(nèi)存大小(單位KB)
RSS 進(jìn)程占用物理內(nèi)存時間大小(單位KB)
TTY 進(jìn)程是有那個終端運(yùn)行啟動的tty1、pts/0等 ? 表示內(nèi)核程序與終端無關(guān)
STAT 進(jìn)程運(yùn)行過程中的狀態(tài) man ps (/STATE)
START 進(jìn)程的啟動時間
TIME 進(jìn)程占用CPU的總時間(為0表示還沒超過秒)
COMMAND 程序的運(yùn)行指令,【】屬于內(nèi)核狀態(tài)的進(jìn)程。沒有【】使用戶進(jìn)程
(2)STAT狀態(tài)意思
(3)top使用
[root@yangdan ~]# top
top - 17:38:20 up 9:30, 2 users, load average: 0.00, 0.01, 0.05
Tasks: 101 total, 1 running, 100 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
Tasks:101 total 任務(wù)總數(shù) 1 running 有進(jìn)程正在運(yùn)行
100 sleeping 100個睡眠
0 stopped 掛起,停止
0 zomnie 僵尸進(jìn)程
0.0 us 進(jìn)程占用cpu的百分比(用戶進(jìn)程)
0.0 sy 內(nèi)核進(jìn)程 (硬件)
0.0 ni 優(yōu)先級的進(jìn)程占用cpu的百分比
100.0 id 空閑的進(jìn)程
0.0 wa 大量的等待-->
0.0 hi 硬中斷
0.0 si 軟中斷
0.0 st 虛擬機(jī)占用物理cpu的時間