プロジェクト概要
2005-02-25 17:39 (by tohigashi)

背景:
組込みシステム上のソフトウェアは年々複雑となってきている。例えば、携帯電話やデジタルテレビなど昔のソフトウェアとは比べ物にならない量のソフトウェアの開発が必要とされている。従来のμITRON等の組込み用OSでは、複数のアプリケーションやOSが同一アドレス空間上で実行されるため、どれか1つのアプリケーションが間違ったメモリアクセスを行う。とシステム全体がクラッシュしてしまう可能性があった。しかし、Linuxのような複数のアドレススペースが利用可能なOSを利用することにより、1つのアプリケーションのメモリアクセスによりシステム全体がクラッシュするようなことが発生しなくなる。
しかし、現状のLinuxでは各アプリケーションに公平にCPU資源を割当てるため、バグがあるアプリケーションが間違って複数のプロセスを生成することによりCPUをほぼ占有してしまうことがありえる。また、複数のリアルタイムアプリケーションが存在する場合は、高い優先度を持つアプリケーションが暴走することによりシステム全体が動作不能に陥ってしまうことがありえる。次世代の組込みシステムでは、ビデオやオーディオ等のリアルタイム処理や付加価値を提供するサードパーティアプリケーションの動的ダウンロードが当たり前となるため、上述の問題の解決は大変重要な課題となる。

目的:
(1)問題解決の手法
上記の課題を解決するため、本プロジェクトではLinuxにQOSサポート機能の追加を行う。。本プロジェクトで実現するQOS機能では、アカウントオブジェクトという抽象化の導入を行う。アカウントオブジェクトには、複数のプロセスをバインドすることが可能であり、バインドされたプロセスはアカウントオブジェクトに指定されたCPU使用量を超過すると、バインドされたプロセスの実行を停止させるか、それらのプロセスにシグナルを送る。ここで開発するQOS機能を用いることにより、リアルタイムアプリケーションの資源占有を防ぐだけではなく、組込みシステムのセキュリティを向上することも可能となる。
特にLinux では従来リアルタイムアプリケーションがCPUを占有してしまう事に対して仕様上制限がかけられなかったが、このシステムを使用することによって資源占有を防ぐ事ができる。また、ダウンロードしたアプリケーションのCPU使用量を制限することにより、悪意のあるアプリケーションを間違ってダウンロードしても、そのアプリケーションがシステム全体を占有することでシステムをクラッシュさせることを防ぐことが可能となる。

CPU Accounting & Blocking Interfaceプロジェクトのニュース一覧