Mercurial > hg > Papers > 2022 > matac-thesis
changeset 16:37f2e50bdcf1
...
author | matac42 <matac@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 25 Jan 2022 14:38:22 +0900 |
parents | 7027403d8e90 |
children | 80c934004af4 |
files | paper/text/chapter2.tex paper/thesis.pdf |
diffstat | 2 files changed, 13 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/paper/text/chapter2.tex Tue Jan 25 13:03:30 2022 +0900 +++ b/paper/text/chapter2.tex Tue Jan 25 14:38:22 2022 +0900 @@ -174,9 +174,10 @@ GearsOSへUnixのFile systemの仕組みを取り入れるアプローチをとる. ファイルシステムを大まかにディレクトリシステムとファイルの二つに分けて考える. ディレクトリシステムはUnixのinodeの仕組みを取り入れる. +今回作成した,GearsOSのディレクトリシステムであるgearsDirectoryについて説明する. \section{FileSystemTree} -FileSystemTreeは今回directory構造,inodeの仕組みを取り入れる際に用いるTreeである. +FileSystemTreeはdirectory構造,inodeの仕組みを取り入れる際に用いるTreeである. ソースコード\ref{src:ftree}はFileSystemTreeのinterfaceである. gearsOSにおけるinterfaceはCodeGearと各CodeGearが用いるI/O DataGearの集合を記述する. FileSystemTreeのinterfaceはfTreeとnodeのDataGearとput,get,remove,nextのCodeGearを持つ. @@ -191,7 +192,13 @@ 2つ目はfilenameとinode numberのペアを持つ木である. filenameをkey, inode numberをvalueとして持つため,filenameからinode numberを検索するために用いる. これはinodeをfilenameで検索するためのindex treeであるといえる. + 図\ref{fig:inode}はindex treeを用いたinodeの検索の流れを表す. +まずindex treeからkeyが2のnodeをgetする. +keyが2のnodeのvalueよりinode numberが0であることがわかる. +次に取得したinode numberをkeyとしてinode treeを検索する. +keyが0のnodeはinode0を持っていて,inodeを参照することができる. + \begin{figure}[h] \begin{center} \includegraphics[width=120mm]{figs/inode.png} @@ -205,7 +212,12 @@ 実装を行ったmkdir, ls, cdを説明する. \subsection{mkdir} +Unixにおいてmkdirは新しくdirectoryを作成するコマンドである. +GearsDirectoryのmkdirはindex treeとinode treeにnodeをputすることでdirectoryを作成する. ソースコード\ref{src:mkdir}はmkdirのCodeGearである. +まず1行目の\emph{\_\_code mkdir}ではinode treeへinodeのputが行われ,\emph{\_\_code mkdir2}へ遷移する. +次に,11行目の\emph{\_\_code mkdir2}ではindex treeへkeyがfilenameのnodeのputが行われ,nextのCodeGearへ遷移する. +FileSystemTreeのputを2回行うため,mkdirは\emph{\_\_code mkdir}と\emph{\_\_code mkdir2}の2つのCodeGearで \lstinputlisting[caption=mkdirのCodeGear,label=src:mkdir]{src/mkdir.cbc} \subsection{ls}