annotate midterm.tex @ 5:81268be687e6

Add pdf
author Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
date Mon, 26 Oct 2015 16:09:57 +0900
parents 0c15ef224a10
children 1e530e8bb7ef
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
5efcfe9a1b42 Add template files
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1 \documentclass[twocolumn,twoside,9.5pt]{jarticle}
2
030fafbcb3ef Add bibliography
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
2 \usepackage[dvipdfmx]{graphicx}
0
5efcfe9a1b42 Add template files
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
3 \usepackage{picins}
5efcfe9a1b42 Add template files
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
4 \usepackage{fancyhdr}
5efcfe9a1b42 Add template files
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
5 %\pagestyle{fancy}
5efcfe9a1b42 Add template files
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
6 \lhead{\parpic{\includegraphics[height=1zw,keepaspectratio,bb=0 0 251 246]{pic/emblem-bitmap.pdf}}琉球大学主催 工学部情報工学科 中間発表予稿}
5efcfe9a1b42 Add template files
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
7 \rhead{}
5efcfe9a1b42 Add template files
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
8 \cfoot{}
5efcfe9a1b42 Add template files
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
9
5efcfe9a1b42 Add template files
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
10 \setlength{\topmargin}{-1in \addtolength{\topmargin}{15mm}}
5efcfe9a1b42 Add template files
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
11 \setlength{\headheight}{0mm}
5efcfe9a1b42 Add template files
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
12 \setlength{\headsep}{5mm}
5efcfe9a1b42 Add template files
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
13 \setlength{\oddsidemargin}{-1in \addtolength{\oddsidemargin}{11mm}}
5efcfe9a1b42 Add template files
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
14 \setlength{\evensidemargin}{-1in \addtolength{\evensidemargin}{21mm}}
5efcfe9a1b42 Add template files
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
15 \setlength{\textwidth}{181mm}
5efcfe9a1b42 Add template files
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
16 \setlength{\textheight}{261mm}
5efcfe9a1b42 Add template files
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
17 \setlength{\footskip}{0mm}
5efcfe9a1b42 Add template files
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
18 \pagestyle{empty}
5efcfe9a1b42 Add template files
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
19
4
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
20 \input{dummy.tex}
0
5efcfe9a1b42 Add template files
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
21 \begin{document}
4
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
22 \title{Code Gear, Data Gearに基づくGears OS の設計}
2
030fafbcb3ef Add bibliography
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
23 \author{125716B 氏名 {伊波}{立樹} 指導教員 : 河野 真治}
0
5efcfe9a1b42 Add template files
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
24 \date{}
5efcfe9a1b42 Add template files
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
25 \maketitle
5efcfe9a1b42 Add template files
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
26 \thispagestyle{fancy}
5efcfe9a1b42 Add template files
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
27
1
a152319fb196 Edit midterm 10/23
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
28 \section{先行研究}
a152319fb196 Edit midterm 10/23
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
29 本研究室では並列プログラミングフレームワーク Cerium\cite{cerium} と分散ネットフレームワーク Alice\cite{alice} の開発を行なってきた。
a152319fb196 Edit midterm 10/23
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
30
a152319fb196 Edit midterm 10/23
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
31 CeriumではTaskと呼ばれる分割されたプログラムを依存関係に沿って実行することで並列実行を実現する。
a152319fb196 Edit midterm 10/23
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
32 依存関係はプログラマ自身が意識して記述する必要があり、
a152319fb196 Edit midterm 10/23
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
33 Taskの種類が増えると記述が複雑になり、 負担が大きくなる。
a152319fb196 Edit midterm 10/23
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
34 Taskの依存関係がデータの依存関係を正しく保証しない場合があるという問題がある。
a152319fb196 Edit midterm 10/23
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
35 また、Taskの取り扱うデータに型情報がないため、 汎用ポインタをキャストして利用するしかなく、型の検査が行われていない。
a152319fb196 Edit midterm 10/23
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
36 Cerium は C++で実装されているが、オブジェクトと並列処理が直接対応していないのでオブジェクト指向で記述する利点が少ない。
a152319fb196 Edit midterm 10/23
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
37
a152319fb196 Edit midterm 10/23
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
38 Alice では処理の単位である Code Segment、 データの単位である Data Segment を用いてプログラムを記述\cite{segment}する。
a152319fb196 Edit midterm 10/23
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
39 Code Segment は使用する Input Data Segment, Output Data Segment を指定することで処理とデータの依存関係を解決する。
a152319fb196 Edit midterm 10/23
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
40 Alice は Javaで実装されており、実効速度が遅いという問題がある。
a152319fb196 Edit midterm 10/23
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
41 また、 Data SegmentをアクセスするAPIのシンタックスが特殊なため、Aliceを用いてプログラムを作成するには慣れが必要になる。
a152319fb196 Edit midterm 10/23
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
42
a152319fb196 Edit midterm 10/23
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
43 \section{Gears OS}
a152319fb196 Edit midterm 10/23
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
44 Cerium と Alice を開発して得られた知見から、並列実行をサポートするだけでなく、信頼性も確保したGears OS の設計・開発を行う。
a152319fb196 Edit midterm 10/23
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
45
a152319fb196 Edit midterm 10/23
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
46 Gears OS では Gear という単位を用いてプログラムを Code Gear, Data Gear に細かく分割する。
a152319fb196 Edit midterm 10/23
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
47 Code Gear は Input Data Gear から Output Data Gearを生成する。
a152319fb196 Edit midterm 10/23
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
48 Input と Outputの関係から Code Gear 同士の依存関係を解決し、並列実行を行う。
a152319fb196 Edit midterm 10/23
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
49
a152319fb196 Edit midterm 10/23
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
50 Ceriumは初め、Cell\cite{cell} 向けのフレームワークとして設計されたという経緯からプロセッサ毎の実行形式が異なる。
a152319fb196 Edit midterm 10/23
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
51 Gears OSでは Many Core CPU、GPUをはじめとする様々なプロセッサを同等な実行機構でサポートする。
a152319fb196 Edit midterm 10/23
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
52
a152319fb196 Edit midterm 10/23
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
53 従来の OS が行う排他制御、メモリ管理、並列実行などは Meta Computation に相当する。
a152319fb196 Edit midterm 10/23
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
54 Meta Computationは本論のComputationを支えるComputationのことである。
a152319fb196 Edit midterm 10/23
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
55 関数型言語では Meta Computation に Monad を用いる手法\cite{monad}がある。
a152319fb196 Edit midterm 10/23
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
56 Gears OS では、Meta Code/Data Gear を Monadとして定義し、Meta Computationを実現する。
a152319fb196 Edit midterm 10/23
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
57
a152319fb196 Edit midterm 10/23
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
58 Gears OS は並列実行をサポートするだけでなく、 信頼性も確保する。
a152319fb196 Edit midterm 10/23
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
59 そのために Gears OSを用いて作成されたプログラムに対する Model Checkingを行う機能\cite{model-check}を提供する。
a152319fb196 Edit midterm 10/23
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
60 並列プログラムに Model Checking を行うことでそのプログラムがとり得る状態を列挙する。
a152319fb196 Edit midterm 10/23
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
61 これにより、並列実行時のデッドロックの検出などを行うことでプログラムの信頼性を確保する。
a152319fb196 Edit midterm 10/23
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
62 Model Checking の実現には Meta Code/Data Gearを用いる。
0
5efcfe9a1b42 Add template files
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
63
3
5d089fb6c1a4 Add after plan
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
64 本研究室で開発している CbC(Continuation based C)\cite{cbc-llvm} を用いて、Gears OS を実装する。
5d089fb6c1a4 Add after plan
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
65 CbC はプログラムを Code Segment, Data Segment という単位で記述する。
5d089fb6c1a4 Add after plan
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
66 CbC において Code Segment 間の処理の移動は function call ではなく、goto を用いた軽量継続を用いる。
5d089fb6c1a4 Add after plan
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
67
1
a152319fb196 Edit midterm 10/23
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
68 Gears OS は Many Core CPU, GPU といった並列実行環境に合わせた設計・実装を行う。
a152319fb196 Edit midterm 10/23
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
69 また、接続する Gear を変更することでプログラムの振る舞いを変更することを可能にする柔軟性、Monad に基づくメタ計算による並行制御、Model Checking を用いた信頼性の確保を目的とする。
a152319fb196 Edit midterm 10/23
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
70
a152319fb196 Edit midterm 10/23
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
71 \section{Code Gear と Data Gear}
a152319fb196 Edit midterm 10/23
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
72 Gears OS ではプログラムの実行単位として様々な Gear を使う。
a152319fb196 Edit midterm 10/23
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
73 Gear が平行実行の単位、データ分割、Gear 間の接続などになる。
a152319fb196 Edit midterm 10/23
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
74
a152319fb196 Edit midterm 10/23
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
75 Code Gear はプログラムの実行コードそのものであり、OpenCL\cite{opencl}/CUDA\cite{cuda}
a152319fb196 Edit midterm 10/23
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
76 の kernel に相当する。
2
030fafbcb3ef Add bibliography
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
77
030fafbcb3ef Add bibliography
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
78 Code Gear 処理の基本として、 Input Data Gear を参照し、一つまたは複数の Output Data Gear に書
030fafbcb3ef Add bibliography
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
79 き込む。また、接続された Data Gear 以外には参照を行わない。
030fafbcb3ef Add bibliography
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
80
1
a152319fb196 Edit midterm 10/23
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
81 Code Gear はfunction callではないので、呼び出し元に戻る概念はない。
a152319fb196 Edit midterm 10/23
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
82 その代わりに、次に実行する Code Gear を指定する機能(軽量継続)を持つ。
a152319fb196 Edit midterm 10/23
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
83
a152319fb196 Edit midterm 10/23
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
84 Data Gear には、int や文字列などの Primitive Data Type が入る。
0
5efcfe9a1b42 Add template files
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
85
1
a152319fb196 Edit midterm 10/23
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
86 Gear の特徴の一つはその処理が Code Gear, Data Gear に閉じていることに
a152319fb196 Edit midterm 10/23
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
87 ある。
a152319fb196 Edit midterm 10/23
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
88 これにより、Code Gear の実行時間、メモリ使用量を予測可能なものにする。
a152319fb196 Edit midterm 10/23
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
89
a152319fb196 Edit midterm 10/23
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
90 Code Gear, Data Gear はポインタを直接には扱わない。
2
030fafbcb3ef Add bibliography
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
91 これにより、Code と Data の分離性を上げて、ポインタ関連のセキュリティフローを防止する。
1
a152319fb196 Edit midterm 10/23
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
92
a152319fb196 Edit midterm 10/23
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
93 Code Gear, Data Gear はそれぞれ関係を持っている。
2
030fafbcb3ef Add bibliography
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
94 例えば、ある Code Gear の次に実行される Code Gear、全体で木構造を持つ Data Gear などである。
1
a152319fb196 Edit midterm 10/23
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
95 Gear の関連付けは Meta Gear を通して行う。
2
030fafbcb3ef Add bibliography
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
96 Meta Gear は、いままでの OS におけるライブラリや内部のデータ構造に相当する。
1
a152319fb196 Edit midterm 10/23
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
97 なので、Meta Gear は Code Gear, Data Gear へのポインタを持っている。
a152319fb196 Edit midterm 10/23
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
98
a152319fb196 Edit midterm 10/23
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
99 \section{Context}
4
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
100 ある Code Gear から継続するときには、次に実行する Code Gear を名前で指定する。
2
030fafbcb3ef Add bibliography
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
101 Meta Code Gear が名前を解釈して、処理を対応する Code Gear に引き渡す。
4
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
102 これらは、従来の OS の Dynamic Loading Library や Command 呼び出しに対応する。
2
030fafbcb3ef Add bibliography
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
103 名前と Code Gear へのポインタの対応は Meta Data Gear に格納される。
030fafbcb3ef Add bibliography
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
104 この Meta Data Gear を Context と呼ぶことにする。
030fafbcb3ef Add bibliography
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
105 これは従来の OS の Process や Thread に対応する。
030fafbcb3ef Add bibliography
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
106
030fafbcb3ef Add bibliography
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
107 Context には以下のようなものが格納される。
030fafbcb3ef Add bibliography
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
108 \begin{itemize}
030fafbcb3ef Add bibliography
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
109 \item Code Gear の名前とポインタの対応表
030fafbcb3ef Add bibliography
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
110 \item Data Gear の Allocation 用の情報
030fafbcb3ef Add bibliography
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
111 \item Code Gear が参照する Data Gear へのポインタ
030fafbcb3ef Add bibliography
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
112 \item Data Gear に格納される Data Type の情報
030fafbcb3ef Add bibliography
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
113 \end{itemize}
030fafbcb3ef Add bibliography
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
114
1
a152319fb196 Edit midterm 10/23
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
115 \section{List}
2
030fafbcb3ef Add bibliography
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
116 通常 List は要素と次へのポインタを持つ構造体で表現される。
030fafbcb3ef Add bibliography
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
117 Gears OS の場合、Meta レベル以外でポインタは扱わないので図\ref{fig:list}のように任意の要素を持つ Data Gear と次へのポインタを持つ Meta Data Gear の組によって List は表現される。
030fafbcb3ef Add bibliography
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
118
030fafbcb3ef Add bibliography
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
119 \begin{figure}[ht]
030fafbcb3ef Add bibliography
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
120 \centering
030fafbcb3ef Add bibliography
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
121 \includegraphics[width=70mm]{pic/List.pdf}
030fafbcb3ef Add bibliography
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
122 \caption{List の表現}
030fafbcb3ef Add bibliography
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
123 \label{fig:list}
030fafbcb3ef Add bibliography
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
124 \end{figure}
1
a152319fb196 Edit midterm 10/23
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
125
a152319fb196 Edit midterm 10/23
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
126 \section{Synchronized Queue}
2
030fafbcb3ef Add bibliography
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
127 Gears OS では List を表現する Code/Data Gear に CAS(Compare and Swap) を行う Meta Code/Data Gear を接続することで Synchronized Queue を実現する。
030fafbcb3ef Add bibliography
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
128 Gears OS の機能は状態遷移図とクラスダイアグラムを組み合わせた図で表現する。
030fafbcb3ef Add bibliography
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
129 この図を GearBox と呼ぶことにする。
030fafbcb3ef Add bibliography
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
130 図\ref{fig:sync}は Synchronized Queue の GearBox である。
3
5d089fb6c1a4 Add after plan
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
131 M:get/put が CAS を行う Meta Code Gear となる。
5d089fb6c1a4 Add after plan
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
132 今回は CAS で実装しているが、接続する Meta Code Gear を変更することで通常のQueueやLockを使用したsynchronizedQueueなど仕様変更にも対応できる。
5d089fb6c1a4 Add after plan
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
133
2
030fafbcb3ef Add bibliography
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
134 \begin{figure}[ht]
030fafbcb3ef Add bibliography
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
135 \centering
030fafbcb3ef Add bibliography
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
136 \includegraphics[width=70mm]{pic/synchronizedQueue.pdf}
030fafbcb3ef Add bibliography
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
137 \caption{Synchronized Queue}
030fafbcb3ef Add bibliography
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
138 \label{fig:sync}
030fafbcb3ef Add bibliography
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
139 \end{figure}
030fafbcb3ef Add bibliography
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
140
4
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
141
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
142 \section{今後の課題}
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
143 Gears OS の今後の目的はCeriumと同等の例題を動かすことである。
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
144 現在、必要な機能として Context、 Allocator、 List、 Non-Destructive Red-Black Tree、 Synchronized Queue を CbC を用いて実装しており、足りない機能としてはWorkerがある。
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
145 Workerの実装後、動かす例題としては Bitonic Sort、 Word Count を予定している。
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
146 例題の実装後、測定・評価を行う。
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
147
2
030fafbcb3ef Add bibliography
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
148 \begin{thebibliography}{10}
030fafbcb3ef Add bibliography
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
149 \bibitem{cerium}
030fafbcb3ef Add bibliography
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
150 宮國 渡,河野真治,神里 晃,杉山千秋:Cell 用の Fine-grain Task Manager
030fafbcb3ef Add bibliography
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
151 の実装,情報処理学会
030fafbcb3ef Add bibliography
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
152 システムソフトウェアとオペレーティング・システム研究会(OS) (2008).
030fafbcb3ef Add bibliography
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
153
030fafbcb3ef Add bibliography
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
154 \bibitem{alice}
030fafbcb3ef Add bibliography
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
155 赤嶺一樹,河野真治:DataSegment API
030fafbcb3ef Add bibliography
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
156 を用いた分散フレームワークの設計,日本ソフトウェア科学会第28回大会論文集
030fafbcb3ef Add bibliography
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
157 (2011).
030fafbcb3ef Add bibliography
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
158
030fafbcb3ef Add bibliography
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
159 \bibitem{segment}
030fafbcb3ef Add bibliography
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
160 河野真治,杉本 優:Code Segment と Data Segment
030fafbcb3ef Add bibliography
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
161 によるプログラミング手法,第54回プログラミング・シンポジウム (2013).
0
5efcfe9a1b42 Add template files
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
162
5
81268be687e6 Add pdf
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 4
diff changeset
163 \bibitem{cell}
81268be687e6 Add pdf
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 4
diff changeset
164 {Sony Corporation}: {Cell broadband engine architecture} (2005).
2
030fafbcb3ef Add bibliography
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
165
030fafbcb3ef Add bibliography
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
166 \bibitem{monad}
3
5d089fb6c1a4 Add after plan
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
167 Moggi, E.: Computational lambda-calculus and monads, {\em Proceedings of the Fourth Annual Symposium on Logic in computer science} (1989).
2
030fafbcb3ef Add bibliography
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
168
030fafbcb3ef Add bibliography
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
169 \bibitem{model-check}
030fafbcb3ef Add bibliography
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
170 下地篤樹,河野真治:線形時相論理によるContinuation based
030fafbcb3ef Add bibliography
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
171 Cプログラムの検証,情報処理学会システムソフトウェアとオペレーティング・システム研究会(OS)
030fafbcb3ef Add bibliography
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
172 (2007).
030fafbcb3ef Add bibliography
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
173
5
81268be687e6 Add pdf
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 4
diff changeset
174 \bibitem{cbc-llvm}
81268be687e6 Add pdf
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 4
diff changeset
175 徳森海斗,河野真治:Continuation based C の LLVM/clang 3.5
81268be687e6 Add pdf
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 4
diff changeset
176 上の実装について,情報処理学会システムソフトウェアとオペレーティング・システム研究会(OS)
81268be687e6 Add pdf
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 4
diff changeset
177 (2014).
81268be687e6 Add pdf
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 4
diff changeset
178
2
030fafbcb3ef Add bibliography
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
179 \bibitem{opencl}
3
5d089fb6c1a4 Add after plan
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
180 {Aaftab Munshi, Khronos OpenCL Working Group}: {\em {The OpenCL Specification Version 1.0}} (2007).
2
030fafbcb3ef Add bibliography
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
181
030fafbcb3ef Add bibliography
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
182 \bibitem{cuda}
030fafbcb3ef Add bibliography
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
183 : {CUDA}, {https://developer.nvidia.com/category/zone/cuda-zone/}.
0
5efcfe9a1b42 Add template files
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
184
5efcfe9a1b42 Add template files
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
185 \end{thebibliography}
1
a152319fb196 Edit midterm 10/23
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
186 \end{document}