歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Unix知識 >> Unix教程 >> SCOUNIX基礎講座--第八講:監視進程管理

SCOUNIX基礎講座--第八講:監視進程管理

日期:2017/2/27 17:41:16   编辑:Unix教程
程序是一個可執行文件(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),可以使用大內存能減少交換 /請負活動。

Copyright © Linux教程網 All Rights Reserved