Mercurial > hg > Papers > 2019 > menikon-sigos
view slide/sigos.pdf.html @ 16:22deadcd8653
add slide
author | e165723 <e165723@ie.u-ryukyu.ac.jp> |
---|---|
date | Thu, 23 May 2019 18:29:30 +0900 |
parents | |
children | 8b0d4a70ef47 |
line wrap: on
line source
<!DOCTYPE html> <html> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8"> <title>継続を用いたxv6 kernelの書き換え</title> <meta name="generator" content="Slide Show (S9) v4.0.1 on Ruby 2.3.7 (2018-03-28) [universal.x86_64-darwin17]"> <meta name="author" content="Takahiro Sakamoto, Yu Tobaru, 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">継続を用いたxv6 kernelの書き換え</font></h1> </div> </td> </tr> <tr> <td> <div align="left"> Takahiro Sakamoto, Yu Tobaru, 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'> <!-- ## 本発表の流れ --> <!-- * 研究目的 --> <!-- * CbC の説明 --> <!-- * --> <!-- * Interface の説明 --> <!-- * --> <!-- * 実際に行なった書き換え--> <!-- * まとめ --> <!-- _S9SLIDE_ --> <h1 id="xv6-を継続で書き換える意味">xv6 を継続で書き換える意味</h1> </div> <div class='slide'> <!-- _S9SLIDE_ --> <h1 id="continuatuin-based-c">Continuatuin based C</h1> <ul> <li>Continuation based C (CbC) はこの Code Gear 単位を用いたプログラミング言語として開発している。</li> <li>Code Gear は 関数呼び出し時の環境を使わずに次の Code Gear へと goto 文によって遷移する。</li> <li>この goto 文による遷移を軽量継続と呼ぶ。</li> <li>CbC は軽量継続を持ち、C と互換性のある言語である</li> </ul> </div> <div class='slide'> <!-- _S9SLIDE_ --> <h1 id="cbc-のコード例">CbC のコード例</h1> <ul> <li>CbC では Code Gear は <em>__code</em> という型を持つ関数の構文で定義される。</li> <li>Code Gear は戻り値を持たないので、関数とは異なり return 文は存在しない。</li> <li>goto の後に Code Gear 名と引数を並べて、次の Code Gear の遷移を記述する。</li> <li>この goto の行き先を継続と呼び、このときの a+b が次の Code Gear への出力となる。</li> </ul> <p><em>__code</em> cg0(int a, int b){ goto cg1(a+b); }</p> <p><em>__code</em> cg1(int c){ goto cg2(c); }</p> </div> <div class='slide'> <!-- _S9SLIDE_ --> <h1 id="gears-におけるメタ計算">Gears におけるメタ計算</h1> <ul> <li>Gears OS ではメタ計算を Meta Code Gear、Meta Data Gear で表現する。</li> <li>Meta Code Gear はノーマルレベルの Code Gear の直後に遷移され、メタ計算を実行する。</li> <li>Meta Code Gear で OS の機能であるメモリ管理やスレッド管理を行う。</li> </ul> </div> <div class='slide'> <!-- _S9SLIDE_ --> <h1 id="interface">Interface</h1> <ul> <li>Code Gear と Data Gear は Interface と呼ばれるまとまりとして記述される。</li> <li>Interface は使用される Data Gear の定義と、それに対する Code Gear の集合である。</li> <li>Interface の操作に対応する Code Gear の引数は Interface に定義されている Data Gear を通して行われる。</li> </ul> </div> <div class='slide'> <!-- _S9SLIDE_ --> <h1 id="xv6-の-cbc-への書き換え">xv6 の CbC への書き換え</h1> </div> <div class='slide'> <!-- _S9SLIDE_ --> <h1 id="xv6-rpi-の-cbc-対応">xv6-rpi の CbC 対応</h1> </div> <div class='slide'> <!-- _S9SLIDE_ --> <h1 id="cbc-によるシステムコールの書き換え">CbC によるシステムコールの書き換え</h1> </div> <div class='slide'> <!-- _S9SLIDE_ --> <h1 id="まとめと今後の方針">まとめと今後の方針</h1> </div> </div><!-- presentation --> </body> </html>