[kernel-ml 44] Re: Device driver

青木 義彦 (PBC03033@niftyserve.or.jp)
Wed, 21 Jun 1995 00:18:00 +0900

青木です。こんにちは。

<内藤さん>
>作成中の POSIX 環境では、LOWLIB が受け渡しできるメッセージの最大サイズ
>は、1K 程度を考えています。これは read/write などの比較的大きなデータ
>を受け渡しする場合です。他のシステムコールではもっとサイズが小さくなり
>ます。

最低限、ブロック型デバイスの1ブロックをread/writeできる必要があると
思います。
また、仮想記憶の処理も考慮したら、最低でもページサイズ(4k)程度は
read/writeできる必要があるでしょう。

>そうですね。
>これは、そのプロセス(またはタスク) でもっているメッセージキューの個数
>によって決まります。
>POSIX 環境だと、高々ひとつのメッセージの分しかメッセージバッファを確保
>していません。ひとつ以上のメッセージを LOWLIB へ書き込もうとすると待ち
>状態が発生します。

・LOWLIBはタスクのコンテキストで動作する。
・LOWLIBは、デバイスマネージャのメッセージバッファに要求メッセージを書き
 込んだ直後に、デバイスマネージャからの応答メッセージの受信待ちになる
・LOWLIBは、プロセス単位(あるいはサブプロセス単位)に応答メッセージを受
 け取るためのメッセージバッファを持っている。

と考えていましたが、違うようですね。

しかし、システムコールの完了待ちにメッセージキューが関係するというのは、
理解しがたいのですが、もう少し詳しく解説してもらえませんでしょうか
ところで、メッセージキューはBTRONのメッセージキューですよね?