次の文章についてご意見をお寄せください。
rtパッチがない標準のLinuxカーネルでは、割り込みが進行中のシステムコールを中断することはできません。ハードドライブからデータをインポートするときにマシンが動作を停止しない理由は、その操作に使用するシステムコールがブロックされるためです。ブロックとは、ハードドライブに要求した後にプロセス状態をブロックされた状態に変更し、自発的にプロセッサ時間を放棄することを意味します。非リアルタイムカーネルで進行中のシステムコールを中断することはできません。
これはトピックの私の理解ですが、それが正しいかどうかはわかりません。
ベストアンサー1
以下を使用してシステムコールを中止できます。シグナルSIGINT
、(CTRL+によって生成されたC)SIGHUP
などのPIDを介してのみシステムコールと対話してシステムコールを中断できますが、Unixシグナルやコマンドを使用するときはそうではありませんkill
。
rt_patchとシステムコール
@Alanは次の質問をしました。
メインラインLinuxカーネルでrt_patchを受け入れることに直接関連するシステムコールを中断する可能性はありますか?
私の答え:
そう思います。この質問を調べている間、私はあなたがこれを行うことができる/できないという決定的な証拠を見つけることができず、これは私があなたができると信じていました。
私がそう思う別のデータポイントは潜在的にシグナルプロセスと対話するには、Unixに組み込まれたメカニズムが必要です。これらのパッチが適用されたシステムを使用せずにどのように実行できるかはわかりません。シグナル。
ところで、信号はプロセスレベルで動作します。私が知る限り、システムコールに割り込みを直接挿入するメソッド/APIはありません。