基本情報技術者カーネルと実行制御オリジナル・公式資料照合難易度★★☆☆☆
Linuxの単一スレッドのプロセスPがexecveを呼び、新しい実行ファイルへの置換に成功した。別途forkは呼んでいない。正しい説明はどれか。
A
PのプロセスIDは継続し、実行するプログラムとメモリイメージが新しいものに置き換わる★ 正解
既存プロセスのプログラムを置き換える処理であり、別のプロセスを新設する操作とは異なります。
B
Pと同じ状態の子プロセスが必ず増え、親Pは元のプログラムの続きを実行する
子プロセスを作るforkと混同しています。execve単独で親子2プロセスへ分岐するわけではありません。
C
元のプログラムのヒープとスタックがそのまま新プログラムの変数として保存される
スタック・ヒープ等は新プログラム用に置き換わります。元の変数を新プログラムへそのまま引き継ぐ操作ではありません。
D
execveの成功時も、元のプログラム内の呼出し直後の文から実行を続ける
成功時は新しいプログラムへ置き換わり、元の呼出し元へ戻りません。失敗時のエラー復帰と区別します。
解説
プログラムの置換とプロセスの新規作成を区別します。execveの成功時は現在のプロセスイメージを置き換え、元の呼出し元へは戻りません。プロセスIDはそのままです。
根拠資料・確認情報
対応範囲:2026年度 基本情報技術者試験 科目A・B
資料確認日:2026-10-28
同じレッスンの問題
問題 1
Linux上のアプリが、ユーザーモードからシステムコールでカーネルへファイル操作を依頼する。操作はブロックせず、処理中に別スレッドへの切替えも起こらず、同じスレッドへ戻った。この間に必ず別のプロセスが動いたといえるか。
問題 2
POSIXスレッドを使う一つのLinuxプロセスで、スレッドT1とT2が動いている。プロセス内のメモリについて正しい説明はどれか。
問題 3
一つのCPUを使うOSで、スレッドPは必要な入力データがまだ届かず、ブロッキングI/Oの待ち状態になった。別のスレッドQは実行可能である。PへのCPU割当てについて正しいのはどれか。 シグナル・タイムアウト等による待機の中断は考えない。
問題 4
常に実行可能な2スレッドを交互に動かすモデルを考える。定常状態で「アプリ処理4ms、切替え処理1ms」の周期を繰り返し、切替え中にはアプリ処理が進まない。他の待ち時間はない。全経過時間に占めるアプリ処理時間の割合はどれか。