Show page source of internal24-25-サスペンドシグナル #25192

[[PageNavi(internal24-navi)]]

{{{ comment
h2w-title:サスペンドシグナル
}}}
 

== サスペンドシグナル == #SECTION021104000000000000000

あるプロセスの実行を一時的に中断状態(TASK_STOPPED)にするためのシグナルである。このシグナルには次の4種類がある。ttyドライバから生成されるSIGSTP, SIGTTIN, SIGTTOUシグナル3種類とkillシステムコールから明示的に送られる SIGSTOPシグナルである。

SIGCONTシグナルは、中断状態(TASK_STOPPED)のプロセスを再起動するためのシグナルである。

それぞれのシグナルは以下のように動作する。
  *  SIGTSTP, SIGTTIN, SIGTTOU, SIGSTOPシグナル 
    *  シグナル無視(SIG_IGN)指定の場合は何も行わない(send_sig関数)。
    *  シグナルを受信したプロセスは、シグナル受信処理(do_signal関数)中	でTASK_STOPPED状態になり、処理を中断する。(schedule関数でCPUを	明け渡す)

 
  *  SIGCONTシグナル 
    *  シグナル送信処理(send_sig関数)中で、TASK_STOPEDの	プロセスを起こす(TASK_RUNNINGにする)。
    *  SIGCONTを送られたプロセスは、シグナル受信処理(do_signal関数)の	中断点から処理を再開する。 SIGTSTP, SIGTTIN, SIGTTOU, SIGSTOPに対応するシグナルハンドラ	登録があれば、そのハンドラの起動を行う(do_signal関数)。	viをサスペンド後リジュームしたときのリドローなどで利用する。 

----

''(NIS)HirokazuTakahashi [[BR]]2000年12月09日 (土) 23時55分06秒 JST''1

[[PageNavi(internal24-navi)]]