研究概要 |
本研究では,形式記述言語E-LOTOSの時間制御構文を従来のLOTOSに採り入れた言語(時間拡張LOTOSと呼ぶ)で記述された実時間システム仕様を実時間スレッド機構を用いて実装するためのコンパイラを作成し,マルチメディアアプリケーションの開発への応用を行った. 作成したコンパイラは,我々が開発してきた時間制約を含まないLOTOS仕様のコンパイラの実装法に基づき,与えられた動作仕様をイベントの逐次処理・選択・その反復から成る部分動作式に分割し,各部分動作式を実時間スレッド機構の一つのスレッドに割り当て,スレッド間の共有変数領域を用いて,マルチランデブなどの並列プロセス間におけるインタラクションを実現する.各スレッドはイベントの時間制約から実行開始時刻,デッドラインを計算,設定し,全体として早いデッドラインを設定したスレッドが先にスケジュールされるよう制御する.時間制約が指定されたイベント間のマルチランデブでは,それらのイベントが時間制約を全て満たすようにスレッドを制御する機構や,複数のマルチランデブを時間制約に従って優先的にスケジュールする機構などを考案し,実装した.また、動画の各フレームや指定した時間分の音声データの読込み,デコード,再生などを行うプリミティブを作成し,各プリミティブを時間拡張LOTOS仕様中にイベントとして記述し利用できる機構をコンパイラに実装した. 時間拡張LOTOSでは,システムをイベントとその実行順序のみを指定した主プロセスと,それらのイベントの実行時間間隔に対する制約(および代替処理)などを指定した別プロセスから構成し,関連するイベントを同期実行させるという制約指向記述スタイルが利用できる.本研究では,この方法で,典型的なマルチメディアアプリケーションの記述を試み,QoS制御や複数メディア間の同期制御の追加,変更が容易であることを示した. 動画再生アプリケーションの記述・実装実験より,記述工数の面で有利だが同期のオーバヘッドを要する制約指向スタイルの時間拡張LOTOS仕様から,本コンパイラにより実用的なスピードで動作する目的コードが生成可能なことを,C言語で同じものを開発した場合との比較により,確認した.
|