進程和進程管理工具

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

一、進程

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請求,申請緩存區失?。┒鴷簳r無法運行,進程受到阻塞。在滿足請求時進入就緒狀態等待系統調用。

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

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 20:58
下一篇 2017-12-17 22:00

相關推薦

  • 馬哥教育網絡班22期第6周課程作業

    請詳細總結vim編輯器的使用并完成以下練習題 1、復制/etc/rc.d/rc.sysinit文件至/tmp目錄,將/tmp/rc.sysinit文件中的以至少一個空白字符開頭的行的行首加#; %s@^[[:space:]]\+@# 2、復制/boot/grub/grub.conf至/tmp目錄中,刪除/tmp/grub.conf文件中的行首的空白字符; %…

    Linux干貨 2016-12-05
  • 為大家準備了幾道簡單的小題,不知道看過這篇文章后能否做出來?(考驗你能力的時候到了,接招吧。。。) 1、將0-9分別替代成a-j 2、將/etc/issue文件中的內容轉換為大寫后保存至/tmp/issue.out文件中 3、計算1+2+3+..+99+100的值 4、處理字符串“xt.,l 1 jr#!$mn2 c*/fe 3 uz 4”,只保留其中的數字…

    2017-07-22
  • 【招聘】北京/互聯網/運維工程師/7-15K/雙休,五險一金

    崗位職責:   1、負責服務器的規劃、調試優化、日常監控、故障處理、數據備份、日志分析等工作;   2、參與運維流程制定,確保任何突發情況都能高效響應;  3、負責服務器部署,對服務器構架和網絡進行優化和改進;  4、負責運維相關數據的收集、分析和總結;  5、負責技術運維相關的文檔、手冊…

    Linux干貨 2016-04-05
  • 深入了解正則表達式與grep應用

    剛開始學習正則表達式時候,感覺和看無字天書沒什么分別,迷茫了一段時間后,仔細去理解,慢慢你會發現也沒什么的。認真去鉆研了,多練習,是可以理解他們的含義的。也許正如老師所言,學習linux ,入門的確很陡峭,對于我這個基礎薄弱,智商低于80的人來說的確很吃力。關于正則概念的就不去描述了,說起來真的不好表達,下面通過一些實例來進行深入理解吧。 1.顯示當前系統上…

    2017-11-01
  • Linux發展史

    一、簡單的說: 一個名叫Linus Torvalds的芬蘭大學生想要了解Intel的新CPU386。他認為比較好的學習方法是自己編寫一個操作系統的內核。出于這種目的,加上他對當時Unix 變種版本(即Minix)對于80386類機器的脆弱支持十分不滿,他決定要開發出一個全功能的、支持POSIX標準的、類Unix的操作系統內核,該系統吸收了BSD和S…

    Linux干貨 2016-10-20
  • Tomcat基礎知識

    標簽:centos  Java1.7  Tomcat8   零、tomcat簡介 一、安裝java環境 二、安裝tomcat 三、tomcat目錄結構以及相關文件 四、WebAPP結構及簡單部署 五、tomcat常用組件配置 零、tomcat簡介 1、tomcat簡介       tomcat是SU…

    Linux干貨 2017-02-09
欧美性久久久久