基本情報技術者カーネルと実行制御オリジナル・公式資料照合難易度★★☆☆☆

POSIXスレッドを使う一つのLinuxプロセスで、スレッドT1とT2が動いている。プロセス内のメモリについて正しい説明はどれか。

A
通常のグローバル変数もスレッドローカル変数として扱われ、T1とT2へ別々に複製される

通常のグローバル変数は共有です。スレッドローカルな記憶域を明示してスレッド別の値を持たせる場合とは区別します。

B
ファイル記述子表はT1とT2で別々に管理され、開いたファイルを他方は同じ番号で参照できない

開いているファイル記述子は同一プロセスのスレッドで共有されます。別プロセスの独立した表という考え方と混同しています。

C
グローバル変数やヒープは共有し、各スレッドはそれぞれのスタックを持つ★ 正解

グローバル・ヒープの共有と、スレッドごとのスタックの区別を正しく説明しています。共有変数への更新には同期が必要になり得ます。

D
各スタックは別なので、そのアドレスを渡しても他のスレッドは絶対にアクセスできない

同じアドレス空間なので、ポインターを通じて他スレッドのスタック上の有効な領域へアクセスし得ます。寿命や競合にも注意が必要です。

解説

同じプロセスのスレッドはアドレス空間を共有します。一方、実行のためのスタック等はスレッドごとにあります。別スタックであることは、別プロセスのようなメモリ保護境界を意味しません。

根拠資料・確認情報

対応範囲:2026年度 基本情報技術者試験 科目A・B

資料確認日:2026-10-28

同じレッスンの問題

アプリで毎日学習しよう

ゲーミフィケーションで 基本情報技術者 合格を目指す。無料・課金なし。

更新: 2026/10/28