核心功用:程序管理、記憶體管理、檔案系統、網路、驅動程式、安全功能等
程序管理檢視
程序與程式
程序是程式執行所建立,使用資源,程式在不執行時不使用記憶體等資源
程序與執行緒、協程
執行緒是程序內部分,攜程是執行緒可能會有的部分
程序的基本狀態
建立狀態:程序在建立時需要申請乙個空白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 ,glancecup監控: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...