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>