お世話になりましたが、割り込みが無効になっていると、すべてのプロセス/スレッドスケジューリングが無効になるのは本当ですか?私が知っているのは、クロック割り込みや他の割り込みを含む割り込みです。 CPUスケジューリング(例えば、ラウンドロビン)はクロック割込みに基づく。これが無効になっていると、スケジューリングも無効になり、現在のスレッドはCPUを有効にするまで実行を継続します。私が間違っているなら、私を修正してください。割り込みを無効にするとCPUスケジューリングが自動的に無効になりますか?
RR(リアルタイムシステムを考慮)の代わりに純優先順位ベースのスケジューリングで、優先順位の低いスレッドが割り込みを無効にした場合、優先順位の高いスレッドが到着します。
これは私にオペレーティングシステムの保護について考えるようになります。何人かのユーザーが割り込みを無効にするために意図的にウイルスを書き込むとどうなりますか?おそらく、彼はユーザーモードでそれをすることはできません。カーネルモードで動作するプログラムを書いてその悪いことをしたらどうでしょうか?彼はこれをすることができますか?
私はすべてのプラットフォームで一般的なルールを期待していません。だから、あなたが知っているプラットフォームで状況が何であるか教えてください。ありがとう。
一般に、カーネルモードの悪いものに制限はありません。カーネルモードのものであれば、コントロールレジスタをゴミ箱にすることができます(例:ページテーブルのベースアドレスをガベージ値に変更する)。そのため、ドライバを追加するには管理者になる必要があります。ある場合は、どのオペレーティングシステムとアーキテクチャがあるかを明記する必要があります。 – doug65536
組み込みシステムで一般的に使用されるプロセッサには、ウォッチドッグタイマが含まれます。 x86はNMIに接続されたウォッチドッグタイマーも使用できます。しかし、悪意のあるプログラムはウォッチドッグタイマを無効にし、割り込みを無効にすることができます。 – doug65536