タスクレットは割り込みコンテキストで実行する必要があるため、タスクレットの処理中に割り込みは無効になりますか?無効。または、タスクレットは、割り込みが1つのプロセッサで生成され、対応するタスクレットが別のプロセッサでスケジュールされ、タスクレットの実行中に別のプロセッサで割り込みが無効になるマルチプロセッサシステムでのみ役立つようです。どうか明らかにしてください。
質問する
360 次
1 に答える
0
Linux は、割り込み処理を 2 つの部分に分割します。
- まず、できるだけ単純な方法で割り込み要求 (IRQ) を処理し、できる限り少ない処理を行い、softirq/タスクレットをスケジュールして処理のより重い部分を実行します。
- 次に、softirq/タスクレットがスケジュールされ、重い処理が開始されます。
Linux のコンテキストは次のとおりです。
- NMI コンテキスト
- hardirq context : 上記の割り込み処理の最初の部分。
softirq context : 上記の割り込み処理の 2 番目の部分。
割り込みコンテキスト: 上記のいずれか。
プロセス/ユーザー コンテキスト: プロセスに代わって実行されています。例: syscall が原因です。割り込みコンテキストの反対。
アトミック コンテキスト: 割り込みコンテキスト、またはアトミックである必要があるコード セクションのプロセス コンテキスト (割り込み不可)。例: スピンロックを取得したため。
タスクレットの実行中、割り込みは無効になりません。同じタスクレットのさらなる呼び出しは次のとおりです。
于 2012-09-15T14:16:48.763 に答える