/procファイルシステムを使用して「マルチキャスト」をシミュレートするカーネルモジュールを作成する必要があります。
基本的に、次のシナリオをサポートする必要があります。
1)/procファイルへの1回の書き込みアクセスと/procファイルへの多数の読み取りアクセスを許可します。
2)モジュールには、最後に正常に書き込まれた内容のバッファーが必要です。各書き込みは、すべてのリーダーからの読み取りと一致する必要があります。
シナリオ2を考えてみましょう。ライターが何かを書き込み、2つのリーダー(AとB)があります。Aはバッファーの内容を読み取り、次にAは再度読み取ろうとしました。この場合、wait_queueに入り、次のメッセージを待つ必要があります。 、同じバッファを再度取得することはできません。
現在のバッファをすでに読み取っているすべてのpidのマップを保持する必要があります。それらが再度読み取ろうとしてバッファが変更されなかった場合は、新しいバッファができるまでブロックする必要があります。地図なしでその情報を保存できる方法があることを理解しようとしています。I / Oシステム内に冗長なフィールドがいくつかあると聞きました。これを使用して、プロセスが現在のバッファーを既に読み取っている場合にフラグを立てることができます。
誰かが私にそのフィールドを探すべき場所のヒントを教えてもらえますか?pidとバッファの「マップ」を保持せずに現在のプロセスに関する情報を保存するにはどうすればよいですか?
ありがとう!