Mercurial > hg > Papers > 2024 > matac-master
changeset 70:3c3fa9356d61
journal
author | matac42 <matac@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Mon, 12 Feb 2024 15:13:00 +0900 |
parents | 1c462e445437 |
children | 8e84b98cc6c8 |
files | Paper/master_paper.lol Paper/master_paper.pdf Paper/master_paper.tex TODO.md |
diffstat | 4 files changed, 26 insertions(+), 14 deletions(-) [+] |
line wrap: on
line diff
--- a/Paper/master_paper.lol Mon Feb 12 11:51:36 2024 +0900 +++ b/Paper/master_paper.lol Mon Feb 12 15:13:00 2024 +0900 @@ -8,9 +8,9 @@ \contentsline {lstlisting}{\numberline {3.7}RedBlackTreeの実装の型定義}{16}{}% \contentsline {lstlisting}{\numberline {3.8}Nodeの型定義}{17}{}% \contentsline {lstlisting}{\numberline {3.9}ALLOCATEの定義}{18}{}% -\contentsline {lstlisting}{\numberline {5.1}実行するCodeGearの切り替えのコード}{30}{}% -\contentsline {lstlisting}{\numberline {6.1}Tree Interfaceの使用定義(Copy追加後)}{33}{}% -\contentsline {lstlisting}{\numberline {6.2}RedBlackTreeの実装の型定義(Copy追加後)}{33}{}% -\contentsline {lstlisting}{\numberline {6.3}leftDown1 CodeGear(アロケーション部分の例)}{35}{}% -\contentsline {lstlisting}{\numberline {6.4}ビルド時に生成されたALLOCATE部分}{36}{}% -\contentsline {lstlisting}{\numberline {6.5}swap2 CodeGear(木の入れ替え処理部分)}{37}{}% +\contentsline {lstlisting}{\numberline {5.1}実行するCodeGearの切り替えのコード}{29}{}% +\contentsline {lstlisting}{\numberline {6.1}Tree Interfaceの使用定義(Copy追加後)}{34}{}% +\contentsline {lstlisting}{\numberline {6.2}RedBlackTreeの実装の型定義(Copy追加後)}{34}{}% +\contentsline {lstlisting}{\numberline {6.3}leftDown1 CodeGear(アロケーション部分の例)}{36}{}% +\contentsline {lstlisting}{\numberline {6.4}ビルド時に生成されたALLOCATE部分}{37}{}% +\contentsline {lstlisting}{\numberline {6.5}swap2 CodeGear(木の入れ替え処理部分)}{38}{}%
--- a/Paper/master_paper.tex Mon Feb 12 11:51:36 2024 +0900 +++ b/Paper/master_paper.tex Mon Feb 12 15:13:00 2024 +0900 @@ -648,13 +648,18 @@ 1つのノードが失われた際にデータを保護する多重性, 複数のコピーを調停するコミット機構などが挙げられる. -現状のGearsOSには分散ファイルシステムの通信機能やUnix Likeな -インターフェースを持つi-nodeファイルシステムの基本機能は存在するものの, -多重性やメモリ管理などの信頼性を確保するための機能が存在しない. +システムクラッシュがあった場合にデータを正しい状態に保つ機能として, +ファイルシステムにおいてはジャーナルログを使用する方法がある\cite{10.1145/3477132.3483581}. +ジャーナルログはトランザクション中のメタデータ変更の記録と, +トランザクションのコミットを記録することでクラッシュから安全に復旧することができる. データの多重度を確保するための一般的な手法として, データのバックアップやシステム自体のレプリケーションをすることが挙げられる. メモリ管理の機能としてはガーベージコレクションが挙げられる. ガベージコレクションは通常プログラム言語のレイヤで行われる. + +現状のGearsOSには分散ファイルシステムの通信機能やUnix Likeな +インターフェースを持つi-nodeファイルシステムの基本機能は存在するものの, +多重性やメモリ管理などの信頼性を確保するための機能が存在しない. これらの機能をファイルシステムのレベルで実装することで, より堅牢なファイルシステムを構築したい. @@ -1072,6 +1077,15 @@ また,GearsOS全体をGCすることも考えられる. レプリケーションは別ノードでのコピーの実行やレプリカとの通信プロトコルを定義する必要があるだろう. +\section{その他ファイルシステムの信頼性に関する機能} + +今回は木のコピーによる多重度の確保を主に扱った. +ファイルシステムの信頼性に関する追加機能は +多重度以外にも,persistencyやatomic writeに関するものがある, +Journaling Filesystemのようにジャーナルログとトランザクションの機構を取り入れたい. +persistencyはコピーでSSDなどのpersistentなデバイスに木を書き込むことが考えられる. +また,コピーに関しても複数のコピーを調停するコミット機構が必要である. + % %謝辞 \input{chapter/thanks.tex}
--- a/TODO.md Mon Feb 12 11:51:36 2024 +0900 +++ b/TODO.md Mon Feb 12 15:13:00 2024 +0900 @@ -41,12 +41,10 @@ - [x] CbCの記述例(exit code) - [x] 「そうなってしまっている」みたいな書き方を避ける -文献整理(4章を書くためにも......) - - [x] 関連研究にjungle - [x] 参照されているか確認する - [x] 信頼性とどうつながるかを言及する -- [ ] LFSやFilesystem Fragmentationへ言及する - - Scale and Performance in a Filesystem Semi-Microkernel +- [x] LFSへ言及する +- [x] 今後の課題追加 - [ ] GearsAgdaのことを書く(何を書く?) -- [ ] 今後の課題追加 +- [ ] Filesystem Fragmentation