筆記整理 unix linux的程序管理(一)

2021-07-03 08:13:52 字數 2796 閱讀 4641

unix/linux 下的程序管理

1. 程序與程式

~~~~~~~~~~~~~

1) 程序就是執行中的程式。乙個執行著的程式,

可能有多個程序。程序在作業系統中執行特定的任務。

2) 程式是儲存在磁碟上,

包含可執行機器指令和資料的靜態實體。

程序或者任務是處於活動狀態的電腦程式。

2. 程序的分類

~~~~~~~~~~~~~

1) 程序一般分為互動程序、批處理程序和守護程序三類。

2) 守護程序總是活躍的,一般是後台執行。

守護程序一般是由系統在開機時通過指令碼自動啟用啟動,

或者由超級使用者root來啟動。

3. 檢視程序

~~~~~~~~~~~

1) 簡單形式

# ps

以簡略方式顯示當前使用者有控制終端的程序資訊。

2) bsd風格常用選項

# ps -axu

a - 所有使用者有控制終端的程序

x - 包括無控制終端的程序

u - 以詳盡方式顯示

w - 以更大列寬顯示

3) svr4風格常用選項

# ps -efl

-e或-a            - 所有使用者的程序

-a                - 當前終端的程序

-u 使用者名稱或使用者id - 特定使用者的程序

-g 組名或組id     - 特定組的程序

-f                - 按完整格式顯示

-f                - 按更完整格式顯示

-l                - 按長格式顯示

4) 程序資訊列表

user/uid: 程序的使用者id。

pid: 程序id。

%cpu/c: cpu使用率。

%mem: 記憶體使用率。

vsz: 占用虛擬記憶體大小(kb)。

rss: 占用物理記憶體大小(kb)。

tty: 終端次裝置號,「?」表示無控制終端,如後台程序。

stat/s: 程序狀態。可取如下值:

o - 就緒。等待被排程。

r - 執行。linux下沒有o狀態,就緒狀態也用r表示。

s - 可喚醒睡眠。系統中斷,獲得資源,收到訊號,

都可被喚醒,轉入執行狀態。

d - 不可喚醒睡眠。只能被wake_up系統呼叫喚醒。

t - 暫停。收到sigstop訊號轉入暫停狀態,

收到sigcont訊號轉入執行狀態。

w - 等待記憶體分頁(2.6核心以後被廢棄)。

x - 死亡。不可見。

z - 殭屍。已停止執行,但其父程序尚未獲取其狀態。

< - 高優先順序。

n - 低優先順序。

l - 有被鎖到記憶體中的分頁。實時程序和定製io。

s - 會話首程序。

l - 多執行緒化的程序。

+ - 在前台程序組中。

start/stime: 程序開始時間。

time: 程序執行時間。

command/cmd: 程序指令。

f: 程序標誌。可由下列值取和:

1 - 通過fork產生但是沒有exec。

4 - 擁有超級使用者特權。

ppid: 父程序id。

ni: 程序nice值,-20到19,可通過系統呼叫或命令修改。

pri: 程序優先順序。

靜態優先順序 = 80 + nice,60到99,值越小優先順序越高。

核心在靜態優先順序的基礎上,

根據程序的互動性計算得到實際(動態)優先順序,

以體現對io消耗型程序的獎勵,

和對處理器消耗型程序的懲罰。

addr: 核心程序的記憶體位址。普通程序顯示「-」。

sz: 占用虛擬記憶體頁數。

wchan: 程序正在等待的核心函式或事件。

psr: 程序當前被指派給哪個處理器執行。

4. 父程序、子程序、孤兒程序和殭屍程序

-------------------------------------

核心程序(0)

init(1)

xinetd

in.telnetd

login

bash

vi1) 父程序啟動子程序後,

子程序在作業系統的排程下與其父程序同時執行。

2) 子程序先於父程序結束,

子程序向父程序傳送sigchld(17)訊號,

父程序**子程序的相關資源。

3) 父程序先於子程序結束,子程序成為孤兒程序,

同時被init程序收養,即成為init程序的子程序。

4) 子程序先於父程序結束,

但父程序沒有**子程序的相關資源,

該子程序即成為殭屍程序。

5. 程序識別符號(程序id)

~~~~~~~~~~~~~~~~~~~~~

pid - 程序號,是程序在作業系統中的唯一標識,程序號的分配採用延遲重用的策略進行的,在每乙個時刻都可以保證程序號唯一。

二、get***id

------------

getpid

- 獲取程序id

getppid

- 獲取父程序id

getuid

- 獲取實際使用者id

geteuid

- 獲取有效使用者id

getgid

- 獲取實際組id

getegid

- 獲取有效組id

《Unix Linux程式設計實踐教學》筆記

ctrl alt t 開啟命令列終端 chapter 1概述 目錄操作 1 ls 列出目錄內容 eg ls 列出當前目錄內容 ls etc 列出 etc目錄裡面所包含的檔案和子目錄 2 cd 改變當前目錄 剛登入系統時,當前目錄是自己的主目錄 eg cd bin 轉到 bin目錄下 cd.轉到上一層...

unix linux 環境軟體除錯筆記

員工培訓 ppt 內容 靜態 跟蹤 正規表示式簡介 函式定義 find h 查詢函式宣告 sclass function 使用 在檔案中查詢 功能 find name 轉到某一行 括號匹配 分析 1 摺疊 2 變數查詢與替換 左值和右值 3 比較 ulteredit 其它的工具 editplus 優...

UNIX linux中的引號

unix中的引號分為三種 單引號,雙引號,反引號 單引號 用單引號括起來的字元作為普通字元,即使是特殊字元也不例外.雙引號 除了 和 這幾個字元仍是特殊字元保持其特殊效能以外,其他的字元全部作為普通字元.其中 是用其後指定的變數的值代替此變數和 是轉移字元,指出對其後的字元不做特殊處理.反引號 反引...