91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

Linux信號事件發(fā)生的兩個來源

FPGA之家 ? 來源:嵌入式軟件開發(fā)交流 ? 作者:young ? 2021-06-18 15:09 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

什么是信號

信號可以理解為軟件中斷,是在軟件層次上對中斷機制的一種模擬,在原理上,一個進程收到一個信號與處理器收到一個中斷請求可以說是差不多的。信號是異步的,一個進程不必通過任何操作來等待信號的到達。信號可以直接進行用戶空間進程和內(nèi)核進程之間的交互,內(nèi)核進程也可以利用它來通知用戶空間進程發(fā)生了哪些系統(tǒng)事件。

誰來產(chǎn)生信號

信號事件的發(fā)生有兩個來源:

(1) 硬件來源,比如我們按下ctrl+c,會產(chǎn)生SIGINT信號。

(2) 軟件來源,比如我們調(diào)用alarm函數(shù)來產(chǎn)生SIGALRM信號。

常用信號

Linux信號的編號是從1-64,其中32和33空缺,沒有對應的信號。通過kill -l 可查看所有的信號。

1~31之間的信號叫做不可靠信號, 信號可能會丟失, 也叫做非實時信號。

34~64之間的信號叫做可靠信號, 信號不會丟失, 也叫做實時信號。

信號響應方式

信號有如下三種響應方式:

(1) 忽略信號,即對信號不做任何處理,但是有兩個信號不能忽略,即 SIGKILL 及 SIGSTOP。

(2) 捕捉信號,定義信號處理函數(shù),當信號發(fā)生時,執(zhí)行相應的自定義處理函數(shù)。

(3) 執(zhí)行缺省操作,Linux 對每種信號都規(guī)定了默認操作。

信號處理過程

信號處理的大致流程如下:

信號產(chǎn)生 -》 信號注冊 -》 信號在進程中注銷 -》 信號處理函數(shù)執(zhí)行完畢

我們主要講一下“信號注冊” 和“信號在進程中注銷”。其他兩個都比較好理解。

信號注冊指的是在目標進程中注冊,該目標進程中有未決信號的信息。啥叫未決信號呢,實際執(zhí)行信號的處理動作稱為信號遞達,信號從產(chǎn)生到遞達之間的狀態(tài),稱為信號未決。

先來看一下對應的結(jié)構(gòu)體:

struct sigpending{ //未決信號鏈的頭部與尾部 struct sigqueue *head, *tail; //未決信號集 sigset_t signal;};

struct sigqueue{ struct sigqueue *next; //信號所攜帶的信息 siginfo_t info;}

信號注冊的過程就是將信號值加入到未決信號集siginfo_t中,將信號所攜帶的信息加入到未決信號鏈的某一個sigqueue中去。

因此,對于可靠的信號,可能存在多個未決信號的sigqueue結(jié)構(gòu),對于每次信號到來都會注冊。而不可靠信號只注冊一次,只有一個sigqueue結(jié)構(gòu)。

只要信號在進程的未決信號集中,表明進程已經(jīng)知道這些信號了,還沒來得及處理,或者是這些信號被阻塞。

信號在進程中注銷是指進程已經(jīng)接收到信號了,會在鏈表中移除。在進程的執(zhí)行過程中,每次從系統(tǒng)調(diào)用或中斷返回用戶空間的時候,都會檢查是否有信號沒有被處理。如果這些信號沒有被阻塞,那么就調(diào)用相應的信號處理函數(shù)來處理這些信號??煽啃盘柡筒豢煽啃盘柕奶幚碛兴煌?/p>

不可靠信號:由于不可靠信號在未決信號鏈中只有一個sigqueue結(jié)構(gòu),因此將它刪除的同時,也會將信號從未決信號集中刪除。

可靠信號:由于可靠信號在未決信號鏈中可能有多個sigqueue結(jié)構(gòu),如果只有一個,也將信號從未決信號集中刪除掉。如果有多個則不從未決信號集中刪除信號,注銷完畢。

原文標題:Linux信號及工作原理

文章出處:【微信公眾號:FPGA之家】歡迎添加關注!文章轉(zhuǎn)載請注明出處。

責任編輯:haq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Linux
    +關注

    關注

    88

    文章

    11758

    瀏覽量

    219013
  • 信號
    +關注

    關注

    12

    文章

    2914

    瀏覽量

    80124

原文標題:Linux信號及工作原理

文章出處:【微信號:zhuyandz,微信公眾號:FPGA之家】歡迎添加關注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    兩個RS485-Modbus主站如何通訊

    本產(chǎn)品能很好解決Master-1主站向模塊寫入數(shù)據(jù),Master-2主站讀取數(shù)據(jù);Master-2主站向模塊寫入數(shù)據(jù),Master-1主站讀取數(shù)據(jù)。由此解決兩個主站之間的互相讀通信難題。
    發(fā)表于 02-08 15:32 ?0次下載

    數(shù)字延遲脈沖發(fā)生器 脈沖延遲信號發(fā)生器 多通道脈沖信號發(fā)生

    信號發(fā)生
    jf_47371611
    發(fā)布于 :2026年01月26日 13:54:25

    曙光存儲連續(xù)斬獲兩個行業(yè)獎項

    近期,曙光存儲連續(xù)斬獲兩個行業(yè)獎項,自研技術產(chǎn)品在國產(chǎn)突破、AI行業(yè)應用等方面的成果獲得廣泛關注。
    的頭像 發(fā)表于 01-15 16:28 ?2485次閱讀

    硬件SPI兩個CS操作兩個norflash,怎么互斥操作兩個norflash?

    硬件SPI兩個CS操作兩個norflash,怎么互斥操作兩個norflash,有一norflash被模擬成U盤,會在中斷中操作spi。
    發(fā)表于 09-26 06:18

    LMK03328 具有兩個獨立 PLL 的超低抖動時鐘發(fā)生器系列技術手冊

    LMK03328器件是一款超低噪聲時鐘發(fā)生器,具有兩個集成VCO的小數(shù)N頻率合成器、靈活的時鐘分配和扇出,以及存儲在片內(nèi)EEPROM中的引腳可選配置狀態(tài)。該器件可為各種多千兆串行接口和數(shù)字器件生成
    的頭像 發(fā)表于 09-14 09:37 ?1026次閱讀
    LMK03328 具有<b class='flag-5'>兩個</b>獨立 PLL 的超低抖動時鐘<b class='flag-5'>發(fā)生</b>器系列技術手冊

    基本半導體連獲兩個行業(yè)獎項

    近日,基本半導體憑借在碳化硅模塊領域的突出表現(xiàn),連獲“國產(chǎn)SiC模塊TOP企業(yè)獎”和“年度優(yōu)秀功率器件產(chǎn)品獎”兩個行業(yè)獎項。
    的頭像 發(fā)表于 09-05 16:31 ?1095次閱讀

    圖中兩個按鍵開關是兩個干簧管,為什么不直接對GND設計來檢測這個干簧管通斷呢?

    圖中兩個按鍵開關是兩個干簧管,為什么不直接對GND設計來檢測這個干簧管通斷呢? 這樣設計的原理是什么?
    發(fā)表于 06-17 06:30

    看到STM8L152用兩個IO用兩個或非門檢測兩個通斷,是什么原理呢?

    圖中兩個按鍵開關是兩個干簧管,為什么不直接對GND設計來檢測這個干簧管通斷呢? 這樣設計的原理是什么?
    發(fā)表于 06-12 06:25

    當CY7C65215在兩個通道上配置為 SPI 和 I2C 時,能否在Linux系統(tǒng)中看到兩個設備?

    我的客戶想知道,當 CY7C65215 在兩個通道上配置為 SPI 和 I2C 時,他能否在 Linux 系統(tǒng)中看到兩個設備。
    發(fā)表于 05-26 06:27

    ADAU1787四ADC、兩個DAC、帶音頻DSP的低功耗編解碼器技術手冊

    ADAU1787 是一款具有四輸入和兩個輸出的編解碼器,其中整合了兩個數(shù)字信號處理器 (DSP)。從模擬輸入到 DSP 內(nèi)核再到模擬輸出的路徑已針對低延遲進行優(yōu)化,適用于噪聲消除耳機。通過加入少量無源組件,ADAU1787 提
    的頭像 發(fā)表于 05-12 14:57 ?1515次閱讀
    ADAU1787四<b class='flag-5'>個</b>ADC、<b class='flag-5'>兩個</b>DAC、帶音頻DSP的低功耗編解碼器技術手冊

    信號發(fā)生器輸出方波的占空比調(diào)整技巧

    、工業(yè)自動化等領域,都能精準測試設備性能,助力研發(fā)與生產(chǎn),是電子工程等領域不可或缺的工具。 1.2方波信號的概念與特性 方波信號是一種周期性波形信號,電壓在兩個電平間交替,特點是上升和
    的頭像 發(fā)表于 04-02 11:57 ?1741次閱讀
    <b class='flag-5'>信號</b><b class='flag-5'>發(fā)生</b>器輸出方波的占空比調(diào)整技巧

    信號發(fā)生器互調(diào)失真測量:原理、方法與工程應用

    的關鍵指標,反映了多頻信號通過非線性元件時產(chǎn)生的額外頻率分量,可能導致系統(tǒng)頻譜污染和性能下降。本文將深入探討互調(diào)失真的成因、測量方法及其工程應用,為高精度信號測試提供技術參考。 1. 互調(diào)失真的定義與成因 互調(diào)失真(IMD) 指當兩個
    的頭像 發(fā)表于 03-14 12:03 ?1363次閱讀
    <b class='flag-5'>信號</b><b class='flag-5'>發(fā)生</b>器互調(diào)失真測量:原理、方法與工程應用

    USB6211使用電壓連續(xù)輸入兩個通道只顯示一通道

    我用UAB-6211采集兩個通道的信號,不管使用單端輸入還是查分輸入,同時使用索引數(shù)組將通道分開,可只能檢測出一通道,有無高手求教。
    發(fā)表于 03-13 21:05

    請問DSP可以同時控制兩個不同的RGB屏嗎?

    如題,這種情況兩個LCD的時鐘信號和復位信號是不是都要分開?H和V信號可以共用?
    發(fā)表于 03-06 06:50