第
4
章 コンテキスト指向プログラミングにおける優先度に応じたレイヤスケジューリング手法
69
Ă сŶĞǁ;Ϳ͖
ď сŶĞǁ;Ϳ͖
Ă͘Dϭ;Ϳ͖
Ă͘DϮ;Ϳ͖
ď͘Dϭ;Ϳ͖
䜸䝤䝆䜵䜽䝖䝥䝻䜻䝅䜰䜽䝔䜱䝤䛺 䝺䜲䝲䛾䝸䝇䝖
䝴䞊䝄ᐃ⩏䛾 䝺䜲䝲䝥䝻䜾䝷䝮
>ĂLJĞƌɲ
>ĂLJĞƌɴ 䝯䝑䝉䞊䝆㏦ಙ
ůĂLJĞƌ>ĂLJĞƌɲ ĐůĂƐƐ
Dϭ;Ϳ͙
DϮ;Ϳ͙
第
4
章 コンテキスト指向プログラミングにおける優先度に応じたレイヤスケジューリング手法
70
(ii)
プログラム中に1
つだけしか存在できない:高優先度のレイヤアクティベーション中に実行すべきレイヤを特定す る時間を削減するために,アクティベーション中レイヤはプログラム 中で一つだけとする.
これらの制約は,どのようなレイヤでも,ロボットの移動を停止させるな どの単純な処理を行う場合には問題とならない.一方,アクティベーション するレイヤによって異なる処理を行う必要がある場合は,(ii)の制限が問題 となるため,レイヤごとに本項のメソッドディスパッチを用いるかどうか決 定する必要がある.
このような仕組みを実現することで,
4.4
節の問題(2)(3)
を解決し,高優 先度レイヤアクティベーション時の応答時間を改善する.4.8 適用・評価
本節では,提案機構適用時のメソッド実行時間を計測することで,変更要 求から振る舞い実行までの応答時間が削減できることを示す.計測の流れを 図
4.10
に示す.図の上部はアクティベーションの流れ,下部はアクティブ になっているレイヤを表している.計測では,低優先度レイヤA
と高優先 度レイヤB
をアクティベートする.アクティベートの指示はA,B
の順番で 行い,レイヤA
のアクティベート途中にレイヤB
のアクティベート指示を 出す.アクティブなレイヤが無い場合は,プログラム実行時点でアクティブ なベースレイヤという特別なレイヤのメソッドが実行される.各レイヤの メソッドの処理では,変数のインクリメントを一回だけ行うこととする.応 答時間の評価では,図4.10
の(a)-(e)
の区間でそれぞれメソッド実行時間を100
回計測し,その平均を求めることとする.ベンチマーク環境は,
CPU
がIntel Core i3 (1.5GHz, 4
コア)
,メモリは4GB
を搭載し,64ビットのWindows7
で.netフレームワーク4.0
で実行し た.表4.1
に計測結果を示す.4.4
節(3)
で述べた通り,メソッドディスパッチの待ち時間は,レイヤア クティベーションから振る舞い実行までの応答時間が増大する原因となる.第
4
章 コンテキスト指向プログラミングにおける優先度に応じたレイヤスケジューリング手法
71
㛫 䝺䜲䝲
䜰䜽䝔䜱䝧䞊䝅䝵䞁 䝺䜲䝲䛾䜰䜽䝔䜱
䝧䞊䝅䝵䞁ᣦ♧
䝺䜲䝲䛾䜰䜽䝔䜱 䝧䞊䝅䝵䞁ᣦ♧
䝺䜲䝲
䜰䜽䝔䜱䝧䞊䝅䝵䞁 䝺䜲䝲
୰᩿
䝧䞊䝇䝺䜲䝲 䜰䜽䝔䜱䝧䞊 䝅䝵䞁୰䝺䜲䝲
䝺䜲䝲 䝺䜲䝲
㛤
;ĂͿ ;ďͿ ;ĐͿ ;ĚͿ ;ĞͿ
䜰䜽䝔䜱䝤 䛺䝺䜲䝲
図4.10 評価プログラムの流れ
表4.1 適用結果:メソッド実行の時間
ܯ࣎য়ڱ ܯ݃Վ>ИV@ ࢆ ࣰߨ͠ΗΖϟλρχϪϢ DΠέτΡϗʖεϥϱ ϗʖηϪϢ
E$ΠέτΡϗʖεϥϱ ϗʖηϪϢ
F%ΠέτΡϗʖεϥϱ ΠέτΡϗʖεϥϱϪϢ G%ΠέτΡϗʖεϥϱ྅ %ϪϢ
H$ΠέτΡϗʖεϥϱ྅ %ϪϢ
表
4.1(c)
の結果から,高優先度レイヤのアクティベーション中は,4.7.2
項で述べたメソッドディスパッチによって,メソッドの実行時間が短縮される ことが明らかである.また,レイヤを探す手順が省略された分,実行時間の ばらつきも他より少なく,安定している.これにより,4.4節
(3)
の問題を 解決している.(1)(2)
についても,計測のために評価プログラムを実行した 結果,図4.10
の通りに振る舞うことが確認でき,それぞれ解決できること が明らかとなった.メソッドディスパッチの時間短縮が,全体の性能にどの ような効果を与えるかについての評価は今後の課題である.第
4
章 コンテキスト指向プログラミングにおける優先度に応じたレイヤスケジューリング手法
72
4.9 おわりに
本章では,コンテキスト指向プログラミングにおける,優先度に応じたレ イヤスケジューリング手法を提案した.本手法は,組込みソフトウェアの 機械制御を対象としており,非正常系処理変更の応答時間が長くなること によって,事故の発生や製品の故障が起こる問題を防ぐことを目的として いる.
本手法は非正常系処理の変更要求から振る舞い実行までの応答時間を短縮 するために,以下の仕組みを持つ.
(1)
横取り可能な優先度に応じたレイヤスケジューリング(2)
高優先度レイヤアクティベーション時のメソッドディスパッチ(1)
によって,高優先度レイヤのアクティベーションにおいて,低優先度 のレイヤアクティベーションの完了を待つ時間を短縮することが可能とな る.(2)によって,例外発生という緊急時の応答時間を削減することを可能 とする.筆者は上記の手法について評価を行うために,以前に提案した
COP
フ レームワークであるRTCOS
45)46) の機能を拡張することで提案機構を実現 した.具体的には,RTCOS
のレイヤアクティベーションのスケジューリン グ機能に上記(1)
を追加し,メソッドディスパッチ機能に上記(2)
を追加し た.また,2
つの優先度が異なるレイヤをアクティベートし,その時の振る 舞いの変化とメソッド実行にかかる時間を計測することによって,提案機構 が振る舞いの変更要求から実行までにかかる応答時間を削減できることを示 した.今後は,レイヤアクティベーションを中断することによって起こり得る問 題を明らかにし,レイヤスケジューリングアルゴリズムをさらに実用的なも のとしたい.