コンテキストスイッチ
コンテキストスイッチでは、実行中のプロセスの状態を何らかの方法で保存し、後にそのプロセスを再開する際にその状態を復元して、正常に実行を継続できるようにしなければならない。
プロセスの状態には、そのプロセスが使用し得る全てのレジスタ(特にプログラムカウンタ)や、プロセスの実行に必要となるオペレーティングシステム固有の情報が含まれる。多くの場合、これらのデータは1つのデータ構造として保存される。
プロセスを切り替えるためには、実行中のプロセスの状態を表すデータ構造を作成し、保存しなければならない。このデータは、カーネルメモリ上にあるプロセスごとに割り当てられるスタックか、あるいはオペレーティングシステムによって定義された固有のデータ構造に保存される。
割り込みが発生した時には、現在のプロセスの実行を停止して割り込みハンドラを実行する必要があるため、コンテキストスイッチが発生する。
リアルタイムオペレーティングシステムの場合、プリエンプティブなタスクが実行中に割り込みが発生した時は、割り込み処理が終了しても停止させたタスクに実行権が戻るとは限らない。 割り込み処理終了時に停止させたタスクよりプライオリティの高いタスクが実行可能となっている場合はディスパッチが行われプライオリティの高いタスクを優先して処理するのが一般的である。