優先度に基づくプリエンプティブスケジューリングのリアルタイムOSを使用した組込みシステムにおいて、入力装置及び出力装置にアクセスする二つのタスクX,Yがある。XはYより優先度が低く、Xが資源待ち状態でない場合にYが資源待ち状態に遷移するとXが実行状態に遷移する。入力装置及び出力装置へのアクセスを排他制御するために、入力装置及び出力装置にそれぞれバイナリセマフォi及びoを用意し、X,Yを図のように実装した。このとき、デッドロックが発生するのはXの処理A,B,C,Dのうち、どの処理中にプリエンプションが発生してYが実行されたときか。ここで、Yの実行はαから行うものとし、Xの処理A,B,C,Dでは、入力装置及び出力装置へのアクセス並びにバイナリセマフォの操作は行わないものとする。

取得順序が逆のロックを片方だけ持つ区間で詰まる

エンベデッドシステムスペシャリスト試験2025年度 秋期 午前II6/RTOS / 同期・排他制御

タスクXとタスクYのフローチャート。タスクX:出力データの準備→処理A→セマフォi取得→処理B→セマフォo取得→処理C→(合流)→入力装置及び出力装置へのアクセス→処理D→セマフォo解放→セマフォi解放→入力データの加工。タスクY:α開始→出力データの準備→セマフォo取得→セマフォi取得→入力装置及び出力装置へのアクセス→セマフォi解放→セマフォo解放→入力データの加工。Xはセマフォi→oの順で取得、Yはセマフォo→iの順で取得するロック順序の違いがデッドロックの原因となる構造。
タスクXとタスクYのフローチャート。タスクX:出力データの準備→処理A→セマフォi取得→処理B→セマフォo取得→処理C→(合流)→入力装置及び出力装置へのアクセス→処理D→セマフォo解放→セマフォi解放→入力データの加工。タスクY:α開始→出力データの準備→セマフォo取得→セマフォi取得→入力装置及び出力装置へのアクセス→セマフォi解放→セマフォo解放→入力データの加工。Xはセマフォi→oの順で取得、Yはセマフォo→iの順で取得するロック順序の違いがデッドロックの原因となる構造。

選択肢

正解と解説

正解: 処理B

デッドロックは、XとYが互いに相手の保持するセマフォを待ち合ったときに起きる。Xはiを取得した直後でまだoを取得していない区間、すなわち処理Bでプリエンプトされると危険で、そこでYが動くとYはoを取得できるがiが取れずに待ちに入る。実行状態へ戻ったXもoが取れずに待つため、双方が永久に進めなくなる。

選択肢ごとの解説

出典:令和7年度 秋期 エンベデッドシステムスペシャリスト試験 午前II 問6(IPA)

同じ分野の他の問題

最終更新:2026-08-25/解説・選択肢ごとの解説は資格暗記が独自に作成しています。問題文と選択肢の出典は上記のとおりです。