基本情報技術者試験 練習問題 2:プロセスとスレッドの違いと特性
プロセスとスレッドについて述べた文として、最も適切なものはどれか。
- プロセスはOSに管理される実行単位であり、独立したメモリ空間を持つ。スレッドはプロセス内の実行単位で、メモリ空間を共有する。
- スレッドはプロセスより高速に実行されるため、すべてのアプリケーションは複数スレッドで構築されるべきである。
- マルチプロセッシングはマルチスレッドより必ず高速であり、実務ではマルチスレッドは使用されない。
- 1つのプロセスは複数のスレッドを持つことができないため、並列処理にはマルチプロセッシング方式のみが使用される。
- スレッドはプロセスの外側で独立して実行されるため、プロセスの強制終了の影響を受けない。
正解と解説を見る
正解:プロセスはOSに管理される実行単位であり、独立したメモリ空間を持つ。スレッドはプロセス内の実行単位で、メモリ空間を共有する。
プロセスとスレッドはOSの実行単位として重要な概念です。
プロセスはOSが管理する独立した実行単位で、各プロセスは独立したメモリ空間(コード領域、データ領域、ヒープ、スタック)を持ちます。異なるプロセス間ではメモリが保護され、相互に干渉しません。
スレッドはプロセス内の実行単位で、同一プロセス内の複数スレッドは同じメモリ空間を共有します。スレッド間の切り替えはプロセス間の切り替えより高速です。
正しいのは「プロセスはOSに管理される実行単位であり、独立したメモリ空間を持つ。スレッドはプロセス内の実行単位で、メモリ空間を共有する」という説明です。
マルチスレッドはコンテキストスイッチのオーバーヘッドが小さく、メモリ効率が良いため広く使用されています。ただし同じメモリ空間を共有するため、スレッド間同期やデータレース対策が必要です。