[OSASK 5018] Re: シグナル(ぐいぐい01).

小柳です。こんばんは。

私は「シグナル」というとUNIX でのシグナルとシグナルハンドラがまず思い
浮かんでいました。どうもこのことをこれまでのメールで書いていなくて、
自分の意見がはっきりと伝えられませんでした。すみません。

OSASK のシグナルはイベントドリブンの考え方で、割り込みという考え方を
しないように感じていますが、合っているでしょうか?

UNIX のように、シグナルでプロセスの終了(SIGTERM)、中断(SIGSTOP)、
再開(SIGSTOP)といった動作をさせる、あるいは、それらのシグナルをハンドル
することは、OSASKではどのような実装になるのでしょうか?

Hidemi KAWAI wrote:
> 
>   こんばんは、川合です。
> 
> KOYANAGI, Masaaki さんは 2002/09/17 21:09:44 の「[OSASK 5015] Re
> : シグナル(ぐいぐい01).」で書きました:
> 
>   おっしゃることはよくわかります。ただ、通常シグナルに割り込むと
> いうのは結構厄介でして、結局はシグナルボックスを2つもつという方
> 法になります。シグナルボックスを単なるFIFOバッファにしないで、も
> っと複雑な構造にすれば割り込みもできますが、効率はぐっと落ちます
> 。そうなるくらいなら僕としては以下のような書き方をお勧めします。

効率の低下や実装が 2つのシグナルボックスになるというのは分かります。
このメールで最初に書いたことが私の頭の中にあったので、これまで
割り込みの必要性を主張していました。

>   それはそのとおりです。でも複数のシグナルボックスがあれば、シグナ
> ルが溜まっていないかどうかを検出するのはそれだけ面倒になります。そ
> れでも使えるものでしょうか?ちゃんとしたマルチスレッドの場合は、ス
> レッドごとに独立したシグナルボックスを与える方針です。ですからとり
> あえずはシングルスレッドに限定して考えてください。

了解しました。

あらゆる通知を「シグナル」で統合し、アプリ側では想定される通知に対する
動作を定義する形でアプリケーションを作るというスタイルでは、
シグナルボックスは 1つであるのがいいと思います。

-- 
小柳 雅明(http://homepage1.nifty.com/dreaming/)
「人の足を止めるのは"絶望"ではなく"諦観"
  人の足を進めるのは"希望"ではなく"意志"」
                  -- ARMS


ML番号でジャンプ
ML単語検索