問題
スレッドとは,プロセス内部に含まれている論理的な並列処理の単位である。スレッドごとに用意されるものはどれか。
- アドレス空間
- 開いているファイル識別子
- プロセス間の通信ポート
- レジスタ群の退避域
答え
レジスタ群の退避域
解説
スレッド
スレッド(thread)とは、CPU利用の単位。プロセスに比べて、プログラムを実行するときのコンテキスト情報が最小で済むので切り替えが速くなる。スレッドは、thread of execution(実行の脈絡)という言葉を省略したものである。
出典: フリー百科事典『ウィキペディア(Wikipedia)』
プログラミングの観点からみると、アプリケーションの処理の「実行の脈絡」は1つでないことが多い。これをシングルスレッドで実現しようとするとシグナルやタイマーを駆使してコーディングすることになる。また、複数のプロセスに分割してプロセス間通信で協調動作させるという方法もある。しかし、いずれの場合もそれらの機能を使うための余分な、本来のアルゴリズムと関係ないコーディングが必要となる。スレッドを使用したプログラミングは本来のアルゴリズムに集中しやすくなり、プログラムの構造が改善されるという効果がある。
一つのプロセスの中では、複数のスレッドが起動ているので、そのプロセスの中でそれぞれのスレッドの切り替えを行うために、「レジスタ群の退避域 」がスレッドごとに用意されます。