# HG changeset patch # User matac42 # Date 1705404272 -32400 # Node ID 4b5c140233f3434edc06f6ab968b7e2b0c9e7cf6 # Parent f4b076177b9ace84e3b2eae1fcc309d49fd7a4fb ... diff -r f4b076177b9a -r 4b5c140233f3 Paper/master_paper.lol --- a/Paper/master_paper.lol Tue Jan 16 19:31:10 2024 +0900 +++ b/Paper/master_paper.lol Tue Jan 16 20:24:32 2024 +0900 @@ -2,7 +2,7 @@ \contentsline {lstlisting}{\numberline {3.1}Queueのインターフェース}{12}{}% \contentsline {lstlisting}{\numberline {3.2}Interfaceの呼び出し}{13}{}% \contentsline {lstlisting}{\numberline {3.3}Queueのインターフェース}{13}{}% -\contentsline {lstlisting}{\numberline {3.4}RedBlackTreeの実装}{15}{}% -\contentsline {lstlisting}{\numberline {3.5}Treeの仕様}{15}{}% -\contentsline {lstlisting}{\numberline {6.1}CopyRedBlackTreeの実装}{25}{}% -\contentsline {lstlisting}{\numberline {6.2}CopyRedBlackTreeのアルゴリズム}{27}{}% +\contentsline {lstlisting}{\numberline {3.4}Treeの仕様}{15}{}% +\contentsline {lstlisting}{\numberline {3.5}RedBlackTreeの実装}{15}{}% +\contentsline {lstlisting}{\numberline {6.1}CopyRedBlackTreeの実装}{26}{}% +\contentsline {lstlisting}{\numberline {6.2}CopyRedBlackTreeのアルゴリズム}{28}{}% diff -r f4b076177b9a -r 4b5c140233f3 Paper/master_paper.pdf Binary file Paper/master_paper.pdf has changed diff -r f4b076177b9a -r 4b5c140233f3 Paper/master_paper.tex --- a/Paper/master_paper.tex Tue Jan 16 19:31:10 2024 +0900 +++ b/Paper/master_paper.tex Tue Jan 16 20:24:32 2024 +0900 @@ -335,7 +335,7 @@ そのためこのnewはC言語のnewとは違うGearsOS独自の記述であり, 実際にはメタレベルにアロケートを行う処理を挿入している. 10〜16行目ではSingleLinkedQueueで使用するCodeGearとDataGearを -queueのメソッドとしてセットしている. +queueのメソッドとして初期化している. CodeGearはQueueの仕様で記述したCodeGearと一致している. \texttt{C\_}で始まる記述にはenum CodeにおけるCodeGearの整数を格納している. CodeGearはenum Codeで整数と対応付けられており, @@ -346,15 +346,24 @@ \section{GearsOSのRedBlackTree} -RedBlackTreeはGearsFileSystemで用いられる重要な構造の1つであり, -ディレクトリ構造を表現するために使用されている. -GearsOSにおけるRedBlackTreeの実装の記述の一部をソースコード\ref{src:RedBlackTreeImpl.cbc}, -Treeの仕様記述をソースコード\ref{src:Tree.h}に示す. +Red-black tree(赤黒木)は二分探索木の一種で, +ノードに赤か黒の色を付けて色に関するいくつかの条件をもつデータ構造である. +木に対する探索,挿入,削除操作における最悪計算量がO(log n)であるため, +赤黒木は大規模なデータを扱う際に効率的なデータ構造となる. -\lstinputlisting[label=src:RedBlackTreeImpl.cbc, caption=RedBlackTreeの実装]{src/RedBlackTreeImpl.cbc} +GearsOSのRedBlackTreeはGearsFileSystemで用いられる重要な構造の1つであり, +ディレクトリ構造を表現するために使用されている. +GearsOSにおけるTreeの仕様記述をソースコード\ref{src:Tree.h}に, +RedBlackTreeの実装の記述の一部をソースコード\ref{src:RedBlackTreeImpl.cbc}に示す. + \lstinputlisting[label=src:Tree.h, caption=Treeの仕様]{src/Tree.h} +\lstinputlisting[label=src:RedBlackTreeImpl.cbc, caption=RedBlackTreeの実装]{src/RedBlackTreeImpl.cbc} -4行目からRedBlackTreeはTreeの仕様の実装であることがわかる. +ソースコード\ref{src:Tree.h}より,Treeはtree DataGearと +put,get,remove,nextの4つのCodeGearを持っていることがわかる. +ソースコード\ref{src:RedBlackTreeImpl.cbc}の4行目から, +RedBlackTreeはTreeの仕様の実装であることがわかり, +13〜16行目で仕様に対応するCodeGearを初期化している. \chapter{GearsOSのファイルシステム} \section{DataGearManagerによる分散ファイルシステム} diff -r f4b076177b9a -r 4b5c140233f3 Paper/src/Tree.h --- a/Paper/src/Tree.h Tue Jan 16 19:31:10 2024 +0900 +++ b/Paper/src/Tree.h Tue Jan 16 20:24:32 2024 +0900 @@ -7,7 +7,6 @@ __code put(Impl* tree, Type* node, __code next(...)); __code get(Impl* tree, Type* node, __code next(...)); __code remove(Impl* tree, Type* node, __code next(...)); - __code copy(Impl* tree, Type* node, __code next(...)); // __code clearRedBlackTree(); __code next(...); } Tree; \ No newline at end of file diff -r f4b076177b9a -r 4b5c140233f3 mindmaps/gears_fs_db.mm --- a/mindmaps/gears_fs_db.mm Tue Jan 16 19:31:10 2024 +0900 +++ b/mindmaps/gears_fs_db.mm Tue Jan 16 20:24:32 2024 +0900 @@ -326,6 +326,29 @@ + + + + + + + + + + + + + + + + + + + + + + + @@ -439,7 +462,7 @@ - + @@ -461,6 +484,8 @@ + + @@ -476,16 +501,10 @@ + - - - - - - - - +