title: GearsOSの分散ファイルシステムの設計 author: Takahiro Ikki, Shinji Kono profile: 琉球大学理工学研究科情報工学専攻 lang: Japanese code-engine: coderay ## 継続を導入したGearsOS - GearsOSは関数遷移でなく、継続を導入したOS開発プロジェクトである - 関数遷移でなく、**CodeGear**と言う単位で記述する - 各CodeGearをjump命令で推移することで処理が実行される - OSの信頼性の向上を目指して開発されている - OSのプログラムは膨大なため検証が困難である - GearsOSはノーマルレベルとメタレベルの処理を分けて記述できる - メタレベルな処理を実行用や検証用なものに切り替えるができる - これによりユーザープログラムの検証を行う - 検証は定理支援証明系やモデル検査を用いる ## GearsOSのファイルシステム開発 - GearsOSは現段階で言語フレームワークとして実装されている - GearsOSの分散ファイルシステムを開発したい - ファイルシステムも同様にGear単位で操作したい - 煩雑な分散処理を簡潔に構成したい - 従来ではアプリケーションが持つ機能の一部を取り入れたい - Transaction - バックアップ - 分散フレームワークChrisiteの仕組みで問題の一部を解決をはかる ## 分散フレームワークChristie - Javaで書かれた分散フレームワークである - GearsOSと似たGearと言うプログラミング概念を持つ - 規格が決められたプロトコルを持たず、データのみの送受信で通信する - 自立分散を目指した設計となっている - 通信されるデータを意識しながら分散処理の記述が行える ## Christie likeな通信の分散ファイルシステムの提案 - Christieの仕組みを分散ファイルシステムに応用/検証を行いたい - 複数のstreamを持ち、通信を行うファイル構造 - APIは通信部分を含め3種類で構成される - プロトコルを用いないことで、分散ネットワーク内の通信の見通しを確保する - 簡潔な記述による分散処理構成 - APIやプロセスの正当性は将来的に定理支援証明系agdaで検証される ## GearsOSが持つOSレベルなTransactionの検証 - GearsOSはAPIレベルでTransactionな記述が行える - 従来のアプリケーションでは、ユーザーレベルで実装される - GearsOSのOSレベルで実装されるTransactionの実装検証を行いたい - OSのTransactionが保証されていれば、アプリケーションの信頼性の保証となる ## ポスター発表 - GearsOSのChristie likeなファイルシステムの設計と実装 - ファイル構造 - QueueとTreeを用いる - ファイルAPI - Put/Take/Peek - 複数streamを用いたファイル通信 - WordCount例題 - まとめと課題 ## この先保留 ## CodeGearとDataGear - CodeGear - 実行Codeの単位 - 入力/出力のDataGearを持つ - goto文(jump命令)で遷移する - 割り込みが行われない(atomicity) - DataGear - 変数にあたり、構造体の型を持つ ## CodeGearとDataGearの関係 - InputDataGearを受け取って、CodeGearが処理し、OutputDataGearを出力する - OutputDataGearは次のCodeGearのInputDataGearとなる - CodeGear/DataGearはContextというオブジェクトで管理される