5.1 プロセス

中央処理装置(Central Processing Unit)演算機能と制御機能を持ち,メモリに貯えられたプログラムを実行します

例えば,ls コマンドを実行すると、ディスクから
「指定したディレクトリの中にあるファイルの一覧を表示せよ」
というプログラムが主記憶に読み込まれ、CPU がそこに書かれた手順を実行します。 CPU がプログラムを実行している状態を、プロセス (process)と呼びます。

ここで,実際に現在どういったプロセスがあるのかをみてみましょう.

端末ウィンドウで ps と入力すると以下のようになります.

% ps
   PID TT       S  TIME COMMAND
  2842 pts/1    S  0:00 tcsh
  2844 pts/2    R  0:00 -tcsh

ここで左上に PID というものが出ています.これはプロセスごとに割り当てられている番号です.この番号をプロセスID(process id)といいます.

プロセスの強制終了

ls コマンドのプロセスは,ファイル名を表示するとすぐに終了します.emacs や netscape は,終了のキーやメニューが用意されています.しかし,時にはプログラムにミスがあって,実行が止まらなくなったり,何をしても反応がなくなったりします.そのような時には,そのプロセスを強制終了させなければなりません.

まず,ps コマンドで終了したいプロセスの pid を調べます.
その後,次のように入力します.

% kill -9 (終了したいプロセスの pid)

そうするとプロセスが終了します.

ここで kill のオプションとしてついている -9 というのは,SIGKILL という種類のシグナルを送ることを指示しています.シグナルには他にもたくさんの種類があり,強制終了以外にもいろいろな用途に使われます.

● 練習問題

  1. xclock & を実行し,ps コマンドの表示を確認しなさい.
  2. kill コマンドで上の xclock を終了させなさい.