0

タスクが実行されると、実行中のキューに入れられます。スリープ状態になると、実行中のキューからデキューされます。しかし、スリープ状態のタスクのキューはありますか? ソースコードにはこれがありませんでした。

また、そのようなキューを作成したとしても、タスクがいつ強制終了され、スリープ キューから削除されるべきかをどのように知ることができるでしょうか?

誰でも私にヒントを与えることができますか?ありがとう、

4

1 に答える 1

1

Linuxでは、ブロックされた(スリープ状態の)タスクは、待機キューと呼ばれる構造でキューに入れられます。待機できるイベント(またはオブジェクト)ごとに待機キューが存在します。

したがって、単一の待機キュー(またはコアごと)はありませんが、イベントごとの待機キューがあります。カーネルコードは、タスクを明示的に待機キューに入れ、特定のイベントが到着するとタスクを削除します。たとえば、wait_event()カーネルAPIを参照してください。

于 2012-07-09T05:20:03.080 に答える