1

スレッド間でPIDの循環リストを共有するLinuxカーネル用のメモリマネージャーを書いています(学校のプロジェクト)。このプログラムは、ゾンビを見つけて、1つのプロデューサー、2つのコンシューマーモデルを使用してゾンビを殺します。(共有メモリを理解できるように強制されます)。

このリストをオブジェクトにして、ポインターの反復とセルの値のチェックを関数に処理させたいと思います。

それで、スレッドが外部関数を呼び出す場合、その関数はミューテックスを所有できますか?または、スレッド内から実行する必要がありますか?

私はこれを完全に間違っていると思っていますか?

どうもありがとう-Jared

4

1 に答える 1

3

「関数」がミューテックスを所有していると言うのは、まったく意味がありません。それを所有しているのはスレッドです。そうです、外部関数と呼ばれるスレッドがミューテックスを所有する可能性はあります。

スレッドの実装についてカーネルコードを調べると、その変数の1つが所有するミューテックスのリストであることがわかります。

于 2013-02-14T18:10:13.487 に答える