changeset 15:e1326b7826e6

...
author matac42 <matac@cr.ie.u-ryukyu.ac.jp>
date Mon, 08 Jan 2024 15:43:27 +0900
parents 55c06ff63041
children 110cf95f4106
files Paper/master_paper.pdf Paper/master_paper.tex
diffstat 2 files changed, 28 insertions(+), 12 deletions(-) [+]
line wrap: on
line diff
Binary file Paper/master_paper.pdf has changed
--- a/Paper/master_paper.tex	Mon Jan 08 14:40:44 2024 +0900
+++ b/Paper/master_paper.tex	Mon Jan 08 15:43:27 2024 +0900
@@ -286,6 +286,17 @@
 \section{DataGearManagerによる分散ファイルシステム}
 \section{i-nodeを用いたファイルシステム}
 \section{非破壊RedBlackTreeによる構成}
+
+ディスク上とメモリ上でデータの構造は,RedBlackTreeに統一する.
+一般的に,ディスク上のデータ構造としてB-Treeが用いられることが多い.
+なぜならば,HDDを用いる場合はブロックへのアクセス回数を減らしデータアクセスの時間を短くするために,
+B-Treeのようなノードを複数持つことができる構造が効果的だからである.
+その点ではRedBlackTreeはB-Treeに劣る.
+しかしながら,SSDはランダムアクセスによってデータにアクセスするため,
+RedBlackTreeでなくB-Treeを用いる利点は少ないと考える.
+よって,ディスク上とメモリ上のデータ構造をRedBlackTreeに統一することが考えられる.
+そうすることによって,ディスク上とメモリ上のデータのやりとりは単純なコピーで実装できる.
+
 \section{RedBlackTreeのトランザクション}
 
 トランザクションはDBの重要な機能の一つである.
@@ -386,32 +397,37 @@
 データを書き込めたかどうかを判定するatomic write,
 1つのノードが失われた際にデータを保護する多重性,
 複数のコピーを調停するコミット機構などが挙げられる.
+
 現状のGearsOSには分散ファイルシステムの通信機能やUnix Likeな
 インターフェースを持つi-nodeファイルシステムの基本機能は存在するものの,
 多重性やメモリ管理などの信頼性を確保するための機能が存在しない.
 データの多重度を確保するための一般的な手法として,
 データのバックアップやシステム自体のレプリケーションをすることが挙げられる.
 メモリ管理の機能としてはガーベージコレクションが挙げられる.
-これらの機能を実装することでファイルシステムの信頼性を高めることが可能と考える.
+ガベージコレクションは通常プログラム言語のレイヤで行われる.
+これらの機能を実装することでファイルシステムの信頼性を高めたい.
 
 \section{GearsFileSystemのGC}
 
-GearsFileSystemにおいてデータは全てRedBlackTreeに格納する.
+GCのアルゴリズムは大きく分けてMark \& Sweep GC,Reference counting GC,
+Copying GCの3つの種類が存在する.
+
+CopyingGCはメモリ上のヒープ領域をFrom領域とTo領域に分割し,
+ルートから参照できるオブジェクトをFrom領域からTo領域にコピーすることで
+ガベージコレクションを行う.
+
+また,Rust言語のスマートポインタによるメモリ管理手法も存在する.
+
+GearsFileSystemのGCはCopyingGCを基本的なアルゴリズムとする.
+
+GearsFileSystemにおけるデータは全てRedBlackTreeに格納する.
 また,ディスク上とメモリ上のデータ構造は同一である.
+よって,RedBlackTreeの単なるコピーによってGCを行うことによって,
+データの透過性が確保され,単純なプログラムで実装することが可能と考える.
 
 
 \section{GearsFileSystemのレプリケーション}
 
-ディスク上とメモリ上でデータの構造は,RedBlackTreeに統一する.
-一般的に,ディスク上のデータ構造としてB-Treeが用いられることが多い.
-なぜならば,HDDを用いる場合はブロックへのアクセス回数を減らしデータアクセスの時間を短くするために,
-B-Treeのようなノードを複数持つことができる構造が効果的だからである.
-その点ではRedBlackTreeはB-Treeに劣る.
-しかしながら,SSDはランダムアクセスによってデータにアクセスするため,
-RedBlackTreeでなくB-Treeを用いる利点は少ないと考える.
-よって,ディスク上とメモリ上のデータ構造をRedBlackTreeに統一することが考えられる.
-そうすることによって,ディスク上とメモリ上のデータのやりとりは単純なコピーで実装できる.
-
 \chapter{CopyRedBlackTreeの実装}
 
 データのバックアップやレプリケーション,GCの機能を実装するためには,