31
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
1
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
2
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
3
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
4
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
5
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
6 <!DOCTYPE html>
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
7 <html>
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
8 <head>
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
9 <meta http-equiv="content-type" content="text/html;charset=utf-8">
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
10 <title>GearsOSの分散ファイルシステムの設計</title>
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
11
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
12 <meta name="generator" content="Slide Show (S9) v4.1.0 on Ruby 2.6.8 (2021-07-07) [universal.x86_64-darwin21]">
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
13 <meta name="author" content="Takahiro Ikki, Shinji Kono" >
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
14
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
15 <!-- style sheet links -->
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
16 <link rel="stylesheet" href="s6/themes/screen.css" media="screen">
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
17 <link rel="stylesheet" href="s6/themes/print.css" media="print">
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
18 <link rel="stylesheet" href="s6/themes/blank.css" media="screen,projection">
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
19
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
20 <!-- JS -->
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
21 <script src="s6/js/jquery-1.11.3.min.js"></script>
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
22 <script src="s6/js/jquery.slideshow.js"></script>
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
23 <script src="s6/js/jquery.slideshow.counter.js"></script>
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
24 <script src="s6/js/jquery.slideshow.controls.js"></script>
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
25 <script src="s6/js/jquery.slideshow.footer.js"></script>
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
26 <script src="s6/js/jquery.slideshow.autoplay.js"></script>
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
27
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
28 <!-- prettify -->
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
29 <link rel="stylesheet" href="scripts/prettify.css">
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
30 <script src="scripts/prettify.js"></script>
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
31
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
32 <style>
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
33 .slide {page-break-after: always;}
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
34 </style>
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
35
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
36
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
37
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
38
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
39 </head>
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
40 <body>
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
41
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
42 <div class="layout">
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
43 <div id="header"></div>
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
44 <div id="footer">
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
45 <div align="right">
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
46 <img src="s6/images/logo.svg" width="200px">
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
47 </div>
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
48 </div>
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
49 </div>
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
50
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
51 <div class="presentation">
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
52
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
53 <div class='slide cover'>
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
54 <table width="90%" height="90%" border="0" align="center">
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
55 <tr>
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
56 <td>
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
57 <div align="center">
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
58 <h1><font color="#808db5">GearsOSの分散ファイルシステムの設計</font></h1>
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
59 </div>
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
60 </td>
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
61 </tr>
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
62 <tr>
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
63 <td>
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
64 <div align="left">
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
65 Takahiro Ikki, Shinji Kono
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
66 琉球大学理工学研究科情報工学専攻
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
67 <hr style="color:#ffcc00;background-color:#ffcc00;text-align:left;border:none;width:100%;height:0.2em;">
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
68 </div>
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
69 </td>
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
70 </tr>
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
71 </table>
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
72 </div>
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
73
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
74
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
75 <div class='slide'>
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
76
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
77 <!-- _S9SLIDE_ -->
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
78 <h2 id="概要">概要</h2>
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
79 <ul>
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
80 <li>GearsOSの分散ファイルシステムの設計と実装を行った
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
81 <ul>
|
33
|
82 <li>ファイル構造の設計</li>
|
31
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
83 <li>APIの定義</li>
|
33
|
84 <li>遠隔のファイルのアクセスと保存</li>
|
31
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
85 </ul>
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
86 </li>
|
34
|
87 <li>GearsOS同様の記述単位による構成</li>
|
|
88 <li>ファイルは複数のstreamを持ち、通信も行う</li>
|
31
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
89 </ul>
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
90
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
91
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
92
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
93 </div>
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
94
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
95 <div class='slide'>
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
96 <!-- _S9SLIDE_ -->
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
97 <h2 id="gearsos">GearsOS</h2>
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
98 <ul>
|
33
|
99 <li>CodeGear/DataGearという単位で記述されるOS</li>
|
|
100 <li>OSの信頼性の保証と拡張性を目指している</li>
|
|
101 <li>ノーマルレベルとメタレベルを分離して記述できる
|
31
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
102 <ul>
|
33
|
103 <li>ユーザーが実装したプログラムをメタレベルから検証する</li>
|
31
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
104 <li>定理支援証明系やモデル検査が用いられる</li>
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
105 </ul>
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
106 </li>
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
107 </ul>
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
108
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
109
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
110
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
111 </div>
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
112
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
113 <div class='slide'>
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
114 <!-- _S9SLIDE_ -->
|
33
|
115 <h2 id="codegearとdatagear">CodeGearとDataGear</h2>
|
31
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
116 <ul>
|
33
|
117 <li>CodeGear
|
31
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
118 <ul>
|
33
|
119 <li>実行Codeの単位</li>
|
|
120 <li>入力DataGearと出力DataGearを持つ</li>
|
|
121 <li>goto文(jump命令)を使って遷移する</li>
|
|
122 <li>実行単位は途中で割り込みされない(Atmocity)</li>
|
31
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
123 </ul>
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
124 </li>
|
33
|
125 <li>DataGear
|
|
126 <ul>
|
|
127 <li>変数にあたり、構造体の型を持つ</li>
|
|
128 <li>ノーマルレベルでは変更されない(関数型プログラミング)</li>
|
|
129 </ul>
|
|
130 </li>
|
|
131 <li>C言語を拡張する形でCbC言語により実装される</li>
|
31
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
132 </ul>
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
133
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
134
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
135
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
136 </div>
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
137
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
138 <div class='slide'>
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
139 <!-- _S9SLIDE_ -->
|
33
|
140 <h2 id="codegearとdatagear-1">CodeGearとDataGear</h2>
|
|
141 <ul>
|
|
142 <li>InputDataGearを受け取って、CodeGearが処理し、OutputDataGearを出力する</li>
|
|
143 <li>OutputDataGearは次のCodeGearのInputDataGearとなる</li>
|
|
144 </ul>
|
|
145 <div style="text-align: center;">
|
|
146 <img src="images/cg-dg.pdf" alt="cgdgの関係図" width="600" />
|
|
147 </div>
|
|
148
|
|
149
|
|
150
|
|
151 </div>
|
|
152
|
|
153 <div class='slide'>
|
|
154 <!-- _S9SLIDE_ -->
|
|
155 <h2 id="gearsosにおけるファイル">GearsOSにおけるファイル</h2>
|
31
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
156 <ul>
|
33
|
157 <li>ファイルデータの最小単位はDataGearとなる
|
31
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
158 <ul>
|
33
|
159 <li>任意の構造体で構成できる</li>
|
|
160 </ul>
|
|
161 </li>
|
|
162 <li>ファイルデータとなるDataGearはQueueに格納される</li>
|
|
163 </ul>
|
|
164 <div style="text-align: center;">
|
|
165 <img src="images/QueueElement.pdf" alt="Queue" width="800" />
|
|
166 </div>
|
|
167
|
|
168
|
|
169
|
|
170 </div>
|
|
171
|
|
172 <div class='slide'>
|
|
173 <!-- _S9SLIDE_ -->
|
|
174 <h2 id="gearsosにおけるファイル-1">GearsOSにおけるファイル</h2>
|
|
175 <ul>
|
|
176 <li>ファイルは複数のQueueを持つ赤黒木である
|
|
177 <ul>
|
|
178 <li>Queueはkeyでアクセスされる</li>
|
|
179 <li>Queueはstreamの役割を持つ</li>
|
31
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
180 </ul>
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
181 </li>
|
33
|
182 </ul>
|
|
183
|
|
184 <div style="text-align: center;">
|
|
185 <img src="images/newGearsFile.pdf" alt="Queue" width="400" />
|
|
186 </div>
|
|
187
|
|
188
|
|
189
|
|
190 </div>
|
|
191
|
|
192 <div class='slide'>
|
|
193 <!-- _S9SLIDE_ -->
|
34
|
194 <h2 id="fileapi">FileAPI</h2>
|
|
195 <ul>
|
|
196 <li>ファイルのAPIは三種類となる</li>
|
|
197 <li>Put
|
|
198 <ul>
|
|
199 <li>Queueに対してデータを挿入する</li>
|
|
200 </ul>
|
|
201 </li>
|
|
202 <li>Take
|
|
203 <ul>
|
|
204 <li>Queueからデータを取り出す</li>
|
|
205 </ul>
|
|
206 </li>
|
|
207 <li>Peek
|
|
208 <ul>
|
|
209 <li>Queueからデータを”読み”だす</li>
|
|
210 <li>Takeの先読みに相当する</li>
|
|
211 </ul>
|
|
212 </li>
|
|
213 <li>APIは対象のstreamをkeyで指定する</li>
|
|
214 </ul>
|
|
215
|
|
216
|
|
217
|
|
218 </div>
|
|
219
|
|
220 <div class='slide'>
|
|
221 <!-- _S9SLIDE_ -->
|
33
|
222 <h2 id="gearsosの分散ファイルシステム">GearsOSの分散ファイルシステム</h2>
|
|
223 <ul>
|
|
224 <li>GearsOSのファイルは通信の役割も持つ</li>
|
34
|
225 <li>遠隔上のファイルに対応するproxyを作成して通信を行う
|
33
|
226 <ul>
|
34
|
227 <li>対象ファイルとproxyはsocketで接続される</li>
|
|
228 <li>proxyの操作はLocalなファイルと相違なく行える</li>
|
33
|
229 </ul>
|
|
230 </li>
|
34
|
231 <li>記録デバイスへの保存も同様な仕組みで行う</li>
|
33
|
232 <li>将来的にAPIと通信プロセスは定理支援証明系Agdaで検証を行う</li>
|
|
233 </ul>
|
|
234
|
|
235
|
|
236
|
|
237 </div>
|
|
238
|
|
239 <div class='slide'>
|
|
240 <!-- _S9SLIDE_ -->
|
34
|
241 <h2 id="gearsfsの展望">GearsFSの展望</h2>
|
33
|
242 <ul>
|
34
|
243 <li>ノードの配線を担当するTopologyManagerの実装
|
33
|
244 <ul>
|
34
|
245 <li>参加表明したノードを任意の形のTopologyへ配線する</li>
|
33
|
246 </ul>
|
|
247 </li>
|
34
|
248 <li>複数streamにより制御を行う分散ファイル通信手法としての検証
|
|
249 <ul>
|
|
250 <li>Dataのみで通信を行う通信(規格があるプロトコルを用いない)</li>
|
|
251 <li>自律分散通信の見通し確保</li>
|
|
252 </ul>
|
|
253 </li>
|
|
254 <li>OSレベルなTransactionを搭載するアプリケーションとしての評価
|
|
255 <ul>
|
|
256 <li>GearsOSのCodeGearはTransactionとなる</li>
|
|
257 <li>従来ではアプリケーションレベルにより実装される</li>
|
|
258 <li>GearsOSによるOSレベルTransactionの信頼性/実用性調査</li>
|
|
259 </ul>
|
|
260 </li>
|
33
|
261 </ul>
|
|
262
|
|
263
|
|
264
|
|
265 </div>
|
|
266
|
|
267 <div class='slide'>
|
|
268 <!-- _S9SLIDE_ -->
|
|
269 <h2 id="ポスターセッション">ポスターセッション</h2>
|
|
270 <ul>
|
34
|
271 <li>より詳細なGearsOSのファイル構造</li>
|
|
272 <li>ファイルの読み出し</li>
|
33
|
273 <li>proxyを用いたファイル通信の構成解説</li>
|
|
274 <li>研究のまとめと課題</li>
|
31
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
275 </ul>
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
276
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
277 </div>
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
278
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
279
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
280 </div><!-- presentation -->
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
281 </body>
|
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
282 </html>
|