AUTOSAR勉強2 イベント、リソース、カウンタ
上記の続き。OSオブジェクトの内、イベント、リソース、カウンタについて
2.8 イベント
- イベントはタスクが同期処理を行うためのOSオブジェクトである
2.8.1 イベントとタスクの関係
- イベントは拡張タスクでのみ使用することができる(基本タスクは待ち状態を持たないため)
- イベントは単独のOSオブジェクトではなく、タスクが所有するOSオブジェクトである
2.9 リソース
上限優先度
- リソースは属性として上限優先度を持つ
- リソースの上限優先度は、そのリソースを獲得する全てのタスクの中で最も高いタスク優先度となる優先度である
- C2ISRもそのリソースを獲得する場合は、そのISRの優先度が上限優先度となる
リソースの獲得
- タスクがリソースを獲得した時、OSはタスクの現在優先度を、リソースの上限優先度まで引き上げることで、リソースの上限優先度以下のタスクが実行されることを防止し、共有資源の排他制御を行う。
-マルチコア対応OSにおけるリソース - スケジューリングは各コアで独立して実行するため、コア間でのリソースによる排他制御はできない。コア間での排他制御には、スピンロックを使用する
2.10 カウンタ
- カウンタの接続対象となるOSオブジェクトは、アラームとスケジュールテーブルであり、カウンタによって両者を駆動する
- ティックーカウントする単位。ティックが示すものはアプリケーション依存
2.10.2 カウンタの種別
- ソフトウェアカウンタ
- ティックがOSによって管理され、システムサービスによりティックがインクリメントされるカウンタ
ハードウェアカウンタ
- タイマなどのハードウェアによってティックが管理されるカウンタ
オブジェクトのコア割り付けに関する制約
- アラーム、スケジュールテーブル共に、接続するカウンタは接続対象と同一のコアに割り付けられていなければならない
2.10.5 カウンタの満了処理
- カウンタがインクリメントされ、カウンタに接続するアラームやスケジュールテーブルで指定されたカウント値となった時、カウンタは、アラームやスケジュールテーブルで指定されたアクション(満了処理)を実行する
- カウンタに接続されたアラームやスケジュールテーブルの満了処理は、OS処理レベル(2.2.4処理レベル参照)で動作する
2.10.7 ハードウェアカウンタ
- アラーム、スケジュールテーブルをハードウェアカウンタに接続して使用するには、満了時に起動するC2ISRが必要である