2012-02-29 1 views

答えて

2

'または、マルチスレッドと割り込みの関係は何ですか?'

ほとんどの最新のプリエンプティブOSでは、割り込みはOSの入力方法です。割り込みがない限り、OSは何もしません。割り込みには、デバイス/ドライバからのハードウェア割り込み(ディスク、キーボード、NIC、マウス、USB、メモリ管理ハードウェア、タイマハードウェア)とソフトウェア割り込みの2種類があります。システムコール。どちらのタイプの割り込みでも、実行可能/実行中のスレッドのセットを変更できます。基本的に、OSは大きな割り込みハンドラであり、割り込みの復帰後に実行されるスレッドのセットを変更することができます。

ハードウェア割り込みの再スケジュールにより、ハードウェア(および/またはその関連ドライバ)に注意が必要な場合に迅速に対応できるプリエンプティブなマルチスレッドOSが可能になります。

スレッドレベルからハードウェアシグナリングへのこの高性能応答は、プリエンプティブマルチタスクが協調システムよりも優れている単一の最大の利点であり、スレッド間シグナリングや同期などの複雑さを補う主な理由です。

ディスクやネットワーク、USB、ディスプレイのパフォーマンスは、デスクトップシステムのほとんどすべてが非常に悪いので、ビデオストリーミングなどのアプリケーションはうまくいかないでしょう。 NICチップにはビデオバッファがあり、ハードウェア割り込みを発生させ、ドライバを実行させ、データでユーザーバッファをロードし、ビデオストリーミングアプリケーション内のスレッドを作成することができます。 O、データを表示できるように準備完了/実行中です。

3

時間およびイベント駆動型のスレッドスケジューリングの最も一般的な実装は、割り込みに基づいています。たとえば、ハードウェアタイマーは定期的な割り込みを生成します。それらを処理するISRは、現在実行中のスレッドの状態をスレッドの状態構造体に保存し、別の構造体から別のスレッドの状態をロードし、最後のISR命令(ある種の "return-from-interrupt"/IRET)は、CPUに他のスレッドを実行させます。

+0

+1は「タイムスライス」は言及していませんが、タイマー割り込み以外のいくつかの例を選んだ方が良いでしょう。 –

+0

@MartinJames:タイマ割り込みの何が問題になっていますか?確かに唯一の割り込みソースではありませんが、何が問題なのですか?多くのOSがこれをこの目的のために使用しています。 –

+0

タイマー割込みには何も問題はありませんが、ウェブ上の「スレッド作業の仕組み」のテキストは、実行中のスレッドセットを変更する唯一のものであることを暗示しています。そのセットに!)。一般に、そのようなテキストが最初の2つの段落で「タイムスライス」や「クォンタム」と書かれていると、実際には間違っていても悲しいことです。 –

1

マルチタスキングでタイムスライシングが役立つのとまったく同じです。他のスレッドを実行するためにスレッドを中断することができれば、スレッドを心配する必要はなく、他のスレッドが進行を妨げることはありません。

isr    ________ 
threadn _________  _________ 

thread1 ______   _____ 
thread2  _____   _____ 
thread3   _____   _____ 

スレッドをマルチスレッド

0

は、CPU時間を共有

中断は常にCPU時間を取って、割り込みハンドラ/割り込みサービスルーチンと力にコンテキストスイッチを引き起こす中断します。

関連する問題