annotate slide/thesis.pdf.html @ 27:3f39907150c5

tweak
author ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
date Thu, 10 Feb 2022 19:20:41 +0900
parents 2bba3749e1f1
children 7174f22ed695
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
14
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
2
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
3
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
4
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
5
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
6 <!DOCTYPE html>
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
7 <html>
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
8 <head>
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
9 <meta http-equiv="content-type" content="text/html;charset=utf-8">
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
10 <title>GearsOSの分散ファイルシステムの設計</title>
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
11
0a4cafd954b9 add slide
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]">
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
13 <meta name="author" content="Takahiro Ikki, Shinji Kono" >
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
14
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
15 <!-- style sheet links -->
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
16 <link rel="stylesheet" href="s6/themes/screen.css" media="screen">
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
17 <link rel="stylesheet" href="s6/themes/print.css" media="print">
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
18 <link rel="stylesheet" href="s6/themes/blank.css" media="screen,projection">
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
19
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
20 <!-- JS -->
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
21 <script src="s6/js/jquery-1.11.3.min.js"></script>
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
22 <script src="s6/js/jquery.slideshow.js"></script>
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
23 <script src="s6/js/jquery.slideshow.counter.js"></script>
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
24 <script src="s6/js/jquery.slideshow.controls.js"></script>
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
25 <script src="s6/js/jquery.slideshow.footer.js"></script>
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
26 <script src="s6/js/jquery.slideshow.autoplay.js"></script>
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
27
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
28 <!-- prettify -->
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
29 <link rel="stylesheet" href="scripts/prettify.css">
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
30 <script src="scripts/prettify.js"></script>
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
31
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
32 <style>
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
33 .slide {page-break-after: always;}
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
34 </style>
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
35
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
36
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
37
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
38
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
39 </head>
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
40 <body>
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
41
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
42 <div class="layout">
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
43 <div id="header"></div>
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
44 <div id="footer">
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
45 <div align="right">
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
46 <img src="s6/images/logo.svg" width="200px">
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
47 </div>
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
48 </div>
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
49 </div>
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
50
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
51 <div class="presentation">
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
52
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
53 <div class='slide cover'>
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
54 <table width="90%" height="90%" border="0" align="center">
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
55 <tr>
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
56 <td>
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
57 <div align="center">
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
58 <h1><font color="#808db5">GearsOSの分散ファイルシステムの設計</font></h1>
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
59 </div>
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
60 </td>
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
61 </tr>
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
62 <tr>
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
63 <td>
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
64 <div align="left">
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
65 Takahiro Ikki, Shinji Kono
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
66 琉球大学
0a4cafd954b9 add slide
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;">
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
68 </div>
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
69 </td>
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
70 </tr>
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
71 </table>
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
72 </div>
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
73
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
74
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
75 <div class='slide'>
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
76
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
77 <!-- _S9SLIDE_ -->
22
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
78 <h2 id="gearsosのファイルシステムの設計方針">GearsOSのファイルシステムの設計方針</h2>
14
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
79 <ul>
22
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
80 <li>GearsOSはGearという単位で記述が行われているOSプロジェクトである</li>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
81 <li>GearsOSのファイルシステムも同様にDataGearの単位で構成したい</li>
20
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
82 <li>GearsOSのファイルシステムの設計と実装を行った</li>
22
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
83 <li>ファイルに取り扱うデータに対応した複数のストリームを持たせたい
14
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
84 <ul>
22
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
85 <li>従来では異なるデータでも単一のストリームから入力される</li>
14
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
86 </ul>
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
87 </li>
22
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
88 <li>GearsOSには将来的にアプリケーションが担う重要な機能をOSに取り込みたい
14
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
89 <ul>
24
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
90 <li>ファイルの型認識</li>
20
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
91 <li>バックアップ</li>
14
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
92 </ul>
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
93 </li>
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
94 </ul>
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
95
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
96
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
97
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
98 </div>
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
99
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
100 <div class='slide'>
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
101 <!-- _S9SLIDE_ -->
22
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
102 <h2 id="gearsosのgear概念12">GearsOSのGear概念(1/2)</h2>
14
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
103 <ul>
22
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
104 <li>関数でなくGearという単位を用いて記述する</li>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
105 <li>Gearは関数と異なり、スタックを持たないため軽量継続と呼ぶ</li>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
106 <li>CodeGear
14
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
107 <ul>
22
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
108 <li>従来のThreadにあたる</li>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
109 <li>goto文(jump命令)を使って遷移する</li>
14
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
110 </ul>
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
111 </li>
22
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
112 <li>DataGear
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
113 <ul>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
114 <li>従来の変数データにあたる</li>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
115 </ul>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
116 </li>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
117 </ul>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
118
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
119
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
120
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
121 </div>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
122
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
123 <div class='slide'>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
124 <!-- _S9SLIDE_ -->
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
125 <h2 id="gearsosのgear概念22">GearsOSのGear概念(2/2)</h2>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
126 <ul>
20
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
127 <li>CodeGearは処理を行う際、DataGearを参照し処理を行う(InputDataGear)</li>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
128 <li>CodeGearは処理の終了後、以降に必要なデータをDataGearとして出力する(OutputDataGear)</li>
14
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
129 </ul>
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
130 <div style="text-align: center;">
22
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
131  <img src="images/cg-dg.pdf" alt="cgdgの関係図" width="600" />
14
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
132 </div>
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
133
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
134
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
135
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
136 </div>
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
137
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
138 <div class='slide'>
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
139 <!-- _S9SLIDE_ -->
20
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
140 <h2 id="gearsosのinterface">GearsOSのInterface</h2>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
141 <ul>
22
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
142 <li>Object型指向の仕組み</li>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
143 <li>APIとなるCodeGearとその参照するDataGearを宣言する</li>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
144 <li>DataGear/CodeGearの一時的な置き場としての役割を持つ
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
145 <pre><code>typedef struct Tree&lt;&gt;{
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
146 union Data* tree;
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
147 struct Node* node;
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
148 __code put(Impl* tree,Type* node, __code next(...));
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
149 __code get(Impl* tree, Type* node, __code next(...));
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
150 __code remove(Impl* tree,Type* node, __code next(...));
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
151 __code next(...);
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
152 } Tree;
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
153 </code></pre>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
154 </li>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
155 </ul>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
156
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
157
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
158
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
159 </div>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
160
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
161 <div class='slide'>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
162 <!-- _S9SLIDE_ -->
26
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
163 <h2 id="gearsosのimplement">GearsOSのImplement</h2>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
164 <ul>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
165 <li>Interfaceを継承した実装の型定義ファイルである</li>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
166 <li>実装で使われるデータ構造を記述する
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
167 <pre><code> typedef struct SynchronizedQueue &lt;&gt; impl Queue {
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
168 struct Element* top;
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
169 struct Element* last;
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
170 struct Atomic* atomic;
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
171 } SynchronizedQueue;
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
172 </code></pre>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
173 </li>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
174 </ul>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
175
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
176
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
177
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
178 </div>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
179
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
180 <div class='slide'>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
181 <!-- _S9SLIDE_ -->
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
182 <h2 id="interfaceの呼び出し">Interfaceの呼び出し</h2>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
183 <ul>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
184 <li>インターフェースは以下の記述で実装と呼び出しを行う
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
185 <pre><code>struct Queue* queue = new Queue();
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
186 queue = createSychronizedQueue(context);
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
187 </code></pre>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
188 </li>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
189 </ul>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
190
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
191 <pre><code>goto queue-&gt;put(task, next(...));
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
192 </code></pre>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
193
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
194
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
195
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
196 </div>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
197
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
198 <div class='slide'>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
199 <!-- _S9SLIDE_ -->
22
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
200 <h2 id="メタレベルのgear13">メタレベルのGear(1/3)</h2>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
201 <ul>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
202 <li>CodeGearとDataGearにはユーザーが記述しない、メタレベルのものが存在する
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
203 <ul>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
204 <li>メタレベルな記述はトランスコンパイラにより自動生成される</li>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
205 </ul>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
206 </li>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
207 </ul>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
208 <div style="text-align: center;">
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
209  <img src="images/meta-cg-dg.pdf" alt="ノーマルレベルとメタレベルの視点からのGearの関係" width="800" />
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
210 </div>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
211
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
212
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
213
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
214 </div>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
215
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
216 <div class='slide'>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
217 <!-- _S9SLIDE_ -->
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
218 <h2 id="メタレベルのgear23">メタレベルのGear(2/3)</h2>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
219 <ul>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
220 <li>MetaCodeGear
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
221 <ul>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
222 <li>CodeGearの処理前と処理後に参照される</li>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
223 <li>Input/OutputDataGearを引き渡す</li>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
224 <li>CodeGear処理前に呼ばれるものを特にstubCodeGearと呼ぶ</li>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
225 </ul>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
226 </li>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
227 </ul>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
228 <div style="text-align: center;">
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
229  <img src="images/meta-cg-dg.pdf" alt="ノーマルレベルとメタレベルの視点からのGearの関係" width="800" />
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
230 </div>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
231
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
232
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
233
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
234 </div>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
235
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
236 <div class='slide'>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
237 <!-- _S9SLIDE_ -->
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
238 <h2 id="メタレベルのgear33">メタレベルのGear(3/3)</h2>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
239 <ul>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
240 <li>MetaDataGear
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
241 <ul>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
242 <li>MetaCodeGearにて参照されるDataGear</li>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
243 </ul>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
244 </li>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
245 </ul>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
246 <div style="text-align: center;">
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
247  <img src="images/meta-cg-dg.pdf" alt="ノーマルレベルとメタレベルの視点からのGearの関係" width="800" />
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
248 </div>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
249
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
250
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
251
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
252 </div>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
253
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
254 <div class='slide'>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
255 <!-- _S9SLIDE_ -->
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
256 <h2 id="gearsosのファイルシステムの設計">GearsOSのファイルシステムの設計</h2>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
257 <ul>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
258 <li>DataGearの単位でデータを操作したい</li>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
259 <li>通信データに対応した複数のストリームを持ちたい</li>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
260 <li>Transaction(マクロレベル)で操作したい
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
261 <ul>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
262 <li>従来のファイルシステムは一部の操作のみTransactionである</li>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
263 </ul>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
264 </li>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
265 <li>ファイルそのものが通信を担当する
20
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
266 <ul>
22
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
267 <li>ChristieのDataGearManagerを参考にする</li>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
268 </ul>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
269 </li>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
270 </ul>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
271
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
272
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
273
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
274 </div>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
275
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
276 <div class='slide'>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
277 <!-- _S9SLIDE_ -->
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
278 <h2 id="gearsosのファイルデータ操作13">GearsOSのファイルデータ操作(1/3)</h2>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
279 <ul>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
280 <li>GearsOSはDataGearのやりとりでプログラムが構成される
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
281 <ul>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
282 <li>ファイルシステムも同様の実装にしたい = DataGear単位で操作したい</li>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
283 </ul>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
284 </li>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
285 </ul>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
286 <div style="text-align: center;">
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
287  <img src="images/QueueElement.pdf" alt="Queueの構造" width="800" />
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
288 </div>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
289
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
290
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
291
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
292 </div>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
293
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
294 <div class='slide'>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
295 <!-- _S9SLIDE_ -->
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
296 <h2 id="gearsosのファイルデータ操作23">GearsOSのファイルデータ操作(2/3)</h2>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
297 <ul>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
298 <li>GearsOSのファイルデータは任意の型を持った構造体で実装される(ファイルレコード)</li>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
299 <li>レコードは決められた順番で連続しており、Queueに保存される</li>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
300 </ul>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
301 <div style="text-align: center;">
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
302  <img src="images/QueueElement.pdf" alt="Queueの構造" width="800" />
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
303 </div>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
304
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
305
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
306
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
307 </div>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
308
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
309 <div class='slide'>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
310 <!-- _S9SLIDE_ -->
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
311 <h2 id="gearsosのファイルデータ操作33">GearsOSのファイルデータ操作(3/3)</h2>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
312 <ul>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
313 <li>構造体の型を判別することで処理の切り替えが行える</li>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
314 </ul>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
315 <div style="text-align: center;">
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
316  <img src="images/QueueElement.pdf" alt="Queueの構造" width="800" />
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
317 </div>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
318
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
319
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
320
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
321 </div>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
322
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
323 <div class='slide'>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
324 <!-- _S9SLIDE_ -->
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
325 <h2 id="gearsfsのトランザクション">GearsFSのトランザクション</h2>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
326 <ul>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
327 <li>GearsOSのDataGear操作はマクロな操作である
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
328 <ul>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
329 <li>よってCodeGearはTransactionである</li>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
330 </ul>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
331 </li>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
332 <li>ファイルシステム操作もCodeGearで記述されるためTransactionとなる</li>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
333 <li>トランザクションな操作によってファイルシステムの整合性の保守が行いやすい</li>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
334 </ul>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
335
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
336
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
337
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
338 </div>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
339
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
340 <div class='slide'>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
341 <!-- _S9SLIDE_ -->
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
342 <h2 id="queueによるgearsosのファイル">QueueによるGearsOSのファイル</h2>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
343 <ul>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
344 <li>GearsOSのファイルはファイルレコードを保持するQueueとなる</li>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
345 <li>デバイスへの保存はQueueを保存すればよい</li>
23
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
346 <li>ファイルはQueueなのでファイルのAPIは大きく二つとなる
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
347 <ul>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
348 <li>Put</li>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
349 <li>Take</li>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
350 </ul>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
351 </li>
22
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
352 </ul>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
353
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
354
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
355
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
356 </div>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
357
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
358 <div class='slide'>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
359 <!-- _S9SLIDE_ -->
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
360 <h2 id="queueapi--put-">QueueAPI -Put-</h2>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
361 <ul>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
362 <li>Put
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
363 <ul>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
364 <li>Queueに対してファイルレコードを入力する</li>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
365 <li>ファイルの変更をレコードとして書き込む
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
366 <pre><code>__code putSingleLinkedQueue(struct SingleLinkedQueue* queue, union Data* data, __code next(...)) {
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
367 Element* element = new Element();
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
368 element-&gt;data = data;
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
369 element-&gt;next = NULL;
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
370 queue-&gt;last-&gt;next = element;
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
371 queue-&gt;last = element;
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
372 goto next(...);
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
373 }
14
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
374 </code></pre>
20
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
375 </li>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
376 </ul>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
377 </li>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
378 </ul>
14
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
379
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
380
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
381
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
382 </div>
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
383
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
384 <div class='slide'>
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
385 <!-- _S9SLIDE_ -->
22
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
386 <h2 id="queueapi--take-">QueueAPI -Take-</h2>
16
ed9bace4039e add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 14
diff changeset
387 <ul>
20
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
388 <li>Take
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
389 <ul>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
390 <li>Queueからファイルレコードを取り出す</li>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
391 <li>Queue内のレコードをループで全て取り出せば良い
22
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
392 <pre><code>__code takeSingleLinkedQueue(struct SingleLinkedQueue* queue, __code next(union Data* data, ...)) {
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
393 printf("take\n");
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
394 struct Element* top = queue-&gt;top;
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
395 struct Element* nextElement = top-&gt;next;
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
396 if (queue-&gt;top == queue-&gt;last) {
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
397 data = NULL;
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
398 } else {
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
399 queue-&gt;top = nextElement;
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
400 data = nextElement-&gt;data;
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
401 }
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
402 goto next(data, ...);
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
403 }
20
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
404 </code></pre>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
405 </li>
19
9e6fd2255ee1 tweak slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
406 </ul>
9e6fd2255ee1 tweak slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
407 </li>
9e6fd2255ee1 tweak slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
408 </ul>
9e6fd2255ee1 tweak slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
409
9e6fd2255ee1 tweak slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
410
9e6fd2255ee1 tweak slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
411
9e6fd2255ee1 tweak slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
412 </div>
9e6fd2255ee1 tweak slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
413
9e6fd2255ee1 tweak slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
414 <div class='slide'>
9e6fd2255ee1 tweak slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
415 <!-- _S9SLIDE_ -->
23
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
416 <h2 id="ファイル通信の構成">ファイル通信の構成</h2>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
417 <ul>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
418 <li>GearsOSのファイルは大域的に解放された資源としたい
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
419 <ul>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
420 <li>ファイル自信を通信そのものとして実装する</li>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
421 <li>Streamに対しsocket接続により遠隔にアクセスする</li>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
422 </ul>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
423 </li>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
424 <li>分散フレームワークChristieのDataGearManagerの仕組みを利用する</li>
17
f4a719e93ded Too long
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
425 </ul>
f4a719e93ded Too long
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
426
f4a719e93ded Too long
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
427
f4a719e93ded Too long
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
428
f4a719e93ded Too long
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
429 </div>
f4a719e93ded Too long
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
430
f4a719e93ded Too long
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
431 <div class='slide'>
f4a719e93ded Too long
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
432 <!-- _S9SLIDE_ -->
20
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
433 <h2 id="datagearmanager">DataGearManager</h2>
17
f4a719e93ded Too long
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
434 <ul>
23
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
435 <li>分散フレームワークChristieの仕組みの一つ</li>
20
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
436 <li>keyとvalueの組み合わせとなるDataGearを保持するデータプール</li>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
437 <li>ChristieではCodeGearManagerと呼ばれるノードがCodeGearとDataGearを管理する</li>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
438 <li>LocalDGMはノード本体に対応するデータプールである
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
439 <ul>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
440 <li>CodeGearはLocalDGMに対してDataGearを参照する</li>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
441 </ul>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
442 </li>
22
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
443 <li>RemoteDGMは接続する相手ノードに対応するデータプールproxyである
20
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
444 <ul>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
445 <li>RemoteDGMに対してDataGearを書き込むことで、対応するノードのLocalDGMにデータが書き込まれる</li>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
446 </ul>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
447 </li>
17
f4a719e93ded Too long
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
448 </ul>
f4a719e93ded Too long
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
449
20
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
450
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
451
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
452 </div>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
453
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
454 <div class='slide'>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
455 <!-- _S9SLIDE_ -->
24
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
456 <h2 id="datagearmanagerによる通信構成">DataGearManagerによる通信構成</h2>
23
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
457 <ul>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
458 <li>任意の相手のRemoteDGMを作成することでTopologyが形成される</li>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
459 </ul>
19
9e6fd2255ee1 tweak slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
460 <div style="text-align: center;">
20
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
461  <img src="images/Remote_DataGearManager.pdf" alt="RemoteDGMの関係図" width="800" />
19
9e6fd2255ee1 tweak slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
462 </div>
9e6fd2255ee1 tweak slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
463
17
f4a719e93ded Too long
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
464
f4a719e93ded Too long
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
465
f4a719e93ded Too long
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
466 </div>
f4a719e93ded Too long
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
467
f4a719e93ded Too long
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
468 <div class='slide'>
f4a719e93ded Too long
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
469 <!-- _S9SLIDE_ -->
23
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
470 <h2 id="gearsos上のsocket通信">GearsOS上のsocket通信</h2>
19
9e6fd2255ee1 tweak slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
471 <ul>
24
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
472 <li>GearsOS上のsocket通信を実装したい</li>
23
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
473 <li>Queueをsocketに接続し、簡易的なAPIの記述をした
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
474 <ul>
24
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
475 <li>Localなqueueに対してRemoteのqueueがソケット接続を行う
23
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
476 <pre><code>typedef struct CQueue&lt;&gt;{
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
477 union Data* cQueue;
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
478 union Data* data;
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
479
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
480 __code whenEmpty(...);
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
481 __code whenEOF(...);
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
482 __code clear(Impl* cQueue, __code next(...));
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
483 __code put(Impl* cQueue, union Data* data, __code next(...));
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
484 __code take(Impl* cQueue, __code next(union Data* data, ...));
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
485 __code isEmpty(Impl* cQueue, __code next(...), __code whenEmpty(...));
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
486 __code getData(Impl* cQueue, __code next(...), __code whenEOF(...));
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
487 __code next(...);
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
488 } CQueue;
19
9e6fd2255ee1 tweak slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
489 </code></pre>
23
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
490 </li>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
491 </ul>
20
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
492 </li>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
493 </ul>
19
9e6fd2255ee1 tweak slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
494
9e6fd2255ee1 tweak slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
495
9e6fd2255ee1 tweak slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
496
9e6fd2255ee1 tweak slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
497 </div>
9e6fd2255ee1 tweak slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
498
9e6fd2255ee1 tweak slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
499 <div class='slide'>
9e6fd2255ee1 tweak slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
500 <!-- _S9SLIDE_ -->
24
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
501 <h2 id="senddata-codegear">sendData CodeGear</h2>
19
9e6fd2255ee1 tweak slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
502 <ul>
24
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
503 <li>proxy側はQueueにputされたDataをsocketで送信する</li>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
504 <li>送信されたDataはLocal側でgetDataAPIで取り出される
19
9e6fd2255ee1 tweak slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
505 <pre><code>__code sendDataRemoteDGMQueue(struct RemoteDGMQueue* cQueue, union Data* data, __code next(...), __code whenError(...)){
20
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
506 char recv_buf;
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
507 int send_size, recv_size;
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
508
19
9e6fd2255ee1 tweak slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
509 send_size = send(cQueue-&gt;socket, data, sizeof(union Data), 0);
9e6fd2255ee1 tweak slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
510 recv_size = recv(cQueue-&gt;socket, &amp;recv_buf, 1, 0);
20
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
511 //error処理は省略
19
9e6fd2255ee1 tweak slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
512 goto next(...);
9e6fd2255ee1 tweak slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
513 }
9e6fd2255ee1 tweak slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
514 </code></pre>
9e6fd2255ee1 tweak slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
515 </li>
9e6fd2255ee1 tweak slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
516 </ul>
18
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
517
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
518
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
519
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
520 </div>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
521
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
522 <div class='slide'>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
523 <!-- _S9SLIDE_ -->
24
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
524 <h2 id="getdata-codegear">getData CodeGear</h2>
20
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
525 <ul>
24
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
526 <li>ファイル本体(Local側)はsocketからDataを取り出す</li>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
527 <li>取り出されたデータはQueueにputされる
20
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
528 <pre><code>__code getDataLocalDGMQueue(struct LocalDGMQueue* cQueue, __code next(...), __code whenError(...)){
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
529 int recv_size, send_size;
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
530 char send_buf;
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
531
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
532 union Data* recv_data;
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
533 recv_size = recv(cQueue-&gt;socket, recv_data, sizeof(union Data), 0);
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
534
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
535 //error処理は省略
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
536 Gearef(context, cQueue)-&gt;data = recv_data;
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
537 goto putLocalDGMQueue(recv_data, next);
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
538 }
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
539 </code></pre>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
540 </li>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
541 </ul>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
542
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
543
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
544
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
545 </div>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
546
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
547 <div class='slide'>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
548 <!-- _S9SLIDE_ -->
24
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
549 <h2 id="複数のストリームから構成されるファイル">複数のストリームから構成されるファイル</h2>
17
f4a719e93ded Too long
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
550 <ul>
24
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
551 <li>入力されるデータに応じた個別のstreamを備えたい
20
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
552 <ul>
24
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
553 <li>streamと入力されたデータの処理を直接結びつけたい</li>
20
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
554 </ul>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
555 </li>
24
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
556 <li>最低でもInput/OutputStreamの二つが必要となる</li>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
557 <li>ファイルは複数のStreamを持ったリストとして実装する</li>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
558 <li>Streamはkey nameを持ち、keyでアクセスを行う</li>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
559 </ul>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
560
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
561
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
562
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
563 </div>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
564
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
565 <div class='slide'>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
566 <!-- _S9SLIDE_ -->
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
567 <h2 id="複数のストリームを持つファイルの設計">複数のストリームを持つファイルの設計</h2>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
568 <ul>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
569 <li>Queueのリストとして赤黒木を用いる
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
570 <ul>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
571 <li>key/value storeなアクセスを行うことができる</li>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
572 <li>GearsOS上にすでに実装が行われている</li>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
573 </ul>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
574 </li>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
575 <li>DataのTake/Put時には必ずkey nameの指定が必要となる</li>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
576 </ul>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
577
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
578
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
579
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
580 </div>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
581
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
582 <div class='slide'>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
583 <!-- _S9SLIDE_ -->
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
584 <h2 id="リスト単位の通信の構成">リスト単位の通信の構成</h2>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
585 <ul>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
586 <li>指定したkeyのQueueが探索で返される</li>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
587 <li>proxyの場合、どのkeyに対してどんなDataを書き込んだかを通信で送信する</li>
17
f4a719e93ded Too long
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
588 </ul>
20
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
589 <div style="text-align: center;">
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
590  <img src="images/socketCom.pdf" alt="socketを通じたレコード送信" width="800" />
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
591 </div>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
592
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
593
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
594
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
595 </div>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
596
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
597 <div class='slide'>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
598 <!-- _S9SLIDE_ -->
24
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
599 <h2 id="wordcount例題による通信apiの構築">wordCount例題による通信APIの構築</h2>
20
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
600 <ul>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
601 <li>DataGearManagerによるファイル通信APIはWordCount例題を目指して設計した
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
602 <ul>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
603 <li>ファイル内の文字列を1行づつ受け取り、文字列,行数をカウントする例題</li>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
604 </ul>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
605 </li>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
606 <li>文字列送信側とCount側を別ノード上で行うことで、ファイルの呼び出しと通信処理が構成できる</li>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
607 </ul>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
608 <div style="text-align: center;">
27
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 26
diff changeset
609  <img src="images/slideGearsWC.pdf" alt="リモートDGMによるWordCount" width="800" />
20
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
610 </div>
17
f4a719e93ded Too long
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
611
f4a719e93ded Too long
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
612
f4a719e93ded Too long
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
613
f4a719e93ded Too long
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
614 </div>
f4a719e93ded Too long
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
615
f4a719e93ded Too long
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
616 <div class='slide'>
f4a719e93ded Too long
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
617 <!-- _S9SLIDE_ -->
24
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
618 <h2 id="gearsfile-apiによるwordcount13">GearsFile APIによるWordCount(1/3)</h2>
17
f4a719e93ded Too long
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
619 <ul>
26
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
620 <li>FileOpen側(NodeA)とWordCount側(NodeB)でノードが別れる</li>
27
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 26
diff changeset
621 <li>(手順1)FileOpen側はFilePloxyにDataRecordをputする</li>
17
f4a719e93ded Too long
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
622 <li>(手順2)WordCount側は処理の後、ackを返信する</li>
24
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
623 </ul>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
624 <div style="text-align: center;">
26
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
625  <img src="images/slideGearsWC.pdf" alt="ChristieAPIによるWordCount" width="800" />
24
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
626 </div>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
627
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
628
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
629
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
630 </div>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
631
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
632 <div class='slide'>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
633 <!-- _S9SLIDE_ -->
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
634 <h2 id="gearsfile-apiによるwordcount23">GearsFile APIによるWordCount(2/3)</h2>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
635 <ul>
17
f4a719e93ded Too long
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
636 <li>(手順3)1,2をループし、FileOpen側はEoFならフラグを送信する</li>
24
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
637 </ul>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
638 <div style="text-align: center;">
26
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
639  <img src="images/slideGearsWC.pdf" alt="ChristieAPIによるWordCount" width="800" />
24
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
640 </div>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
641
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
642
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
643
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
644 </div>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
645
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
646 <div class='slide'>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
647 <!-- _S9SLIDE_ -->
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
648 <h2 id="gearsfile-apiによるwordcount33">GearsFile APIによるWordCount(3/3)</h2>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
649 <ul>
17
f4a719e93ded Too long
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
650 <li>(手順4)EoFを受信したWordCountは結果を返信し、双方の処理を終了させる</li>
f4a719e93ded Too long
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
651 </ul>
f4a719e93ded Too long
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
652 <div style="text-align: center;">
26
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
653  <img src="images/slideGearsWC.pdf" alt="ChristieAPIによるWordCount" width="800" />
17
f4a719e93ded Too long
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
654 </div>
f4a719e93ded Too long
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
655
f4a719e93ded Too long
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
656
f4a719e93ded Too long
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
657
f4a719e93ded Too long
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
658 </div>
f4a719e93ded Too long
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
659
f4a719e93ded Too long
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
660 <div class='slide'>
f4a719e93ded Too long
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
661 <!-- _S9SLIDE_ -->
24
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
662 <h2 id="現在のgearsfile-apiの開発状況">現在のGearsFile APIの開発状況</h2>
18
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
663 <ul>
24
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
664 <li>実装ずみ
20
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
665 <ul>
24
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
666 <li>keyアクセスに対応したファイル通信
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
667 <ul>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
668 <li>単一のQueueによる通信の記述</li>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
669 </ul>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
670 </li>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
671 <li>リストとなるTree
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
672 <ul>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
673 <li>赤黒木</li>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
674 </ul>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
675 </li>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
676 <li>atomicな操作が行えるQueue
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
677 <ul>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
678 <li>複数からのアクセス時にデータ整合を保つ</li>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
679 </ul>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
680 </li>
20
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
681 </ul>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
682 </li>
24
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
683 <li>実装中
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
684 <ul>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
685 <li>keyアクセスが行えるQueueのリスト</li>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
686 <li>リスト単位での通信の記述</li>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
687 </ul>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
688 </li>
18
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
689 </ul>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
690
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
691
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
692
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
693 </div>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
694
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
695 <div class='slide'>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
696 <!-- _S9SLIDE_ -->
24
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
697 <h2 id="gearsosの生成形の問題点">GearsOSの生成形の問題点</h2>
18
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
698 <ul>
20
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
699 <li>GearsOSのメタレベルの処理の記述はトランスコンパイラにより行われる</li>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
700 <li>場合によりメタレベルの記述を行わなくてはならない
18
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
701 <ul>
20
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
702 <li>他のInterfaceを継承したオブジェクトからのDataGear継承
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
703 <ul>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
704 <li>例)Queueからのデータ取り出し</li>
26
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
705 <li>トランスコンパイラはどのInterfaceに記述されたDataGearを参照するべきか判断が難しい</li>
20
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
706 </ul>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
707 </li>
18
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
708 </ul>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
709 </li>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
710 </ul>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
711
20
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
712 <pre><code>__code Task2(TQueue* localDGMQueue){
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
713 goto localDGMQueue-&gt;take(Task3);
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
714 }
18
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
715
20
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
716 __code Task3(TQueue* localDGMQueue, FileString* string){
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
717 printf("take[%s] [num:%d]\n", string-&gt;str, string-&gt;size);
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
718 goto getData();
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
719 }
18
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
720
20
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
721 //プログラマが実装したいstub
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
722 __code Task3_stub(struct Context* context){
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
723 TQueue* localDGMQueue = (struct TQueue*)Gearef(context, TQueue)-&gt;tQueue;
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
724 FileString* string = Gearef(context, TQueue)-&gt;data;
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
725 goto Task3(context, localDGMQueue, string);
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
726 }
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
727
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
728 //自動生成されたErrorなstub
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
729 __code Task3_stub(struct Context* context) {
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
730 TQueue* localDGMQueue = Gearef(context, TQueue);
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
731 FileString* string = Gearef(context, FileString);
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
732 goto Task3(context, localDGMQueue, string);
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
733 }
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
734 </code></pre>
18
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
735
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
736
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
737
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
738 </div>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
739
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
740 <div class='slide'>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
741 <!-- _S9SLIDE_ -->
20
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
742 <h2 id="並列処理構文par-gotoが持つ問題">並列処理構文par gotoが持つ問題</h2>
18
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
743 <ul>
20
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
744 <li>par gotoとはGearsOSに実装された並列処理構文である</li>
24
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
745 <li>StreamQueueに対するput/takeの並列処理の実装をpar goto構文で試みた</li>
20
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
746 <li>par gotoはトランスコンパイラへの依存性が高い
18
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
747 <ul>
20
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
748 <li>stubCodeGearのように任意な書き換えが行えない</li>
18
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
749 </ul>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
750 </li>
20
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
751 <li>特定のCodeGearの宣言のみでしか正常な処理が生成されない
18
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
752 <ul>
20
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
753 <li>Interfaceに記述されたAPICodeGearではバグが生じる</li>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
754 <li>par gotoでの使用を前提としたCodeGearを書かなくてはならない</li>
18
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
755 </ul>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
756 </li>
20
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
757 <li>処理が重いという問題点も存在する</li>
18
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
758 </ul>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
759
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
760
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
761
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
762 </div>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
763
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
764 <div class='slide'>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
765 <!-- _S9SLIDE_ -->
19
9e6fd2255ee1 tweak slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
766 <h2 id="結論">結論</h2>
18
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
767 <ul>
20
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
768 <li>GearsOSのファイルの設計を行った
18
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
769 <ul>
24
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
770 <li>ファイルの構造の設計
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
771 <ul>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
772 <li>DataGear単位での操作が行える</li>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
773 </ul>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
774 </li>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
775 <li>socketによる通信部分の実装
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
776 <ul>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
777 <li>GearsOS上でのソケット通信の記述</li>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
778 </ul>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
779 </li>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
780 <li>APIの段階的な設計記述
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
781 <ul>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
782 <li>Proxyによるファイル通信</li>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
783 </ul>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
784 </li>
20
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
785 <li>GearsOSの調査</li>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
786 </ul>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
787 </li>
24
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
788 <li>Streamのリスト単位での通信の完成</li>
20
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
789 </ul>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
790
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
791
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
792
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
793 </div>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
794
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
795 <div class='slide'>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
796 <!-- _S9SLIDE_ -->
24
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
797 <h2 id="将来的な課題">将来的な課題</h2>
20
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
798 <ul>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
799 <li>TopoplogyManagerの設計
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
800 <ul>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
801 <li>参加したノードを任意の形のTopologyに接続する機能</li>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
802 <li>ファイルシステム向けの機能を追加したい
18
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
803 <ul>
20
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
804 <li>DNS</li>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
805 <li>中枢としてのTopologyのノード監視</li>
18
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
806 </ul>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
807 </li>
20
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
808 </ul>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
809 </li>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
810 <li>Securityシステムの追加
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
811 <ul>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
812 <li>証明書などによるファイル操作制限</li>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
813 <li>不正な分散ファイルシステムへのアクセス</li>
18
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
814 </ul>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
815 </li>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
816 </ul>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
817
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
818
17
f4a719e93ded Too long
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
819
f4a719e93ded Too long
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
820 </div>
f4a719e93ded Too long
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
821
f4a719e93ded Too long
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
822 <div class='slide'>
f4a719e93ded Too long
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
823 <!-- _S9SLIDE_ -->
20
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
824 <h2 id="この先保留">この先保留</h2>
14
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
825
19
9e6fd2255ee1 tweak slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
826
9e6fd2255ee1 tweak slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
827
9e6fd2255ee1 tweak slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
828 </div>
9e6fd2255ee1 tweak slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
829
9e6fd2255ee1 tweak slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
830 <div class='slide'>
9e6fd2255ee1 tweak slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
831 <!-- _S9SLIDE_ -->
24
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
832 <h2 id="gearsosのディレクトリとバックアップ">GearsOSのディレクトリとバックアップ</h2>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
833 <ul>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
834 <li>又吉雄斗による並行研究にて、inodeによるファイルシステムが開発されている</li>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
835 <li>赤黒木の非破壊な編集により、ディレクトリの履歴を残すことができる</li>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
836 </ul>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
837 <div style="text-align: center;">
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
838  <img src="images/nonDestroyTreeEdit.pdf" alt="非破壊的なツリー編集" width="800" />
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
839 </div>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
840
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
841
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
842
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
843 </div>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
844
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
845 <div class='slide'>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
846 <!-- _S9SLIDE_ -->
20
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
847 <h2 id="ファイルqueueに対するapi--peek-">ファイルQueueに対するAPI -Peek-</h2>
17
f4a719e93ded Too long
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
848 <ul>
20
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
849 <li>Peek
19
9e6fd2255ee1 tweak slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
850 <ul>
20
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
851 <li>QueueのElementを参照するが、削除は行わない</li>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
852 <li>現時点での実装は行っていない</li>
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
853 <li>QueueのTopのレコードを変更せずに出力すれば良い
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
854 &lt;!–</li>
19
9e6fd2255ee1 tweak slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
855 </ul>
9e6fd2255ee1 tweak slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
856 </li>
20
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
857 <li>RocalDGMを立ち上げるにはDataSegmentクラスが提供する、connectメソッドを用い、接続したいポートのipアドレスとport番号、そして任意のManager名を指定することで立ち上げる。
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
858 –&gt;</li>
17
f4a719e93ded Too long
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
859 </ul>
14
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
860
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
861 </div>
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
862
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
863
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
864 </div><!-- presentation -->
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
865 </body>
0a4cafd954b9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
866 </html>