戦国IT - 情報処理技術者試験の過去問対策サイト
ブログお知らせお問い合わせ料金プラン

エンベデッドシステムスペシャリスト 2012年 午前2 問07


問題文

FIFOで処理されるメールボックスに関する操作で、タスクが待ち状態に遷移するものはどれか。

選択肢

ア:受信待ちをしているタスクが存在するメールボックスに対して受信要求をしたとき(正解)
イ:受信待ちをしているタスクが存在するメールボックスに対して送信要求をしたとき
ウ:メッセージが存在するメールボックスに対して受信要求をしたとき
エ:メッセージが存在するメールボックスに対して送信要求をしたとき

🔒 解説は解答すると表示されます

メールボックスの待ち状態【午前2解説】

正解の理由

メールボックスからメッセージを受信しようとしたとき、受信できるメッセージがなければ、受信要求を出したタスクはメッセージが届くまで待ち状態になります。
すでに受信待ちのタスクがあるメールボックスに、さらに受信要求を出す場合、新しい受信要求も待ち行列に加わります。このため、タスクが待ち状態に遷移するのはアです。FIFOなので、待ち行列では先に待っていたタスクから順に処理されます。

解法ステップ

  1. 受信要求では、メールボックスにメッセージがあるかを確認します。
  2. メッセージがあれば受信できますが、なければ受信要求を出したタスクは待ち状態になります。
  3. 送信要求では、受信待ちのタスクがいれば、メッセージを渡してそのタスクを待ち状態から復帰させます。
  4. 各選択肢について、受信時にメッセージがあるか、送信によって待ちタスクが解消されるかを確認します。

選択肢別の誤答解説

  • ア:受信待ちのタスクがいる状況で、さらに受信要求を出します。受信できるメッセージがないため、要求を出したタスクも待ち状態になります。
  • イ:送信要求によって、待っている受信タスクにメッセージを渡せます。受信待ちタスクを新たに待ち状態にする操作ではありません。
  • ウ:メールボックスにメッセージがあるため、受信要求を出したタスクはメッセージを受け取れます。待ち状態にはなりません。
  • エ:メールボックスにメッセージがあることだけでは、メールボックスが満杯だとはいえません。通常の設問条件では、送信要求を出したタスクが待ち状態になるとは判断しません。

よくある誤解

  • 受信要求を出せば、いつでも待ち状態になる
    メッセージがすでにあれば、その場で受信できます。待ち状態になるのは、受信したいのにメッセージがない場合です。
  • FIFOだから、送信タスクも必ず待つ
    FIFOは待ち行列の処理順序を表します。タスクが待つかどうかは、送受信できる条件がそろっているかで決まります。
  • メッセージが存在すれば、メールボックスは満杯である
    メッセージが一つ以上あることと、容量が満杯であることは別です。

補足コラム

メールボックスは、タスク間でメッセージを受け渡すための仕組みです。受信側が先に受信要求を出して待っている場合、送信されたメッセージをそのタスクへ直接渡す方式もあります。この場合、受信側はメッセージ到着を待ち続ける必要がなくなり、待ち状態から復帰します。

FAQ

FIFOとは何の順序ですか?
First In, First Outの略で、「先に入ったものを先に処理する」という順序です。メールボックスでは、メッセージや待ちタスクを先着順で扱うことを指します。
待ち状態になったタスクは、いつ実行可能になりますか?
受信待ちのタスクは、メールボックスにメッセージが届き、受信できる状態になると待ち状態から復帰します。

関連キーワード: メールボックス、FIFO、タスク状態、受信待ち、メッセージ通信
← 前の問題へこの年度をクイズで解く次の問題へ →
戦国ITクイズ機能

\ せっかくなら /

エンベデッドシステムスペシャリストを
クイズ形式で学習しませんか?

クイズ画面へ遷移する→

すぐに利用可能!

©︎2026 情報処理技術者試験対策アプリ

このサイトについてブログプライバシーポリシー利用規約特商法表記開発者について