Mercurial > hg > Papers > 2022 > matac-thesis
changeset 22:078181f08214
...
author | matac42 <matac@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Thu, 27 Jan 2022 00:49:14 +0900 |
parents | 14faefbdd1b5 |
children | 21e1d4cec2d3 |
files | paper/text/chapter2.tex paper/thesis.pdf |
diffstat | 2 files changed, 16 insertions(+), 13 deletions(-) [+] |
line wrap: on
line diff
--- a/paper/text/chapter2.tex Wed Jan 26 23:58:28 2022 +0900 +++ b/paper/text/chapter2.tex Thu Jan 27 00:49:14 2022 +0900 @@ -169,7 +169,7 @@ \end{center} \end{table} -\chapter{GearsFileSystemのdirectory} +\chapter{GearsFileSystemにおけるdirectoryの構成} 当研究室ではxv6のCbCでの実装を行なっているが,今回はxv6のルーチンをCbCで書き換えるのではなく GearsOSへUnixのFile systemの仕組みを取り入れるアプローチをとる. ファイルシステムを大まかにディレクトリシステムとファイルの二つに分けて考える. @@ -245,15 +245,15 @@ getしたnode\verb|->|valueに書き換える. \lstinputlisting[caption=cdのCodeGear,label=src:cd]{src/cd.cbc} -\section{非破壊的編集によるBackup} -GearsOSにおける永続データは非破壊的な編集を行う木構造を用いて保存される. +\section{GearsDirectoryの非破壊的編集によるバックアップ} +GearsOSにおける永続データは非破壊的な編集を行う木構造を用いて保存する. 図\ref{fig:TreeEdit}は非破壊的編集を木構造に対し行う様子である. 赤で示されたノード6をAに編集する場合,まずルートノードから編集ノードまでのパスを全てコピーする. コピーしたパス上に存在しないノードは,コピー元の木構造と共有する. それにより,編集後の木構造の赤のルートノードから探索を行う場合は編集されたAのノードが見え, 黒のルートノードから探索を行う場合は編集前の6のノードを見ることができる. -ファイルシステムを非破壊的な木構造の編集を用いて実装することにより, -標準でバックアップの機能を搭載することを目指している. +ディレクトリシステムを非破壊的な木構造の編集を用いて実装することにより, +ディレクトリシステム自体にバックアップの機能を搭載することが可能であると考える. \begin{figure}[h] \begin{center} @@ -263,20 +263,23 @@ \label{fig:TreeEdit} \end{figure} -\chapter{File構造} -ファイルシステムはディレクトリ構造の他にファイル構造を持つ. -ファイル構造に関して -GearsOSにおけるファイル構造を説明する. +\chapter{GearsFileSystemにおけるFileの構成} +ファイルシステムはディレクトリの構成だけでなく,ファイルの構成についても考える必要がある. +本研究と並行する形で一木貴裕による分散ファイルシステムの設計が行われており, +ファイルの構成に関しても実装,検討されている. +GearsOSにおけるファイル構成を説明する. \section{I/O Stream} ファイルのInput/Output Streamは競合的なアクセスに対応するため,3つのSynchronizedQueueを用いる. -それぞれをinputQueue, outputQueue, mainQueueと呼ぶ. -データをinputしたい場合inputQueueへputを行い,取得したい場合outputQueueからgetを行う. -mainQueueはデータそのものであり,inputQueueからmainQueue,mainQueueからoutputQueueへデータが流れるように接続される. +それぞれをInputQueue, OutputQueue, mainQueueと呼ぶ. +データをinputしたい場合InputQueueへputを行い,取得したい場合OutputQueueからgetを行う. +mainQueueはデータそのものであり,InputQueueからmainQueue,mainQueueからOutputQueueへデータが流れるように接続される. 3つのQueueを通過するデータはelementと呼ばれる. -\section{logによるバージョン管理} +\section{logによるファイルのバックアップ} +ディレクトリに関しては非破壊的なTree編集を用いることで,バックアップを行うことを考えたが +ファイルに関してはelement \chapter{WordCount}