NWネットワークスペシャリスト試験 午前Ⅰ
令和4年度春期 ネットワークスペシャリスト 午前Ⅰ 問6
問題文と選択肢を読んで答えを考えてから、下の「正解と解説を見る」で確認しましょう。
問題
選択肢
- アキュー
- イセマフォ
- ウマルチスレッド
- エラウンドロビン
解き方のヒントを見る
共有資源の排他制御を考える視点
共有資源を複数のタスクが扱うときは、同時実行による影響と、利用の順序や待ち合わせを整理し、機能の役割を他の仕組みと混同しないように確認しましょう。用語だけで判断せず、場面と結び付けて考えることが大切です。
この問題で問われていること
一つに絞るなら、共有資源を扱う場面で、どの処理同士の関係を調整するための機能かに注目してください。対象、利用者、調整の目的を問題文の表現と照らし合わせ、周辺の機能との役割分担を確認します。
視点
排他制御を学ぶ際は、共有される対象、利用する主体、処理が重なる可能性、調整が必要になる理由を分けて捉えます。各用語を単独で暗記せず、どの関係を扱う概念なのかを整理すると、説明の違いを比較しやすくなります。
確認ポイント
- 共有される対象が何かを確認する
- 関係する処理や主体を整理する
- 機能の目的と役割に注目する
正解と解説を見る
正解
イ
解説
二つのタスクが同じI²Cバスを排他的に利用するには、片方のタスクが使用中にもう片方を待たせる仕組みが必要です。その役割に適するのがセマフォです。
理由
I²Cバスのように複数タスクが共有する資源を安全に扱うには、使用権を一つに制限する必要がある。セマフォは、あるタスクが資源を使用している間、他のタスクを待機させ、処理が終わると次のタスクに使用権を渡すための同期機能です。
比較
キューはデータや要求の受渡し、マルチスレッドは複数の実行単位を扱う方式、ラウンドロビンはCPU時間などを順番に割り当てるスケジューリング方式です。いずれも、この設問の排他的な資源利用を直接実現する機能ではありません。
選択肢ア
これは不正解だよ。キューは、タスク間でデータや処理要求を順番に受け渡すための仕組みである。共有資源を一つのタスクだけが使用できるようにし、他のタスクを待たせる排他制御そのものを目的とした機能ではないため、この設問の条件には合わない。
選択肢イ(正解)
これは正解だよ。セマフォは、複数のタスクが共有する資源の使用権を管理する同期機能である。一つのI²Cバスを一方のタスクが使用している間、もう一方のタスクを待機させられるので、二つのセンサ値を読む処理を排他的に制御できる。
選択肢ウ
これは不正解だよ。マルチスレッドは、一つのプログラム内で複数のスレッドを実行する構成や方式を指す。複数の処理を動かすことはできるが、共有するI²Cバスを一つのタスクだけが使うようにする排他制御機能ではない。
選択肢エ
これは不正解だよ。ラウンドロビンは、複数のタスクへCPU時間などを順番に割り当てるスケジューリング方式である。実行機会を分配する仕組みであって、I²Cバスの使用権を管理し、同時利用を防ぐ排他制御には該当しない。
学習のポイント
共有資源の排他制御と、タスク間通信やスケジューリング機能の違いを整理する。
出典:独立行政法人 情報処理推進機構(IPA)令和4年度春期 ネットワークスペシャリスト試験 午前Ⅰ 問6(公式資料:問題冊子(PDF) / 解答例)
関連する過去問一覧
IPA Advancedは非公式の学習サイトです。解説にはAIによる補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針