Mercurial > hg > Papers > 2022 > matac-thesis
view paper/figs/gearsDirectoryMM.md @ 25:b16f42511c3e
add appendix
author | matac42 <matac@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Thu, 27 Jan 2022 11:03:59 +0900 |
parents | |
children |
line wrap: on
line source
# GearsOSにおけるinodeを用いたFile systemの設計 ## 研究目的 ### GearsOSとは #### 信頼性と拡張性 #### ノーマルレベルメタレベルの分離 ##### 信頼性 ###### モデル検査 継続性 ###### 定理証明 agda ### ファイルシステム未実装 だがOSにおいて重要な機能である ### GearsOSのファイルシステム設計 基幹となるディレクトリシステム ファイル構造 API設計中 ### 取り入れたい要素 backup log ## CbC ### 簡単な説明 #### Cの下位言語 Cとの違いは #### 関数呼び出しの代わりに継続を用いる 継続とは #### 環境を持たない ##### 環境とは プログラムが実行される際、その出力に影響を与える変数やデータのこと #### 関数型言語のtail callスタイルにあたるプログラミング tail call スタイルとは 末尾再帰とも言う ### Code Gear 関数の代わり _codeで宣言を行う Input/Output DG ### Data Gear ### normal level user ### meta level kernel ### 継続性 #### goto jmp命令を用いる 引数付き 普通のgotoと違うところは #### 軽量継続 ##### 環境を持たない 必要なデータは毎回inputする ##### 関数呼び出し(call)せず、jmpする 処理はcallよりjmpが軽量 ## GearsOSについて ### GearsOSとは #### 信頼性の保証が目的 ##### モデル検査 ##### ノーマルレベルメタレベル切り分けがされている ### Context #### 全てのCG, DGを参照できるMetaDG normalレベルのCGから直接参照してしまうとメタレベルを切り分けた意味がなくなってしまう Metaなのでnormalから直接参照しない 必ずMetaCGから参照される CodeGearはDataGearの一種であるからMetaDGにMetaCGの参照を入れることが可能 CGとDGの接続に用いられる #### 従来OSのプロセスに相当 UserプロセスにあたるUser Contextが存在する #### 種類 ##### Kernel Context OS上の全てのContextを参照できる ##### User Context ユーザーごとに存在する ##### CPU Context 実行しているCPUやGPUごとに存在する #### Context参照の流れ CGがOutputDataGearへデータをoutput 次のCGのstubCodeGearへgoto stubCGはinputDataGear(前のCGのoutputDG)とOutputDGを参照 CGへgoto OutputDGへOutput 次のstubCodeGearへgoto ### stub ## Christie ### Christieとは #### 並列分散通信フレームワーク #### CbCとは異なるGearの概念 ##### DataGear atomic ##### CodeGear ### DataGearManager #### DGを管理している #### key value store CGMが利用するCGのkeyとputされたDG(value)の組み合わせをもつ #### Fileとして用いる #### LocalDGMとRemoteDGM LocalはCGM自身が所持するDGのプール RemoteはCGMが配線されている別のCGMがもつDGのプール ### topology manager #### 任意のtopologyを生成することができる topologyのノードはCGM ##### ノード同士の通信接続を管理 #### 分散プログラムを簡潔に書くために必要 #### 静的topology 任意のtopologyとノードの配線ができる dotファイルに記述し,TopologyManagerに参照させる dotファイルに記述したノードの数と参加ノードの数が一致した場合に動作する #### 動的topology 参加を表明したノードに対し,自動的に配線を行う ## UnixのFilesystem ### xv6 MITで教育用の目的で開発されたOS Unixの基本構造を持つ #### filesystem inode #### CbCによるxv6の書き換えが行われた ### inode #### Fileの属性情報 File Types Permissions UID GID File Size Time Stamps Number of link Location on hard disk #### inode number inodeを識別するための番号 ファイル名とinodeがペアになっている Mac OSではls -iで確認可能 ファイルシステム内で一意の番号 ファイル数の上限がここで決まってくる ## GearsFileSystemのディレクトリ ### Treeによるディレクトリ構造(図などでここ詳しく) #### RedBlackTree DataGearManagerを格納してFileSystemに ##### API put get remove #### 2つの木を用いる ##### inumとfile pointer key: inum value: file pointer ##### inumとfilename key: filename value: inum ### Unix Like mkdir cd #### ls filenameのlistを入れることでlsのリスト表示を実装できる ### 非破壊的編集によるBackUp #### バックアップ機能をOS自体に持たせたいという目的 #### GearsOSにおける永続データ ##### 木構造を用いる RedBlackTree ##### ルートノードから変更ノードまでのパスを全てコピー ##### コピーしたパス上に存在しないノードはコピー元の木構造と共有 ## ファイル構造 ### 構成 #### I/O stream ##### keyで参照 ##### 競合的アクセス ###### synchronizedQueue parusuさんの論文 ##### 3つのQueue ###### input データをinputしたい場合にこのQueueにput ###### output ####### データを取得したい場合にこのQueueからtake Synchronized QueueかSingleLinkedQueueを選べる ###### main データそのもの input -> main -> output のような繋がり ###### queueの中身は共通してelement ####### elementとは ###### これらのQueueはkeyとペアになっており,keyで参照することができる. #### logによるバージョン管理 git mercurial的 ## WordCount ### APIの設計に用いる ### 機能 #### ファイルの中身を読み取り 文字数 行数 #### Unix Fileに対して行う #### 中間報告の時の図 ### GearBox的に処理する 一木さん図5 File操作の仕組み #### GearBoxとは GearsOSの機能を表現する手法 状態遷移図とクラスダイアグラムを組み合わせたような図 ## 考察 ### 現状 #### 実装できた部分 RBTreeの動作test(予定) #### 課題 GearsOSへのtopologyManagerの実装 ディレクトリ構造の作成 ### 今後の課題 分散ファイルシステム #### 信頼性 GearsAgda モデル検査 #### shell #### path ### 信頼性について #### モデル検査 RedBlackTreeのモデル検査 #### 定理証明 ## 参考文献 ### 一木さん https://ie.u-ryukyu.ac.jp/~kono/papers/kono/2021/ikki-sigos-2021.pdf 一木 貴裕 ,河野 真治(琉球大学), 情報処理学会システムソフトウェアとオペレーティング・システム研究会(OS), May, 2021 ### アナグラさん http://www.cr.ie.u-ryukyu.ac.jp/hg/Papers/2021/anatofuz-master/raw-file/tip/paper/master_paper.pdf parusuさん ### xv6 https://pdos.csail.mit.edu/6.828/2018/xv6/book-rev11.pdf Papers/2020/anatofuz-sigos/ ## 付録 mindmap gearsDirectory source ## 章立て ### GearsOSにおける分散ファイルシステム(研究目的) ### CbC ### GearsOSについて ### Christie Gear概念 DataGearManager ### UnixのFilesystem inode ### GearsFileSystemのディレクトリ Treeによるディレクトリ構造(図などでここ詳しく) #### Unix Like inodeを用いたディレクトリエントリ 非破壊的編集によるBackUp ### ファイル構造 #### 構成 logによるバージョン管理 ### WordCount ### 考察 今後の課題 ### 参考文献