「pid」定義:程序識別符號
linux和unix一樣,有乙個虛擬記憶體系統,能夠把程式**和資料以記憶體頁面的形式放到硬碟的乙個區域中,所以linux可以管理的程序比物理記憶體所能容納的要多得多。
程序表:
linux程序表就像乙個資料結構,它把當前載入在記憶體中的所有程序的有關資訊儲存在乙個表中,其中包括程序的pid、程序的狀態、命令字串和其他一些ps命令輸出的各類資訊。作業系統通過程序的pid對它們進行管理,這些pid是程序表的索引。程序表的長度是有限制的,所以系統能夠支援的同時執行的程序數也是有限制的。
ps:
ps命令是用來檢視系統程序的,可以對程序進行監測和控制
語法格式:ps [選項]
options:-e 顯示所有程序
-f 全格式
-h 不顯示標題
-l 長格式
-w 寬輸出
a 顯示終端上的所有程序,包括其他使用者的程序
r 只顯示正在執行的程序
u 以使用者為主的格式來顯示程式狀況
x 顯示所有程式,不以終端機來區分
一般使用ps aux,或者ps -ef、
uid 使用者id
pid 程序id
ppid 父程序id
c cpu佔用率
stime 開始時間
tty 開始此程序的tty
time 此程序執行的總時間
cmd 命令名
系統程序:
stat** 說明
s 睡眠。通常是在等待某個事件的發生,如乙個訊號或有輸入可用
r 執行。嚴格來說,應是「可執行」,即在執行佇列中,處於正在執行或即將執行狀態
d 不可中斷的睡眠(等待)。通常是在等待輸入或輸出完成
t 停止。通常是被shell作業控制所停止,或者程序正處於偵錯程式的控制器下
z 死(defunct)程序或殭屍(zombie)程序
n 低優先順序任務,nice
w 分頁。
s 程序是會話期首程序
+ 程序屬於前台程序組
1 程序是多執行緒的
< 高優先順序任務
一般而言,每個程序都是由另乙個我們稱之為父程序的程序啟動的,被父程序啟動的程序叫做子程序。linux系統啟動時,它將執行乙個名為init的程序,該程序是系統執行的第乙個程序,它的程序號為1。
linux排程器根據程序的優先順序來決定執行哪個程序。
啟動新程序並等待它們結束的能力是整個系統的基礎 。
在一台單處理器計算機上,同一時間只能有乙個程序可以執行,其他程序處於等待執行狀態。每個程序輪到的執行時間(我們稱之為時間片)是相當短暫的,這就給人一種多個程式在同時執行的假象。
linux核心用程序排程器來決定下乙個時間片應該分配給哪個程序。
Linux 程序和訊號
1.程序識別符號 pid 的取值範圍從2到32768,數字1是為特殊程序init保留的,init程序負責管理其他程序。2.linux程序表就像乙個資料結構,它把當前載入在記憶體中的所有程序的相關資訊儲存在乙個表中,pid是程序表的索引。3.ps af tty一列顯示了程序是從哪乙個終端啟動的。cmd...
Linux程式設計 程序和訊號
程序的結構 型別和排程 可以把程序看做是正在執行的程式。程序結構 程序識別符號 檔案描述符 棧空間和環境變數 程式計數器 作業系統通過程序的 pid對它們進行管理,pid是程序表的索引。linux 排程器根據 程序的優先順序 來決定呼叫哪個程序。用不同的方法啟動新程序 system 函式作用 執行以...
Linux 程序訊號
概念 訊號是程序之間事件非同步通知的一種方式,屬於軟中斷。訊號處理常見方式 忽略此訊號。執行該訊號的預設處理動作。提供乙個訊號處理函式,要求核心在處理該訊號時切換到使用者態執行這個處理函式,這種方式稱為捕捉 catch 乙個訊號。產生訊號 捕捉訊號 核心如何實現訊號的捕捉 如果訊號的處理動作是使用者...