changeset 31:a1abb0cd88cb

dir fig
author matac42 <matac@cr.ie.u-ryukyu.ac.jp>
date Thu, 18 Jan 2024 17:33:14 +0900
parents e80467e26ab1
children 02f0474a58c4
files Paper/fig/gears_dir.drawio Paper/fig/gears_dir.png Paper/master_paper.lol Paper/master_paper.pdf Paper/master_paper.tex
diffstat 5 files changed, 71 insertions(+), 34 deletions(-) [+]
line wrap: on
line diff
--- a/Paper/fig/gears_dir.drawio	Thu Jan 18 15:42:53 2024 +0900
+++ b/Paper/fig/gears_dir.drawio	Thu Jan 18 17:33:14 2024 +0900
@@ -1,47 +1,68 @@
 <mxfile host="65bd71144e">
     <diagram id="Ef-TLR0hB6FfywN_XlsA" name="Page-1">
-        <mxGraphModel dx="563" dy="477" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
+        <mxGraphModel dx="761" dy="602" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
             <root>
                 <mxCell id="0"/>
                 <mxCell id="1" parent="0"/>
                 <mxCell id="23" value="" style="rounded=1;whiteSpace=wrap;html=1;fillColor=none;" vertex="1" parent="1">
-                    <mxGeometry x="230" y="200" width="160" height="235" as="geometry"/>
+                    <mxGeometry x="230" y="220" width="160" height="235" as="geometry"/>
+                </mxCell>
+                <mxCell id="40" style="edgeStyle=orthogonalEdgeStyle;html=1;fontColor=#FFFFFF;endArrow=none;endFill=0;dashed=1;curved=1;" edge="1" parent="1" source="3" target="12">
+                    <mxGeometry relative="1" as="geometry">
+                        <Array as="points">
+                            <mxPoint x="220" y="290"/>
+                            <mxPoint x="220" y="270"/>
+                            <mxPoint x="313" y="270"/>
+                        </Array>
+                    </mxGeometry>
                 </mxCell>
                 <mxCell id="3" value="hoge.txt" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=30;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
-                    <mxGeometry x="60" y="240" width="140" height="60" as="geometry"/>
+                    <mxGeometry x="70" y="260" width="110" height="60" as="geometry"/>
                 </mxCell>
                 <mxCell id="4" value="i-node number: 0" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;" vertex="1" parent="3">
-                    <mxGeometry y="30" width="140" height="30" as="geometry"/>
+                    <mxGeometry y="30" width="110" height="30" as="geometry"/>
+                </mxCell>
+                <mxCell id="41" style="edgeStyle=orthogonalEdgeStyle;html=1;fontColor=#FFFFFF;endArrow=none;endFill=0;dashed=1;curved=1;" edge="1" parent="1" source="7" target="14">
+                    <mxGeometry relative="1" as="geometry"/>
                 </mxCell>
                 <mxCell id="7" value="piyo.txt" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=30;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
-                    <mxGeometry x="60" y="310" width="140" height="60" as="geometry"/>
+                    <mxGeometry x="70" y="330" width="110" height="60" as="geometry"/>
                 </mxCell>
                 <mxCell id="8" value="i-node number: 1" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;" vertex="1" parent="7">
-                    <mxGeometry y="30" width="140" height="30" as="geometry"/>
-                </mxCell>
-                <mxCell id="9" value="huga.txt" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=30;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
-                    <mxGeometry x="60" y="380" width="140" height="60" as="geometry"/>
+                    <mxGeometry y="30" width="110" height="30" as="geometry"/>
                 </mxCell>
-                <mxCell id="10" value="i-node number: 2" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;" vertex="1" parent="9">
-                    <mxGeometry y="30" width="140" height="30" as="geometry"/>
+                <mxCell id="42" style="edgeStyle=orthogonalEdgeStyle;html=1;entryX=0.98;entryY=0.702;entryDx=0;entryDy=0;entryPerimeter=0;fontColor=#FFFFFF;endArrow=none;endFill=0;dashed=1;curved=1;" edge="1" parent="1" source="9" target="13">
+                    <mxGeometry relative="1" as="geometry">
+                        <Array as="points">
+                            <mxPoint x="220" y="430"/>
+                            <mxPoint x="220" y="360"/>
+                            <mxPoint x="343" y="360"/>
+                        </Array>
+                    </mxGeometry>
                 </mxCell>
-                <mxCell id="11" value="ls huga.txt" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
-                    <mxGeometry x="60" y="190" width="60" height="30" as="geometry"/>
+                <mxCell id="9" value="&lt;font color=&quot;#ff8000&quot;&gt;huga.txt&lt;/font&gt;" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=30;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+                    <mxGeometry x="70" y="400" width="110" height="60" as="geometry"/>
+                </mxCell>
+                <mxCell id="10" value="i-node number: &lt;font color=&quot;#ff8000&quot;&gt;2&lt;/font&gt;" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;" vertex="1" parent="9">
+                    <mxGeometry y="30" width="110" height="30" as="geometry"/>
+                </mxCell>
+                <mxCell id="11" value="$ ls huga.txt" style="text;html=1;strokeColor=none;fillColor=#000000;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=1;fontColor=#FFFFFF;perimeterSpacing=1;" vertex="1" parent="1">
+                    <mxGeometry x="70" y="210" width="80" height="30" as="geometry"/>
                 </mxCell>
                 <mxCell id="12" value="" style="shape=waypoint;sketch=0;fillStyle=solid;size=6;pointerEvents=1;points=[];fillColor=none;resizable=0;rotatable=0;perimeter=centerPerimeter;snapToPoint=1;" vertex="1" parent="1">
-                    <mxGeometry x="302.5" y="265" width="20" height="20" as="geometry"/>
+                    <mxGeometry x="302.5" y="285" width="20" height="20" as="geometry"/>
                 </mxCell>
                 <mxCell id="16" style="edgeStyle=none;html=1;entryX=0.777;entryY=1.079;entryDx=0;entryDy=0;entryPerimeter=0;endArrow=none;endFill=0;" edge="1" parent="1" source="13" target="12">
                     <mxGeometry relative="1" as="geometry"/>
                 </mxCell>
                 <mxCell id="13" value="" style="shape=waypoint;sketch=0;fillStyle=solid;size=6;pointerEvents=1;points=[];fillColor=none;resizable=0;rotatable=0;perimeter=centerPerimeter;snapToPoint=1;" vertex="1" parent="1">
-                    <mxGeometry x="332.5" y="305" width="20" height="20" as="geometry"/>
+                    <mxGeometry x="332.5" y="325" width="20" height="20" as="geometry"/>
                 </mxCell>
                 <mxCell id="15" style="edgeStyle=none;html=1;endArrow=none;endFill=0;" edge="1" parent="1" source="14" target="12">
                     <mxGeometry relative="1" as="geometry"/>
                 </mxCell>
                 <mxCell id="14" value="" style="shape=waypoint;sketch=0;fillStyle=solid;size=6;pointerEvents=1;points=[];fillColor=none;resizable=0;rotatable=0;perimeter=centerPerimeter;snapToPoint=1;" vertex="1" parent="1">
-                    <mxGeometry x="272.5" y="305" width="20" height="20" as="geometry"/>
+                    <mxGeometry x="272.5" y="325" width="20" height="20" as="geometry"/>
                 </mxCell>
                 <mxCell id="21" style="edgeStyle=none;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=1;entryY=0;entryDx=0;entryDy=0;endArrow=none;endFill=0;" edge="1" parent="1" source="17" target="19">
                     <mxGeometry relative="1" as="geometry"/>
@@ -50,25 +71,28 @@
                     <mxGeometry relative="1" as="geometry"/>
                 </mxCell>
                 <mxCell id="17" value="0" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" vertex="1" parent="1">
-                    <mxGeometry x="302.5" y="345" width="20" height="20" as="geometry"/>
+                    <mxGeometry x="302.5" y="380" width="20" height="20" as="geometry"/>
                 </mxCell>
-                <mxCell id="18" value="2" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" vertex="1" parent="1">
-                    <mxGeometry x="332.5" y="385" width="20" height="20" as="geometry"/>
+                <mxCell id="43" style="edgeStyle=orthogonalEdgeStyle;curved=1;html=1;dashed=1;fontColor=#FFFFFF;endArrow=none;endFill=0;" edge="1" parent="1" source="18" target="27">
+                    <mxGeometry relative="1" as="geometry"/>
+                </mxCell>
+                <mxCell id="18" value="&lt;font color=&quot;#ff8000&quot;&gt;2&lt;/font&gt;" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" vertex="1" parent="1">
+                    <mxGeometry x="332.5" y="420" width="20" height="20" as="geometry"/>
                 </mxCell>
                 <mxCell id="19" value="1" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" vertex="1" parent="1">
-                    <mxGeometry x="272.5" y="385" width="20" height="20" as="geometry"/>
+                    <mxGeometry x="272.5" y="420" width="20" height="20" as="geometry"/>
                 </mxCell>
                 <mxCell id="24" value="Index tree" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
-                    <mxGeometry x="252.5" y="250" width="60" height="30" as="geometry"/>
+                    <mxGeometry x="322.5" y="275" width="60" height="30" as="geometry"/>
                 </mxCell>
                 <mxCell id="25" value="i-node tree" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
-                    <mxGeometry x="247.5" y="320" width="70" height="30" as="geometry"/>
+                    <mxGeometry x="320" y="360" width="70" height="30" as="geometry"/>
                 </mxCell>
                 <mxCell id="26" value="Non-destructive RedBlackTree" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
-                    <mxGeometry x="255" y="200" width="110" height="30" as="geometry"/>
+                    <mxGeometry x="255" y="220" width="110" height="30" as="geometry"/>
                 </mxCell>
                 <mxCell id="27" value="2" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=30;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;fillColor=none;" vertex="1" parent="1">
-                    <mxGeometry x="240" y="440" width="140" height="120" as="geometry">
+                    <mxGeometry x="240" y="480" width="140" height="120" as="geometry">
                         <mxRectangle x="430" y="270" width="50" height="30" as="alternateBounds"/>
                     </mxGeometry>
                 </mxCell>
@@ -82,25 +106,28 @@
                     <mxGeometry y="90" width="140" height="30" as="geometry"/>
                 </mxCell>
                 <mxCell id="33" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=none;strokeWidth=2;" vertex="1" parent="1">
-                    <mxGeometry x="420" y="200" width="120" height="360" as="geometry"/>
+                    <mxGeometry x="440" y="280" width="120" height="320" as="geometry"/>
                 </mxCell>
                 <mxCell id="34" value="huga.txt data" style="rounded=0;whiteSpace=wrap;html=1;fillColor=none;verticalAlign=top;" vertex="1" parent="1">
-                    <mxGeometry x="420" y="440" width="120" height="30" as="geometry"/>
+                    <mxGeometry x="440" y="460" width="120" height="30" as="geometry"/>
                 </mxCell>
-                <mxCell id="35" style="edgeStyle=none;html=1;entryX=0;entryY=0;entryDx=0;entryDy=0;endArrow=classicThin;endFill=1;" edge="1" parent="1" source="32" target="34">
+                <mxCell id="35" style="edgeStyle=none;html=1;entryX=0;entryY=0;entryDx=0;entryDy=0;endArrow=classicThin;endFill=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="32" target="34">
                     <mxGeometry relative="1" as="geometry">
                         <Array as="points">
-                            <mxPoint x="400" y="550"/>
-                            <mxPoint x="400" y="480"/>
-                            <mxPoint x="400" y="440"/>
+                            <mxPoint x="410" y="585"/>
+                            <mxPoint x="410" y="530"/>
+                            <mxPoint x="410" y="460"/>
                         </Array>
                     </mxGeometry>
                 </mxCell>
                 <mxCell id="36" value="hoge.txt" style="rounded=0;whiteSpace=wrap;html=1;fillColor=none;verticalAlign=top;" vertex="1" parent="1">
-                    <mxGeometry x="420" y="240" width="120" height="60" as="geometry"/>
+                    <mxGeometry x="440" y="300" width="120" height="60" as="geometry"/>
                 </mxCell>
                 <mxCell id="37" value="piyo.txt" style="rounded=0;whiteSpace=wrap;html=1;fillColor=none;verticalAlign=top;" vertex="1" parent="1">
-                    <mxGeometry x="420" y="320" width="120" height="30" as="geometry"/>
+                    <mxGeometry x="440" y="375" width="120" height="30" as="geometry"/>
+                </mxCell>
+                <mxCell id="44" value="Disk (or Memory)" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;strokeWidth=2;fontColor=#000000;labelBackgroundColor=none;" vertex="1" parent="1">
+                    <mxGeometry x="440" y="250" width="100" height="30" as="geometry"/>
                 </mxCell>
             </root>
         </mxGraphModel>
Binary file Paper/fig/gears_dir.png has changed
--- a/Paper/master_paper.lol	Thu Jan 18 15:42:53 2024 +0900
+++ b/Paper/master_paper.lol	Thu Jan 18 17:33:14 2024 +0900
@@ -4,5 +4,5 @@
 \contentsline {lstlisting}{\numberline {3.3}Queueのインターフェース}{13}{}%
 \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}{}%
+\contentsline {lstlisting}{\numberline {6.1}CopyRedBlackTreeの実装}{27}{}%
+\contentsline {lstlisting}{\numberline {6.2}CopyRedBlackTreeのアルゴリズム}{29}{}%
Binary file Paper/master_paper.pdf has changed
--- a/Paper/master_paper.tex	Thu Jan 18 15:42:53 2024 +0900
+++ b/Paper/master_paper.tex	Thu Jan 18 17:33:14 2024 +0900
@@ -415,7 +415,17 @@
 GearsFileSystemではi-nodeをi-node numberがkey,
 i-nodeでのファイル属性情報をvalueであるノードを持つinode treeをRedBlackTreeで表現している.
 また,ファイル名からi-node numberを検索するためのindex treeも同じRedBlackTreeで表現している.
+データ構造にRedBlackTreeのみを用いているのは,
 ls,cd,mkdirといった,ディレクトリ操作を行うためのUnix Likeなユーザーインターフェースをもつ.
+図\ref{fig:GearsDir}にGears Directoryの処理の例を示す.
+
+\begin{figure}[ht]
+  \begin{center}
+      \includegraphics[width=160mm]{fig/gears_dir.png}
+  \end{center}
+  \caption{i-nodeを用いたディレクトリシステムの処理の流れ}
+  \label{fig:GearsDir}
+\end{figure}
 
 \section{DataGearManagerによる分散ファイルシステム}
 \section{非破壊RedBlackTreeによる構成}