宣城市網(wǎng)站建設(shè)平臺(tái)推廣營銷
目錄
- 一、理解信號
- 1.信號是什么
- 2.信號的種類
- 二、簡單理解信號的生命周期
一、理解信號
1.信號是什么
??Linux中的信號其實(shí)和日常生活中的信號還是挺像的,LInux中的信號是一種事件通知機(jī)制,通知進(jìn)程發(fā)生了某個(gè)事件。進(jìn)程接收到信號后,就會(huì)中斷當(dāng)前的操作,然后去處理這個(gè)信號所代表的事件。
??每種信號都有自己對應(yīng)的事件,信號有多種,事件也就有多種。進(jìn)程要處理事件,自然就需要有對應(yīng)的處理方法。每種信號都有自己對應(yīng)的處理方法,這個(gè)方法其實(shí)就是信號的處理函數(shù)。進(jìn)程收到信號后,就去執(zhí)行這個(gè)信號對應(yīng)的處理函數(shù)。
??用一個(gè)生活中的例子來理解信號:以過馬路為例,過馬路就是一個(gè)進(jìn)程,走到馬路邊看到信號燈是紅色(紅色信號燈就是信號),這個(gè)信號告訴我們現(xiàn)在不能過,要等一會(huì)(紅色信號的處理函數(shù)就是停下來等待綠燈)。因此我們過馬路的這個(gè)進(jìn)程就被打斷了,這個(gè)信號的處理函數(shù)就是等待綠燈的到來,等這個(gè)信號所對應(yīng)的函數(shù)執(zhí)行結(jié)束,我們就可以繼續(xù)過馬路了。
??信號其實(shí)是宏,如下圖所示:
2.信號的種類
?查看信號的命令:
- kill -l
??如圖:Linux中共64種信號,1 ~ 31是非可靠信號(非實(shí)時(shí)信號),32 ~ 64 是可靠信號(實(shí)時(shí)信號)。
?實(shí)時(shí)信號與非實(shí)時(shí)信號的區(qū)別:
- 實(shí)時(shí)信號優(yōu)先級高,系統(tǒng)首先處理實(shí)時(shí)信號。
- 實(shí)時(shí)信號會(huì)記錄信號發(fā)送的次數(shù),而非實(shí)時(shí)信號不會(huì)。(這個(gè)很重要)
二、簡單理解信號的生命周期
??信號的生命周期分為四部分:
- 產(chǎn)生:就像紅燈亮了,這就產(chǎn)生了一個(gè)信號
- 注冊:就是讓進(jìn)程知道自己收到了某個(gè)信號。就像是看到紅燈后,我們就知道我們收到了紅燈信號。
- 注銷:進(jìn)程在處理信號之前將信號的存在痕跡抹除。
- 處理:調(diào)用信號的處理函數(shù)