情報処理技術者試験の高度区分向け過去問題集です。
科目A-2試験(旧午前Ⅱ試験)で出題される問題のうち、中分類『ソフトウェア』の問題をまとめています。
過去問題(令和期)
令和2年度秋期から令和7年度秋期に出題された問題です(重複除く)
オペレーティングシステム
プロセスの切替えに関する記述のうち,ディスパッチャの説明として,適切なものはどれか。
- 主記憶に保存されている選択したプロセスの情報を,CPUにロードしてプロセスを起動する。
- 次に起動すべきプロセスを,優先順位に従ってプロセス群の中から選択する。
- プロセスに与えられたタイムクウォンタムが経過したことを,OSに通知する。
- プロセスの実行を中断した後,CPUの情報を主記憶に保存して,あらかじめ定義された処理に制御を移す。
解答・解説
解答
ア [ES 令和6年度秋期 問6]
解説
ディスパッチャ(Dispatcher)は、OSのスケジューラによって次に実行されるように選ばれたプロセスを、実際にCPU上で実行させる役割を担うプログラムです。具体的には、以下の処理を行います。
- コンテキストの切り替え
実行中のプロセスの状態(レジスタの値など)を保存し、次に実行するプロセスの状態を主記憶からCPUにロードします。このプロセス状態をコンテキストと呼び、この一連の作業をコンテキストスイッチと呼びます。 - プロセスの起動
選択されたプロセスの実行を再開または開始します。
- ディスパッチャの説明として適切です。
- スケジューラ(Scheduler)の役割です。スケジューラは、実行待ちのプロセスの中から、どのプロセスを次に実行するかを決定します。
- タイマ割り込みの役割です。マルチタスクOSでは、各プロセスに与えられた実行時間(タイムクウォンタム)が経過すると、タイマ割り込みが発生し、OSに制御が戻ります。
- 割り込みハンドラの役割です。割り込みが発生した際に、現在のプロセスの状態を退避させ、割り込み処理を実行します。
可変区画方式を用いた主記憶管理において,最適適合アルゴリズムによって割り当てられる未使用領域はどれか。
- 最小の未使用領域
- 最初に見つかった十分な大きさをもつ未使用領域
- 最大の未使用領域
- 十分な大きさをもつ最小の未使用領域
解答・解説
解答
エ [ES 令和6年度秋期 問7]
解説
最適適合アルゴリズム(Best Fit)は、可変区画方式のメモリ管理において、プロセスに主記憶を割り当てる際、空いている未使用領域(ホール)の中から、要求されたサイズ以上の最小のホールを選択するアルゴリズムです。これにより、未使用領域の無駄(内部フラグメンテーション)を最小限に抑え、小さなホールを多数生み出すことを防ぎます。
- これは、要求サイズに関係なく最も小さいホールを選ぶことになり、要求サイズを満たせない場合は割り当てができません。
- これは、初回適合アルゴリズム(First Fit) と呼ばれます。探索の効率は良いですが、メモリの先頭に小さな空き領域が残りやすくなります。
- これは、最悪適合アルゴリズム(Worst Fit) と呼ばれます。最も大きな未使用領域を割り当てるため、大きなホールを小さく分割し、その後に大きなプロセスが主記憶にロードできなくなる可能性が高まります。
- 正しいです。
優先度に基づくプリエンプティブスケジューリングのリアルタイムOSを使用した組込みシステムにおいて,入力装置及び出力装置にアクセスする二つのタスクX,Yがある。XはYより優先度が低く,Xが資源待ち状態でない場合にYが資源待ち状態に遷移するとXが実行状態に遷移する。入力装置及び出力装置へのアクセスを排他制御するために,入力装置及び出力装置にそれぞれバイナリセマフォi及びoを用意しX,Yを図のように実装したとき,デッドロックが発生するのはXの処理A,B,C又はDのうち,どの処理中にプリエンプションが発生してYが実行されたときか。ここで,Yの実行はαから行うものとし,Xの処理A,B,C及びDでは入力装置及び出力装置へのアクセス及びバイナリセマフォの操作は行わないものとする。

- 処理A
- 処理B
- 処理C
- 処理D
解答・解説
解答
イ [ES 令和5年度秋期 問6]
解説
ー
- ー
- ー
- ー
- ー
プログラムの局所参照性に関する記述のうち,適切なものはどれか。
- 繰り返し使われる処理をサブルーチン化すると,サブルーチンの呼出しと復帰のために分岐命令が増えるので,必ず局所参照性は低くなる。
- 同様の処理を反復する場合,ループやサブルーチンを用いずにプログラムにコードを繰り返して記述する方が,局所参照性は高くなる。
- 分岐命令などによって,主記憶を短い時間に広範囲に参照するほど,局所参照性は高くなる。
- ループによる反復実行のように,短い時間に主記憶の近接した場所を参照するプログラムの方が,局所参照性は高くなる。
解答・解説
解答
エ [ES 令和5年度秋期 問7]
解説
局所参照性(locality of reference)とは、プログラムが実行中にメモリをアクセスする際、ある特定の時点で特定の領域や特定のデータを集中して参照する傾向があることを指します。この性質は、コンピュータシステムの性能向上において非常に重要です。
局所参照性には、主に以下の2種類があります。
- 時間的局所性(temporal locality)
一度アクセスしたデータや命令が、短い時間のうちに再びアクセスされる傾向。例えば、ループ内で使用される変数がこれにあたります。 - 空間的局所性(spatial locality)
あるアドレスがアクセスされたとき、その近傍のアドレスも近い将来にアクセスされる傾向。例えば、配列の要素を順番にアクセスする場合や、連続した命令の実行がこれにあたります。
- サブルーチン化によって、同じコードブロックが繰り返し使用されるため、時間的局所性が高まります。分岐命令の増加は局所性を低下させる要因ではありますが、サブルーチン化による局所性の向上効果がそれを上回ることが一般的です。
- ループを使用しない場合、プログラムコードのサイズが大きくなり、実行時に広範囲のメモリを参照することになります。これにより空間的局所性が低くなります。ループを使用すると、同じ命令コードを繰り返し実行するため、時間的局所性が高まり、空間的局所性も向上します。
- 局所参照性は、狭い範囲のメモリを集中して参照する傾向のことです。広範囲に参照することは、逆に局所性が低い状態を意味します。
- 適切です。ループによる反復実行は、同じ命令群(時間的局所性)と、その命令群がアクセスする近接したデータ(空間的局所性)を繰り返し参照します。このようなプログラムは局所参照性が高いと言えます。
スケジューリングアルゴリズムにおける,リソーススタベーションに関する記述として,適切なものはどれか。
- 実行中の処理を中断して,強制的に指定された処理を実行すること
- タイムスライス方式においてプロセスを切り替える一定時間のこと
- プロセスがリソースを利用している間,他のプロセスの利用を制限すること
- 優先度の低いプロセスが,必要とするリソースを獲得できないこと
解答・解説
解答
エ [ES 令和5年度秋期 問8]
解説
リソーススタベーション(Resource Starvation)は、日本語で資源の飢餓状態とも呼ばれ、マルチタスク環境において、特定のプロセスが、より高い優先度を持つ他のプロセスによって、CPU時間やメモリ、I/Oデバイスといった必要なリソースをいつまでも獲得できず、実行できない状態に陥ることを指します。
これは、優先度ベースのスケジューリングアルゴリズムにおいて発生しやすく、常に高い優先度のプロセスが実行されることで、低い優先度のプロセスが無限に待ち続ける可能性があります。この問題を防ぐための手法として、プロセスの実行時間が長くなるにつれて優先度を上げるエージング(Aging) があります。
- プリエンプション(Preemption) の説明です。OSが強制的にプロセスの実行を中断し、別のプロセスにCPUを割り当てることを指します。
- タイムクウォンタム(Time Quantum) またはタイムスライスの説明です。OSが各プロセスに割り当てるCPU実行時間の単位のことです。
- 排他制御(Mutual Exclusion) の説明です。複数のプロセスが共有リソースを同時に利用することによる競合を防ぐための仕組みです。
- 適切です。
プログラム実行時の主記憶管理に関する記述として,適切なものはどれか。
- 主記憶の空き領域を結合して一つの連続した領域にすることを,可変区画方式という。
- プログラムが使用しなくなったヒープ領域を回収して再度使用可能にすることをガーベジコレクションという。
- プログラムの実行中に主記憶内でモジュールの格納位置を移動させることを,動的リンキングという。
- プログラムの実行中に必要になった時点でモジュールをロードすることを,動的再配置という。
解答・解説
解答
イ [ES 令和4年度秋期 問8]
解説
- コンパクション(またはデフラグメンテーション)の説明です。
- 適切です。
- 動的再配置(dynamic relocation)の説明です。
- 動的ロード(Dynamic Loading)の説明です。
MPUがもつウェイト機能及びレディ機能の使い方として,適切なものはどれか。
- MPUとDMAコントローラーとのバス調停を行う。
- アクセス速度の遅いI/OデバイスとMPUを同期させる。
- 実行すべきタスクがないときに,MPUをウェイト状態とする。
- 入出力装置の処理完了をMPUに知らせる。
解答・解説
解答
イ [ES 令和4年度秋期 問10]
解説
ウェイト機能とレディ機能はペアで動作します。MPUがI/Oデバイスにアクセスする際、デバイスがまだ準備ができていないと、デバイスはMPUに待機(ウェイト)を要求します。MPUはこの信号を受け取り、処理を一時停止します。その後、デバイスの準備が完了すると、レディ信号をMPUに送信し、MPUは待機状態を解除して処理を再開します。これにより、速度差のあるMPUとI/Oデバイスを効率的に同期させることができます。
- ウェイト機能
MPU(マイクロプロセッサ)が、アクセスしようとしている周辺機器がまだ準備できていない場合に、その処理が完了するまで一時的に待機する機能です。 - レディ機能
アクセスされる側の周辺機器が、MPUに対して「準備ができた」ことを知らせる機能です。
- バス調停機能(Bus Arbitration)の役割です。複数のデバイスがバスの利用権を要求した際に、競合を解決し、利用権を割り当てるための機能です。
- 適切です。
- ストップ命令(HALT) やアイドル状態の説明です。MPUは、処理がないときに消費電力を抑えるためにアイドル状態に入ります。
- 割り込み(Interrupt)機能の役割です。I/Oデバイスが処理を完了した際、MPUに割り込み信号を送り、MPUは割り込み処理を実行します。
主記憶管理に関する記述のうち,適切なものはどれか。
- LRUアルゴリズムとは,主記憶中で最も早く主記憶にロードされたページをページアウトするアルゴリズムである。
- 仮想記憶とは,主記憶の容量以上の記憶空間を提供する機能である。
- スラッシングを防ぐためには,システムの多重度を上げることが有効である。
- デマンドページングとは,プログラムの実行時に必要な実行モジュールを動的にリンクすることである。
解答・解説
解答
イ [ES 令和4年度秋期 問11]
解説
- LRU(Least Recently Used)アルゴリズムは、ページアウトするページを決定するアルゴリズムの一つです。これは「最も長い時間、使われていないページ」をページアウトします。最も早く主記憶にロードされたページをページアウトするのは、FIFO(First-In, First-Out) アルゴリズムです。
- 適切です。
主記憶(RAM)の容量が限られている場合でも、ハードディスクなどの補助記憶装置を主記憶の一部として利用することで、物理的な主記憶の容量以上の広大な記憶空間をプログラムに提供する機能です。これにより、大容量のプログラムも実行できるようになります。 - スラッシング(Thrashing)は、プロセスが頻繁にページインとページアウトを繰り返すことで、システムの性能が著しく低下する現象です。スラッシングを防ぐには、多重度(同時に主記憶に存在するプロセスの数)を下げて、各プロセスに十分なページフレームを割り当てる必要があります。
- デマンドページング(Demand Paging)は、プログラム実行時に、必要になったページだけを主記憶にロードする手法です。これにより、プログラムの起動時間を短縮し、主記憶の使用効率を高めます。一方、プログラムの実行時に必要な実行モジュールを動的にリンクするのは動的リンキングです。
プロセスのスケジューリングに関する記述のうち,ラウンドロビン方式の説明として,適切なものはどれか。
- 各プロセスに優先度が付けられていて,後に到着してもプロセスの優先度が実行中のプロセスよりも高ければ,実行中のものを中断し,到着プロセスを実行する。
- 各プロセスに優先度が付けられていて,イベントの発生を契機に,その時点で最高優先度のプロセスを実行する。
- 各プロセスの処理時間に比例して,プロセスのタイムクウォンタムを変更する。
- 各プロセスを待ち行列に並んだ順にタイムクウォンタムずつ実行し,終了しないときは待ち行列の最後につなぐ。
解答・解説
解答
エ [ES 令和3年度秋期 問7]
解説
ラウンドロビン方式は、マルチタスクOSで広く使われるプリエンプティブなスケジューリングアルゴリズムです。各プロセスにタイムクウォンタム(タイムスライス) と呼ばれる一定の実行時間を割り当て、その時間内で処理を完了できなければ、いったん実行を中断して待ち行列の最後尾に移動させます。これを繰り返すことで、すべてのプロセスに公平にCPU時間を分配し、応答性を高めます。
- 優先度スケジューリングのプリエンプティブな説明です。高い優先度を持つプロセスが到着すると、実行中の低い優先度のプロセスを中断して、新しいプロセスを実行します。
- 優先度スケジューリングの説明ですが、これは特定のイベント(例えば、入出力の完了)が発生した時点で、最も高い優先度を持つプロセスに切り替えることを指します。
- ラウンドロビン方式の変種や、特定のアルゴリズムを指すものであり、一般的なラウンドロビン方式の説明ではありません。通常のラウンドロビン方式では、すべてのプロセスに同じタイムクウォンタムが割り当てられます。
- 適切です。
セグメンテーションページング方式の仮想記憶において,セグメントテーブルに格納される情報はどれか。
- 当該セグメントに含まれるページの仮想アドレス
- 当該セグメントに含まれるページの実アドレス
- 当該セグメントに含まれるページを管理するページテーブルの仮想アドレス
- 当該セグメントに含まれるページを管理するページテーブルの実アドレス
解答・解説
解答
エ [ES 令和3年度秋期 問8]
解説
セグメンテーションページング方式は、セグメント方式とページング方式を組み合わせたメモリ管理方式です。この方式では、仮想アドレスから物理アドレスへの変換を二段階で行います。
- セグメントテーブル
プログラムはまず、論理的に意味のある塊(セグメント)に分割されます。CPUが出力する仮想アドレスは、「セグメント番号」と「セグメント内のオフセット」で構成されます。セグメントテーブルは、このセグメント番号に対応するページテーブルの開始アドレスを格納します。このアドレスは主記憶上の物理アドレス(実アドレス) です。 - ページテーブル
各セグメントはさらに、固定サイズのページに分割されます。セグメントテーブルから得られたページテーブルの開始アドレスを用いて、ページテーブルにアクセスします。このページテーブルには、各ページの仮想ページ番号に対応する主記憶上の物理ページ番号(実アドレス) が格納されています。
この二段階の変換により、最終的にプログラムがアクセスする物理アドレスが特定されます。
したがって、セグメントテーブルは、そのセグメントに含まれるページを管理するページテーブルの実アドレスを指し示します。
ハッシュ表の理論的な探索時間を示すグラフはどれか。ここで,複数のデータが同じハッシュ値になることはないものとする。

解答・解説
解答
エ [ES 令和3年度秋期 問10]
解説
ハッシュ表(ハッシュテーブル)は、データを探すための非常に効率的なデータ構造です。理論的には、データの個数が増えても、1個あたりの探索時間はほとんど変化しません。これは、ハッシュ関数によってデータの格納場所が直接計算されるためです。
リアルタイムOSにおけるコンテキストの使用方法に関する記述のうち,適切なものはどれか。
- アプリケーションタスクを,アプリケーションタスク共有のコンテキストで実行させる。
- アプリケーションタスクを,カーネルのコンテキストで実行させる。
- カーネルを,アプリケーションタスクのコンテキストで実行させる。
- 割込み処理を,割込み処理ごとのコンテキストで実行させる。
解答・解説
解答
エ [ES 令和2年度秋期 問7]
解説
コンテキストとは、実行中のプログラムの状態(レジスタの値、プログラムカウンタなど)を保存した情報のことです。リアルタイムOSは、複数のタスクを切り替えて実行することで、決められた時間内に処理を完了させます。この切り替えの際に、コンテキストスイッチという作業が行われます。
- アプリケーションタスクは、それぞれ独立したコンテキストを持ちます。これにより、タスクは独立して動作し、互いに干渉することなく実行できます。
- カーネルは、各タスクのコンテキストとは独立した、カーネル自身のコンテキストで実行されます。これにより、カーネルの処理がタスクの状態に影響されることなく、安全かつ安定して動作します。
- 割込み処理は、通常、アプリケーションタスクやカーネルのコンテキストとは別の、専用のコンテキストで実行されます。これは、割込み処理が非同期で発生し、可能な限り迅速に実行される必要があるためです。割込みハンドラが実行される際、現在のタスクのコンテキストが保存され、割込み処理専用のコンテキストが使用されます。これにより、割込み処理が元のタスクの状態を壊すことなく、安全に実行されます。
- 複数のタスクが同じコンテキストを使用すると、状態が混在し、タスクの独立性が失われます。
- カーネルは、タスクとは別の特権レベルで動作するため、タスクをカーネルコンテキストで実行すると、セキュリティ上の問題や予期せぬ動作を引き起こす可能性があります。
- カーネルがタスクのコンテキストで実行されると、カーネルの安定性が保証されず、システム全体が不安定になります。
- 適切です。
ページング方式の仮想記憶において,あるプロセスが仮想アドレス空間全体に対応したページテーブルをもつ場合,ページテーブルに必要な領域の大きさを2ˣバイトで表すとすると,xを表す式はどれか。ここで,仮想アドレス空間の大きさは2ᴸバイト,ページサイズは2ᴺバイト,ページテーブルの各エントリの大きさは2ᴱバイトとし,その他の情報については考慮しないものとする。
- L+N+E
- L+N-E
- L-N+E
- L-N-E
解答・解説
解答
ウ [ES 令和2年度秋期 問8]
解説
ページテーブルに必要な領域の大きさは、ページテーブルのエントリ数に各エントリの大きさを掛けることで求められます。
- ページテーブルのエントリ数
仮想アドレス空間全体をページサイズで割ることで、必要なエントリ数を計算します。- 仮想アドレス空間の大きさ:2Lバイト
- ページサイズ:2Nバイト
- エントリ数 = (仮想アドレス空間の大きさ) ÷ (ページサイズ) = 2L÷2N=2L−N
- ページテーブルの大きさ
エントリ数に各エントリの大きさを掛けます。- ページテーブルの大きさ = (エントリ数) × (各エントリの大きさ)
- 各エントリの大きさ:2Eバイト
- ページテーブルの大きさ = 2^{L-N} \times 2^E = 2^{L-N+E}バイト
したがって、ページテーブルに必要な領域の大きさは2^{L-N+E}バイトとなります。これを2^xバイトで表すと、x=L−N+Eとなります。
リアルタイムOSで用いられる,タスクがデッドラインを必ず守るデッドラインスケジューリングでは,周期タスクを図のように次の四つのパラメタr,C,D,T(0 < r + C ≦ D ≦ T)の組みで表現することができる。

二つのタスクX,Yをr=0,D=Tという条件下で生成した場合,スケジュールが可能となるC,Dの組合せはどれか。ここで,タスクはX,Yの順に起動され,優先度はXの方が高い。また,スケジューリングはプリエンプティ方式であり,OSのオーバヘッドは考慮しない。
| タスクX | タスクY | |||
| C | D | C | D | |
| ア | 1 | 2 | 2 | 3 |
| イ | 1 | 2 | 2 | 4 |
| ウ | 2 | 3 | 2 | 3 |
| エ | 2 | 4 | 3 | 4 |
解答・解説
解答
イ [ES 令和2年度秋期 問9]
解説
ー
- ー
- ー
- ー
- ー
ミドルウェア
出題なし
ファイルシステム
ディスク領域の管理法のうち,索引方式に関する説明として,適切なものはどれか。
- 位置情報として1ブロックを1ビットに対応させ,そのブロックが空きか使用中かを0か1で示す方式である。
- ファイル名と位置情報を示す先頭クラスタ番号をディレクトリで対応させ,各クラスタには次のクラスタの番号を格納する方式である。
- ファイルを構成するブロックの位置情報を記録した表をもつ方式である。
- ファイルを構成するブロックを先頭から順にポインタでつなぎ,各ブロックには次のブロックの位置情報を格納する方式である。
解答・解説
解答
ウ [ES 令和6年度秋期 問8]
解説
ー
- ー
- ー
- ー
- ー
三つの媒体A〜Cに次の条件でファイル領域を割り当てた場合,割り当てた領域の総量が大きい順に媒体を並べたものはどれか。
〔条件〕
(1)ファイル領域を割り当てる際の媒体選択アルゴリズムとして,空き領域が最大の媒体を選択する方式を採用する。
(2)割当て要求されるファイル領域の大きさは,順に90,30,40,40,70,30(Mバイト)であり,割り当てられたファイル領域は,途中で解放されない。
(3)各媒体は容量が同一であり,割当て要求に対して十分な大きさをもち,初めは全て空きの状態である。
(4)空き領域の大きさが等しい場合には,A,B,Cの順に選択する。
- A,B,C
- A,C,B
- B,A,C
- C,B,A
解答・解説
解答
エ [ES 令和3年度秋期 問9]
解説
ー
- ー
- ー
- ー
- ー
開発ツール
この回路の真理値表はどれか。

-
A B C 0 0 0 0 1 0 1 0 0 1 1 1
-
A B C 0 0 0 0 1 1 1 0 0 1 1 0
-
A B C 0 0 0 1 1 0 1 0 1 1 1 1
-
A B C 0 0 0 0 1 1 1 0 1 1 1 0
解答・解説
解答
イ [ES 令和6年度秋期 問9]
解説
ー
- ー
- ー
- ー
- ー
プログラムの性能を改善するに当たって,関数,文などの実行回数や実行時間を計測して統計を取るために用いるツールはどれか。
- デバッガ
- ドライバ
- パーサ
- プロファイラ
解答・解説
解答
エ [ES 令和5年度秋期 問9]
解説
ー
- ー
- ー
- ー
- ー
オープンソースソフトウェア
出題なし
過去問題(平成期)
平成21年度春期から平成31年度春期に出題された問題です(重複除く)
*現在、解説執筆中です
