リングバッファ
Ring Buffer
りんぐばっふぁ
固定サイズの配列を環状に使用するデータ構造。読出しポインタと書込みポインタで管理され、FIFOとして動作する。動的メモリ確保が不要で、シリアル通信の受信バッファ、センサデータの一時蓄積、ログバッファなど組込みシステムで広く使用される。
ソフトウェア設計 > メモリ管理とデバイスドライバ
関連キーワードの用語
ESスタック
後入れ先出し(LIFO)のデータ構造。関数の呼び出し時にリターンアドレス、引数、ローカル変数を格納するコールスタックとして使用される。組込みシステムではスタックサイズの管理が重要で、スタックオーバーフローは深刻な不具合の原因となる。
ESヒープ
動的メモリ確保(malloc/free等)に使用されるメモリ領域。プログラム実行中に必要なサイズのメモリを確保・解放できるが、メモリフラグメンテーションやメモリリークの問題がある。安全重要な組込みシステムでは動的メモリ確保を避ける設計が推奨される。
ES組込みシステム
特定の機能を実現するために、家電製品、自動車、産業機器などの機器に組み込まれたコンピュータシステム。汎用コンピュータと異なり、リアルタイム性、省電力性、小型化、高信頼性などの制約の下で設計される。
ESリアルタイムシステム
定められた時間制約内に処理を完了することが要求されるシステム。ハードリアルタイム(時間制約違反が致命的)とソフトリアルタイム(時間制約違反が許容範囲内)に分類される。組込みシステムの多くがリアルタイム性を要求される。
ESファームウェア
ハードウェアに組み込まれた制御用ソフトウェア。ROMやフラッシュメモリに格納され、機器の基本的な動作を制御する。ソフトウェアとハードウェアの中間的な存在であり、OTA(Over-the-Air)更新などにより書き換え可能な場合もある。
ES組込みLinux
Linuxカーネルを組込みシステム向けにカスタマイズしたOS。オープンソースで柔軟なカスタマイズが可能であり、ネットワーク機能やファイルシステムが充実している。リソースの豊富な組込み機器(ルータ、デジタル家電等)で広く利用される。