0
|
1 <!DOCTYPE HTML>
|
|
2
|
|
3 <html lang="Japanese">
|
|
4 <head>
|
|
5 <title>Monadに基づくMeta計算を基本とするGears OSの設計</title>
|
|
6 <meta charset="UTF-8">
|
|
7 <meta name="viewport" content="width=1274, user-scalable=no">
|
|
8 <meta name="generator" content="Slide Show (S9)">
|
|
9 <meta name="author" content="Tatsuki IHA">
|
|
10 <link rel="stylesheet" href="themes/ribbon/styles/style.css">
|
|
11 </head>
|
|
12 <body class="list">
|
|
13 <header class="caption">
|
|
14 <h1>Monadに基づくMeta計算を基本とするGears OSの設計</h1>
|
|
15 <p>Tatsuki IHA</p>
|
|
16 </header>
|
|
17 <div class="slide cover" id="Cover"><div>
|
|
18 <section>
|
|
19 <header>
|
|
20 <h2>Monadに基づくMeta計算を基本とするGears OSの設計</h2>
|
|
21 <h3 id="author">Tatsuki IHA</h3>
|
|
22 <h3 id="profile"></h3>
|
|
23 </header>
|
|
24 </section>
|
|
25 </div></div>
|
|
26
|
|
27 <!-- todo: add slide.classes to div -->
|
|
28 <!-- todo: create slide id from header? like a slug in blogs? -->
|
|
29
|
|
30 <div class="slide" id="2"><div>
|
|
31 <section>
|
|
32 <header>
|
|
33 <h1 id="section">研究目的</h1>
|
|
34 </header>
|
|
35 <!-- === begin markdown block ===
|
|
36
|
|
37 generated by markdown/1.2.0 on Ruby 2.2.2 (2015-04-13) [x86_64-darwin14]
|
|
38 on 2015-06-16 17:48:58 +0900 with Markdown engine kramdown (1.7.0)
|
|
39 using options {}
|
|
40 -->
|
|
41
|
|
42 <!-- _S9SLIDE_ -->
|
|
43
|
|
44 <ul>
|
|
45 <li>当研究室では, プログラムをコードセグメント, データセグメントを用いた並列フレームワークの開発を行っている.</li>
|
|
46 <li>Gears OSでは, 並列実行に必要なMetaな機能を関数型言語におけるMonadの原理に基づいて実現する.</li>
|
|
47 <li>また, Code Segment, Data SegmentそれぞれにMeta Code Segment, Meta Data Segmentを付属させ,Many CoreやGPGPU環境でも信頼性の高い並列処理を実現する.</li>
|
|
48 <li>この研究ではGears OSの機能をCbC(Continuation based C)で実装、評価することを目的とする.</li>
|
|
49 </ul>
|
|
50
|
|
51
|
|
52
|
|
53 </section>
|
|
54 </div></div>
|
|
55
|
|
56 <div class="slide" id="3"><div>
|
|
57 <section>
|
|
58 <header>
|
|
59 <h1 id="section-1">近況</h1>
|
|
60 </header>
|
|
61 <!-- _S9SLIDE_ -->
|
|
62
|
|
63 <ul>
|
|
64 <li>Data SegmentへのアクセスのsyntaxをList, Synchronized Queueに適応</li>
|
|
65 </ul>
|
|
66
|
|
67
|
|
68
|
|
69 </section>
|
|
70 </div></div>
|
|
71
|
|
72 <div class="slide" id="4"><div>
|
|
73 <section>
|
|
74 <header>
|
|
75 <h1 id="ds">従来のDSへのアクセス</h1>
|
|
76 </header>
|
|
77 <!-- _S9SLIDE_ -->
|
|
78
|
|
79 <ul>
|
|
80 <li>contextからDataの配列にアクセスする</li>
|
|
81 </ul>
|
|
82
|
|
83
|
|
84
|
|
85 </section>
|
|
86 </div></div>
|
|
87
|
|
88 <div class="slide" id="5"><div>
|
|
89 <section>
|
|
90 <header>
|
|
91 <h1 id="ds-1">従来のDSへのアクセス</h1>
|
|
92 </header>
|
|
93 <!-- _S9SLIDE_ -->
|
|
94
|
|
95 <pre><code>__code code1(struct Context* context) {
|
|
96 context->data[Allocate]->allocate.size = .....;
|
|
97 context->data[Allocate]->allocate.next = .....;
|
|
98 goto meta(context, Allocator);
|
|
99 }
|
|
100 </code></pre>
|
|
101
|
|
102
|
|
103
|
|
104 </section>
|
|
105 </div></div>
|
|
106
|
|
107 <div class="slide" id="6"><div>
|
|
108 <section>
|
|
109 <header>
|
|
110 <h1 id="stubds">stubを経由したDSへのアクセス</h1>
|
|
111 </header>
|
|
112 <!-- _S9SLIDE_ -->
|
|
113
|
|
114 <ul>
|
|
115 <li>Code Segmentは必要なDSを引数として取る</li>
|
|
116 <li>全てのCSに対してstubを用意し, 必要なDSをstubで指定してCSを呼ぶ</li>
|
|
117 <li>stubは現在は直接書いているが, Compile時に生成されて欲しい</li>
|
|
118 </ul>
|
|
119
|
|
120
|
|
121
|
|
122 </section>
|
|
123 </div></div>
|
|
124
|
|
125 <div class="slide" id="7"><div>
|
|
126 <section>
|
|
127 <header>
|
|
128 <h1 id="stubds-1">stubを経由したDSへのアクセス</h1>
|
|
129 </header>
|
|
130 <!-- _S9SLIDE_ -->
|
|
131
|
|
132 <pre><code>__code code1(struct Context* context, struct Allocate* allocate) {
|
|
133 allocate->size = .....;
|
|
134 allocate->next = .....;
|
|
135 goto meta(context, Allocator);
|
|
136 }
|
|
137 __code code1_stub(struct Context* context) {
|
|
138 goto code1(context, &context->data[Allocate]->allocate);
|
|
139 }
|
|
140 </code></pre>
|
|
141
|
|
142 <style scoped="">
|
|
143 pre {
|
|
144 font-size: 20px;
|
|
145 }
|
|
146 </style>
|
|
147
|
|
148 <!-- === end markdown block === -->
|
|
149
|
|
150 </section>
|
|
151 </div></div>
|
|
152
|
|
153
|
|
154 <script src="scripts/script.js"></script>
|
|
155 <!-- Copyright © 2010–2011 Vadim Makeev, http://pepelsbey.net/ -->
|
|
156 </body>
|
|
157 </html>
|