程序與執行緒,殭屍態

2022-06-25 01:12:10 字數 2098 閱讀 8540

核心功用:程序管理、記憶體管理、檔案系統、網路、驅動程式、安全功能等

程序管理檢視

程序與程式

程序是程式執行所建立,使用資源,程式在不執行時不使用記憶體等資源

程序與執行緒、協程

執行緒是程序內部分,攜程是執行緒可能會有的部分

程序的基本狀態

建立狀態:程序在建立時需要申請乙個空白pcb(process control block程序控制塊),向其中填寫 控制和管理程序的資訊,完成資源分配。如果建立工作無法完成,比如資源無法滿足,就無法被排程執行,把此時程序所處狀態稱為建立狀態

就緒狀態:程序已準備好,已分配到所需資源,只要分配到cpu就能夠立即執行

執行狀態:程序處於就緒狀態被排程後,程序進入執行狀態

阻塞狀態:正在執行的程序由於某些事件(i/o請求,申請快取區失敗)而暫時無法執行,程序受到阻塞。在滿足請求時進入就緒狀態等待系統呼叫

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

程序樹 pstree

殭屍態

形成:

解決方法:喚醒父程序或關閉父程序

殭屍程序基本不使用計算機資源

centos 6 上第乙個程序是init ,7之後為systemd

程序資訊 ps

支援 bsd選項

常用選項

1

a 選項包括所有終端中的程序

2x 選項包括不鏈結終端的程序

3u 選項顯示程序所有者的資訊

4 f 選項顯示程序樹,相當於 --forest

5 k|--sort 屬性 對屬性排序,屬性前加 -表示倒序

6 o 屬性… 選項顯示定製的資訊 pid、cmd、%cpu、%mem

7l 顯示支援的屬性列表

8 -c cmdlist 指定命令,多個命令用,分隔

9 -l 顯示執行緒

10 -e 顯示所有程序,相當於-a

11 -f 顯示完整格式程式資訊

12 -f 顯示更完整格式的程序資訊

13 -h 以程序層級格式顯示程序相關資訊

14 -u userlist 指定有效的使用者id或名稱

15 -u userlist 指定真正的使用者id或名稱

16 -g gid或groupname 指定有效的gid或組名稱

17 -g gid或groupname 指定真正的gid或組名稱

18 -p pid 顯示指pid的程序

19 --ppid pid 顯示屬於pid的子程序

20 -t ttylist 指定tty,相當於 t

21 -m 顯示selinux資訊,相當於z

常用小工具

綜合監控:top  ,htop  ,glance  

cup監控:mpstat

磁碟監控:vmstat ,iostat ,dstat ,iotop

網路監控:iftop ,nload

pgrep

ps+grep

程序搜尋

prtstat 檢視程序詳細資訊

uptime

負載查詢

pmap 程序對應記憶體對映

ltrace 檢視庫呼叫

殭屍程序與孤兒程序

殭屍程序 如果乙個程序通過fork 建立子了乙個程序,當子程序退出而父程序還沒有呼叫wait waitpid來儲存子程序的狀態且 它,此時子程序的狀態描述資訊仍然保留在系統中,稱這類程序為殭屍程序 殭屍程序的優點是方便上層程序得知子程序的退出狀態,但是如果不及時 會造成記憶體洩露 孤兒程序 當乙個父...

殭屍程序與孤兒程序

孤兒程序是指在程序還未退出之前它的父程序就已經先退出了,簡單來說就是乙個沒有父程序的子程序就是孤兒程序。既然所有的程序都必須在退出之後被父程序的wait 或waitpid 以釋放其遺留在系統中的一些資源,那麼孤兒程序的這些東西又誰來處理呢?這個任務就落到了init程序的身上,init程序就好像乙個收...

精靈程序與殭屍程序

精靈程序 精靈程序 d a e m o n 是生存期長的一種程序。它們常常在系統引導裝入時起動,在系統關閉時終止。因為它們沒有控制終端,所以說它們是在後台執行的。所有精靈程序都以超級使用者 使用者 i d為0 的優先權執行。殭屍程序 在unix 系統中,乙個程序結束了,但是他的父程序沒有等待 呼叫w...