複数のユーザー モード スレッドを作成した実行中のプロセスがあります。カーネルがプロセスの状態をTASK_UNINTERRUPTIBLE
(またはTASK_INTERRUPTIBLE
) に変更した場合、プロセスによって作成されたスレッドは自動的に中断されますか?
これは宿題の質問ではありません。セマフォの実装方法を説明しているオペレーティング システムの本を読んでいます。それらの実装では、セマフォ構造体は、現在セマフォを待機しているプロセスのリンクされたリストを維持します。私がこれまでに学んだことから、そのようなセマフォはスレッドではなくプロセスを同期するためにのみ使用できました。正しい?リンク リスト内のスレッドはTASK_INTERRUPTIBLE
、セマフォが使用可能になるまで状態に置かれます。セマフォが使用可能になった時点で、1 つのプロセスがその状態を に設定することによって起動されますTASK_RUNNING
。