REAL-TIME SYSTEMS TECHNOLOGY

【第3回】元東大教員から学ぶリアルタイムシステム「リアルタイムシステムに必要な6つの性質」

本記事の信頼性

  • リアルタイムシステムの研究歴12年.
  • 東大教員の時に,英語でOSの授業.
  • 2012年9月~2013年8月にアメリカのノースカロライナ大学チャペルヒル校コンピュータサイエンス学部2021年の世界大学学術ランキングで20位)で客員研究員として勤務.C言語でリアルタイムLinuxの研究開発
  • プログラミング歴15年以上,習得している言語: C/C++,Java,Python,Ruby,HTML/CSS/JS/PHP,MATLAB,Assembler (x64,ARM).
  • 東大教員の時に,C++言語で開発した「LLVMコンパイラの拡張」,C言語で開発した独自のリアルタイムOS「Mcube Kernel」GitHubにオープンソースとして公開

こういった私から学べます.

前回を読んでいない方はこちらからどうぞ.

第2回リアルタイムシステム
【第2回】元東大教員から学ぶリアルタイムシステム「リアルタイムシステムの種類」

こういった私から学べます. 前回を読んでいない方はこちらからどうぞ. リアルタイムシステムの記事一覧はこちらからどうぞ. 目次1 リアルタイムシステムの種類1.1 ハードリアルタイムシステム1.2 フ ...

続きを見る

リアルタイムシステムの記事一覧はこちらからどうぞ.

リアルタイムシステム
元東大教員から学ぶリアルタイムシステム

こういった私から学べます. リアルタイムシステムとは,決められた時間(デッドライン)までに処理を完了しなければならない性質をもつシステムのことです. リアルタイムシステムは,ロボット,自動車や航空機な ...

続きを見る

リアルタイムシステムに必要な6つの性質

今回は,リアルタイムシステムに必要な性質を紹介していきます.

前回までの説明でリアルタイムシステムが何なのかをイメージできたと思いますので,具体的な内容を説明してきます.

今回は少し難しい話をします.

適時性(Timeliness)

タスクの処理の結果がその価値だけでなく,時間領域においても正しくなければならない性質のことです.

結果として,リアルタイムOSは以下のカーネルの機構を提供しなければなりません.

  • 時間管理
  • 明示的な時間制約や異なる重要度に対応するタスク管理

予測性(Predictability)

リアルタイムシステムに必要な性能を実現するためには,スケジューリングの決定の結果を解析可能でなければなりません.

安全で重要なアプリケーションでは,すべての時間制約はリアルタイムシステムの起動前(オフライン)に保証できなければなりません.

もしあるタスクが時間制約を保証できない場合は,リアルタイムシステムはあらかじめその事実を通知しなければなりません.

これにより,時間制約を満たせなかった場合に発生する例外をハンドリングするために,代わりのアクションをあらかじめ予定することができます.

効率性(Efficiency)

多くのリアルタイムシステムは,多くの制約(空間,重さ,エネルギー,メモリ,計算能力)がある小さいデバイスに組込みます.

これらのリアルタイムシステムで必要な性能を実現するためには,リアルタイムOSによる利用可能な計算資源の効率的な管理が必要不可欠です.

頑健性(Robustness)

リアルタイムシステムは最大の負荷の状況でも崩壊してはなりません.

リアルタイムシステムは予想されるすべての負荷シナリオでも扱えるように設計しなければなりません.

過負荷の管理やその適切な処理は,時々刻々と変わる計算資源の要求や負荷の変動に対処するためには必要不可欠です.

耐障害性(Fault Tolerance)

単一のハードウェアやソフトウェアの故障がリアルタイムシステム全体がクラッシュしないようにすべきです.

リアルタイムシステムの重要なコンポーネント(ハードウェアやソフトウェアの部品)は耐障害性を持つように設計しなければなりません.

例えば,複数のハードウェアやソフトウェアで動作させることです.もし一つのハードウェアやソフトウェアが故障した場合,他のハードウェアやソフトウェアが正常に動くことで,リアルタイムシステム全体がクラッシュしないように設計します.

保守性(Maintainability)

リアルタイムシステムのアーキテクチャは,システム全体の修正が簡単にできるようにモジュール構造で設計すべきです.

モジュール構造とは,システムのハードウェアやソフトウェアの部品を交換できるように設計することです.

例えば,レゴ(LEGO)は組み上がったロボットを他の部品に交換することが簡単にできます.

下記の動画では,同じ部品を使って様々なロボットを組み立てています.

まとめ

リアルタイムシステムに必要な6つの性質を紹介しました.

  • 適時性(Timeliness)
  • 予測性(Predictability)
  • 効率性(Efficiency)
  • 頑健性(Robustness)
  • 耐障害性(Fault Tolerance)
  • 保守性(Maintainability)

読んでいただいた方は,リアルタイムシステムの本質に近づけたと思います.

最後まで読んで頂きありがとうございました.

リアルタイムシステムで使われているリアルタイムOSは,主にC言語で書かれています.

私にC言語の無料相談をしたいあなたは,公式LINE「ChishiroのC言語」の友だち追加をお願い致します.

友だち追加

独学が難しいあなたは,C言語を学べるおすすめのオンラインプログラミングスクール4社で自分に合うスクールを見つけましょう.

次回はこちらからどうぞ.

第4回リアルタイムシステム
【第4回】元東大教員から学ぶリアルタイムシステム「リアルタイムシステムの予測性の深掘り」

こういった私から学べます. 前回を読んでいない方はこちらからどうぞ. リアルタイムシステムの記事一覧はこちらからどうぞ. 目次1 リアルタイムシステムの予測性の深掘り2 DMA2.1 Cycle St ...

続きを見る

-REAL-TIME SYSTEMS, TECHNOLOGY
-, , , , , , , , , , , , , , , ,