\documentclass[a4j,12pt]{jreport}
\usepackage{master_paper}
\usepackage{ascmac}
\usepackage[dvipdfmx]{graphicx}
\usepackage{here}
\usepackage{listings,jlisting}
\usepackage{comment}
%\input{dummy.tex} %% font

\jtitle{Code Segment と Data Segment によって構成される Gears OS の設計}
\etitle{Design of Gears OS with consist of Code and Data Semgment}
\year{平成27年度 3月}
\affiliation{\center%
  \includegraphics[clip,keepaspectratio,width=.15\textwidth]
                  {images/u-ryukyu-Mark.eps}\\
                  \vskip10mm
                  琉球大学大学院 \ 理工学研究科\\ 情報工学専攻}

\author{小久保 翔平}

\marklefthead{% 左上に挿入
  \begin{minipage}[b]{.4\textwidth}
    \includegraphics[height=1zw,clip,keepaspectratio]{images/emblem-bitmap.eps}
    琉球大学大学院学位論文(修士)
\end{minipage}}
\markleftfoot{% 左下に挿入
  \begin{minipage}{.8\textwidth}
    Code Segment と Data Segment によって構成される Gears OS の設計
\end{minipage}}

\newcommand\figref[1]{図 \ref{fig:#1}}
\newcommand\tabref[1]{表 \ref{tab:#1}}

\lstset{
  language=C,
  tabsize=2,
  frame=single,
  basicstyle={\ttfamily\footnotesize},%
  identifierstyle={\footnotesize},%
  commentstyle={\footnotesize\itshape},%
  keywordstyle={\footnotesize\bfseries},%
  ndkeywordstyle={\footnotesize},%
  stringstyle={\footnotesize\ttfamily},
  breaklines=true,
  captionpos=b,
  columns=[l]{fullflexible},%
  xrightmargin=0zw,%
  xleftmargin=1zw,%
  aboveskip=1zw,
  numberstyle={\scriptsize},%
  stepnumber=1,
  numbersep=1zw,%
  lineskip=-0.5ex%
}

%%% 索引のために以下の2行を追加
\usepackage{makeidx,multicol}
\makeindex
\begin{document}

%rome
\frontmatter

\maketitle
\newpage

%要旨
\begin{abstract}
\end{abstract}

%目次
\tableofcontents

%図目次
\listoffigures

%表目次
\listoftables

%arabic
\mainmatter

%chapters
\chapter{並列分散環境下におけるプログラミング}
\input{cerium.tex}
\chapter{CbC}
\chapter{GearsOS}
Cerium と Alice の開発を通して得られた知見から並列分散処理には Code の分割だけではなく Data の分割も必要であることがわかった。
当研究室で開発している Code Segment を基本的な処理単位とするプログラミング言語 Continuation based C(CbC) を用いて Data Segment を定義し、Gears OS の設計と基本的な機能の実装を行なった。

本章では Gears OS の設計と実装した基本的な機能について説明する。
\section{Code Gear と Data Gear}
Gears OS ではプログラムの単位として Gear を用いる。
Gear は並列実行の単位、データの分割、Gear 間の接続等になる。

Code Gear はプログラムの処理そのものになる。
これは OpenCL/CUDA の kernel, Cerium の Task に相当する。
Code Gear は任意の数の Data Gear を参照し、処理が完了すると 任意の数の Data Gear に書き込む。
Code Gear は接続された Data Gear 以外にアクセスできない。

\section{GearsOS の構成}
Gears OS は
\section{Allocator}
\section{List}
\section{Synchronized Queue}
\section{Red-Black Tree}

\chapter{比較}
\section{Cerium}
\section{従来の OS}

\chapter{評価}
\section{Twice}

\chapter{結論}

%謝辞
\addcontentsline{toc}{chapter}{謝辞}
\chapter*{謝辞}

%参考文献
\nocite{*}
\bibliographystyle{junsrt}
\bibliography{master_paper}

%付録

\printindex
\end{document}
