信号と割り込みの大きな違いは、信号はCPUやCPU上で動作するソフトウェアがトリガーとなるイベントで、割り込みはCPU以外の外部コンポーネントがトリガーとなるイベントであることです。
シグナルは、CPUがトリガーとなるイベントです。
この信号をコンピュータ上で動作する様々な処理に送ります。
一方、割り込みは、タイマーなどの外部コンポーネントによって発生し、CPUにある動作を通知するイベントです。
シグナルとは
信号とは、CPUによって引き起こされるイベントのことです。
CPU上で動作するソフトウェアによって引き起こされる割り込みである場合もあります。
これはソフトウェア割り込みと呼ばれます。
また、CPUのハードウェア自体が特定のイベントをトリガーすることもあります。
さらに、シグナルはオペレーティングシステムに基づいています。
したがって、異なるオペレーティングシステムを持つ2つのシステムは、異なる信号を生成します。
さらに、信号には同期信号と非同期信号があります。
同期信号は、発生した特定の動作に反応して発生し、CPUはその動作に対応する。
一方、非同期信号では、発生した特定の動作に対する直接的な応答はありません。
インタラプトとは
割り込みとは、CPU以外の構成要素によって外部から発生する事象のことです。
何らかの外部事象をCPUに通知します。
ネットワーク機器などのIOデバイスは、データパケットの受信を知らせるために割り込みを送信することができます。
また、タイマがタイムアウトしたことをCPUに通知することもできます。
割り込みは、物理的なプラットフォームとそのプラットフォームの構成に依存します。
したがって、2つの同じプラットフォームが同じ割り込みを持つことになります。
また、割り込みは非同期で発生します。
信号と割り込みの類似点
- シグナルとインタラプトは一意のIDを持つ。
- どちらもマスクすることができます。どちらもマスクが可能で、シグナルや割り込みの通知を無効にしたり、中断させたりすることができます。
シグナルとインタラプトの違い
定義
信号とは、CPUやCPU上で動作するソフトウェアがトリガーとなるイベントです。
これに対し、割り込みとは、CPU以外の外部コンポーネントがトリガーとなり、CPUにある動作を促すイベントです。
シグナルとインタラプトの主な違いは、この定義から明らかです。
依存性
シグナルがプラットフォームに依存するのに対し、割り込みはオペレーティングシステムに依存します。
このように、シグナルと割り込みの重要な違いです。
信号の種類
シグナルとインタラプトのもう一つの違いは、シグナルが同期と非同期があるのに対して、インタラプトは非同期であることです。
マスク
また、シグナルはプロセスごとのシグナルマスクを使用し、割り込みはCPU前の割り込みマスクを使用します。
CPUとの関連性
CPUはプロセスに信号を送るのに対し、外部からの割り込みはCPUが受ける。
これもシグナルとインタラプトの違いです。
結論
信号と割り込みの違いは、信号がCPUやCPU上で動作するソフトウェアによって引き起こされるイベントであるのに対し、割り込みはCPU以外の外部コンポーネントによって引き起こされるイベントであることです。