- あるプロセスが信号を別のプロセスに送信すると、どのような状況でプロセスが受信を再開して実行するまで待機しますか?
- インストールされたシグナルハンドラは、どのような状況ですぐに呼び出されますか?
- 対応するシグナルハンドラを直接コールするのと比べて、シグナルを発生させるときにプロセスにどのくらいのオーバヘッドが発生しますか?
答えて
、TLPIはタスクがすでにすぐに「おそらく(実行されているときに、タスクが次の「すぐに」ユーザーモードにカーネルモードから切り替えたときに、スケジュールされた、またはされたときの信号が「正常」配信されていると述べています最初に割り込みを発生させなければならないでしょう。まあ、これがどういう意味であれ、それは厳密に束縛されているわけではありませんが、何が起こるかに非常に近いです。
ハードウェアイベント(セグメンテーションフォールトなど)のために、同期して生成される「通常の」信号と、通常の信号の間で区別する必要があります偽造されている)。
リアルタイム信号は、がにキューされ、通常の信号は、ではありません。つまり、通常のシグナルの実装は、ビットマスクとして機能するタスクごとのワードのようなものである可能性が最も高いです。
「通常の」信号を生成することはビットを設定することを意味し、OSは次に信号を配信する必要があるかどうかを判断すると、そのワードをゼロに対してテストし、必要に応じてどのビットが設定されているかを調べ、シグナルハンドラがあればそれに応じて
これを知る必要がある唯一の実用的な理由は、信号を「失う」ことができるからです。最初の信号が届く前に2つ以上の信号が生成された場合でも、信号は1つだけです。
リアルタイム信号(インプリメンテーション依存の長さまでキューに入れる必要があります)の実装は明らかにはるかに複雑です。
kill
というプロセスが(22.4 TLPI)というプロセスと同じように、ハードウェアイベント(たとえばsegfault)によって発生するシグナルは同期的に生成されます。つまり、2つの理由で「即時」に配信されます。まず、何か他のことをすることは意味をなさない.2番目には、トラップハンドラが復帰したときにカーネル/ユーザ切り替えが起きている。とにかくいつも「即時に」配達されます。
基本的にシグナルは非同期です。プロセススケジューラなどの要因によっていつシグナルが受信されるのかわからないため、信号を受信したときにシグナルハンドラを使用してコードを実行します。信号を送信するレイテンシは、クロック速度に基づくハードウェア/ソフトウェア割り込みに基づいています。
Linuxで何かがどのように実装されているかを知りたい場合は、POSIX規格をチェックしてください。シグナルの
グレート情報:
http://www.gnu.org/software/libc/manual/html_node/index.html#toc_Signal-Handling
信号が生成されると、それは保留になります。通常、短い時間の間は が保留になり、その後、 シグナルが送信された場合はがに配信されます。ただし、その種類の信号が の場合、現在はブロックにブロックされています。この種の信号 はブロックされていません。ブロックされていません。です。ブロック解除されるとすぐに に配信されます。
別の抜粋:
信号がすぐかどうか、長い 遅延の後に、配信されると、その信号のための指定されたアクションが取られます。信号の受け渡しについて
- 1. Google Cloud Messagingのメッセージが端末に届くのにどれくらい時間がかかりますか
- 2. Android OSの構築にどれくらい時間がかかりますか
- 3. C2DMの登録にはどのくらい時間がかかります
- 4. NSNotificationはどのくらい早く届きましたか?
- 5. ALTER TABLEコマンドにどれくらいの時間が残っているかを教えてください。
- 6. JavaScriptにどのくらいの時間がキャッシュされますか?
- 7. アクション内でどのくらい時間がかかりますか?
- 8. UBIFSがファイルをフラッシュに同期するのにどれくらい時間がかかりますか
- 9. CiviCRMにデータをインストールしてインポートするのにどれくらい時間がかかりますか?
- 10. エンティティはどれくらい時間をかけていますか?
- 11. アンドロイドがドーズモードに移行するにはどのくらい時間がかかりますか?アンドロイドのバージョンで
- 12. ModmyiはCydiaにアプリを投稿するのにどれくらい時間がかかりますか?
- 13. iOSでビューが回転するのにどれくらい時間がかかりますか?
- 14. Rubyをスクリプト言語として学ぶのにどれくらいの時間がかかりますか?
- 15. sigtimedwait()の "set"パラメータの信号が届かない
- 16. イメージに時間がかかるのはどのくらいですか?
- 17. X11のディスプレイ番号はどのくらい高くなっていますか?
- 18. iPhoneアプリにGame Centerを統合するのにどれくらいの時間がかかりますか?
- 19. pthreadスレッドがブロックされていないか確認してください。
- 20. JavaScriptで応答を送信するためにいくつかのリクエストが解決されるまでの待ち時間はどのくらいですか?
- 21. .htaccessの変更を有効にするにはどのくらい時間がかかりますか?
- 22. どのくらい時間がかかりますか:iOSアプリを有料から無料に変更する
- 23. 待機中のスレッドがなく、条件信号が送信された場合はどうなりますか?
- 24. Androidマーケット503の応答にどれくらいの時間がかかりますか?
- 25. LINQ to SQLを習得するのにどれくらいの時間がかかりましたか?
- 26. MongodbでObjectIdを調べるのにどれくらいの時間がかかりますか?
- 27. トライを作るのにどれくらいの時間がかかりますか
- 28. 検索結果はgoogle.comではなくgoogle.co.inから届いています
- 29. WinXP App Vista互換にするにはどのくらいの時間がかかりましたか?
- 30. Androidマーケットのインストール数を更新するにはどのくらいの時間がかかりますか?