第1種情報処理技術者試験 1998年度 = 平成10年度 午前 問25

 並行処理の単位として、プロセスのほかに、プロセス内に複数存在するスレッドを用いることがある。一つのプロセス内のスレッドが共有するものはどれか。

ア アドレス空間 イ スタック
ウ プログラムカウンタの値 エ レジスタセットの値

解答



解説

 プロセス(process)は、本来UNIXのシステムに関する用語で、実行中のプログラムのアドレス空間など、実行環境を含むものです。アドレス空間を分割して実行できるため、並行処理であるパイプ処理やバックグラウンド処理にも適しています。しかし、各プロセスが別個のアドレス空間を利用するために多くの資源が必要である、生成や切替えに時間がかかるなどの欠点があります。そのため重量プロセス(ヘビーウェイトプロセス)とも呼ばれます。
 上記のようなプロセスの問題を解決するのが、軽量プロセス(ライトウェイトプロセス)とも呼ばれるスレッド(thread)です。スレッドは、プロセスを細分化した基本的な処理単位です。高速で生成できる、スワップの負荷が小さいなどの特徴がある。CPU資源のみが割り当てられて、スタック、プログラムカウンタ、レジスタセットを保持しますが、その他の資源は親のプロセスから継承します。同一のプロセスから発生するスレッドは、同じアドレス空間を継承し共有しなければなりません。分散処理や、マルチCPUでの並行処理などで利用されます。


BohYoh.comトップページへ