システムコール 【system call】 スーパーバイザコール / supervisor call / SVC

概要

システムコール(system call)とは、コンピュータ上で実行中のプログラムが、オペレーティングシステム(OS)のカーネルの特権的な機能を呼び出す仕組み。また、そのための命令や関数などのインターフェース仕様(API)。「サービスコール」(service call)「カーネルコール」(kernel call)と呼ぶシステムもある。

現代的なコンピュータOS設計では、システムの安定性と安全性を確保するため、一部の処理や操作はOSの中核部分であるカーネルが特権的に実行し、一般のプログラムからは直接実行することができないようになっている。

例えば、ハードウェアへの直接的なアクセスや、仮想メモリの管理、割り込み設定の変更などはCPUの特権命令を用いて処理され、スーパーバイザモードと呼ばれる特権的な動作モードで稼働しているOSカーネルしか実行できない。

アプリケーションソフトなど利用者が直接操作するプログラムの多くは一般的な動作モードであるユーザーモード実行されるため、特権命令を実行するにはシステムコールによりカーネルに処理を依頼する必要がある。この手続きは内部割り込みソフトウェア割り込み)を発生させる形で実装されることが多いため「SVC割り込み」とも呼ばれる。

カーネルは依頼に従って命令を実行するが、プログラムが特権命令を直に実行する場合と異なり、不正な操作や誤った操作でシステムが危険に曝されないよう一定の制限やチェックを行う。

(2019.7.18更新)

他の辞典による解説 (外部サイト)

この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。