程序是一個可執行文件(Process)是正在運行程序一個實例。
SCO UNIX System V支持許多進程同時運行,各種系統通過調
用可用進程去創建新進程,與其他進程通訊,以及終止其他進程。
進程族系
新進程創建時,內核會分配一個進程標識號(PID)給它,並對
進程表中添加說明訊息。
由一個進程創建另一新進程,老進程為父進程,新進程為子進程。
用戶Shell執行的大多數指令又是它的子進程,子進程則運行指令。
而父進程允許有多個子進程來實現任務等,待子進程完成。一個
父進程可以有多個子進程,但是,一個子進程只有一個父進程。
前台及後台進程
在Shell提示處打入指令後,創建一子進程運行命令,Shell等待
命令退出,然回到對用戶提出提示符,這道指令與Shell同步運行,
即在前台運行。
在Shell提示 處打入的指令,若隨一個&,Shell創建的子進程運行
此指令,但不等待指令退出,而直接返回到對用戶提出提示。這
道指令與Shell同步運行,即在台運行。
$ sleep 10 &
精靈進程
精靈進程是一個進程,它與終端和用戶都無聯系,也有人喜歡稱
他為管家婆。精靈完成一些周期性的事,平時它睡眠。用ps (C)
指令可看到精靈,它在tty區域中帶有問號(?)。
-Sched:PID 0,它完成進程的程序在存儲局和盤交換局之間交
換工作。
-init:PID 1,系統自動建的第一用戶進程,它負責初始化引
導和注冊過程,也就是所有非系統進程的祖先。它會在終端口上,
啟動getty (M)進程。
-vhand:PID 2,頁面精靈,它頻繁地把儲頁面內容送往交換區。
-bdfush:PID 3,定期刷新高速緩到盤(默認情況,每13秒刷
新一次)
-logger:歸檔系統出錯訊息。
-cron:在調度時運行作業。
-Ipsched:脫機打印精靈。
孩兒進程
孤兒進程在父進程終止仍舊活動,由init (M)認它為乾兒子。
僵□進程則是進程已終止,但進程還未撤消,因為父進程並未「
等待」它,進程表仍保留著這□體,進程表的□體是僵□進程所
消耗的資源。
隨著新進程的創建,出現大量□體,但總數是有限制的,因此影
響新進程的產生。而孩兒進程與僵□進程不同,並不會影響系統
效率。
通常,在父進程死去時,才會移去僵□進程。若他們還未移去,
應由init (M)繼承並移去它。
監視進程
監視進程監注冊戶的數量,用以記系統的性能;亦會監視用戶進
程,包括掛起進程;以及裝載均值等系統性能問題。
要顯示進程信息,可以利ps (C)指令報告,進程狀態。在默認
情況下,僅會報告與當前終端有聯系的有關訊息。若用戶沒有root權
限,ps僅限以說明運行進程,報告用戶的進程訊息。若用戶有root權
限,則會報告在所有終端上所有用戶的進程訊息。
$ ps-u joana
--u 〈username〉選項顯示指定用戶的訊息。
--t 〈ttynamt〉選項顯示指定終端有關的進程訊息。
而ps -elf指令則提供了需有F、S、C、PRI、NI、TIME字段的
使用訊息。
-F是標記,指示進程位置,20表示在內存,0表示交換在盤上,
31是系統進程。
-S是狀態訊息,指示進程狀態,睡眠還是正在運行。
-C是進程占有CPU的百分率
-TIME是花費CPU的總時間。
-PRI是進程當前優先數
-NI是進程的nice (ADM)菜單
如何創建進程
當進程分岔一個子進程,自己就會進入睡眠狀態。開始時,子進
程運行父進程的同一程序,由內核分配一個新的PID。當子進程
再去執行新的程序,保持新分配的PDI,新程序就會替代子進程
的原先程序。
當子進程完成後,內核會把它從系統中移去,再喚醒父進程,子
進程就會退出。
監視系統裝載
uptime(C)指令顯示裝載均值(一分鐘、五分鐘和十五分鐘),
即在預定時間上,排隊運行進程的平均數:$uptime
W(C)指令產生如uptime(C)一樣的裝載均值訊息,並顯示誰在
系統上做甚麽,若用戶擁有root權限,W報告所有用戶的有關訊 息。
若沒有 ,僅顯示與用戶進程有關竹的訊息。
PCPU(Process CPU,進程CPU時間 )顯示某道特定指令已運
行多久了。對控制不了的進程,這種檢查是很有用的。JCPU(
Joint CPU,連合CPI時間),顯示一個終端所涉的所有進程的
總時間。
sar (ADM)指令是一個系統活動報告程序,顯示系統資源累積
利用率。為指示系統瓶頸口(Bottleneck),sar 是非常好的實
用程序,指令語法如下:$sar〔-option〕 〔
sample-interval-samples〕
例如:$sar-u120
-u選項顯示CPU利用情況。如果%idle一致地低,使用效能是上升,
不過,運行的進程偷不到未用的CPU周期。
又例如使用-q選項顯示進程吞吐量。假若%swpocc大於20,就發生
交換(Swapping),可以使用大內存能減少交換 /請負活動。