comparison slide/thesis.pdf.html @ 14:0a4cafd954b9

add slide
author ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
date Sat, 05 Feb 2022 04:49:27 +0900
parents
children ed9bace4039e
comparison
equal deleted inserted replaced
13:9991e90cff65 14:0a4cafd954b9
1
2
3
4
5
6 <!DOCTYPE html>
7 <html>
8 <head>
9 <meta http-equiv="content-type" content="text/html;charset=utf-8">
10 <title>GearsOSの分散ファイルシステムの設計</title>
11
12 <meta name="generator" content="Slide Show (S9) v4.1.0 on Ruby 2.6.8 (2021-07-07) [universal.x86_64-darwin21]">
13 <meta name="author" content="Takahiro Ikki, Shinji Kono" >
14
15 <!-- style sheet links -->
16 <link rel="stylesheet" href="s6/themes/screen.css" media="screen">
17 <link rel="stylesheet" href="s6/themes/print.css" media="print">
18 <link rel="stylesheet" href="s6/themes/blank.css" media="screen,projection">
19
20 <!-- JS -->
21 <script src="s6/js/jquery-1.11.3.min.js"></script>
22 <script src="s6/js/jquery.slideshow.js"></script>
23 <script src="s6/js/jquery.slideshow.counter.js"></script>
24 <script src="s6/js/jquery.slideshow.controls.js"></script>
25 <script src="s6/js/jquery.slideshow.footer.js"></script>
26 <script src="s6/js/jquery.slideshow.autoplay.js"></script>
27
28 <!-- prettify -->
29 <link rel="stylesheet" href="scripts/prettify.css">
30 <script src="scripts/prettify.js"></script>
31
32 <style>
33 .slide {page-break-after: always;}
34 </style>
35
36
37
38
39 </head>
40 <body>
41
42 <div class="layout">
43 <div id="header"></div>
44 <div id="footer">
45 <div align="right">
46 <img src="s6/images/logo.svg" width="200px">
47 </div>
48 </div>
49 </div>
50
51 <div class="presentation">
52
53 <div class='slide cover'>
54 <table width="90%" height="90%" border="0" align="center">
55 <tr>
56 <td>
57 <div align="center">
58 <h1><font color="#808db5">GearsOSの分散ファイルシステムの設計</font></h1>
59 </div>
60 </td>
61 </tr>
62 <tr>
63 <td>
64 <div align="left">
65 Takahiro Ikki, Shinji Kono
66 琉球大学
67 <hr style="color:#ffcc00;background-color:#ffcc00;text-align:left;border:none;width:100%;height:0.2em;">
68 </div>
69 </td>
70 </tr>
71 </table>
72 </div>
73
74
75 <div class='slide'>
76
77 <!-- _S9SLIDE_ -->
78 <h2 id="gearsosとその現状">GearsOSとその現状</h2>
79 <ul>
80 <li>信頼性の保証と拡張性の高さを目指したOSプロジェクト</li>
81 <li>軽量継続を用いた言語、CbC(Continuation based C)により記述される。</li>
82 <li>ノーマルレベルとメタレベルを分離して記述する</li>
83 <li>現状では言語フレームワークとしてのみ機能する</li>
84 <li>OSとして動作するには多くの機能の開発が必要
85 <ul>
86 <li>その中の一つにファイルシステムが挙げられる</li>
87 </ul>
88 </li>
89 </ul>
90
91
92
93 </div>
94
95 <div class='slide'>
96 <!-- _S9SLIDE_ -->
97 <h2 id="従来の物より発展した分散ファイルシステムの設計">従来の物より発展した分散ファイルシステムの設計</h2>
98 <ul>
99 <li>データベース的なレコード操作によるアクセス
100 <ul>
101 <li>ファイルに対する全ての操作がTransactionとなる</li>
102 </ul>
103 </li>
104 <li>既存ではアプリケーションが担当する機能を取り込む
105 <ul>
106 <li>バックアップの管理</li>
107 <li>ファイルの型の認識</li>
108 </ul>
109 </li>
110 <li>自律分散を目指した分散ファイルシステム
111 <ul>
112 <li>特定のサーバーを中枢にしなくても良い</li>
113 <li>分散フレームワークChristieの仕組みにより実現する</li>
114 </ul>
115 </li>
116 </ul>
117
118
119
120 </div>
121
122 <div class='slide'>
123 <!-- _S9SLIDE_ -->
124 <h2 id="cbc-continuation-based-c">CbC (Continuation based C)</h2>
125 <ul>
126 <li>C言語の拡張言語である</li>
127 <li>関数に代わる軽量継続をメインに記述する</li>
128 <li>Gearというプログラム概念
129 <ul>
130 <li>CodeGear
131 <ul>
132 <li>従来のThreadにあたる</li>
133 </ul>
134 </li>
135 <li>DataGear
136 <ul>
137 <li>従来の変数データにあたる</li>
138 </ul>
139 </li>
140 </ul>
141 </li>
142 <li>DataGearを受け取り処理を行う(InputDataGear)</li>
143 <li>処理の結果をDataGearに書き出す(OutputDataGear)</li>
144 </ul>
145
146 <div style="text-align: center;">
147  <img src="images/cgdg.pdf" alt="CodeGearとDataGearの関係" width="800" />
148 </div>
149
150
151
152 </div>
153
154 <div class='slide'>
155 <!-- _S9SLIDE_ -->
156 <h2 id="cbcのサンプルプログラム">CbCのサンプルプログラム</h2>
157 <pre><code>__code CG2(int num3){
158 printf("num = %d\n", num3);
159 exit(0);
160 }
161
162 __code CG1(int num, int num1){
163 int num2 = num + num1;
164 goto CG2(num2);
165 }
166
167 int main(){
168 int a = 2;
169 int b = 3;
170 goto CG1(a, b);
171 }
172 </code></pre>
173
174
175
176 </div>
177
178 <div class='slide'>
179 <!-- _S9SLIDE_ -->
180 <h2 id="メタレベルのgear">メタレベルのGear</h2>
181 <ul>
182 <li>CodeGearとDataGearにはメタレベルのものが存在する
183 <ul>
184 <li>それぞれstubCodeGearとstubDataGearと呼ぶ</li>
185 </ul>
186 </li>
187 <li>ユーザーが記述する上では普段は意識しない</li>
188 </ul>
189
190
191
192 </div>
193
194 <div class='slide'>
195 <!-- _S9SLIDE_ -->
196 <h2 id="テスト用テキストエディタ">テスト用テキストエディタ</h2>
197
198 <pre><code>public class MyDocumentListener implements DocumentListener {
199 @Override
200 public void insertUpdate(DocumentEvent e) {
201 Document doc = e.getDocument();
202 loc = e.getOffset();
203 System.out.println(loc);
204
205 }
206
207 @Override
208 public void removeUpdate(DocumentEvent e) {
209 Document doc = e.getDocument();
210 sendLoc = e.getOffset();
211 System.out.println("delete " + sendLoc);
212 }
213 @Override
214 public void changedUpdate(DocumentEvent e) {
215 }
216 }
217 </code></pre>
218
219
220
221 </div>
222
223 <div class='slide'>
224 <!-- _S9SLIDE_ -->
225 <h2 id="編集位置の相違">編集位置の相違</h2>
226 <ul>
227 <li>同期編集のセッションでは命令コマンドの送信のすれ違いにより、ノードごとのファイル状態が異なってしまうことがある。</li>
228 <li>EditorAとEditorBはそれぞれの命令を自身のエディタバッファに施してから命令を送信するため、お互いバッファ状態が異なる状態で受け取った命令を実行してしまう。</li>
229 </ul>
230
231 <div style="text-align: center;">
232  <img src="images/difference_offset.pdf" alt="MetaGear" width="800" />
233 </div>
234
235 <!--
236 - RocalDGMを立ち上げるにはDataSegmentクラスが提供する、connectメソッドを用い、接続したいポートのipアドレスとport番号、そして任意のManager名を指定することで立ち上げる。
237 -->
238
239 <pre><code class="language-Code">digraph test {
240 node0 -&gt; node1 [label="right"]
241 node1 -&gt; node2 [label="right"]
242 node2 -&gt; node0 [label="right"]
243 }
244 </code></pre>
245
246 </div>
247
248
249 </div><!-- presentation -->
250 </body>
251 </html>