システムコール

システムコールとは、ユーザーモードのプログラムがカーネルの機能を呼び出すための仕組みのことです。

システムコールを実行する方法はCPUによって異なり、例えば、ソフトウェア割り込み命令を用いたものや専用の命令があります。

ソフトウェア割り込み命令によるシステムコール

ソフトウェア割り込み命令を利用したシステムコールは、以下の流れで実行できます。

1. 特定のプロセッサレジスタ(以降、レジスタ)にシステムコールの機能番号を書き込む。

2. 機能番号ごとに設定された特定のレジスタにパラメータとなる値を書き込む。

3. 80h(16進数)を指定して、ソフトウェア割り込み命令を実行する。(80hの部分は、OSによって値が異なる)

4. 手順1の機能番号に対応したシステムコールが実行される。

5. システムコールの機能によっては、特定のレジスタに結果が返される。

専用の命令によるシステムコール

ソフトウェア割り込み命令によるシステムコールよりも命令の実行速度を上げるために、CPUによっては、システムコール専用の命令が用意されている場合があります。