Linux標準教科書 11章復習

プロセス管理

  • プロセスとは
    • Linuxで実行中のプログラムを管理する単位をプロセスと呼ぶ
    • コマンドインタープリターであるシェル自身もプロセス
  • スケジューリング

    • Linuxは複数のプロセスを同時に実行できるが、厳密にはプロセスは1つしか実行されおらず、Linuxのスケジューラによって管理されている
    • プロセスはRun Queueと呼ばれる待ち行列で待機し、一定時間だけ実行する(ラウンドロビン方式)
    • プロセスの優先度はNice直によって変わる(-20が高く、19が低い)
  • フォアグランドジョブとバックグラウンドジョブ

    • ジョブはシェルが管理するプログラムの単位
    • バックグラウンドで実行することで別のコマンドが利用できる
    • バックグラウンド起動
      • コマンド名 &
    • フォアグラウンドジョブは端末からの入力を受け付けているグループのジョブ
  • プロセスID

    • Linuxのプロセスには一意のIDであるプロセスIDが付与される
  • シグナル

    • Linuxにはプロセスにシグナルというイベントを送信してプロセスを制御する機能がある
    • ユーザがプロセスにシグナルを送る方法
      • キー入力
      • killコマンド
      • kill関数を呼ぶ
    • Ctrl+C=SIGINT(シグナル番号2:int)を受け取ったプロセスは終了する
  • topコマンドとpstreeコマンド

    • topコマンドは実行中のプロセスの状態をダイナミックに表示する、CPUやメモリの使用率などでソートしたり、トップから指定したプロセスにシグナルを送信することも可能
    • pstreeコマンドはプロセスの親子関係をツリー表示する
  • プロセス間通信

    • 複数のプロセスが同期したり、動作を変更して達成することをプロセス間通信と呼ぶ
    • パイプやシグナルもプロセス間通信の手法