一週間以上間が空いてしまいましたが、青木さんのメイルについてコメントし
ます。
>> On Wed, 21 Jun 1995 00:18:00 +0900, 青木 義彦 <PBC03033@niftyserve.or.jp> said:
> 青木です。こんにちは。
> <内藤さん>
> >作成中の POSIX 環境では、LOWLIB が受け渡しできるメッセージの最大サイズ
> >は、1K 程度を考えています。これは read/write などの比較的大きなデータ
> >を受け渡しする場合です。他のシステムコールではもっとサイズが小さくなり
> >ます。
> 最低限、ブロック型デバイスの1ブロックをread/writeできる必要があると
> 思います。
> また、仮想記憶の処理も考慮したら、最低でもページサイズ(4k)程度は
> read/writeできる必要があるでしょう。
送受信するメッセージのサイズについては、各周辺核ごとに定める必要があり
ます。
ブロック型デバイスのサイズについては、最近のデバイスは大抵デフォルトが
512 バイトになっているので、1K バイト程度あれば読み書きはできます。
もちろん、効率などを考えると 1K バイト以上にする方がいいかもしれません。
仮想記憶の処理については、メッセージ自体にデータを入れる必要はないと思
います。たとえば、コピーの場合などを考えても単にコピー元とコピー先のア
ドレスを指定するだけでいいと思います。
> >そうですね。
> >これは、そのプロセス(またはタスク) でもっているメッセージキューの個数
> >によって決まります。
> >POSIX 環境だと、高々ひとつのメッセージの分しかメッセージバッファを確保
> >していません。ひとつ以上のメッセージを LOWLIB へ書き込もうとすると待ち
> >状態が発生します。
> ・LOWLIBはタスクのコンテキストで動作する。
> ・LOWLIBは、デバイスマネージャのメッセージバッファに要求メッセージを書き
> 込んだ直後に、デバイスマネージャからの応答メッセージの受信待ちになる
> ・LOWLIBは、プロセス単位(あるいはサブプロセス単位)に応答メッセージを受
> け取るためのメッセージバッファを持っている。
> と考えていましたが、違うようですね。
> しかし、システムコールの完了待ちにメッセージキューが関係するというのは、
> 理解しがたいのですが、もう少し詳しく解説してもらえませんでしょうか
私としては、青木さんの以下のメイルを読んでコメントしたのであって、シス
テムコールの完了待ちのことを言ったつもりはなかったのですが。。。
>> On Mon, 19 Jun 1995 08:28:00 +0900, 青木 義彦 <PBC03033@niftyserve.or.jp> said:
<中略>
> それと、LowLibへ終了のメッセージを送信する場合に待ちになる可能性は
> あるのでしょうか?(LowLibのメッセージバッファサイズや個数(プロセ
> スに1つ or サブプロセスに1つ or システムで1つ)がどうなるのかによって
> 決まる?)
<中略>
このメイルにある「LOWLIB へ終了のメッセージを送信する」というのは、シ
ステムコールではなくデバイスドライバからのメッセージだと思ったのですが、
違ったのでしょうか?
> ところで、メッセージキューはBTRONのメッセージキューですよね?
これについては藤井%Joy さんもおっしゃっているように、ITRON のメッセー
ジのことを言っているつもりです。
----------
内藤隆一 (ggc00661@niftyserve.or.jp/night@bfree.rim.or.jp)