SkillStack
テクノロジ系23 / 25問

ITストラテジスト試験 令和7年度 春期 午前II 問23

プログラムの排他制御の不備によって、プロセスやスレッドが共有リソースに同時アクセスした場合に想定外の動作をするという問題はどれか。

選択肢を押すと答え合わせができます。

正解と解説を見る

【正解】エ

レースコンディションとは、複数のプロセスやスレッドが共有データへほぼ同時にアクセスし、実行の順序やタイミングによって結果が変わる問題です。例えば、共有変数が100のとき、スレッドAとBがともに100を読み取り、それぞれ10を加えて110を書き戻すと、本来120になるべき値が110になります。読み取りから書き込みまでを一まとまりとして排他的に処理できていないためです。このように、排他制御の不備で想定外の結果が生じる問題なので、エが正解です。対策には、ミューテックスやロック、セマフォなどを用いて、共有リソースを操作するクリティカルセクションへの同時進入を防ぐ方法があります。

アのクロスサイトリクエストフォージェリは誤りです。これは、ログイン中の利用者をだまして、Webサイトへ本人の意図しない送金や設定変更などのリクエストを送らせる攻撃です。 イのディレクトリトラバーサルは誤りです。これは、パスに「../」などを混入させ、公開を想定していない上位ディレクトリのファイルへ不正にアクセスする攻撃です。 ウのバッファオーバーフローは誤りです。これは、確保した記憶領域の容量を超えてデータを書き込み、隣接領域の破壊や不正コード実行を引き起こす問題です。

【ポイント】 レースコンディションは、毎回発生するとは限らず、処理のタイミングに依存するため再現が難しい点が特徴です。 共有データの更新は、読み取り、計算、書き込みの全体を不可分に扱うことが重要です。

出典:令和7年度 春期 ITストラテジスト試験 午前II 問23
※ 解説は SkillStack 編集部が作成したものです。Web 表示のため、図表の配置や表記を一部改めています。

この回の25問を、アプリで通しで解く

  • 本番と同じ問題数・制限時間で通し演習(模試モード)
  • 間違えた問題は自動で「復習すべき問題」に回る
  • 解説で分からない点はAIに質問できる
SkillStackで無料で始める