view final_main/chapter3.tex @ 12:996a70147cb0

fix
author menikon
date Tue, 11 Feb 2020 04:51:05 +0900
parents 53114bdcb0c3
children 14feebd2285c
line wrap: on
line source

\chapter{GearsOS}
%\label{chap:poordirection}
\section{GearsOS の概要}
Gears OS \cite{gears} は 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}
\begin{figure}[ht]
     \begin{center}
     \includegraphics[width=100mm]{fig/context.pdf}
     \end{center}
     \caption{CodeGear,DataGear,contxtの関係図}
    \label{fig:cbc}
\end{figure}

\section{Inetrface}
Interface は Gears OS のモジュール化の仕組みである. Interface は呼び出しの引数になる Data Gear の集合であり,そこで呼び出される Code Gear のエントリである.呼び出される Code Gear の引数となる Data Gear はここで全て定義される. Interface を定義することで複数の実装を持つことができる.
この Interface は, Java の Interface や Haskell の型クラスに対応し, 導入することで仕様と実装に分けて記述することが出来る.
図\ref{fig:interface} は Stack の Interface とその実装を表したものである.

\vspace{10mm}
\begin{figure}[ht]
     \begin{center}
     \includegraphics[width=100mm]{fig/interface.pdf}
     \end{center}
     \caption{Stack の Interface とその実装}
    \label{fig:interface}
\end{figure}

%\section{}



%\section{}