Show page source of internal22-218-プロセッサ間割り込み #25392

[[PageNavi(internal22-navi)]]

{{{ comment
h2w-title:プロセッサ間割り込み
}}}
 

= プロセッサ間割り込み = #SECTION06310000000000000000

この機能はハードウェアサポートがあることを前提である。一方のCPUで発生したイベントを他のCPUに通知するために利用される。現在利用されているCPU間割り込みには以下のようなものがある。
  *  再スケジューリング要求(smp_send_reschedule関数) 
    *  指定されたCPUへ、プロセスの再スケジューリング要求を出す	(send_IPI_single関数)。
    *  割り込み受信CPU側では、smp_reschedule_interrupt関数が	呼び出される。この関数では特に何もせずに即リターンする。	しかし、その割り込み処理からの戻りでプリエンプション処理が	自動的に動作するため目的は達成される。 
  *  TLBフラッシュ要求(smp_flush_tlb関数) 
    *  他のCPUへ、TLBのフラッシュ要求を出す。	(send_IPI_allbutself関数)。あるCPU上で仮想空間の状態を	変更したとき、他のCPUでも同じ空間を参照している場合、	その状態変更を通知する必要がある。メモリ上のPTEを	変更しても、CPU内のTLBの情報は更新されない。
    *  割り込み受信CPU側では、smp_invalidate_interrupt関数が	呼び出される。この関数は自CPUのTLBのフラッシュを行う。 
  *  CPU停止要求(smp_send_stop関数) 
    *  他のCPU全てへ、CPU停止の要求を行う(send_IPI_allbutself関数)。
    *  割り込み受信CPU側では、stop_this_cpu関数が呼び出される。	そのCPUに対する割り込みを禁止し、CPUを停止させる。 
  *  CPU起動要求 
    *  IntelCPUの場合、二つ目以降のCPUの起動にプロセッサ間割り込みを	利用している。 

----

{{{ html
<A NAME="CHILD_LINKS">&#160;</A>
}}}

  *  [internal22-219-その他の関数説明#SECTION06311000000000000000 その他の関数説明]

----

''(NIS)HirokazuTakahashi [[BR]]2000年06月11日 (日) 22時29分57秒 JST''1

[[PageNavi(internal22-navi)]]