changeset 2:030fafbcb3ef

Add bibliography
author Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
date Sun, 25 Oct 2015 04:54:31 +0900
parents a152319fb196
children 5d089fb6c1a4
files midterm.tex
diffstat 1 files changed, 89 insertions(+), 13 deletions(-) [+]
line wrap: on
line diff
--- a/midterm.tex	Fri Oct 23 23:06:05 2015 +0900
+++ b/midterm.tex	Sun Oct 25 04:54:31 2015 +0900
@@ -1,5 +1,5 @@
 \documentclass[twocolumn,twoside,9.5pt]{jarticle}
-\usepackage[dvips]{graphicx}
+\usepackage[dvipdfmx]{graphicx}
 \usepackage{picins}
 \usepackage{fancyhdr}
 %\pagestyle{fancy}
@@ -19,7 +19,7 @@
 
 \begin{document}
 \title{Monad に基づくメタ計算を基本とする Gears OS の設計}
-\author{125716B 伊波 立樹{}{} 指導教員 : 河野 真治}
+\author{125716B 氏名 {伊波}{立樹} 指導教員 : 河野 真治}
 \date{}
 \maketitle
 \thispagestyle{fancy} 
@@ -69,9 +69,10 @@
 
 Code Gear はプログラムの実行コードそのものであり、OpenCL\cite{opencl}/CUDA\cite{cuda}
 の kernel に相当する。
-Code Gear は複数の Input Data Gear を参照し、一つまたは複数の Output Data Gear に書
-き込む。
-Code Gear は接続された Data Gear 以外には参照を行わない。
+
+Code Gear 処理の基本として、 Input Data Gear を参照し、一つまたは複数の Output Data Gear に書
+き込む。また、接続された Data Gear 以外には参照を行わない。
+
 Code Gear はfunction callではないので、呼び出し元に戻る概念はない。
 その代わりに、次に実行する Code Gear を指定する機能(軽量継続)を持つ。
 
@@ -83,27 +84,102 @@
 これにより、Code Gear の実行時間、メモリ使用量を予測可能なものにする。
 
 Code Gear, Data Gear はポインタを直接には扱わない。
-これにより、Code と Data の分離性を上げて、ポインタ関連のセキュリティフ
-ローを防止する。
+これにより、Code と Data の分離性を上げて、ポインタ関連のセキュリティフローを防止する。
 
 Code Gear, Data Gear はそれぞれ関係を持っている。
-例えば、ある Code Gear の次に実行される Code Gear、全体で木構造を持つ
-Data Gear などである。
+例えば、ある Code Gear の次に実行される Code Gear、全体で木構造を持つ Data Gear などである。
 Gear の関連付けは Meta Gear を通して行う。
-Meta Gear は、いままでの OS におけるライブラリや内部のデータ構造に相当
-する。
+Meta Gear は、いままでの OS におけるライブラリや内部のデータ構造に相当する。
 なので、Meta Gear は Code Gear, Data Gear へのポインタを持っている。
 
 \section{Context}
+ある Code Gear から継続するときには、次に実行する Code Gear を名前で指
+定する。
+Meta Code Gear が名前を解釈して、処理を対応する Code Gear に引き渡す。
+これらは、従来の OS の Dynamic Loading Library や Command 呼び出しに対
+応する。
+名前と Code Gear へのポインタの対応は Meta Data Gear に格納される。
+この Meta Data Gear を Context と呼ぶことにする。
+これは従来の OS の Process や Thread に対応する。
+
+Context には以下のようなものが格納される。
+\begin{itemize}
+    \item Code Gear の名前とポインタの対応表
+    \item Data Gear の Allocation 用の情報
+    \item Code Gear が参照する Data Gear へのポインタ
+    \item Data Gear に格納される Data Type の情報
+\end{itemize}
+
 
 
 \section{List}
+通常 List は要素と次へのポインタを持つ構造体で表現される。
+Gears OS の場合、Meta レベル以外でポインタは扱わないので図\ref{fig:list}のように任意の要素を持つ Data Gear と次へのポインタを持つ Meta Data Gear の組によって List は表現される。
+
+\begin{figure}[ht]
+    \centering
+    \includegraphics[width=70mm]{pic/List.pdf}
+    \caption{List の表現}
+    \label{fig:list}
+\end{figure}
 
 \section{Synchronized Queue}
+Gears OS では List を表現する Code/Data Gear に CAS(Compare and Swap) を行う Meta Code/Data Gear を接続することで Synchronized Queue を実現する。
+Gears OS の機能は状態遷移図とクラスダイアグラムを組み合わせた図で表現する。
+この図を GearBox と呼ぶことにする。
+図\ref{fig:sync}は Synchronized Queue の GearBox である。
+M:receiver/sender が CAS を行う Meta Code Gear となる。
 
-\begin{thebibliography}{9}
+\begin{figure}[ht]
+    \centering
+    \includegraphics[width=70mm]{pic/synchronizedQueue.pdf}
+    \caption{Synchronized Queue}
+    \label{fig:sync}
+\end{figure}
+
+\begin{thebibliography}{10}
+    \bibitem{cerium}
+        宮國 渡,河野真治,神里 晃,杉山千秋:Cell 用の Fine-grain Task Manager
+        の実装,情報処理学会
+        システムソフトウェアとオペレーティング・システム研究会(OS) (2008).
+
+    \bibitem{alice}
+        赤嶺一樹,河野真治:DataSegment API
+        を用いた分散フレームワークの設計,日本ソフトウェア科学会第28回大会論文集
+        (2011).
+
+    \bibitem{cell}
+        {Sony Corporation}: {Cell broadband engine architecture} (2005).
+
+    \bibitem{segment}
+        河野真治,杉本 優:Code Segment と Data Segment
+        によるプログラミング手法,第54回プログラミング・シンポジウム (2013).
 
-\bibitem{1}
+    \bibitem{cbc}
+        河野真治,島袋 仁:C with Continuation
+        と、そのPlayStationへの応用,情報処理学会システムソフトウェアとオペレーティング・システム研究会(OS)
+        (2000).
+
+    \bibitem{cbc-llvm}
+        徳森海斗,河野真治:Continuation based C の LLVM/clang 3.5
+        上の実装について,情報処理学会システムソフトウェアとオペレーティング・システム研究会(OS)
+        (2014).
+
+    \bibitem{monad}
+        Moggi, E.: Computational lambda-calculus and monads, {\em Proceedings of the
+        Fourth Annual Symposium on Logic in computer science} (1989).
+
+    \bibitem{model-check}
+        下地篤樹,河野真治:線形時相論理によるContinuation based
+        Cプログラムの検証,情報処理学会システムソフトウェアとオペレーティング・システム研究会(OS)
+        (2007).
+
+    \bibitem{opencl}
+        {Aaftab Munshi, Khronos OpenCL Working Group}: {\em {The OpenCL Specification
+        Version 1.0}} (2007).
+
+    \bibitem{cuda}
+        : {CUDA}, {https://developer.nvidia.com/category/zone/cuda-zone/}.
 
 \end{thebibliography}
 \end{document}