テーマ:スレッドとプロセスに関する記述
正解はこちら
解答:エ
[基礎知識・用語のまとめ]
プロセス・・・プログラム単位の実行環境を指します。
スレッド・・・連続して実行される一本の命令の並び、処理の流れのことです。並行して処理を行う状況をマルチスレッドと呼び、処理を行わない場合は一つのシングルスレッドといいます。
[解法]
スレッドは、プロセスの中で並列動作する実行単位であり、基本的に一つのプロセスにおいて複数のスレッドが実行されます。アドレス空間(メモリ空間)はプロセスごとに割り当てられ、プロセス内のスレッドは、アドレス空間を共有します。
ここで、スレッド間通信はアドレス空間の切り替えなしで行われるのに対して、プロセス間通信はアドレス空間の切り替えが必要になります。そのため、プロセス間の切り替えを行う際には、そのコスト(オーバーヘッド)を加味したうえで切り替えを実行しています。
したがって正解は「エ」となります。
その他の選択肢について、以下のとおりです。
ア→コンテキストとは、プロセスあるいはスレッドの実行状態値のことを指します。同一アドレス空間内のスレッドとプロセスの間でコンテキストの切り替えはありませんが、違うアドレス空間のスレッドとは、アドレス空間の切り替えが必要であり、コンテキストの切り替えは高速には行われません。
イ→スレッドはプロセスと同一のアドレス空間で実行されます。
ウ→スタックやコンテキストはプロセスと共通ではありません。
[参考]
Windowsでは、プロセスはスレッドよりも上位の位置づけとなるが、Linuxでは、プロセスとスレッドの構造が同等の扱いになるという違いがある、、、らしい。
利用させていただきました素材へのリンク
うさちゃこちゃんねる様 https://www.youtube.com/channel/UCQcDdg4W6r5OfcB1JTcpABw
コメント