Gears OS のモジュール化と並列 API
Mitsuki Miyagi, Yu Tobaru, Shinji Kono 琉球大学
OS の信頼性
コンピュータの信頼性の基本はメモリなどの資源管理を行う OS である。
OS は非決定的な実行を持つため、OS の信頼性を保証するには、証明を用いる方法とプログラムの可能な実行を全て数え上げるモデル検査を用いる必要がある。
従来のテストとデバッグではテスト仕切れない部分が残ってしまい、不十分。
モデル検査は無限の状態でなくても巨大な状態を調べる事になり、状態を有限に制限したり、状態を抽象化したりする方法が用いられる。
OS の拡張性
時代とともに進歩するハードウェア、サービスに対応するために OS 自体が拡張される必要がある。
OS を検証する際にも、1度ではなくアプリケーションやサービス、デバイスが新しくなる毎に検証をやり直す必要がある。
OS の拡張性と信頼性の両立
OSの拡張性と信頼性の観点から、OS は信頼性と拡張性を両立させることが重要であるといえる。
本研究室では、OS の信頼性の保証と拡張性を実現することを目標に Gears OS を設計中である。
par gotoかAPIの説明まで書く?
メタ計算
ノーマルレベルの計算
コンピュータの計算はプログラミング言語で計算される。
その部分をノーマルレベルの計算と呼ぶ。
メタレベルの計算
コードが実行される際の以下の部分が、メタレベルの計算という。
処理系の詳細や使用する資源
コードの仕様や型などの言語以外の部分
CbC
ノーマルレベルとメタレベルの計算を1つの言語で表現できる言語として、本研究室で設計した CbC(Continuation based C) を用いる。
CbC を用いることで、ノーマルレベルの計算の信頼性をメタレベルから保証できるようになる。
CbC は関数呼び出し時の暗黙の環境を使わずに、コードの単位を行き来できる引数付き goto 文を持つ C と互換性のある言語である。
CbC を用いてCode Gear と Data Gear、メタ構造を導入する。
Gears OS
CbC を用いて導入したCode Gear、Data Gear、メタ構造を用いて、検証された Gears OS を構築したい。
検証には 定理証明支援系である Agda を用いる。
Gears の記述をモジュール化するために Interface を導入した。
さらに並列処理の記述ように par goto 構文を導入する。
par goto の実行
本論文では Interface と par goto の実装を記述し、評価を行なった。
また、マルチ CPU と GPU 上での par goto 文の実行を確認した。
スライドの流れ
Gears OS におけるメタ計算
Interface
Context
Gears OS の並列処理
Synchronized Queue
並列構文
比較
今後の課題
Gears OS におけるメタ計算
Gaears OS の構成
Interface
Context
Gears OS の並列処理
Synchronized Queue
並列構文
比較
今後の課題