応用情報技術者試験ナビ ロゴ 応用情報技術者試験ナビ
本日は試験日

応用情報技術者試験 令和4年春 午前問17 解説付き過去問

問題

一つのI2Cバスに接続された二つのセンサがある。 それぞれのセンサ値を読み込む二つのタスクで排他的に制御したい。 利用するリアルタイムOSの機能として、適切なものはどれか。

正解

解説

この問題は、リアルタイムOSにおけるタスク間でのリソースアクセスの排他制御について問うものです。特に、一つのI2Cバスに接続された複数のセンサを、複数のタスクから安全にアクセスするための適切な同期メカニズムに関する知識が求められます。

  1. リアルタイムOSと排他制御
    リアルタイムオペレーティングシステム(RTOS)では、複数のタスクが同時に実行されるため、共有リソースへのアクセスを適切に制御することが必須です。この制御を行うために、RTOSは様々な同期メカニズムを提供します。排他制御は、一度に一つのタスクのみがリソースにアクセスできるようにすることを保証し、データの整合性を維持します。

  2. セマフォの役割
    セマフォは、複数のタスク間でのリソースの共有を制御するために設計された同期メカニズムです。セマフォはカウンタを基に動作し、そのカウンタが正の値の場合にのみ、タスクがリソースにアクセスできるようになります。タスクがリソースを使用し終えると、セマフォはそのタスクによって解放され、他のタスクがリソースへのアクセスを試みることができます。これにより、複数のタスクが同じI2Cバスに接続されたセンサに排他的にアクセスすることが可能となります。

したがって、二つのセンサの値を読み込むタスクが排他的にI2Cバスを制御するためには「セマフォ」が最も適切なリアルタイムOSの機能です。セマフォを利用することで、タスク間での安全なリソース共有が保証され、システム全体の安定性が向上します。