進程和進程管理工具

進程的相關定義以及相關工具的使用

一、進程

1.內核的作用:進程的管理、文件系統、網絡功能、內存管理、驅動程序、安全功能等。然后其中進程的管理是其中重要的一塊。

2.進程跟程序:進程和程序是同一事物的不同時刻,進程是運行中的程序的一個副本,是被載入內存的一個指令集合。進程有它自己的進程ID號(PID)來標識。

3.task struct是Linux內核存儲進程信息的數據結構格式,而多個task struct組成的鏈表就形成task list

4.所有的進程都是由父子關系組成的,init是第一個進程,其他的進程都是該進程的子進程,子進程都是由父進程創建的,fork(),clone()

5.特性:

(1)子進程都是由父進程創建的

(2)CoW

(3)存在生命周期

(4)UID、GID和SELinux語境決定對文件系統的存取和訪問權限,通

常從執行進程的用戶來繼承

6.進程的五種基本狀態及轉換

(1)五種狀態:

創建狀態:進程在創建時需要申請一個空白PCB,向其中填寫控制和管理進程的信息,完成資源分配。如果創建工作無法完成,比如資源無法滿足,就無法被調度運 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?行,把此時進程所處狀態稱為創建狀態

就緒狀態:進程已經準備好,已分配到所需資源,只要分配到 ?????????CPU就能立即運行

執行狀態:進程處于就緒狀態被調度后,進程進入執行執行狀態

阻塞狀態:正在執行的進程由于某些事件(I/O請求,申請緩存區失敗)而暫時無法運行,進程受到阻塞。在滿足請求時進入就緒狀態等待系統調用。

終止狀態:進程結束,或出現錯誤,或被系統終止,進入終止狀態。無法再執行

7.狀態之間轉換六種情況

(1)運行–>就緒:1,主要是進程占用CPU的時間過長,而系統分配給該進程占用CPU的時間是有限的;2,在采用搶先式優先級調度算法的系統中,當有更高優先級的進程要 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 運行時,該進程就被迫讓出CPU,該進程便由執行狀態轉化為就緒狀態。

(2)就緒–>運行:運行的進程的時間片用完,調度就轉到就緒狀態。

(3)運行–>阻塞:正在執行的進程因發生某等待事件而無法執行,則進程由執行狀態變為阻塞狀態,如發生了I/O請求。

(4)阻塞–>就緒:進程所等待的事件已經發生,就進入了就緒隊列。

8.進程優先級:

為了提高系統的效率,特意引用了隊列,每一個隊列代表一種優先級,將所有的進程都分到隊列中。

(1)系統優先級:范圍是0—139,共有140個。數字越小,優先級越高。共有140個運行隊列和過期隊列

(2)pri優先級:與系統優先級類似,其范圍也是0—139,數字越大,優先級越高

(3)實時優先級(realtime):其范圍為0—99,值越大,優先級越高

(4)nice優先級:其范圍為-20—19,對應優先級100—139,其值越小,優先級越高,-20優先級最高

9.進程內存:

(1)頁框是用來存儲頁面數據,存儲Page 大小4k

(2)LRU:近期最少使用算法,用來釋放內存

10.進程類型:

(1)守護進程:在系統引導過程中啟動的進程,和終端無關進程,開機自動加載,啟動

(2)前臺進程:跟終端相關,通過終端啟動的進程

(3)兩者可相互轉化,相互協調

11.進程狀態:

(1)運行態:running

(2)就緒態:ready

(3)睡眠態:

可中斷:interruptale

不可中斷:uninterruptable

(4)停止態:stopped,暫停內存,但不會被調用,除非手工啟動

(5)僵死態:zombie,結束進程,父進程結束前,子進程不關閉

二、進程管理工具

Pstree,ps,pidof,pgrep,top,htop,glance,pmap,vmstat,dstat,kill,pkill,job,bg,fg,nohup

1.pstree 顯示進程樹

0.1

0.0

(1)pstree -h 高亮顯示進程

0.2

(2)pstree -p 顯示進程號

0.3

2.ps 顯示進程的狀態,將當時的進程以快照的方式顯示出來,不跟蹤顯示進程的變化,默認顯示出當前終端中的進程

ps命令支持三種格式的選項:UNIX格式,BSD格式,GNU格式

1.0

(1)BSD格式,不加橫線

ps a 顯示所有終端中的進程

1.1

ps x 顯示與終端無關的進程

1.2

ps u 顯示進程所有者的信息

1.6

ps aux顯示所有終端中與終端無關的進程所有者的信息

1.4

ps f 顯示進程樹,等于–forest

1.5

ps o 選擇定制的信息顯示

1.6

ps L 顯示支持的屬性

1.7

(2)UNIX格式,加一個橫線

ps -C+命令 指定命令 可以使用多個命令,用,隔開

1.8

ps -L 顯示線程

1.9

ps -e顯示所有進程,相當于-A

1.10

1.11

ps -f 顯示完整格式程序信息

1.12

ps -F 顯示更完整的進程信息

1.13

ps -ef 以完整的格式顯示進程信息

1.14

ps -H 以進程層級格式顯示進程相關信息

1.15

ps -u指定有效的用戶

1.16

1.17

ps -U指定真正的用戶

ps -p pid顯示屬于pid的子進程

1.18

3.搜索進程

(1)ps 選項 |其他命令

2.0

(2)pgrep

pgrep -t 顯示與終端相關的進程

2.1

2.2

pgrep -l 顯示進程名

pgrep -a 顯示完整格式的進程名

2.3

pgrep -P pid 顯示指定程序的子進程

2.4

4.uptime 顯示當前時間,系統已啟動的時間、當前上線人數,系統平均負載

3.0

 

系統平均負載:指在特定時間間隔內運行隊列的平均進程數

通常每個CPU內核的當前活動進程數不大于3,那么系統的性能良好,如果每個CPU內核的任務數大于5,那么此主機的性能有嚴重問題

 

5.top

 

4

 

6.vmstat命令:查看虛擬內存信息

5.0

 

5.1

Procs:

r:可運行進程的個數,和核心數有關

b:處于不可中斷睡眠態的進程個數

Memory:

Swpd:交換內存的使用總量

Free:空閑物理內存總量

Buffer:用于buffer的內存總量

Cache:用于cache的內存總量

Swap:

Si:從磁盤交換進內存的數據速率

So:從內存交換至磁盤的數據速率

io:

bi:從塊設備讀入數據到系統的速率

bo:保存數據至塊設備的速率

System:

in:interrupts ?中斷速率,包括時鐘

cs:context switch 進程切換速率

選項:-s:顯示內存的統計數據

7.iostat:統計CPU和設備IO信息

6.0

 

8.dstat命令:系統資源統計,代替vmstat,iostat

7.0

 

-C: 顯示cpu相關信息

7.1

-D:顯示disk相關信息

7.2

-g:顯示page相關統計數據

7.3

-m:顯示memory相關統計數據

7.4

-n:顯示network相關統計數據

7.5

-p:顯示process相關統計數據

7.6

-r:顯示io請求相關的統計數據

7.7

-s:顯示swapped相關的統計數據

7.8

9.iotop:iotop命令是一個用來監視I/O使用狀態的類top類工具。

8.0

 

 

第一行:Read和Write速率總計

第二行:實際的Read和Write速率

第三行:

10.信號:

(1)查看所有的信號:kill -l

9.0

(2)幾種重要的信號:

  1. 1=SIGHUP=HUP: ?無須關閉進程而讓其重新讀配置文件
  2. 2=SIGINT=INT: ??中止正在進行的進程,相當于Crtl+c
  3. 9=SIGKILL=KILL: ??強制殺死正在運行的進程

d.15=SIGTERM=TERM:終止正在進行的進程

(3)殺死進程

按PID:kill [-SIGNAL] pid…

按名稱:

按模式:

三、Linux的作業控制:

1作業分為:

前臺作業:通過終端啟動,且啟動后一直占據終端

后臺作業:可通過終端啟動,但啟動后就轉入到后臺

2讓作業運行于后臺

運行中的作業: Ctrl+z

尚未啟動的作業:COMMAND&

3.查看當前終端所有作業:jobs

4.作業控制:

(1)fg :把指定的后臺作業調回前臺

(2)bg:讓送往后臺的作業在后臺繼續運行

(3)kill:終止指定的作業

 

 

 

 

 

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/90310

(0)
zss123456zss123456
上一篇 2017-12-17
下一篇 2017-12-17

相關推薦

  • Bind編譯安裝詳解

    Bind編譯安裝詳解 Bind是一款開放源碼的DNS服務器軟件,由美國加州大學Berkeley分校開發和維護的,全名為Berkeley Internet Name Domain它是目前世界上使用最為廣泛的DNS服務器軟件,支持各種unix平臺和windows平臺?,F今互聯網上最常使用的DNS服務器軟件,使用BIND作為服務器軟件的DNS服務器約占所有DNS服…

    Linux干貨 2016-07-22
  • 關于TCP/IP與OSI模型基礎學習

    關于TCP/IP與OSI模型基礎學習 §·OSI七層模型介紹 OSI(Open system interconnection 開放系統互聯),七層網絡模型稱為開放式系統互聯參考模型 ,是一個邏輯上的定義,一個規范,它把網絡從邏輯上分為了7層。每一層都有相關、相對應的物理設備,比如路由器,交換機。OSI 七層模型是一種框架性的設計方法 ,建立七層模型的主要目的…

    Linux干貨 2016-09-05
  • HAproxy reload config file with uninterrupt session

    HAProxy is a high performance load balancer. It is very light-weight, and free, making it a great option if you are in the market for a load balancer and need to keep your cos…

    Linux干貨 2015-04-03
  • 計算機的組成及其功能

    計算機的組成及其功能 計算機由五部分組成 運算器 實現算術運算和邏輯運算(和控制器組成CPU) 控制器 控制總線的使用權限,完成尋址和控制對內存當中的訪問權限是做讀訪問還是寫訪問 存儲器 內存,RAM(Random Access Memory) 輸入(Input) 下指令,提供數據 輸出(Output) 輸出數據加工的結果

    2018-02-22
  • 位置變量$1,$2,$@,$*,$#詳解

    位置變量: 位置變量實際是屬于系統預定義變量的一種,不能修改變量名,同時作用也是固定的,也不能新增的變量,只能修改變量的值。     常用的位置參數變量        $0代表命令本身,$1-$9代表第一到第九個參數,十以上的參數需要用大括號括起來,比如${11}.     該變…

    Linux干貨 2016-08-18
  • 單引號、雙引號和反引號使用方法

        首先向馬哥和馬哥團隊敬個禮,謝謝你們帶我進入Linux的世界,剛開始接觸linux時,經??吹絾我?、雙引號和反引號特殊符號,經常搞混淆和誤用,應該用雙引號,有時用到單引號。經過幾天的混亂引用,總算搞明白了一些,簡單總一下三者的使用和區別。  單引號 ‘’     單引號里的內容全部以普通字符的含義進…

    Linux干貨 2015-07-29
欧美性久久久久