# HG changeset patch # User matac42 # Date 1643082134 -32400 # Node ID f28541912af5659cd692227b1afd3c4b06b67d4a # Parent 5f9d95ec1b548916cd6a7733c9a91c05c4ad845e ... diff -r 5f9d95ec1b54 -r f28541912af5 paper/figs/inode.png Binary file paper/figs/inode.png has changed diff -r 5f9d95ec1b54 -r f28541912af5 paper/figs/inode.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/paper/figs/inode.svg Tue Jan 25 12:42:14 2022 +0900 @@ -0,0 +1,4 @@ + + + +
inode tree
inode tree
index tree
index tree
key: 2
value: 0
key: 2...
get key: 2
get key: 2
get key: 0
get key: 0
key: 0
value: inode0
key: 0...
inode0File TypePermission...
Text is not SVG - cannot display
\ No newline at end of file diff -r 5f9d95ec1b54 -r f28541912af5 paper/src/cd.cbc --- a/paper/src/cd.cbc Tue Jan 25 04:05:40 2022 +0900 +++ b/paper/src/cd.cbc Tue Jan 25 12:42:14 2022 +0900 @@ -1,4 +1,3 @@ -// 仮 __code cd2Child(struct GearsDirectoryImpl* gearsDirectory, struct Integer* name, __code next(...)) { struct FTree* cDirectory = new FTree(); cDirectory = gearsDirectory->currentDirectory; diff -r 5f9d95ec1b54 -r f28541912af5 paper/text/chapter2.tex --- a/paper/text/chapter2.tex Tue Jan 25 04:05:40 2022 +0900 +++ b/paper/text/chapter2.tex Tue Jan 25 12:42:14 2022 +0900 @@ -181,16 +181,24 @@ gearsOSにおけるinterfaceはCodeGearと各CodeGearが用いるI/O DataGearの集合を記述する. FileSystemTreeのinterfaceはfTreeとnodeのDataGearとput,get,remove,nextのCodeGearを持つ. FileSystemTreeの実体はRedBlackTreeであり,put,get,removeはRedBlackTreeの操作を行うためのCodeGearである. -nextは遷移先のCodeGear +nextは遷移先のCodeGearを参照するために用いる. \lstinputlisting[caption=FTreeのinterface,label=src:ftree]{src/FTree.h} - \section{Treeによるdirectory構造} ディレクトリ構造は2つのRedBlackTreeで実装する. 1つ目はinode numberとfileのポインタのペアを持つ木である. -inode numberをkey,file pointerをvalueとして持つためinode numberからfile pointerを検索するために用いる. +inode numberをkey,inodeをvalueとして持つためinode numberからinodeを検索するために用いる. 2つ目はfilenameとinode numberのペアを持つ木である. filenameをkey, inode numberをvalueとして持つため,filenameからinode numberを検索するために用いる. +これはinodeをfilenameで検索するためのindex treeであるといえる. +図\ref{fig:inode}はindex treeを用いたinodeの検索の流れを表す. +\begin{figure}[h] + \begin{center} + \includegraphics[width=120mm]{figs/inode.png} + \end{center} + \caption{index treeを用いたinodeの検索の流れ} + \label{fig:inode} +\end{figure} \section{Unix Like な interface} ファイルやディレクトリの操作を行うinterfaceをUnix Likeに実装を行った. diff -r 5f9d95ec1b54 -r f28541912af5 paper/thesis.pdf Binary file paper/thesis.pdf has changed