Linux 程序和訊號

2021-07-13 09:49:34 字數 1494 閱讀 3569

「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 乙個訊號。產生訊號 捕捉訊號 核心如何實現訊號的捕捉 如果訊號的處理動作是使用者...