Mercurial > hg > Papers > 2020 > menikon-thesis
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{}