2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Linuxについて [プロセス管理] 

Posted at

プロセスとは

実行中のプログラム、つまりアプリケーションを管理する単位
コマンドインタープリターであるシェル自身もプロセスである

  • fork
    シェルは子プロセスとして自分の分身を作ること

  • exec
    シェルは子プロセスにコマンド実行を任せる

プロセスの基本的な状態遷移

1.ユーザがシェルからコマンド実行
2.fork
3.exec
4.子プロセスの終了待ち
5.子プロセスはコマンドの実行を終える
6.実行を終えると親プロセスに終了を伝え消滅
7.親プロセスは子プロセスの終了を受け取りシェルプロンプトを表示
8.ユーザの次のコマンドに備える

スケジューリング

LinuxはマルチユーザマルチタスクのOSである
つまり1つのCPUで複数のユーザが同時にログインでき、プロセスを同時に実行できる

各プロセスはLinuxのスケジューラによって管理されている

ラウンドロビン方式

1.各プロセスはRun Queueという待ち行列で待機しCPUを使える順番を待つ
2.自分の番で処理を一定時間(タイムスライス)進められる
3.一定時間を過ぎるとキューで次のCPUの番になる

このスケジューリングをラウンドロビン方式という

プロセスによっては優先度が高いものがあり、そのパラメータとしてNice値がある
-20(最も優先度が高い)〜19(最も優先度が低い)まで

フォアグランドジョブとバックグラウンドジョブ

  • ジョブ

   シェルが管理するプログラムの単位

シェルからコマンドを実行するときに、ジョブをフォアグラウンドバックグラウンドに切り替える
機能がある
処理のかかるジョブの終了を待つのではなく、別の作業ができるようにジョブをバックグラウンドで実行
すれば同じ端末から別のコマンドを実行できるようになる

プロセスID

Linuxのプロセスには一意のIDであるプロセスID(PID)が付与される
また、自分のPIDは$$で取得可能

$ echo $$
00000

ps [オプション]

実行中のプロセスのスナップショットを表示

オプション 意味
-A すべてのプロセスを選択。-eと等しい
e コマンドの後に環境を表示する
l,-l 長いフォーマット。-のあるなしで表示は異なる
w,-w 出力幅を広げる。このオプションを2つ指定すると幅の制限がなくなる

シグナル

シグナルをを使いプロセスを制御する

シグナル番号 シグナル名 意味
1 HUP ハングアップ
2 INT 割り込み
3 QUIT 強制停止。コアダンプ生成
9 KILL 強制終了
15 TERM 終了。killコマンドのデフォルトシグナル

シグナルの送信方法

  • シェルに割り当てられたキーの入力
  • kill コマンド
  • プログラムでkill()関数を呼ぶ

プロセス間通信

Linux上で処理を完了するのに1つにプロセスで完了したり、複数のプロセスが同期したり動作を変更して達成することがある
これをプロセス間通信という

パイプ、シグナルはプロセス間通信の手法である

プロセス間通信の手法

名前 特徴
パイプ 1つのプロセスの標準入出力をつなぎかえる
シグナル 特定のシグナルの受信を持って特定の処理を開始
共有メモリ 特定のメモリ領域を複数のプロセスで共有することでメッセージの受け渡しが可能
セマフォ 資源のロックを行い、複数のプロセス間で同時に書き込みをしないよう排他処理を実現
メッセージキュー キューにメッセージを格納し複数のプロセス間での非同期の通信を実現
ソケット ネットワーク経由のホスト感のプロセスでの通信を実現

参考書籍

『Linux標準教科書 v3.0.2』 LPI-Japan 2019年

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?