FreeSql學習筆記——1.入門
一、程序
1. 程式
什麼是程式?
- 是一組計算機能識別和執行的指令,運行於電子計算機上,滿足人們某種需求的資訊化工具。
- 用於描述程序要完成的功能,是控制程序執行的指令集。
- 儲存在硬碟、光碟等介質中的可執行程式碼和資料。
- 靜態儲存的程式碼。
2. 程序
2.1 什麼是程序?
執行中的程式的一個副本,是被載入記憶體的一個指令集合,是資源分配的單位,
-
-
UID、GID語境決定對檔案系統的存取和訪問許可權
-
通常從執行程序的使用者來繼承
-
存在生命週期
-
2.2 程序的具體特徵
-
-
併發性:任何程序都可以同其他程序一起併發執行;
-
獨立性:程序是系統進行資源分配和排程的一個獨立單位;
-
2.3 執行緒
執行緒(英語:thread)是作業系統能夠進行運算排程的最小單位。它被包含在程序之中,是程序中的實際運作單位。一條執行緒指的是程序中一個單一順序的控制流,一個程序中可以併發多個執行緒,每條執行緒並行執行不同的任務。
檢視程序有幾個執行緒,可以使用 "cat /proc/PID/status"檢視。
3. 檢視程序命令
3.1 ps命令——靜態檢視程序
ps 即 process state,可以檢視程序當前狀態的快照,預設顯示當前終端中的程序,Linux系統各程序的相關資訊均儲存在/proc/數字 目錄/status 下的各檔案中。
檢視靜態的程序統計資訊:
-
"ps aux" 可以檢視系統中所有的程序;
-
-
"ps -l" 只能看到當前 Shell 產生的程序;
常用選項:
-
-
u:使用以使用者為主的格式輸出程序資訊。
-
x:顯示當前使用者在所有終端下的程序資訊。
-
-e:顯示系統內的所有程序資訊。
-
-l:使用長(Long)格式顯示程序資訊。
-
-f:使用完整的(Full)格式顯示程序信
-
k|--sort 屬性 對屬性排序,屬性前加 - 表示倒序
-
ps 只檢視當前終端程序,如下圖
ps aux檢視多個終端程序,如下圖。
3.2 top——動態檢視程序
ps 命令可以一次性給出當前系統中程序狀態,但使用此方式得到的資訊缺乏時效性,並且,如果管理員需要實時監控程序執行情況,就必須不停地執行 ps 命令,這顯然是缺乏效率的。
為此,Linux 提供了 top 命令。top 命令可以動態地持續監聽程序地執行狀態,與此同時,該命令還提供了一個互動介面,使用者可以根據需要,人性化地定製自己的輸出,進而更清楚地了程序的執行狀態。
選項:
- -d 秒數:指定 top 命令每隔幾秒更新。預設是 3 秒。
- -b:使用批次處理模式輸出。一般和"-n"選項合用,用於把 top 命令重定向到檔案中。
- -n 次數:指定 top 命令執行的次數。一般和"-"選項合用。
- -p 程序PID:僅檢視指定 ID 的程序。
- -s:使 top 命令在安全模式中執行,避免在互動模式中出現錯誤。
- -u 使用者名稱:只監聽某個使用者的程序。
top命令:動態檢視程序狀態預設每3秒重新整理一次,q鍵退出,顯示主要內容與ps命令相同如下圖
top 命令的第二部分輸出,主要是系統程序資訊,各個欄位的含義如下:
表頭(欄位名) | 說明 |
---|---|
PID | 程序的 ID號 |
USER | 該程序所屬的使用者 |
PR | priority優先順序,數值越小 優先順序越高 |
NI | nice優先順序,數值越小 優先順序越高 |
VIRT | 該程序使用的虛擬記憶體的大小,單位為 KB |
RES | 該程序使用的實體記憶體的大小,單位為 KB |
SHR | 共享記憶體大小,單位為 KB |
S | 程序狀態 |
%CPU | 該程序佔用 CPU 的百分比 |
%MEM | 該程序佔用記憶體的百分比 |
TIME+ | 該程序總共佔用的 CPU 時間 |
COMMAND | 程序的命令名(程序檔案、程序名稱) |
3.3 patree命令——以樹狀結構列出程序資訊
pstree命令:數狀圖顯示程序, -p檢視對應pid號