
出典:公益社団法人 日本技術士会「技術士第一次試験 過去問題」
Linuxオペレーティングシステムにおけるプロセスとスレッドに関する記述のうち最も適切なものを選ぶ問題。同じプロセス内の複数のスレッドは、マルチコアで同時に実行できる。
プロセスとスレッドの違い(資源の共有、スタック、切替えのオーバーヘッド、並列実行)を確認する問題。
① スレッド=プロセスの中の実行単位。同じプロセスのスレッドはメモリ(データ)を共有し、スタックはスレッドごとに持つ。切替えはプロセスより軽い。マルチコアなら並列に動く
② ①スレッドは1つのプロセスに属する、②スタックは別、③データは共有する、⑤スレッドの切替えの方が軽い
③ ④
同じプロセス内の複数のスレッドは、OSによってスケジュールされる実行単位で、複数のコア(CPU)に割り当てられて、同時に(並列に)実行できる。したがって④が最も適切である。
スレッド=プロセス内の実行単位。コード・データ・ヒープを共有し、スタックとレジスタは個別。切替えのオーバーヘッドはプロセスより小さく、マルチコアで並列実行できる。
キーワード: プロセス、スレッド、Linux、マルチコア、スタック、コンテキストスイッチ、並行処理、情報工学部門