日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

不可靠的信号、可靠信号

發(fā)布時(shí)間:2023/11/30 编程问答 51 豆豆
生活随笔 收集整理的這篇文章主要介紹了 不可靠的信号、可靠信号 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一、不可靠信號(hào)

lnux信號(hào)機(jī)制基本上是從UNIX系統(tǒng)中繼承過(guò)來(lái)的。早期UNIX系統(tǒng)中的信號(hào)機(jī)制比較簡(jiǎn)單和原始,后來(lái)在實(shí)踐中暴露一些問(wèn)題,它的主要問(wèn)題是:

1. 進(jìn)程每次處理信號(hào)后,就將對(duì)信號(hào)的響應(yīng)設(shè)置為默認(rèn)動(dòng)作,在某些情況下,將導(dǎo)致對(duì)信號(hào)的錯(cuò)誤處理;因此,在用戶(hù)如果不希望這樣的操作,那么就要在信號(hào)處理函數(shù)結(jié)尾在一次調(diào)用signal(),重新安裝該信號(hào)。

2. 早期UNIX下的不可靠信號(hào)主要指的是進(jìn)程可能對(duì)信號(hào)做出錯(cuò)誤的反應(yīng)以及信號(hào)可能丟失。

3. linux支持不可靠信號(hào),但是對(duì)不可靠信號(hào)機(jī)制做出了改進(jìn):在調(diào)用完信號(hào)處理函數(shù)后,不必重新調(diào)用該信號(hào)的安裝函數(shù)(信號(hào)安裝函數(shù)是在可靠機(jī)制上是實(shí)現(xiàn)的)。因此,linux下的不可靠信號(hào)問(wèn)題主要指的是信號(hào)可能丟失

?

二、不可靠信號(hào)的發(fā)展

隨著時(shí)間的發(fā)展,實(shí)踐證明了有必要對(duì)信號(hào)的原始機(jī)制加以改進(jìn)和擴(kuò)充。所以,后來(lái)出現(xiàn)的各種UNIX版本分別在這方面進(jìn)行了研究,力圖實(shí)現(xiàn)"可靠信號(hào)"。由于原來(lái)定義的信號(hào)已經(jīng)有許多應(yīng)用,不好再做改動(dòng),最終只好又新增加了一些信號(hào),并在一開(kāi)始就把它們定義為可靠信號(hào),這些信號(hào)支持排隊(duì),不會(huì)丟失。

同時(shí),信號(hào)的發(fā)送和安裝也出現(xiàn)了新版本:發(fā)送函數(shù)sigqueue()及信號(hào)安裝函數(shù)sigaction()。

早期UNIX系統(tǒng)只定義了32種信號(hào),Ret hat7.2支持64種信號(hào),編號(hào)0-63(SIGRTMIN = 31, SIGRTMAX = 63),將來(lái)可能進(jìn)一步增加,這需要得到內(nèi)核的支持。前32種信號(hào)已經(jīng)有了預(yù)定義值,每個(gè)信號(hào)有了確定的用途和定義,并且每種信號(hào)都有各自缺省動(dòng)作。如按鍵盤(pán)CTRL + C時(shí),會(huì)產(chǎn)生SIGINT信號(hào),對(duì)該信號(hào)的默認(rèn)反應(yīng)就是進(jìn)程終止。后32個(gè)信號(hào)表示實(shí)時(shí)信號(hào),等同前面闡述的可靠信號(hào)。這保證了發(fā)送的多個(gè)實(shí)時(shí)信號(hào)都被接收,實(shí)時(shí)信號(hào)是POSIX標(biāo)準(zhǔn)的一部分,可用于應(yīng)用進(jìn)程。

非實(shí)時(shí)信號(hào)都不支持排隊(duì),都是不可靠信號(hào);實(shí)時(shí)信號(hào)都支持排隊(duì),都是可靠信號(hào)。

?

三、可靠信號(hào)術(shù)語(yǔ)和語(yǔ)義

執(zhí)行信號(hào)的處理動(dòng)作稱(chēng)作為遞達(dá)(Delivery),信號(hào)從產(chǎn)生到遞達(dá)之間的狀態(tài),稱(chēng)之為信號(hào)未決(Pending),進(jìn)程可以選擇阻塞(Block)某個(gè)信號(hào)。被阻塞的信號(hào)產(chǎn)生時(shí)將保持在未決狀態(tài),直到進(jìn)程解除對(duì)信號(hào)的阻塞,才執(zhí)行遞達(dá)的動(dòng)作。注意,阻塞和忽略是不同的,只要信號(hào)被阻塞就不會(huì)遞達(dá),而忽略信號(hào)是在遞達(dá)之后可選的一種處理動(dòng)作。信號(hào)在內(nèi)核中的表示可以看作是這樣的

總結(jié)

以上是生活随笔為你收集整理的不可靠的信号、可靠信号的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。