切り出し用のメモリ領域を静的領域として確保します。

KOZOSではそれをリンカスクリプトで定義しますが、このメモリ領域をメモリプールと呼びます。

メモリプールをどう利用すれば効率よく管理できるかが設計のポイントです。

管理しなくてはいけないことを列挙すると以下のようになるかと思います。

・メモリ領域が使用されているかいなか
・どのくらいの大きさの領域をタスクが要求してきて確保すればよいのか


■対するKOZOS設計
・メモリブロックを固定長で何個か用意する
・メモリブロックにヘッダ情報を付加しブロックのサイズ情報などを管理する
・獲得領域と解放済み領域のメモリブロックをリンクリスト管理でそれぞれ管理するが、ヘッダ情報に双方向リンクで管理できるようにする。

このような静的メモリをメモリプールとして漠然と切り出したものに管理機能を付加してメモリを混乱なく使用できるようにしたメモリ領域のことをヒープ領域と呼びます。


でもKOZOS設計でなんで以下の設計が必要なのか迷われた方がいると思います。
・メモリブロックを固定長で何個か用意する

次で説明しますが、リアルタイム性を意識した観点の設計になります。
もし固定長で何個か用意しない場合、どのような問題は起こる可能性があるのか示して行きたいと思います。




リアルタイム性って資源をいかに徹底的に管理できるかということなのかな。