黄p网站_在线看中文字幕_亚洲电影免费观看_成人激情视频_欧美成视频_中国av在线

進(jìn)程信號

信號(Signals )是Unix系統(tǒng)中使用的最古老的進(jìn)程間通信的方法之一。操作系統(tǒng)通過信號來通知進(jìn)程系統(tǒng)中發(fā)生了某種預(yù)先規(guī)定好的事件(一組事件中的一個),它也是用戶進(jìn)程之間通信和同步的一種原始機制。一個鍵盤中斷或者一個錯誤條件(比如進(jìn)程試圖訪問它的虛擬內(nèi)存中不存在的位置等)都有可能產(chǎn)生一個信號。Shell也使用信號向它的子進(jìn)程發(fā)送作業(yè)控制信號。

信號是在Unix System V中首先引入的,它實現(xiàn)了15種信號,但很不可靠。BSD4.2解決了其中的許多問題,而在BSD4.3中進(jìn)一步加強和改善了信號機制。但兩者的接口不完全兼容。在Posix 1003.1標(biāo)準(zhǔn)中做了一些強行規(guī)定,它定義了一個標(biāo)準(zhǔn)的信號接口,但沒有規(guī)定接口的實現(xiàn)。目前幾乎所有的Unix變種都提供了和Posix標(biāo)準(zhǔn)兼容的信號實現(xiàn)機制。

階段

在一個信號的生命周期中有兩個階段:生成和傳送。當(dāng)一個事件發(fā)生時,需要通知一個進(jìn)程,這時生成一個信號。當(dāng)進(jìn)程識別出信號的到來,就采取適當(dāng)?shù)膭幼鱽韨魉突蛱幚硇盘枴T谛盘柕絹砗瓦M(jìn)程對信號進(jìn)行處理之間,信號在進(jìn)程上掛起(pending)。

內(nèi)核為進(jìn)程生產(chǎn)信號,來響應(yīng)不同的事件,這些事件就是信號源。主要的信號源如下:

  • 異常:進(jìn)程運行過程中出現(xiàn)異常;
  • 其它進(jìn)程:一個進(jìn)程可以向另一個或一組進(jìn)程發(fā)送信號;
  • 終端中斷:Ctrl-C,Ctrl-\等;
  • 作業(yè)控制:前臺、后臺進(jìn)程的管理;
  • 分配額:CPU超時或文件大小突破限制;
  • 通知:通知進(jìn)程某事件發(fā)生,如I/O就緒等;
  • 報警:計時器到期。

常見信號

  • SIGHUP: 從終端上發(fā)出的結(jié)束信號;

  • SIGINT: 來自鍵盤的中斷信號(Ctrl-C);

  • SIGQUIT:來自鍵盤的退出信號(Ctrl-\);

  • SIGFPE: 浮點異常信號(例如浮點運算溢出);

  • SIGKILL:該信號結(jié)束接收信號的進(jìn)程;

  • SIGALRM:進(jìn)程的定時器到期時,發(fā)送該信號;

  • SIGTERM:kill 命令發(fā)出的信號;

  • SIGCHLD:標(biāo)識子進(jìn)程停止或結(jié)束的信號;

    每一個信號都有一個缺省動作,它是當(dāng)進(jìn)程沒有給這個信號指定處理程序時,內(nèi)核對信號的處理。有5種缺省的動作:

  • 異常終止(abort):在進(jìn)程的當(dāng)前目錄下,把進(jìn)程的地址空間內(nèi)容、寄存器內(nèi)容保存到一個叫做core的文件中,而后終止進(jìn)程。

  • 退出(exit):不產(chǎn)生core文件,直接終止進(jìn)程。

  • 忽略(ignore):忽略該信號。

  • 停止(stop):掛起該進(jìn)程。

  • 繼續(xù)(continue):如果進(jìn)程被掛起,則恢復(fù)進(jìn)程的運行。否則,忽略信號。

  • 進(jìn)程可以對任何信號指定另一個動作或重載缺省動作,指定的新動作可以是忽略信號。進(jìn)程也可以暫時地阻塞一個信號。因此進(jìn)程可以選擇對某種信號所采取的特定操作,這些操作包括:

  • 忽略信號:進(jìn)程可忽略產(chǎn)生的信號,但 SIGKILL 和 SIGSTOP 信號不能被忽略,必須處理(由進(jìn)程自己或由內(nèi)核處理)。進(jìn)程可以忽略掉系統(tǒng)產(chǎn)生的大多數(shù)信號。

  • 阻塞信號:進(jìn)程可選擇阻塞某些信號,即先將到來的某些信號記錄下來,等到以后(解除阻塞后)再處理它。

  • 由進(jìn)程處理該信號:進(jìn)程本身可在系統(tǒng)中注冊處理信號的處理程序地址,當(dāng)發(fā)出該信號時,由注冊的處理程序處理信號。

  • 由內(nèi)核進(jìn)行缺省處理:信號由內(nèi)核的缺省處理程序處理,執(zhí)行該信號的缺省動作。例如,進(jìn)程接收到SIGFPE(浮點異常)的缺省動作是產(chǎn)生core并退出。大多數(shù)情況下,信號由內(nèi)核處理。

需要指出的是,對信號的任何處理,包括終止進(jìn)程,都必須由接收到信號的進(jìn)程來執(zhí)行。而進(jìn)程要執(zhí)行信號處理程序,就必須等到它真正運行時。因此,對信號的處理可能需要延遲一段時間。

信號沒有固有的優(yōu)先級。如果為一個進(jìn)程同時產(chǎn)生了兩個信號,這兩個信號會以任意順序出現(xiàn)在進(jìn)程中并會按任意順序被處理。另外,也沒有機制用于區(qū)分同一種類的多個信號。如果進(jìn)程在處理某個信號之前,又有相同的信號發(fā)出,則進(jìn)程只能接收到一個信號。進(jìn)程無法知道它接收了1個還是42個SIGCONT信號。

主站蜘蛛池模板: 精品国产乱码久久久久久1区2区 | 国产a√ | 人人看人人干 | 国产精品久久久久久久娇妻 | a级毛片久久 | 精品一区二区三 | 欧美精品三区 | 日本三级中国三级99人妇网站 | 资源av | 欧美一区二区三区在线观看视频 | 免费观看一级视频 | 欧美久久久 | 青青久久av北条麻妃海外网 | 日韩欧美一区二区三区免费观看 | 日韩免费 | 成人h动漫免费观看网站 | 久久免费视频9 | 国产1区2区精品 | 国产99久久 | 色婷婷综合网 | 亚洲久草 | 中文字幕日韩在线 | 性色av一区二区三区 | 麻豆精品一区二区 | 成人一区二区三区在线 | 亚洲爽爽 | 亚洲精选免费视频 | 国产精品第一国产精品 | 99久久精品一区二区成人 | 亚洲最新av | 色播99| 亚洲一区二区 | 一区二区三区免费在线观看 | 天天摸夜夜摸爽爽狠狠婷婷97 | 青青久久av北条麻妃海外网 | 91视频国产区 | 国产欧美在线观看 | 国产精品免费一区二区三区四区 | av在线免费看片 | 亚洲精品电影在线观看 | 亚洲精选久久 |