程序介紹及檢視工具

2021-08-03 14:50:58 字數 4129 閱讀 4801

程序描述:

程序是硬碟中程式**執行時的形態,程序是**的例項.產生程序的方法便是將**執行.

linux是多工的作業系統,也就是說系統核心啟動後,可以多個程序同時執行,或者呈現出多工同時執行的假象,多工的實現方法是基於時間上的輪循,即每個程序被cpu執行一段時間後替換為下一程序執行,或多程序是通過分配時間片實現的,將時間進行分片,時間也是物理量,同樣可被分片.多程序確實都是在同時執行,但是擁有了時間的程序才可以繼續演變.邏輯上的實現,物理上就是通過cpu執行時的輪循實現的.

多工的作業系統的實現:
多工的實現方式可以分為協作式多工與搶占式多工,協作式多工應用在早期,

搶占式多工對多程序之間的輪循控制是通過優先順序實現的,在centos 4,5中系統一共有0-139共140個優先順序,而在centos6中共有0-99共100個優先順序。並且系統的優先順序採用nice值進行最終的修正,nice優先順序共有-20~+19共40個。最終的優先順序是通過nice值修正過的優先順序。

使用者可以改改變程序的nice值來修正最終的優先順序,在centos 45 中程式的初始優先順序為120 ,nice值為0,所以通過修改nice值 ,改變最終的優先順序的浮動範圍為100-139之間。

程序的分類:
程序按照依賴關係可以分為,守護程序,前台程序。

守護程序:在系統啟動時通過init.d 啟動的程序。不需要依附在終端之上的程序。

前台程序:通過終端啟動的程序,需要依附終端。並且占用終端的程序。

前台程序與守護程序可以互相轉化。

程序按照硬體資源的占用可分為,cpu密集型,io密集型。
程序的狀態:
執行態:running

就緒態:ready

睡眠態:

可中斷:interruptable

不可中斷:uninterruptable

停止態:stopped 暫停於記憶體,但不會被排程,除非手動啟動

僵死態:zombie 結束程序,副程序結束前,子程序不關閉。

程序檢視的工具:

ps

ps是乙個古老的滄桑的程序管理工具,ps支援多種風格的選項格式。

ps :顯示當前登入的終端上執行的程序。

unix風格的選項 如:-a -ef

-e顯示所有的程序

-f顯示所有程序的詳細資訊

-f顯示所有程序的更更更詳細的資訊

-h以帶有縮排的方式顯示程序,以體現出程序間的父子關係

-c顯示指定的程序的資訊

例:ps -c test.sh

注:當指令碼中不新增shebang時 -c無法檢視指令碼的程序資訊

-o顯示指定的屬性資訊

例:ps -eo pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,comm

bsd風格的選項 如:a aux

x顯示所有與終端無關,即不依附終端的的程序,比如守護程序。

u顯示程序所有者的資訊

f顯示資訊中進行縮排並用/\進行標示,以體現出程序的父子關係。

k以指定的屬性進行排序

例:ps axo stat,user,pid k pid

o顯示指定的屬性資訊

例:ps axo stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm,%cpu,%mem,user,pri

ruser:發起程序的使用者

pri:優先順序,但是為ps內部的優先順序。pri優先順序0 - +39對應nice優先順序 19 - -20 也就是是數值越大優先順序越高

ni:nice值

psr:processor cpu編號

rtprio :實時優先順序

gnu風格的選項 如: --help
ps aux 顯示的格式

[root@localhost ~]# ps aux |head

user

pid

%cpu

%mem

vsz

rss

tty

stat

start

time

command

使用者 id cpu佔用率 記憶體佔用率 承諾的記憶體 實際占用的記憶體 該程序依附的終端 狀態 程序的建立時間 程序實際占用cpu的時間 程序的名稱

注:此時顯示的使用者並非是發起程序的使用者,而是實際生效的使用者,比如suid許可權程式的屬主。

ps顯示stat的狀態種類:

r:running 正在執行中的程序

s:interruptable sleeping

d:uninterruptable sleeping

t:stopped

z:zombie

+:前台程序

l:多執行緒程序

l:記憶體分頁並帶鎖

n:低優先順序程序

<:高優先順序程序

s:session leader 會話(子程序)發起者

pstree

以樹狀結構顯示程序資訊,顯示的資訊中使用{}進行表示的是執行緒資訊。

-p :顯示程序的pid

top

在字元介面以互動的方式顯示當前系統中的 負載資訊,程序資訊,

選項,執行top時指定

-d 指定重新整理時間的間隔,預設為3秒鐘

-b 顯示所有的程序 ,在不指定-b選項時,只顯示一屏資訊。

-n 指定重新整理次數,到達指定次數後退出。

全域性顯示設定,同樣在執行時輸入

s 修改重新整理時間間隔

指定top顯示程序的排序,在程式執行時輸入

p按照佔據cpu的百分比進行排序 ,即顯示%cpu的欄

m按照佔據記憶體的百分比進行排序,即顯示%mem的欄

t按照積累佔據cpu的時長,即顯示time+的欄

指定top顯示的頭部資訊的格式,同樣在程式執行輸入,實現顯示模式的切換,模式中包括不顯示模式,

l系統執行時間 平均負載的資訊切換。即第一行。

t tasks與%cpu 的顯示資訊顯示模式切換,第二行與第三行

m memory資訊 ,即記憶體資訊顯示模式切換,第四行與第五行

1 切換顯示的cpu,在具有多顆cpu時有意義,第三行

其他操作

k 終止指定的程序,預設是指定cpu佔用率最高的

w 儲存檔案

退出 q

top 的介面資訊如下:

htop

彩色的 top

glances

glances 來自epel源,實現檢視遠端主機的程序資訊。

nice

指定程式的nice值

例: nice -n -20 ping 10.1.1.1 指定ping程式的nice值為-20.相當於系統優先順序的 120+(-20)=100

nice -20 ping 10.1.1.1 指定ping程式的nice值,-20 -識別為選項。所以優先順序會設定為20 但是nice的優先順序最大只能為19,所以最終的nice值為19

nice –20 成功的指定nice值為20 -為選項 -20為nice值 ,但是命令要規範

pgrep

按照命令的指定的方式顯示程序

-u 程序的最終生效者

-u 程序的真正發起者

-t terminal 與指定終端相關的程序

-l 顯示程序名稱

-a 顯示完整格式的程序名稱

-p 顯示指定程序的子程序

pidof

顯示指定程序的id

可以用於指令碼中判斷程式是否已經啟動,在指定程式沒有啟動時,$?為非零值

例: pidof http 顯示http的程序id號

if pidof http 使用if語句判斷 http服務是否已經執行

pmap

顯示程序對應的記憶體對映,等價於 cat/proc//maps

-x 顯示詳細格式的資訊

adb ps shell 檢視程序 adb工具

adb devices 檢視已連線的裝置。舉例 adb devices 如果按了回車後出現一段字母數字組合就說明裝置連線成功了!adb push 推送檔案到裝置 adb push 電腦檔案路徑 手機目標路徑 push 推 adb pull c a.txt sdcard 舉例 在不進入裝置shell的...

Linux 程序樹檢視工具 pstree

pstree 是 linux 下的乙個用於展示程序樹結構的工具,類似於 tree 展示目錄樹一樣,視覺化地檢視程序的繼承關係。pstree 工具其實是 psmisc 工具集的成員之一,psmisc 工具集由 4 個實用的 linux 程序管理工具 通過 linux 的 proc 檔案系統實現 組成 ...

Linux如何檢視埠及程序

方法一 1.通過lsof命令檢視pid 1.1 簡單而實用的檢視 lsof i 8080 1.2 ipv4 ipv6 lsof pnl m i4 i6 也可以使用 lsof pnl m i4 i6 grep 8080 lsof list open files 是乙個列出當前系統開啟檔案的工具。在li...