1. 程式人生 > 其它 >FreeSql學習筆記——1.入門

FreeSql學習筆記——1.入門

一、程序

1. 程式

什麼是程式?

  • 是一組計算機能識別和執行的指令,運行於電子計算機上,滿足人們某種需求的資訊化工具。
  • 用於描述程序要完成的功能,是控制程序執行的指令集。
  • 儲存在硬碟、光碟等介質中的可執行程式碼和資料。
  • 靜態儲存的程式碼。

2. 程序

2.1 什麼是程序?

執行中的程式的一個副本,是被載入記憶體的一個指令集合,是資源分配的單位,

  • 程序ID(Process ID,PID)號碼被用來標記各個程序

  • UID、GID語境決定對檔案系統的存取和訪問許可權

  • 通常從執行程序的使用者來繼承

  • 存在生命週期

  • 都由其父程序建立

2.2 程序的具體特徵

  • 動態性:程序是程式的一次執行過程,是臨時的,有生命期的,是動態產生,動態消亡的;

  • 併發性:任何程序都可以同其他程序一起併發執行;

  • 獨立性:程序是系統進行資源分配和排程的一個獨立單位;

  • 結構性:程序由程式、資料和程序控制塊三部分組成

2.3 執行緒

執行緒(英語:thread)是作業系統能夠進行運算排程的最小單位。它被包含在程序之中,是程序中的實際運作單位。一條執行緒指的是程序中一個單一順序的控制流,一個程序中可以併發多個執行緒,每條執行緒並行執行不同的任務。

檢視程序有幾個執行緒,可以使用 "cat /proc/PID/status"檢視。

3. 檢視程序命令

3.1 ps命令——靜態檢視程序

ps 即 process state,可以檢視程序當前狀態的快照,預設顯示當前終端中的程序,Linux系統各程序的相關資訊均儲存在/proc/數字 目錄/status 下的各檔案中。

檢視靜態的程序統計資訊:

  • "ps aux" 可以檢視系統中所有的程序;

  • "ps -le" 可以檢視系統中所有的程序,而且還能看到程序的父程序的 PID 和程序優先順序;

  • "ps -l" 只能看到當前 Shell 產生的程序;

常用選項:

  • a:顯示當前終端下的所有程序資訊,包括其他使用者的程序。與“x”選項結合時將示系統中所有的程序資訊。

  • u:使用以使用者為主的格式輸出程序資訊。

  • x:顯示當前使用者在所有終端下的程序資訊。

  • -e:顯示系統內的所有程序資訊。

  • -l:使用長(Long)格式顯示程序資訊。

  • -f:使用完整的(Full)格式顯示程序信

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

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

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號