0
|
1 <!DOCTYPE html>
|
|
2 <html>
|
|
3 <head>
|
|
4 <meta http-equiv="content-type" content="text/html;charset=utf-8">
|
|
5 <title>Gears OS のモジュール化と並列 API</title>
|
|
6
|
|
7 <meta name="generator" content="Slide Show (S9) v2.5.0 on Ruby 2.4.1 (2017-03-22) [x86_64-darwin15]">
|
|
8 <meta name="author" content="Mitsuki Miyagi, Yu Tobaru, Shinji Kono" >
|
|
9
|
|
10 <!-- style sheet links -->
|
|
11 <link rel="stylesheet" href="s6/themes/projection.css" media="screen,projection">
|
|
12 <link rel="stylesheet" href="s6/themes/screen.css" media="screen">
|
|
13 <link rel="stylesheet" href="s6/themes/print.css" media="print">
|
|
14 <link rel="stylesheet" href="s6/themes/blank.css" media="screen,projection">
|
|
15
|
|
16 <!-- JS -->
|
|
17 <script src="s6/js/jquery-1.11.3.min.js"></script>
|
|
18 <script src="s6/js/jquery.slideshow.js"></script>
|
|
19 <script src="s6/js/jquery.slideshow.counter.js"></script>
|
|
20 <script src="s6/js/jquery.slideshow.controls.js"></script>
|
|
21 <script src="s6/js/jquery.slideshow.footer.js"></script>
|
|
22 <script src="s6/js/jquery.slideshow.autoplay.js"></script>
|
|
23
|
|
24 <!-- prettify -->
|
|
25 <link rel="stylesheet" href="scripts/prettify.css">
|
|
26 <script src="scripts/prettify.js"></script>
|
|
27
|
|
28 <script>
|
|
29 $(document).ready( function() {
|
|
30 Slideshow.init();
|
|
31
|
|
32 $('code').each(function(_, el) {
|
|
33 if (!el.classList.contains('noprettyprint')) {
|
|
34 el.classList.add('prettyprint');
|
|
35 }
|
|
36 });
|
|
37 prettyPrint();
|
|
38 } );
|
|
39
|
|
40
|
|
41 </script>
|
|
42
|
|
43 <!-- Better Browser Banner for Microsoft Internet Explorer (IE) -->
|
|
44 <!--[if IE]>
|
|
45 <script src="s6/js/jquery.microsoft.js"></script>
|
|
46 <![endif]-->
|
|
47
|
|
48
|
|
49
|
|
50 </head>
|
|
51 <body>
|
|
52
|
|
53 <div class="layout">
|
|
54 <div id="header"></div>
|
|
55 <div id="footer">
|
|
56 <div align="right">
|
|
57 <img src="s6/images/logo.svg" width="200px">
|
|
58 </div>
|
|
59 </div>
|
|
60 </div>
|
|
61
|
|
62 <div class="presentation">
|
|
63
|
|
64 <div class='slide cover'>
|
|
65 <table width="90%" height="90%" border="0" align="center">
|
|
66 <tr>
|
|
67 <td>
|
|
68 <div align="center">
|
|
69 <h1><font color="#808db5">Gears OS のモジュール化と並列 API</font></h1>
|
|
70 </div>
|
|
71 </td>
|
|
72 </tr>
|
|
73 <tr>
|
|
74 <td>
|
|
75 <div align="left">
|
|
76 Mitsuki Miyagi, Yu Tobaru, Shinji Kono
|
|
77 琉球大学
|
|
78 <hr style="color:#ffcc00;background-color:#ffcc00;text-align:left;border:none;width:100%;height:0.2em;">
|
|
79 </div>
|
|
80 </td>
|
|
81 </tr>
|
|
82 </table>
|
|
83 </div>
|
|
84
|
|
85 <div class='slide '>
|
|
86 <!-- === begin markdown block ===
|
|
87
|
|
88 generated by markdown/1.2.0 on Ruby 2.4.1 (2017-03-22) [x86_64-darwin15]
|
2
|
89 on 2018-05-15 19:23:01 +0900 with Markdown engine kramdown (1.13.2)
|
0
|
90 using options {}
|
|
91 -->
|
|
92
|
|
93 <!-- _S9SLIDE_ -->
|
|
94 <h1 id="os-">OS の信頼性</h1>
|
|
95 <ul>
|
|
96 <li>コンピュータの信頼性の基本はメモリなどの資源管理を行う OS である。</li>
|
|
97 <li>OS は非決定的な実行を持つため、OS の信頼性を保証するには、証明を用いる方法とプログラムの可能な実行を全て数え上げるモデル検査を用いる必要がある。
|
|
98 <ul>
|
|
99 <li>従来のテストとデバッグではテスト仕切れない部分が残ってしまい、不十分。</li>
|
|
100 <li>モデル検査は無限の状態でなくても巨大な状態を調べる事になり、状態を有限に制限したり、状態を抽象化したりする方法が用いられる。</li>
|
|
101 </ul>
|
|
102 </li>
|
|
103 </ul>
|
|
104
|
|
105
|
|
106 </div>
|
|
107 <div class='slide '>
|
|
108 <!-- _S9SLIDE_ -->
|
|
109 <h1 id="os--1">OS の拡張性</h1>
|
|
110 <ul>
|
|
111 <li>時代とともに進歩するハードウェア、サービスに対応するために OS 自体が拡張される必要がある。</li>
|
|
112 <li>OS を検証する際にも、1度ではなくアプリケーションやサービス、デバイスが新しくなる毎に検証をやり直す必要がある。</li>
|
|
113 </ul>
|
|
114
|
|
115
|
|
116 </div>
|
|
117 <div class='slide '>
|
|
118 <!-- _S9SLIDE_ -->
|
|
119 <h1 id="os--2">OS の拡張性と信頼性の両立</h1>
|
|
120 <ul>
|
|
121 <li>OSの拡張性と信頼性の観点から、OS は信頼性と拡張性を両立させることが重要であるといえる。</li>
|
|
122 <li>本研究室では、OS の信頼性の保証と拡張性を実現することを目標に Gears OS を設計中である。</li>
|
|
123 <li>par gotoかAPIの説明まで書く?</li>
|
|
124 </ul>
|
|
125
|
|
126
|
|
127 </div>
|
|
128 <div class='slide '>
|
|
129 <!-- _S9SLIDE_ -->
|
2
|
130 <h1 id="section">メタ計算</h1>
|
|
131 <ul>
|
|
132 <li>ノーマルレベルの計算
|
|
133 <ul>
|
|
134 <li>コンピュータの計算はプログラミング言語で計算される。</li>
|
|
135 <li>その部分をノーマルレベルの計算と呼ぶ。</li>
|
|
136 </ul>
|
|
137 </li>
|
|
138 <li>メタレベルの計算
|
|
139 <ul>
|
|
140 <li>コードが実行される際の以下の部分が、メタレベルの計算という。
|
|
141 <ul>
|
|
142 <li>処理系の詳細や使用する資源</li>
|
|
143 <li>コードの仕様や型などの言語以外の部分</li>
|
|
144 </ul>
|
|
145 </li>
|
|
146 </ul>
|
|
147 </li>
|
|
148 </ul>
|
|
149
|
|
150
|
|
151 </div>
|
|
152 <div class='slide '>
|
|
153 <!-- _S9SLIDE_ -->
|
|
154 <h1 id="cbc">CbC</h1>
|
|
155 <ul>
|
|
156 <li>ノーマルレベルとメタレベルの計算を1つの言語で表現できる言語として、本研究室で設計した CbC(Continuation based C) を用いる。</li>
|
|
157 <li>CbC を用いることで、ノーマルレベルの計算の信頼性をメタレベルから保証できるようになる。</li>
|
|
158 <li>CbC は関数呼び出し時の暗黙の環境を使わずに、コードの単位を行き来できる引数付き goto 文を持つ C と互換性のある言語である。</li>
|
|
159 <li>CbC を用いてCode Gear と Data Gear、メタ構造を導入する。</li>
|
|
160 </ul>
|
|
161
|
|
162
|
|
163 </div>
|
|
164 <div class='slide '>
|
|
165 <!-- _S9SLIDE_ -->
|
|
166 <h1 id="gears-os">Gears OS</h1>
|
|
167 <ul>
|
|
168 <li>CbC を用いて導入したCode Gear、Data Gear、メタ構造を用いて、検証された Gears OS を構築したい。</li>
|
|
169 <li>検証には 定理証明支援系である Agda を用いる。</li>
|
|
170 <li>Gears の記述をモジュール化するために Interface を導入した。</li>
|
|
171 <li>さらに並列処理の記述ように par goto 構文を導入する。</li>
|
|
172 </ul>
|
|
173
|
|
174
|
|
175 </div>
|
|
176 <div class='slide '>
|
|
177 <!-- _S9SLIDE_ -->
|
|
178 <h1 id="par-goto-">par goto の実行</h1>
|
|
179 <ul>
|
|
180 <li>本論文では Interface と par goto の実装を記述し、評価を行なった。</li>
|
|
181 <li>また、マルチ CPU と GPU 上での par goto 文の実行を確認した。</li>
|
|
182 </ul>
|
|
183
|
|
184
|
|
185 </div>
|
|
186 <div class='slide '>
|
|
187 <!-- _S9SLIDE_ -->
|
|
188 <h1 id="section-1">スライドの流れ</h1>
|
0
|
189 <ul>
|
|
190 <li>
|
2
|
191 <font color="red">Gears OS におけるメタ計算</font>
|
0
|
192 </li>
|
|
193 <li>Interface</li>
|
|
194 <li>Context</li>
|
|
195 <li>Gears OS の並列処理</li>
|
|
196 <li>Synchronized Queue</li>
|
|
197 <li>並列構文</li>
|
|
198 <li>比較</li>
|
|
199 <li>今後の課題</li>
|
|
200 </ul>
|
|
201
|
|
202
|
|
203 </div>
|
|
204 <div class='slide '>
|
|
205 <!-- _S9SLIDE_ -->
|
2
|
206 <h1 id="gears-os-">Gears OS におけるメタ計算</h1>
|
0
|
207
|
|
208
|
|
209 </div>
|
|
210 <div class='slide '>
|
|
211 <!-- _S9SLIDE_ -->
|
2
|
212 <h1 id="gaears-os-">Gaears OS の構成</h1>
|
0
|
213
|
|
214
|
|
215 </div>
|
|
216 <div class='slide '>
|
|
217 <!-- _S9SLIDE_ -->
|
|
218 <h1 id="interface">Interface</h1>
|
|
219
|
|
220
|
|
221 </div>
|
|
222 <div class='slide '>
|
|
223 <!-- _S9SLIDE_ -->
|
|
224 <h1 id="context">Context</h1>
|
|
225
|
|
226
|
|
227 </div>
|
|
228 <div class='slide '>
|
|
229 <!-- _S9SLIDE_ -->
|
2
|
230 <h1 id="gears-os--1">Gears OS の並列処理</h1>
|
0
|
231
|
|
232
|
|
233 </div>
|
|
234 <div class='slide '>
|
|
235 <!-- _S9SLIDE_ -->
|
|
236 <h1 id="synchronized-queue">Synchronized Queue</h1>
|
|
237
|
|
238
|
|
239 </div>
|
|
240 <div class='slide '>
|
|
241 <!-- _S9SLIDE_ -->
|
2
|
242 <h1 id="section-2">並列構文</h1>
|
0
|
243
|
|
244
|
|
245 </div>
|
|
246 <div class='slide '>
|
|
247 <!-- _S9SLIDE_ -->
|
2
|
248 <h1 id="section-3">比較</h1>
|
0
|
249
|
|
250
|
|
251 </div>
|
|
252 <div class='slide '>
|
|
253 <!-- _S9SLIDE_ -->
|
2
|
254 <h1 id="section-4">今後の課題</h1>
|
0
|
255
|
|
256 <!-- === end markdown block === -->
|
|
257 </div>
|
|
258
|
|
259
|
|
260 </div><!-- presentation -->
|
|
261 </body>
|
|
262 </html>
|