Mercurial > hg > Papers > 2022 > ikki-master
diff 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 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/slide/thesis.pdf.html Sat Feb 05 04:49:27 2022 +0900 @@ -0,0 +1,251 @@ + + + + + +<!DOCTYPE html> +<html> +<head> + <meta http-equiv="content-type" content="text/html;charset=utf-8"> + <title>GearsOSの分散ファイルシステムの設計</title> + + <meta name="generator" content="Slide Show (S9) v4.1.0 on Ruby 2.6.8 (2021-07-07) [universal.x86_64-darwin21]"> + <meta name="author" content="Takahiro Ikki, Shinji Kono" > + +<!-- style sheet links --> +<link rel="stylesheet" href="s6/themes/screen.css" media="screen"> +<link rel="stylesheet" href="s6/themes/print.css" media="print"> +<link rel="stylesheet" href="s6/themes/blank.css" media="screen,projection"> + +<!-- JS --> +<script src="s6/js/jquery-1.11.3.min.js"></script> +<script src="s6/js/jquery.slideshow.js"></script> +<script src="s6/js/jquery.slideshow.counter.js"></script> +<script src="s6/js/jquery.slideshow.controls.js"></script> +<script src="s6/js/jquery.slideshow.footer.js"></script> +<script src="s6/js/jquery.slideshow.autoplay.js"></script> + +<!-- prettify --> +<link rel="stylesheet" href="scripts/prettify.css"> +<script src="scripts/prettify.js"></script> + +<style> + .slide {page-break-after: always;} +</style> + + + + +</head> +<body> + +<div class="layout"> + <div id="header"></div> + <div id="footer"> + <div align="right"> + <img src="s6/images/logo.svg" width="200px"> + </div> + </div> +</div> + +<div class="presentation"> + + <div class='slide cover'> + <table width="90%" height="90%" border="0" align="center"> + <tr> + <td> + <div align="center"> + <h1><font color="#808db5">GearsOSの分散ファイルシステムの設計</font></h1> + </div> + </td> + </tr> + <tr> + <td> + <div align="left"> + Takahiro Ikki, Shinji Kono + 琉球大学 + <hr style="color:#ffcc00;background-color:#ffcc00;text-align:left;border:none;width:100%;height:0.2em;"> + </div> + </td> + </tr> + </table> + </div> + + +<div class='slide'> + +<!-- _S9SLIDE_ --> +<h2 id="gearsosとその現状">GearsOSとその現状</h2> +<ul> + <li>信頼性の保証と拡張性の高さを目指したOSプロジェクト</li> + <li>軽量継続を用いた言語、CbC(Continuation based C)により記述される。</li> + <li>ノーマルレベルとメタレベルを分離して記述する</li> + <li>現状では言語フレームワークとしてのみ機能する</li> + <li>OSとして動作するには多くの機能の開発が必要 + <ul> + <li>その中の一つにファイルシステムが挙げられる</li> + </ul> + </li> +</ul> + + + +</div> + +<div class='slide'> + <!-- _S9SLIDE_ --> +<h2 id="従来の物より発展した分散ファイルシステムの設計">従来の物より発展した分散ファイルシステムの設計</h2> +<ul> + <li>データベース的なレコード操作によるアクセス + <ul> + <li>ファイルに対する全ての操作がTransactionとなる</li> + </ul> + </li> + <li>既存ではアプリケーションが担当する機能を取り込む + <ul> + <li>バックアップの管理</li> + <li>ファイルの型の認識</li> + </ul> + </li> + <li>自律分散を目指した分散ファイルシステム + <ul> + <li>特定のサーバーを中枢にしなくても良い</li> + <li>分散フレームワークChristieの仕組みにより実現する</li> + </ul> + </li> +</ul> + + + +</div> + +<div class='slide'> + <!-- _S9SLIDE_ --> +<h2 id="cbc-continuation-based-c">CbC (Continuation based C)</h2> +<ul> + <li>C言語の拡張言語である</li> + <li>関数に代わる軽量継続をメインに記述する</li> + <li>Gearというプログラム概念 + <ul> + <li>CodeGear + <ul> + <li>従来のThreadにあたる</li> + </ul> + </li> + <li>DataGear + <ul> + <li>従来の変数データにあたる</li> + </ul> + </li> + </ul> + </li> + <li>DataGearを受け取り処理を行う(InputDataGear)</li> + <li>処理の結果をDataGearに書き出す(OutputDataGear)</li> +</ul> + +<div style="text-align: center;"> + <img src="images/cgdg.pdf" alt="CodeGearとDataGearの関係" width="800" /> +</div> + + + +</div> + +<div class='slide'> + <!-- _S9SLIDE_ --> +<h2 id="cbcのサンプルプログラム">CbCのサンプルプログラム</h2> +<pre><code>__code CG2(int num3){ + printf("num = %d\n", num3); + exit(0); +} + +__code CG1(int num, int num1){ + int num2 = num + num1; + goto CG2(num2); +} + +int main(){ + int a = 2; + int b = 3; + goto CG1(a, b); +} +</code></pre> + + + +</div> + +<div class='slide'> + <!-- _S9SLIDE_ --> +<h2 id="メタレベルのgear">メタレベルのGear</h2> +<ul> + <li>CodeGearとDataGearにはメタレベルのものが存在する + <ul> + <li>それぞれstubCodeGearとstubDataGearと呼ぶ</li> + </ul> + </li> + <li>ユーザーが記述する上では普段は意識しない</li> +</ul> + + + +</div> + +<div class='slide'> + <!-- _S9SLIDE_ --> +<h2 id="テスト用テキストエディタ">テスト用テキストエディタ</h2> + +<pre><code>public class MyDocumentListener implements DocumentListener { + @Override + public void insertUpdate(DocumentEvent e) { + Document doc = e.getDocument(); + loc = e.getOffset(); + System.out.println(loc); + + } + + @Override + public void removeUpdate(DocumentEvent e) { + Document doc = e.getDocument(); + sendLoc = e.getOffset(); + System.out.println("delete " + sendLoc); + } + @Override + public void changedUpdate(DocumentEvent e) { + } +} +</code></pre> + + + +</div> + +<div class='slide'> + <!-- _S9SLIDE_ --> +<h2 id="編集位置の相違">編集位置の相違</h2> +<ul> + <li>同期編集のセッションでは命令コマンドの送信のすれ違いにより、ノードごとのファイル状態が異なってしまうことがある。</li> + <li>EditorAとEditorBはそれぞれの命令を自身のエディタバッファに施してから命令を送信するため、お互いバッファ状態が異なる状態で受け取った命令を実行してしまう。</li> +</ul> + +<div style="text-align: center;"> + <img src="images/difference_offset.pdf" alt="MetaGear" width="800" /> +</div> + +<!-- +- RocalDGMを立ち上げるにはDataSegmentクラスが提供する、connectメソッドを用い、接続したいポートのipアドレスとport番号、そして任意のManager名を指定することで立ち上げる。 +--> + +<pre><code class="language-Code">digraph test { + node0 -> node1 [label="right"] + node1 -> node2 [label="right"] + node2 -> node0 [label="right"] +} +</code></pre> + +</div> + + +</div><!-- presentation --> +</body> +</html>