chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

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

Linux信號(hào)事件發(fā)生的兩個(gè)來(lái)源

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

掃碼添加小助手

加入工程師交流群

什么是信號(hào)

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

誰(shuí)來(lái)產(chǎn)生信號(hào)

信號(hào)事件的發(fā)生有兩個(gè)來(lái)源:

(1) 硬件來(lái)源,比如我們按下ctrl+c,會(huì)產(chǎn)生SIGINT信號(hào)。

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

常用信號(hào)

Linux信號(hào)的編號(hào)是從1-64,其中32和33空缺,沒(méi)有對(duì)應(yīng)的信號(hào)。通過(guò)kill -l 可查看所有的信號(hào)。

1~31之間的信號(hào)叫做不可靠信號(hào), 信號(hào)可能會(huì)丟失, 也叫做非實(shí)時(shí)信號(hào)。

34~64之間的信號(hào)叫做可靠信號(hào), 信號(hào)不會(huì)丟失, 也叫做實(shí)時(shí)信號(hào)。

信號(hào)響應(yīng)方式

信號(hào)有如下三種響應(yīng)方式:

(1) 忽略信號(hào),即對(duì)信號(hào)不做任何處理,但是有兩個(gè)信號(hào)不能忽略,即 SIGKILL 及 SIGSTOP。

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

(3) 執(zhí)行缺省操作,Linux 對(duì)每種信號(hào)都規(guī)定了默認(rèn)操作。

信號(hào)處理過(guò)程

信號(hào)處理的大致流程如下:

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

我們主要講一下“信號(hào)注冊(cè)” 和“信號(hào)在進(jìn)程中注銷”。其他兩個(gè)都比較好理解。

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

先來(lái)看一下對(duì)應(yīng)的結(jié)構(gòu)體:

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

struct sigqueue{ struct sigqueue *next; //信號(hào)所攜帶的信息 siginfo_t info;}

信號(hào)注冊(cè)的過(guò)程就是將信號(hào)值加入到未決信號(hào)集siginfo_t中,將信號(hào)所攜帶的信息加入到未決信號(hào)鏈的某一個(gè)sigqueue中去。

因此,對(duì)于可靠的信號(hào),可能存在多個(gè)未決信號(hào)的sigqueue結(jié)構(gòu),對(duì)于每次信號(hào)到來(lái)都會(huì)注冊(cè)。而不可靠信號(hào)只注冊(cè)一次,只有一個(gè)sigqueue結(jié)構(gòu)。

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

信號(hào)在進(jìn)程中注銷是指進(jìn)程已經(jīng)接收到信號(hào)了,會(huì)在鏈表中移除。在進(jìn)程的執(zhí)行過(guò)程中,每次從系統(tǒng)調(diào)用或中斷返回用戶空間的時(shí)候,都會(huì)檢查是否有信號(hào)沒(méi)有被處理。如果這些信號(hào)沒(méi)有被阻塞,那么就調(diào)用相應(yīng)的信號(hào)處理函數(shù)來(lái)處理這些信號(hào)。可靠信號(hào)和不可靠信號(hào)的處理有所不同:

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

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

原文標(biāo)題:Linux信號(hào)及工作原理

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

責(zé)任編輯:haq

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

    關(guān)注

    88

    文章

    11576

    瀏覽量

    216675
  • 信號(hào)
    +關(guān)注

    關(guān)注

    11

    文章

    2871

    瀏覽量

    79290

原文標(biāo)題:Linux信號(hào)及工作原理

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

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    個(gè)硬件SPI兩個(gè)CS操作兩個(gè)norflash,怎么互斥操作兩個(gè)norflash?

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

    LMK03328 具有兩個(gè)獨(dú)立 PLL 的超低抖動(dòng)時(shí)鐘發(fā)生器系列技術(shù)手冊(cè)

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

    基本半導(dǎo)體連獲兩個(gè)行業(yè)獎(jiǎng)項(xiàng)

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

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

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

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

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

    請(qǐng)問(wèn)DSP可以同時(shí)控制兩個(gè)不同的RGB屏嗎?

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

    ADS1198有兩個(gè)時(shí)鐘,CLK和SCLK,這兩個(gè)時(shí)鐘信號(hào)能接在一起嗎?

    最近在做這塊芯片,看到有兩個(gè)時(shí)鐘,CLK和SCLK,這兩個(gè)時(shí)鐘信號(hào)能接在一起嗎,就是說(shuō)CLK和SLCK能不能使用同一個(gè)時(shí)鐘信號(hào)?另外,關(guān)于
    發(fā)表于 02-07 06:28

    兩個(gè)不同頻率晶振靠的近會(huì)怎樣

    晶振的振蕩本質(zhì)上是一種機(jī)械振動(dòng)(在壓電晶體層面)。當(dāng)兩個(gè)晶振靠得很近時(shí),它們的機(jī)械振動(dòng)可能會(huì)相互影響。一個(gè)晶振的振動(dòng)可能會(huì)通過(guò)電路板或者外殼等介質(zhì)傳遞給另一個(gè)晶振,從而改變另一個(gè)晶振的
    的頭像 發(fā)表于 01-20 13:55 ?1891次閱讀
    <b class='flag-5'>兩個(gè)</b>不同頻率晶振靠的近會(huì)怎樣

    兩個(gè)晶體管能如何實(shí)現(xiàn)高效正弦波振蕩?

    在電子設(shè)計(jì)中,振蕩器是一個(gè)重要的組件,廣泛應(yīng)用于信號(hào)發(fā)生、無(wú)線通信和音頻設(shè)備中。一般來(lái)說(shuō),設(shè)計(jì)一個(gè)穩(wěn)定的正弦波振蕩器往往需要運(yùn)算放大器或復(fù)雜的電路結(jié)構(gòu)。然而,是否可以僅用
    的頭像 發(fā)表于 01-07 12:00 ?807次閱讀
    <b class='flag-5'>兩個(gè)</b>晶體管能如何實(shí)現(xiàn)高效正弦波振蕩?

    ADC124S021同時(shí)使用兩個(gè)通道,兩個(gè)通道的轉(zhuǎn)換數(shù)據(jù)發(fā)生串?dāng)_怎么解決?

    用DSP的SPI接口接ADC124S021,如果只是進(jìn)行單通道的信號(hào)采集,則轉(zhuǎn)換后的數(shù)值穩(wěn)定,但是同時(shí)使用兩個(gè)通道時(shí)則兩個(gè)通道的數(shù)據(jù)發(fā)生串?dāng)_現(xiàn)象。如,我單獨(dú)使用2通道,則轉(zhuǎn)換后數(shù)值穩(wěn)
    發(fā)表于 12-30 07:41

    DDS信號(hào)發(fā)生器支持單通道50個(gè)正弦載波!#信號(hào)發(fā)生器 #AWG #DDS

    信號(hào)發(fā)生
    虹科衛(wèi)星與無(wú)線電通信
    發(fā)布于 :2024年12月23日 18:03:30

    ads1013有兩個(gè)模擬輸入,可以接不同的兩個(gè)模擬輸入嗎?

    ads1013有兩個(gè)模擬輸入,可以接不同的兩個(gè)模擬輸入嗎,驅(qū)動(dòng)程序中怎么分別讀兩個(gè)模擬輸入的轉(zhuǎn)換結(jié)果?
    發(fā)表于 12-02 08:02

    從時(shí)域和頻域兩個(gè)角度對(duì)信號(hào)進(jìn)行分析

    一般來(lái)說(shuō),我們會(huì)從時(shí)域和頻域兩個(gè)角度,分別對(duì)信號(hào)進(jìn)行分析。 時(shí)域 時(shí)域是真實(shí)世界存在的域,按時(shí)間順序呈現(xiàn)。例如,在某個(gè)時(shí)鐘信號(hào)的時(shí)域圖中,可以觀察到兩個(gè)重要的參數(shù),波形的周期和上升沿:
    的頭像 發(fā)表于 11-19 10:18 ?4407次閱讀
    從時(shí)域和頻域<b class='flag-5'>兩個(gè)</b>角度對(duì)<b class='flag-5'>信號(hào)</b>進(jìn)行分析

    請(qǐng)問(wèn)DSK6713的AIC23能否在lineout和headphone兩個(gè)輸出通道實(shí)現(xiàn)不同信號(hào)的輸出?

    我現(xiàn)在需要輸出兩個(gè)不同的信號(hào),我一直用aic23的命令:while (!DSK6713_AIC23_write(hCodec, x[sample])) 來(lái)實(shí)現(xiàn)輸出,不過(guò)lineout跟
    發(fā)表于 10-29 06:09

    TAS5548如何在輸入信號(hào)改變的情況下,讓38和39這兩個(gè)引腳輸出的PWM產(chǎn)生變化?

    請(qǐng)問(wèn)如何調(diào)整,才能在輸入信號(hào)改變的情況下,38和39這兩個(gè)引腳輸出的PWM產(chǎn)生變化?通過(guò)配置I2C可以調(diào)整這三個(gè)AD Mode, BD Mode and Ternary Mode模式,但是輸入
    發(fā)表于 10-17 08:01