1、程序分類
互動程序、批處理程序、守護程序
守護程序:由系統在開機時,通過指令碼自動啟用啟動或超級管理使用者root來啟動,如/etc/init.d/httpd就是httpd伺服器的守護程序,/etc/init.d/httpd檔案:定義httpd伺服器的啟動指令碼執行級別
2、程序的屬性
程序id(pid):用來區分程序,數值
父程序和父程序的id(ppid)
啟動程序的使用者id(uid)和所歸屬的組(gid)
程序狀態:狀態分別為執行r、休眠s、殭屍z
程序執行的優先順序
程序所連線的終端名
程序資源占用,如占用資源大小(記憶體、cpu佔用量)
3、父程序和子程序
父程序和子程序的關係是管理和被管理的關係。
當父程序終止時,子程序也隨之終止;子程序終止,父程序並不一定終止
4、ps監視程序工具
ps的引數
l:長格式輸出
u:按使用者名稱和啟動時間的順序來顯示程序
j:用任務格式來顯示程序
f:用樹狀格式來顯示程序
a:顯示所有使用者的所有程序(包括其他使用者)
x:顯示無控制終端的程序
r:顯示執行中的程序
ww:避免詳細引數被截斷
*常用的選項組合時aux或lax、f
ps應用舉例
ps aux (最常用),用管道和more連線起來分頁檢視
# ps -aux |more
# ps -aux > ps001.txt
# more ps001.txt //把所有的程序顯示出來,並輸出到ps001.txt檔案,然後通過more來分頁檢視
提取指定程式的程序
父程序和子程序的關係友好判斷的例子
5、pgrep查詢程序工具:通過程序名字來查詢程序的工具,用來判斷程序是否正在執行
引數l:列出程式名和程序id
o:程序起始的id
n:程序終止的id
6、kill、killall、pkill、xkill終止程序的工具
場景:乙個程式已經死掉,但又不能退出
應用的場合在伺服器管理中,在不涉及資料庫伺服器程式的父程序的停止執行時(這些工具強行終止資料庫伺服器,會讓資料庫產生更多的檔案碎片,碎片多了,資料庫會崩潰),如mysql伺服器最好時按其正常的程式關閉,而不是用pkill mysqld這樣來關閉
kill函式:kill [訊號**] 程序id
# kill 4840 //殺掉4840這個程序
# ps -auxf |grep httpd //檢視httpd伺服器仍在進行
# kill 4830 //殺掉httpd的父程序
# ps -qux |grep httpd //檢視httpd的其他子程序食肉仍在執行
kill -9:對於殭屍程序來強制終止退出
killalll函式:可以通過程式的名字直接殺死所有程序,killall 正在執行的程式名
# pgrep -l gaim //檢視哪些程式執行
2979 gaim
# killall gaim
pkill函式:#pkill 正在執行的程式名
# pgrep - l gaim
2979 gaim
# pkill gaim
xkill函式:在桌面上用殺死圖形介面的程式
# xkill
7、top
# top
8、程序的優先順序:nice和renice
9、linux程序結構
linux乙個程序:在記憶體裡有三部分資料:
資料段(存放程式的全域性變數、常數、動態資料分配的資料空間)
堆疊段(存放子程式的返回位址、子程式的引數、程式的區域性變數),系統如果同時執行數個相同的程式,它們之間不能使用同乙個堆疊段和資料段
**段(存放了程式**的資料),假如機器中有數個程序執行同一程式,那麼可以使用乙個**段
10、linux程序排程
程式使用cpu模式:io密集型(響應時間非常重要)、計算密集型(cpu周轉時間比較重要)、平衡型(響應和周轉之間的平衡時最重要的)
11、程序建立
linux主要提供了fork、vfork、clone三種程序建立的方法
12、殭屍程序:已經結束了程序,沒有任何執行**,也不能被排程,僅僅在程序列表中保留乙個位置,記載該程序的退出狀態等資訊供其他程序收集。需要等它的父程序來為它收屍
避免殭屍程序:父程序通過wait和waitpid等函式等待子程序結束
程序與多程序概念
程序 process 是計算機中程式關於某資料集合上的一次執行活動,是系統進行資源分配和排程的基本單位,是作業系統機結構基礎。狹義定義 程序是正在執行的程式的例項。在同一時間,同一作業系統中有兩個或兩個以上的程式處於執行狀態。php 提供了程序控制的擴充套件 pcntl。pcntl 實現了unix ...
程序概念和程序狀態
檢視程序 程序狀態 孤兒程序 執行中的程式。對於作業系統來說就是pcb程序控制塊,在linux中就是乙個task struct結構體。是作業系統對程式執行的動態描述,系統通過這個描述實現程式執行的管理和排程。要執行main這個程式,作業系統找到對應main的pcb,在pcb上讀取main執行所需要的...
程序的概念
程序是可以與其他程式併發執行的一次執行過程,是系統進行資源分配和呼叫度的基本單位。程序是乙個程式關於某個資料集的一次執行。也就是說,程序是執行中的程式,是程式的一次執行活動。相對於程式而言,程序是乙個動態的概念,而程式是乙個靜態的概念,是指令的集合。因此,程序是具有動態性和併發性的。從靜態的角度看,...