Linux

タスク管理(プロセス管理)

プログラミングをするエディタの機動の時やプログラムを実行する時、それぞれの操作を細かい仕事単位であるタスク(プロセス)に分解して処理しています。OSは、コンピュータのあちこちで無駄な時間ができないように、タスク単位で細かくCPUや主記憶を割り当て、コンピュータ全体として効率的な処理が行われるように制御しています。

ジョブ

ジョブとは

人間から見た仕事の単位(単一のプログラムや連続的な一連のプログラム群)

ジョブのコマンド

jobs

ジョブの一覧を表示する

※オプション

-l        プロセス番号も表示する

ジョブの状態
+ 直前に実行あるいは停止状態になったジョブ(カレントジョブ)
カレントジョブの1つ前のカレントジョブ
無印 それより前に実行したジョブ

bg

停止中のジョブをバックグランドモードで再開する

※ジョブIDを指定しなければ、カレントジョブが再開される。

fg

停止中のジョブやバックグランドで実行中のジョブを、フォアグランドで実行する。

※ジョブIDを指定しなければ、カレントジョブが再開される。

 プロセス(タスク)

プロセスとは(システムによってはタスクとも言う)

ジョブをコンピュータが処理できる単位に分解したもの。(OSの下で実行される内部処理)

※ゾンビプロセスとは、役目を終えているのにメモリを解放しない状態のプロセスのこと。

プロセスのコマンド

ps

プロセスの状態を表示する

サーバーアプリケーションはバックグランドで実行されるため、動作しているか確認するためには、psコマンドを使う。またpsコマンドから、各プロセスがどの程度CPUやメモリを消費しているかもわかる。

※オプション

a 全ユーザーのプロセスを表示する
x 制御端末のないプロセスの情報も出力する
u プロセスの詳細情報(プロセスの所有者やCPUの使用率)を出力する
w 出力幅を広げる
f プロセスの親子関係をツリー状にして表示する
-e 全てのプロセスを表示する
-f 多くの情報を表示する
-F より多くの情報を表示する

 kill PID

PIDで指定される現在動作しているプロセスを終了させる。

※オプション

-TERM 終了命令を送る(デフォルト)
-KILL 強制終了命令を送る
-INT 中断命令を送る Ctrl-cと同じ
-STOP 停止命令を送る Ctrl-zと同じ
-HUP 元の意味は端末の切断だが、設定ファイルの読み直し命令として使われることが多い
-CONT 停止したプロセスに対する再開命令を送る

 killall

プロセスIDではなく、プロセスの名前を指定してシグナルを送る。オプションはkillコマンドと同じ

 nice [number] command

Commandの実行の優先度を調整する

 top

定期的に実行中のプロセスを監視して、リソース(CPU)の使用率順にプロセスを並べて表示する

ジョブの状態の推移

f:id:tomo-study:20190731023638j:plain