シグナルとは、カーネルやプロセスがプ ロセスに対し、プロセス内外で起きた同 期/非同期事象をプロセスに通知する仕組 み プロセスに配送されると、動作を一旦中 断し、指定したシグナルハンドラが実行 同期シグナルはメモリ保護例外や不正命 令実行など シグナル配送待ちかどうかかどうか調 べ、配送待ちであればシグナル配送処理 を行う シグナル番号から小さいものから取り出 す 非同期シグナルはインターバルタイ マー、非同期I/O完了通知など シグナル配送フラグのチェック シグナルは用途によって複数種あり、シ グナル番号とシグナル名が割り当てられ ている 配送待ちシグナルの取得 同期シグナルはその事象を引き起こした スレッドに配送 シグナル配送処理 シグナル配送手順 シグナルハンドラ呼出用スタックフレー ムを作成 実行再開箇所をシグナルハンドラに、ス タック位置を作成したスタックフレーム に Linux本 8章 - シグナル処理 シグナル機構の実装 シグナル配送先 非同期シグナルはスレッドグループに配 送 カーネルスタックに退避されているプロ セスのレジスタ情報を書き換え シグナル配送を抑制するための仕組み シグナルのマスク 実行再開 シグナルマスク時に複数回シグナルが生 成されても、一度しか配送されない シグナルマスクはスレッドごとに設定 スレッドとシグナルハンドラ/マスク シグナルハンドラはスレッドグループに 対して設定 現状のシグナルの欠点を解決するための 仕組み リアルタイムシグナル シグナル生成とシグナル配送の回数を同 じに出来るなど
© Copyright 2024 ExpyDoc