AutoSAR シリーズ解説(はじめに) 3.5-RTE のデータ整合性管理

1. データの整合性とは

百度百科事典から引用すると:

データの一貫性とは、複数のユーザーが同時にデータベースにアクセスしようとし、そのトランザクションで同時に同じデータが使用される場合に、更新の喪失、未確定の依存関係、一貫性のない分析、およびファントム読み取りの 4 つの状況が発生する可能性があることを意味します。

もっと簡単に言うと、複数の操作が同じデータを同時に読み書きすると、バグが発生する可能性が高くなります (実際には優先順位の問題により、データが改ざんされ、作成者が見たくないデータが生成される可能性があります)結果)

第二に、データ整合性の実現メカニズム

1. RTE 管理を使用する

前述したように、このカテゴリはバグが発生しないように、RTE を使用してデータを管理することを目的としています。たとえば、IRead では、全員がデータのバックアップを操作し、元のデータを直接操作することはありません

2. SWC 内部変数

この内部変数は驚くべきもので、DaVinci で直接設定でき、C ファイルで定義されたグローバル変数と同じように、外部に保存せずにランナブルを直接呼び出すことができます。c ファイルで定義された関数は直接使用できます。このとき問題が発生します。同じ c ファイル内の関数が異なるタスクで実行され、これらの関数が同時に実行される可能性があります。その場合、このグローバル変数を呼び出すときに、バグがある可能性があります。では、どうすれば解決できるでしょうか?AutoSAR は次の 2 つの方法を実行します。

  • EA (Exclusive Areas、専用領域) : 以下の 2 文のコードで、クローズド割り込みに相当します。内部に変数を呼び出すステートメントが配置され、それ以上の高度なタスクは動作中に保護されたステートメントに割り込むことができません。
Rte_Enter_name>();

//这里放置被保护的语句

Rte_Exit_name>();
  • IRV (実行可能変数、関数間変数) : コードはまだ 2 文あります。上記の EA はコードセグメント全体が保護されるというもので、ここの 2 文は変数変更時に保護されるのと同等です。この2つは刑が執行されるときに保護される
Rte_IrvWrite_re>_name>()

Rte_IrvRead_re>_name>()

おすすめ

転載: blog.csdn.net/qq_42700289/article/details/131404802