3. プロセススレッド

プロセススレッドとは?

シングルスレッドやマルチスレッドという言葉を聞いたことがあるかもしれません。スレッドはプロセス内の実行単位であり、「軽量プロセス」とも呼ばれます。プロセスはそれぞれ独立したシステムリソースで動作しますが、同じプロセス内のスレッドはメモリなどのリソースを共有できます。この共有リソースモデルにより、スレッド間の通信は別々のプロセス間の通信よりもはるかに高速かつ効率的になります。

シングルスレッド vs. マルチスレッド

すべてのプロセスには少なくとも 1 つのスレッドがあります。スレッドが 1 つだけのプロセスをシングルスレッドプロセスと呼び、2 つ以上のスレッドを持つプロセスをマルチスレッドプロセスと呼びます。

例えば、最新のテキストエディタを使用する場合、それは単一のプロセスとして実行されるかもしれません。しかし、そのプロセス内では、1 つのスレッドがキーボード入力を管理し、別のスレッドがバックグラウンドでスペルチェックや自動保存を実行している可能性があります。この並行実行により、アプリケーションはより応答性が高いと感じられます。関連するタスクに対して複数のプロセスを起動するよりも、複数のスレッドを使用する方が効率的であることがよくあります。

ps コマンドでスレッドを表示する方法

実行中のプロセスとそのスレッドを調べるには、psコマンドを使用できます。psには多くのオプションがありますが、スレッドを表示する一般的な方法はmフラグを使用することです。

pete@icebox:~$ ps m
  PID TTY      STAT   TIME COMMAND
 2207 pts/2    -      0:01 bash
    - -        Ss     0:01 -
 5252 pts/2    -      0:00 ps m
    - -        R+     0:00 -

出力の解釈

上記の出力では、PID(プロセス ID)を持つ行がメインプロセスを表します。その直下にあり、PIDの代わりにダッシュ(-)が表示されている行は、そのプロセスに属するスレッドを表します。この例では、bashプロセスもps mプロセスも、リストされているメインスレッドが 1 つしかないため、シングルスレッドです。

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

サインイン

演習

練習あるのみです!Linux プロセスとその管理に関する理解を深めるための実践的なラボを以下に示します。

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

このラボは、プロセス管理の概念を実際のシナリオに適用し、システムアクティビティの監視に対する自信を構築するのに役立ちます。

クイズ

真か偽か、すべてのプロセスはシングルスレッドとして開始される。