❤恋するコンピュータサイエンス❤

コンピュータサイエンス、3DCGをもっと楽しく、もっと本質的に!c言語、c++の記事中心です

システムコールとは何か説明せよ

Q.
システムコールとは何か説明せよ。

またシステムコールの代表的な関数名を挙げよ

A.

システムコールユーザーが実行したい操作をユーザーの代わりに実行するように、OSのカーネルに対して要求する手段です。

下図はOSを簡略化した図だが、のUser mode から、Kernel Mode にする依頼をシステムコールという。


上図のように何故、User modeを介してKarnel にアクセスするかと言えば、

1、Karnel(カーネル)を直接操作しないことによってOSのカーネルを直接操作するのは困難という事と、Karnelのプログラムを書き換えない為という事ができる。

代表的なシステムコールの関数には下記の関数がある。

  1.  fork() : 新たなプロセスを生成
  2. execve() : 子プロセスにコマンドラインで指定したコマンドを実行させる
  3. wait() : 親プロセスは子プロセスの終了を待つ
  4. write
  5. read 

上記の関数を使う際にシステムコールが発生する。
例えばwrite 関数の第2引数で標準出力(standart output)する。
これはポインタで渡されまた'' "に囲われた文字はアスキーコード表の対応番号に割り振られ、文字列として出力されるとうことだ。