0
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
1 \documentclass[a4j,12pt]{jreport}
|
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
2 \usepackage{master_paper}
|
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
3 \usepackage{ascmac}
|
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
4 \usepackage[dvipdfmx]{graphicx}
|
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
5 \usepackage{here}
|
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
6 \usepackage{listings,jlisting}
|
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
7 \usepackage{comment}
|
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
8 %\input{dummy.tex} %% font
|
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
9
|
2
|
10 \jtitle{Code Segment と Data Segment によって構成される Gears OS の設計}
|
|
11 \etitle{Design of Gears OS with consist of Code and Data Semgment}
|
0
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
12 \year{平成27年度 3月}
|
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
13 \affiliation{\center%
|
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
14 \includegraphics[clip,keepaspectratio,width=.15\textwidth]
|
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
15 {images/u-ryukyu-Mark.eps}\\
|
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
16 \vskip10mm
|
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
17 琉球大学大学院 \ 理工学研究科\\ 情報工学専攻}
|
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
18
|
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
19 \author{小久保 翔平}
|
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
20
|
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
21 \marklefthead{% 左上に挿入
|
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
22 \begin{minipage}[b]{.4\textwidth}
|
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
23 \includegraphics[height=1zw,clip,keepaspectratio]{images/emblem-bitmap.eps}
|
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
24 琉球大学大学院学位論文(修士)
|
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
25 \end{minipage}}
|
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
26 \markleftfoot{% 左下に挿入
|
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
27 \begin{minipage}{.8\textwidth}
|
1
|
28 Monad に基づくメタ計算を基本とする Gears OS の設計
|
0
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
29 \end{minipage}}
|
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
30
|
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
31 \newcommand\figref[1]{図 \ref{fig:#1}}
|
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
32 \newcommand\tabref[1]{表 \ref{tab:#1}}
|
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
33
|
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
34 \lstset{%
|
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
35 language={Java},
|
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
36 basicstyle={\footnotesize},%
|
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
37 identifierstyle={\footnotesize},%
|
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
38 commentstyle={\footnotesize\itshape},%
|
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
39 keywordstyle={\footnotesize\bfseries},%
|
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
40 ndkeywordstyle={\footnotesize},%
|
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
41 stringstyle={\footnotesize\ttfamily},
|
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
42 frame={tb},
|
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
43 breaklines=true,
|
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
44 columns=[l]{fullflexible},%
|
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
45 numbers=left,%
|
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
46 xrightmargin=0zw,%
|
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
47 xleftmargin=1zw,%
|
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
48 numberstyle={\scriptsize},%
|
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
49 stepnumber=1,
|
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
50 numbersep=0.5zw,%
|
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
51 lineskip=-0.5ex%
|
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
52 }
|
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
53
|
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
54
|
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
55 %%% 索引のために以下の2行を追加
|
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
56 \usepackage{makeidx,multicol}
|
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
57 \makeindex
|
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
58 \begin{document}
|
1
|
59 \frontmatter
|
0
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
60
|
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
61 \maketitle
|
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
62 \newpage
|
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
63
|
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
64 %要旨
|
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
65 \begin{abstract}
|
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
66 \end{abstract}
|
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
67
|
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
68 %目次
|
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
69 \tableofcontents
|
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
70
|
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
71 %図目次
|
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
72 \listoffigures
|
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
73
|
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
74 %表目次
|
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
75 \listoftables
|
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
76
|
1
|
77 \mainmatter
|
0
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
78 %chapters
|
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
79 \chapter{並列分散環境下におけるプログラミング}
|
1
|
80
|
|
81 \chapter{並列プログラミングフレームワーク Cerium}
|
|
82 Cerium は PlayStation 3(PS3) に搭載された Cell Broadband Engine(Cell) 向けの Fine-Grain TaskManager として当研究室で設計・開発されたフレームワークである。
|
|
83 本章では Cerium の実装について説明する。
|
|
84
|
|
85 \section{Cerium の概要}
|
|
86 Cerium は、TaskManager, SceneGraph, Rendering Engine の3つの要素から構成される。
|
|
87 Cell 用のゲームフレームワークとして開発されたが、現在では Multi-Core CPU, GPU も計算資源として利用可能な汎用計算フレームワークとなっている。
|
|
88
|
|
89 \section{TaskManager}
|
|
90 TaskManager は、Task と呼ばれる分割されたプログラムを管理する。
|
|
91 サブルーチンまたは関数が Task の単位となる。
|
|
92 Task には依存関係が設定されており、TaskManager で依存関係が解決されると実行可能な状態になる。
|
|
93 TaskManager が提供する API を表:\ref{table:TaskManager_api}に示す。
|
|
94 \begin{table}[htpb]
|
|
95 \begin{center}
|
|
96 \small
|
|
97 \begin{tabular}[htpb]{|c|l|} \hline
|
|
98 create\_task & Task の生成 \\ \hline
|
|
99 allocate & 環境のアライメントに考慮した allocator \\ \hline
|
|
100 set\_inData & Task への入力データのアドレスを追加 \\ \hline
|
|
101 set\_outData & Task からのデータ出力先アドレスを追加 \\ \hline
|
|
102 set\_param & Task のパラメータ(32 bits) \\ \hline
|
|
103 wait\_for & Task の依存関係を設定 \\ \hline
|
|
104 set\_cpu & Task を実行する Device の設定 \\ \hline
|
|
105 spawn & Task を Queue に登録 \\ \hline
|
|
106 iterate & データ並列で実行する Task として Queue に登録 \\ \hline
|
|
107 \end{tabular}
|
|
108 \caption{TaskManager API}
|
|
109 \label{table:TaskManager_api}
|
|
110 \end{center}
|
|
111 \end{table}
|
|
112
|
|
113 \section{Cerium における Task}
|
|
114 Task は TaskManager の API を利用して生成する。
|
|
115 生成された Task には以下の要素を設定することができる。
|
|
116
|
|
117 \begin{itemize}
|
|
118 \item input data \\
|
|
119 set\_inData を用いて設定する Task が実行する処理に必要なデータの入力元となるアドレス。
|
|
120 関数を呼び出す際の引数に相当する。
|
|
121 汎用ポインタ(void* 型) なので Task 側で適切なキャストを行う必要がある。
|
|
122 \item output data \\
|
|
123 set\_outData を用いて設定する Task が処理したデータの出力先となるアドレス。
|
|
124 関数の戻り値に相当する。
|
|
125 \item parameter \\
|
|
126 set\_param を用いて設定するデータの処理に必要な実数値(index 等)。
|
|
127 \item cpu type \\
|
|
128 set\_cpu を用いて設定する Task が実行される Device の組み合わせ。
|
|
129 Cell, Multi-Core CPU, GPU またはこれらの組み合わせを指定することができる。
|
|
130 \item dependency \\
|
|
131 wait\_for を用いて設定する他の Task との依存関係。
|
|
132 依存関係が解決された Task は実行可能な状態となる。
|
|
133 \end{itemize}
|
|
134
|
|
135 TaskManager は ActiveTaskList と WaitTaskList
|
|
136
|
|
137 \section{Task の Scheduling}
|
|
138
|
0
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
139 \chapter{CbC}
|
1
|
140
|
|
141 \chapter{GearsOS}
|
|
142 \section{GearsOS の構成}
|
|
143 \section{Monad とメタ計算}
|
|
144 \section{Code Gear と Data Gear}
|
|
145 \section{Allocator}
|
|
146 \section{List}
|
|
147 \section{Synchronized Queue}
|
|
148 \section{Red-Black Tree}
|
|
149
|
0
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
150 \chapter{比較}
|
1
|
151 \section{Cerium}
|
|
152 \section{従来の OS}
|
|
153
|
|
154 \chapter{評価}
|
|
155 \section{Twice}
|
|
156
|
0
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
157 \chapter{結論}
|
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
158
|
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
159 %謝辞
|
1
|
160 \addcontentsline{toc}{chapter}{謝辞}
|
|
161 \chapter*{謝辞}
|
0
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
162
|
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
163 %参考文献
|
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
164 \nocite{*}
|
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
165 \bibliographystyle{junsrt}
|
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
166 \bibliography{master_paper}
|
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
167
|
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
168 %付録
|
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
169
|
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
170 \printindex
|
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
171 \end{document}
|