ハラパン・メディアテック 代表取締役
宇野 俊夫

 マルチタスクで動作するプログラムでは,メモリや入出力ポートといった共有資源へのアクセスにおけるタスク同士の競合を防ぎたい場合や,あるタスクによる処理の終了を待ってその結果を別のタスクに受け渡したい場合がある。これらを実現するために,リアルタイムOSが提供する,「セマフォ」「イベント・フラグ」「メール・ボックス」といったタスク間通信機能を利用する。

 ただし使い方を誤ると,新たなソフトウエアの不具合を生んでしまう。タスクに与えた優先度との兼ね合いで,2個のタスクがお互いを待ち合って動作しなくなったり,優先度と矛盾したりする。今回は,こうした問題とその回避策について解説する。

組み込みアカデミートップページへ
『日経エレクトロニクス』2007年1月1日号の同梱別冊「組み込み速修キット」を使って,組み込みシステム開発への理解を深めてもらうための特設サイトです。