Mercurial > hg > Papers > 2020 > menikon-thesis
changeset 11:53114bdcb0c3
tweak
author | menikon |
---|---|
date | Sun, 09 Feb 2020 19:53:00 +0900 |
parents | 40726bcd5272 |
children | 996a70147cb0 |
files | final_main/chapter1.tex final_main/chapter2.tex final_main/chapter3.tex final_main/chapter4.tex final_main/main.out final_main/main.pdf rewrite_xv6_FileSystem_in_CbC.mm |
diffstat | 7 files changed, 131 insertions(+), 36 deletions(-) [+] |
line wrap: on
line diff
--- a/final_main/chapter1.tex Sat Feb 08 21:05:19 2020 +0900 +++ b/final_main/chapter1.tex Sun Feb 09 19:53:00 2020 +0900 @@ -1,13 +1,6 @@ -\chapter{はじめに} -\label{chap:introduction} +\chapter{xv6 の OS の信頼性保証} +%\label{chap:introduction} \pagenumbering{arabic} %序論の目安としては1枚半ぐらい. %英語発表者は,最終予稿の「はじめに」の英訳などを載せてもいいかも. - -\section{背景と目的} - - -\section{論文の構成} - -%\section{Introduction}
--- a/final_main/chapter2.tex Sat Feb 08 21:05:19 2020 +0900 +++ b/final_main/chapter2.tex Sun Feb 09 19:53:00 2020 +0900 @@ -1,6 +1,6 @@ \chapter{Continuation based C} %\label{chap:concept} - +\section{Continuation based Cの概要} Continuation based C \cite{cbc} (以下CbC) は基本的な処理単位を CodeGear として定義し, CodeGea 間で遷移するようにプログラムを記述する C 言語と互換性のある当研究室で開発されたプログラミング言語である.図\ref{fig:codegear}はCodeGear間の継続する際の処理の流れを示している. \begin{figure}[ht]
--- a/final_main/chapter3.tex Sat Feb 08 21:05:19 2020 +0900 +++ b/final_main/chapter3.tex Sun Feb 09 19:53:00 2020 +0900 @@ -1,12 +1,14 @@ \chapter{GearsOS} -\label{chap:poordirection} - +%\label{chap:poordirection} +\section{GearsOS の概要} +Gears OS は CbC によって記述されており, CodeGear と DataGear の単位を用いて開発されている OS である. +Gears OS は 一連の実行が行われる際に使用される CodeGear と DataGear を全て持っている Context と呼ばれるものを持っている.Gears OS は CodeGear 間の継続などの際,常に context を持ち歩いており CodeGear と DataGear の参照が必要になる場合,この Context を通して参照される. \section{Context} context とは一連の実行が行われる際に使用される CodeGear と DataGear の集合である. 従来のスレッドやプロセスに対応する.Context は接続可能な CodeGear, Data Gear のリスト. Data Gear を確保するメモリ空間, 実行される Task への Code Gear 等を持っている. CodeGear が 別の CodeGear に遷移する際, 必ず context を参照し enum で定義された CodeGear の番号を指定し遷移する. ノーマルレベルで見た際の CodeGar,DataGer および context の関係を以下の図\ref{fig:cbc} に簡潔に示す. -\vspace{10mm} +%\vspace{10mm} \begin{figure}[ht] \begin{center} \includegraphics[width=100mm]{fig/context.pdf}
--- a/final_main/chapter4.tex Sat Feb 08 21:05:19 2020 +0900 +++ b/final_main/chapter4.tex Sun Feb 09 19:53:00 2020 +0900 @@ -1,5 +1,5 @@ \chapter{xv6} -\section{xv6 とは} +\section{xv6 の概要} xv6 \cite{xv6} とは MIT のオペレーティングコースの教育目的で2006年に開発されたオペレーティングシステムである. xv6 はオリジナルである v6 が非常に古い C 言語で書かれてい る為, ANSI-C に書き換えられ x86 に再実装された. xv6 は read や write などの systemcall, プロセス, 仮想メモリ, カーネルとユーザーの分離, 割り込み, ファイルシステムなど Unix の基本的な構造を持っている. 本研究で使われているのは ARM\cite{arm} 上で動作する Raspberry Pi 用に改良されたxv6を使用する. @@ -8,35 +8,69 @@ %どんなものか書く %processについて(軽く) - \section{xv6 のFileSystem構造} +xv6 の FileSystem は図\ref{fig:xv6filesystem} のように7つの階層によって構成されている. \begin{figure}[ht] \begin{center} \includegraphics[width=50mm]{fig/FileSystemLayout.pdf} \end{center} - \caption{xv6 の FileSystem } + \caption{xv6 の FileSystem 構造} \label{fig:xv6filesystem} \end{figure} +\begin{itemize} + \item File descriptor 階層 + Unixの資源はファイルとして表現され,コンソールのようなデバイスはもちろん,実際のファイルもファイルとして表現されている. + File descriptor 階層はこの + + \item Pathname 階層 + \item Directory 階層 + \item Inode 階層 + \item Logging 階層 + \item Bffer cache 階層 + \item Disk 階層 +\end{itemize} + \newpage -xv6 の FileSystem の構造を以下の図\ref{fig:filesystem}に示す. +xv6 の FileSystem の Disk の割り当てを以下の図\ref{fig:filesystem}に示す. \begin{figure}[ht] \begin{center} \includegraphics[width=150mm]{fig/xv6filesystemlayout.pdf} \end{center} - \caption{xv6 の FileSystem } + \caption{xv6 の FileSystem に関する Disk の割り当て} \label{fig:filesystem} \end{figure} \begin{itemize} \item boot sector + \\boot sectorを保持しているだけで FileSystem はこのブロックを使用することはない. + \item super block - \item inode + \\ブロックのファイルサイズやデータブロックの数, inodeの数, log 中のブロック数などが格納されている. + + \item inodes + \\inodeが格納されている. + \item block bitmap + \\block bitmap は使用しているブロックが記憶されている. + \item data blocks + \\block bitmap において使用可能であることが記録されており,ファイルやディレクトリが保持されている. + \item log + \\Logging 階層の log が格納されている. + \end{itemize} \section{FilleSystem の API} %関数や構造体などを解説しそのまま利用されているところをかく +\begin{itemize} + \item + \item + \item + \item + \item + \item + \item +\end{itemize}
--- a/final_main/main.out Sat Feb 08 21:05:19 2020 +0900 +++ b/final_main/main.out Sun Feb 09 19:53:00 2020 +0900 @@ -1,14 +1,14 @@ -\BOOKMARK [0][-]{chapter.1}{第1章 はじめに}{}% 1 -\BOOKMARK [1][-]{section.1.1}{1.1 背景と目的}{chapter.1}% 2 -\BOOKMARK [1][-]{section.1.2}{1.2 論文の構成}{chapter.1}% 3 -\BOOKMARK [0][-]{chapter.2}{第2章 Continuation based C}{}% 4 -\BOOKMARK [1][-]{section.2.1}{2.1 CodeGear}{chapter.2}% 5 -\BOOKMARK [1][-]{section.2.2}{2.2 DataGear}{chapter.2}% 6 -\BOOKMARK [0][-]{chapter.3}{第3章 GearsOS}{}% 7 -\BOOKMARK [1][-]{section.3.1}{3.1 Context}{chapter.3}% 8 -\BOOKMARK [1][-]{section.3.2}{3.2 inetrface}{chapter.3}% 9 +\BOOKMARK [0][-]{chapter.1}{第1章 xv6 の OS の信頼性保証}{}% 1 +\BOOKMARK [0][-]{chapter.2}{第2章 Continuation based C}{}% 2 +\BOOKMARK [1][-]{section.2.1}{2.1 Continuation based Cの概要}{chapter.2}% 3 +\BOOKMARK [1][-]{section.2.2}{2.2 CodeGear}{chapter.2}% 4 +\BOOKMARK [1][-]{section.2.3}{2.3 DataGear}{chapter.2}% 5 +\BOOKMARK [0][-]{chapter.3}{第3章 GearsOS}{}% 6 +\BOOKMARK [1][-]{section.3.1}{3.1 GearsOS の概要}{chapter.3}% 7 +\BOOKMARK [1][-]{section.3.2}{3.2 Context}{chapter.3}% 8 +\BOOKMARK [1][-]{section.3.3}{3.3 inetrface}{chapter.3}% 9 \BOOKMARK [0][-]{chapter.4}{第4章 xv6}{}% 10 -\BOOKMARK [1][-]{section.4.1}{4.1 xv6 とは}{chapter.4}% 11 +\BOOKMARK [1][-]{section.4.1}{4.1 xv6 の概要}{chapter.4}% 11 \BOOKMARK [1][-]{section.4.2}{4.2 xv6 のFileSystem構造}{chapter.4}% 12 \BOOKMARK [1][-]{section.4.3}{4.3 FilleSystem の API}{chapter.4}% 13 \BOOKMARK [0][-]{chapter.5}{第5章 CbCによるFileSystemの書き換え}{}% 14
--- a/rewrite_xv6_FileSystem_in_CbC.mm Sat Feb 08 21:05:19 2020 +0900 +++ b/rewrite_xv6_FileSystem_in_CbC.mm Sun Feb 09 19:53:00 2020 +0900 @@ -1,18 +1,33 @@ <map version="1.0.1"> <!-- To view this file, download free mind mapping software FreeMind from http://freemind.sourceforge.net --> -<node CREATED="1580705792958" ID="ID_713715640" MODIFIED="1580905809282" TEXT="CbCによるxv6のFileSystemの書き換え"> +<node CREATED="1580705792958" ID="ID_713715640" MODIFIED="1581234314803" TEXT="CbCによるxv6のFileSystemの書き換え"> +<font NAME="SansSerif" SIZE="28"/> +<node CREATED="1580705935086" ID="ID_1087880129" MODIFIED="1581241406309" POSITION="right" TEXT="xv6 の OS の信頼性保証"> <font NAME="SansSerif" SIZE="28"/> -<node CREATED="1580705935086" ID="ID_1087880129" MODIFIED="1580707101276" POSITION="right" TEXT="はじめに"> +<node CREATED="1581234961780" ID="ID_1811989795" MODIFIED="1581234991209" TEXT="なにが目標"> +<font NAME="SansSerif" SIZE="28"/> +</node> +<node CREATED="1581234993794" ID="ID_1799452367" MODIFIED="1581235010058" TEXT="そのためにどんな手法を取ったか"> <font NAME="SansSerif" SIZE="28"/> </node> -<node CREATED="1580706086552" HGAP="28" ID="ID_1047084563" MODIFIED="1580910955648" POSITION="right" TEXT="CbC" VSHIFT="-4"> +</node> +<node CREATED="1580706086552" HGAP="28" ID="ID_1047084563" MODIFIED="1581234914557" POSITION="right" TEXT="CbC" VSHIFT="-4"> +<font NAME="SansSerif" SIZE="28"/> +<node CREATED="1581234940720" ID="ID_1482299529" MODIFIED="1581235369451" TEXT="CbCの概要"> <font NAME="SansSerif" SIZE="28"/> -<node CREATED="1580706574106" ID="ID_1176002208" MODIFIED="1580910966349" TEXT="DataGearとCodeGear"> +</node> +<node CREATED="1580706574106" ID="ID_1176002208" MODIFIED="1581234935232" TEXT="CodeGear"> +<font NAME="SansSerif" SIZE="28"/> +</node> +<node CREATED="1581234915883" ID="ID_278085488" MODIFIED="1581234936960" TEXT="DataGear"> <font NAME="SansSerif" SIZE="28"/> </node> </node> <node CREATED="1580705994831" ID="ID_147343293" MODIFIED="1580905809875" POSITION="right" TEXT="GearsOS"> <font NAME="SansSerif" SIZE="28"/> +<node CREATED="1581234866017" ID="ID_1191387789" MODIFIED="1581235375582" TEXT="GearsOSの概要"> +<font NAME="SansSerif" SIZE="28"/> +</node> <node CREATED="1580706095224" ID="ID_239247115" MODIFIED="1580707101276" TEXT="Context"> <font NAME="SansSerif" SIZE="28"/> </node> @@ -22,27 +37,78 @@ </node> <node CREATED="1580706032670" ID="ID_1325652396" MODIFIED="1580905809877" POSITION="right" TEXT="xv6"> <font NAME="SansSerif" SIZE="28"/> -<node CREATED="1580706157032" ID="ID_937213044" MODIFIED="1580707101276" TEXT="xv6とは"> +<node CREATED="1580706157032" ID="ID_937213044" MODIFIED="1581238705555" TEXT="xv6の概要"> <font NAME="SansSerif" SIZE="28"/> </node> <node CREATED="1580706172440" ID="ID_1527149818" MODIFIED="1580707101276" TEXT="xv6のFileSystem"> <font NAME="SansSerif" SIZE="28"/> </node> +<node CREATED="1581235020303" ID="ID_1352679515" MODIFIED="1581235049686" TEXT="FilleSystem の API"> +<font NAME="SansSerif" SIZE="28"/> +</node> </node> <node CREATED="1580706205884" ID="ID_1557530505" MODIFIED="1580911222971" POSITION="right" TEXT="CbCによるFileSystemの書き換え"> <font NAME="SansSerif" SIZE="28"/> <node CREATED="1580706952084" ID="ID_379916374" MODIFIED="1580707101276" TEXT="書き換え方針"> <font NAME="SansSerif" SIZE="28"/> </node> -<node CREATED="1580706968810" ID="ID_1139395838" MODIFIED="1580707101276" TEXT="書き換えたコード"> +<node CREATED="1580706968810" ID="ID_1139395838" MODIFIED="1581235075179" TEXT="FileSystem の Interface"> +<font NAME="SansSerif" SIZE="28"/> +</node> +<node CREATED="1581235077097" ID="ID_1378839864" MODIFIED="1581235087525" TEXT="CbC による FileSystem の書き換え"> <font NAME="SansSerif" SIZE="28"/> </node> </node> -<node CREATED="1580705969920" ID="ID_1514151978" MODIFIED="1580707101276" POSITION="right" TEXT="今後の課題"> +<node CREATED="1580705969920" ID="ID_1514151978" MODIFIED="1581234828368" POSITION="right" TEXT="まとめと今後の課題"> <font NAME="SansSerif" SIZE="28"/> </node> <node CREATED="1580706250190" HGAP="19" ID="ID_336597035" MODIFIED="1580707101275" POSITION="right" TEXT="謝辞" VSHIFT="11"> <font NAME="SansSerif" SIZE="28"/> </node> +<node CREATED="1581241424863" ID="ID_1724671622" MODIFIED="1581241434846" POSITION="right" TEXT="付録"> +<font NAME="SansSerif" SIZE="28"/> +<node CREATED="1581241436741" ID="ID_435368533" MODIFIED="1581241464015" TEXT="fs.dg"> +<font NAME="SansSerif" SIZE="28"/> +</node> +<node CREATED="1581241466862" ID="ID_85272786" MODIFIED="1581241484190" TEXT="fs_impl.h"> +<font NAME="SansSerif" SIZE="28"/> +</node> +<node CREATED="1581241484955" ID="ID_1869918016" MODIFIED="1581241495096" TEXT="fs_impl.cbc"> +<font NAME="SansSerif" SIZE="28"/> +</node> +<node CREATED="1581241495800" ID="ID_176435327" MODIFIED="1581241513562" TEXT="fs_impl_private.cbc"> +<font NAME="SansSerif" SIZE="28"/> +</node> +<node CREATED="1581241515626" ID="ID_46008560" MODIFIED="1581241546618" TEXT="OS研究会発表論文"> +<font NAME="SansSerif" SIZE="28"/> +</node> +</node> +<node CREATED="1581234315887" ID="ID_1923614270" MODIFIED="1581234372053" POSITION="left" TEXT="はじめに"> +<font NAME="SansSerif" SIZE="28"/> +</node> +<node CREATED="1581234325682" ID="ID_103957531" MODIFIED="1581234368532" POSITION="left" TEXT="CbC"> +<font NAME="SansSerif" SIZE="28"/> +</node> +<node CREATED="1581234336651" ID="ID_116482611" MODIFIED="1581234365765" POSITION="left" TEXT="GearsOS"> +<font NAME="SansSerif" SIZE="28"/> +</node> +<node CREATED="1581234376944" ID="ID_1014321899" MODIFIED="1581234383291" POSITION="left" TEXT="xv6"> +<font NAME="SansSerif" SIZE="28"/> +</node> +<node CREATED="1581234390218" ID="ID_471124581" MODIFIED="1581234796364" POSITION="left" TEXT="CbCによる書き換え"> +<font NAME="SansSerif" SIZE="28"/> +</node> +<node CREATED="1581234803857" ID="ID_1041192473" MODIFIED="1581234815118" POSITION="left" TEXT="まとめ"> +<font NAME="SansSerif" SIZE="28"/> +</node> +<node CREATED="1581234840620" ID="ID_877694674" MODIFIED="1581234847643" POSITION="left" TEXT="参考文献"> +<font NAME="SansSerif" SIZE="28"/> +</node> +<node CREATED="1581234830793" ID="ID_1768806132" MODIFIED="1581234838322" POSITION="left" TEXT="謝辞"> +<font NAME="SansSerif" SIZE="28"/> +</node> +<node CREATED="1581234850778" ID="ID_1003939940" MODIFIED="1581234856525" POSITION="left" TEXT="付録"> +<font NAME="SansSerif" SIZE="28"/> +</node> </node> </map>