(2 2)訊號的概念,認識,處理動作

2021-09-12 07:49:13 字數 2019 閱讀 1123

//程序之間的常用通訊手段:傳送訊號,kill  第二章第二節講過;

//上節課討論過 sighup

//訊號 :通知(事情通知),用來通知某個程序發生了某乙個事情;

//事情,訊號都是突發事件, 訊號是非同步發生的,訊號也被稱呼為「軟體中斷」

//訊號如何產生:

//a)某個程序傳送給另外乙個程序或者傳送給自己;

//b)由核心(作業系統)傳送給某個程序

通過在鍵盤輸入命令ctrl+c[中斷訊號],kill命令

記憶體訪問異常,除數為0等等,硬體都會檢測到並且通知核心;

//訊號名字,都是以sig開頭,上節課sighup(終端斷開訊號)

//unix以及類(類似)unix作業系統(linux,freebsd,solaris);支援的訊號數量各不相同。10-60多個之間;

//訊號既有名字,其實也都是一些數字,訊號是一些正整數常量;訊號就是巨集定義(數字,從1開始)

//#include (/usr/include/)

//gcc

//標頭檔案,包含路徑:/user/local/include/ /usr/include/

//庫檔案,連線路徑:/usr/ local/lib/ /usr/lib

//sudo find / -name "signal.h" | xargs grep -in "sighup"

//kill :kill 程序id ,他的工作是發個訊號給程序;

//kill能給程序傳送多種訊號;

//ps -eo pid,ppid,sid,tty,pgrp,comm | grep -e 'bash|pid|nginx'

//sudo strace -e trace=signal -p 1184

//a)如果你單純的用kill 程序id,那麼就是往 程序傳送sigterm訊號(終止訊號)

//kill -數字 程序id,能發出跟這個數字對應的訊號 -1 程序id,sighup訊號去

//b)如果我門用kill -1 程序id,那麼就是往程序nginx傳送sighup終止訊號;同時程序nginx就被終止掉了;

//c)kill -2 程序id,傳送sigint訊號;

//kill -數字 程序id ,能傳送出多種訊號;

kill 命令不同數字所能發出的不同訊號

//ps aux | grep -e 'bash|pid|nginx' //aux所謂bsd風格顯示格式;

//kill只是發個訊號,而不是單純的殺死的意思。

//當某個訊號出現時,我們可以按三種方式之一進行處理,我們稱之為訊號的處理或者與訊號相關的動作;

//(1)執行系統預設動作 ,絕大多數訊號的預設動作是殺死你這個程序;

//(2)忽略此訊號(但是不包括sigkill和sigstop)

//kill -9 程序id,是一定能夠把這個程序殺掉的;

//(3)捕捉該訊號:我寫個處理函式,訊號來的時候,我就用處理函式來處理;(但是不包括sigkill和sigstop)

3 3 訊號的概念 認識 處理動作

程序之間的常用通訊手段 傳送訊號,kill 第二章第二節講過 上節討論過 sighup 訊號 通知 事情通知 用來通知某個程序發生了某乙個事情 事情,訊號都是突發事件,訊號是非同步發生的,訊號也被稱呼為 軟體中斷 訊號如何產生 a 某個程序傳送給另外乙個程序或者傳送給自己 b 由核心 作業系統 傳送...

數字訊號處理的重要概念

1 為什麼 h n 單位取樣響應那麼重要?2 線性卷積的定義及其運算規律,時域系統的響應y n 等於系統函式h n 與輸入訊號的卷積 卷積的定義 意義。但由於時域求卷積運算量大,所以常用變化域求卷積 3 線性卷積的 法,摺疊 移位 相乘 相加 4 穩定系統是指每個有界的輸入x n 都產生有界輸出y ...

C 轉型動作的新認識

之前學習c c 的時候一直都認為型別轉換 不管是顯式的還是隱式的 其實什麼都沒有做,只是告訴編譯器型別改變了一下,讓它的翻譯記憶體二進位制資料的時候以新型別的套路去翻譯而已。然而當我看到effective c rule 27.關於轉型動作會觸發其它動作時,我是很驚訝的。先貼出一段 來看看,轉型並不是...