9. プロセス状態

例えば ps aux コマンドで実行中のプロセスを調べると、STAT 列があることに気づくでしょう。この列のコードを理解することは、プロセス管理を習得するための鍵となります。各コードは特定のlinux process state(Linux プロセス状態)を表します。

ps aux

A process state in Linux(Linux におけるプロセス状態)は、プロセスが現在何をしているかのスナップショットを提供します。CPU をアクティブに使用しているのか、入力を待っているのか、それとも終了したのか?最も一般的に遭遇する状態を見ていきましょう。

一般的なプロセス状態コードの解読

STAT 列は現在のlinux process state(Linux プロセス状態)を示します。多くの可能な状態がありますが、最も頻繁に見かけるのは以下のものです。これらのlinux process states explained(Linux プロセス状態の説明)があれば、システムの動作を診断するのに役立ちます。

  • R (Running or Runnable): この状態のプロセスは、CPU コアでアクティブに実行されているか、CPU コアが利用可能になり次第実行される準備ができた実行キュー内にいます。

  • S (Interruptible Sleep): これは最も一般的なprocess states in Linux(Linux におけるプロセス状態)の 1 つです。プロセスは、端末からのユーザー入力やネットワークパケットの到着など、イベントが完了するのを待っています。シグナルによってウェイクアップできるため、「割り込み可能」です。

  • D (Uninterruptible Sleep): このプロセスもスリープ状態ですが、シグナルによって中断できない状態にあります。これは通常、プロセスの中断が状態の破損につながる可能性がある I/O 操作中に短時間使用されます。プロセスがこの状態に長時間留まる場合、ハードウェアまたはドライバに問題がある可能性があります。

  • Z (Zombie): ゾンビプロセスは実行を終了しましたが、プロセス表にエントリが残っています。親プロセスが終了ステータスを読み取るのを待っています。少数のゾンビは正常ですが、多数存在する場合は親アプリケーションのバグを示している可能性があります。

  • T (Stopped): この状態は、ジョブ制御シグナル(Ctrl+Zを押すなど)によってプロセスが一時停止された場合、またはデバッガによってトレースされている場合にプロセスが移行します。SIGCONTシグナルで再開できます。

これらの基本的なlinux process states(Linux プロセス状態)を理解することで、システムアクティビティに対するより深い洞察を得て、実行中のアプリケーションをより効果的に管理できるようになります。

ログインして学習進捗を保存

サインイン

演習

知識を実践的な演習で適用しましょう。次のラボは、Linux プロセス管理と状態の理解を深めるのに役立ちます。

  1. Linux プロセスの管理と監視 - このラボでは、Linux システムでプロセスを管理および監視するための不可欠なスキルを学びます。フォアグラウンドおよびバックグラウンドプロセスの操作方法、psを使用した検査、topを使用したリソースの監視、reniceを使用した優先度の調整、killを使用した終了方法を探ります。

このラボは、プロセス状態の概念を実際のシナリオに適用し、Linux プロセス管理への自信を構築するのに役立ちます。

クイズ

割り込み不可能なスリープを表すために使用される STAT コードは何ですか?(状態コードとして、大文字の英字 1 文字のみを提供してください。)