comparison marp-slide/slide.md @ 74:8c087f2ae631

...
author matac42 <matac@cr.ie.u-ryukyu.ac.jp>
date Wed, 14 Feb 2024 09:44:07 +0900
parents c4b013299ff6
children c6d41c973c8a
comparison
equal deleted inserted replaced
73:c4b013299ff6 74:8c087f2ae631
108 - GearsOSのCodeGearと直接対応している 108 - GearsOSのCodeGearと直接対応している
109 - GearsAgdaでRedBlackTreeの証明が進められている 109 - GearsAgdaでRedBlackTreeの証明が進められている
110 - find完了、insert証明中 110 - find完了、insert証明中
111 - GearsOSの構造はRedBlackTreeが多くを占める 111 - GearsOSの構造はRedBlackTreeが多くを占める
112 112
113 GearsAgdaでRedBlackTreeが証明できれば、GearsOSの大部分を証明したことになる 113 GearsAgdaでRedBlackTreeが証明できれば、GearsOSのファイルシステムの大部分を証明したことになる
114 114
115 --- 115 ---
116 116
117 ## CodeGear遷移の流れ 117 ## CodeGear遷移の流れ
118 118
147 147
148 --- 148 ---
149 149
150 ## メモリ管理や多重性の機能がない 150 ## メモリ管理や多重性の機能がない
151 151
152 <!-- それぞれが何のためにあるのか説明する感じでやると良い -->
153
152 メモリ管理 154 メモリ管理
153 155
156 - アロケーション
154 - GC(ガベージコレクション) 157 - GC(ガベージコレクション)
155 158
156 多重性 159 多重性
157 160
158 - レプリケーション 161 - レプリケーション
161 164
162 --- 165 ---
163 166
164 ## メモリ管理や多重性の機能の要件 167 ## メモリ管理や多重性の機能の要件
165 168
169 <!-- 照明のしやすさの維持が唐突な感じ
170 動作の正しさがわかりやすい実装で証明しやすく -->
171
172 - 信頼性を上げたい
173 - 証明のしやすい実装
166 - データの持続性 174 - データの持続性
167 - 証明のしやすさの維持 175 - 持続性のあるストレージにちゃんとコピーする
168 - データを破壊しない 176 - 適切なタイミングでコピーを行う
169 - 非破壊RedBlackTreeの増大抑制 177 - 非破壊RedBlackTreeのメモリ管理
170 - 非破壊RedBlackTreeは履歴を全て持つ 178 - 非破壊RedBlackTreeは履歴を全て持つ
171 - そのままにすると増大し、メモリを圧迫する 179 - 過去の履歴分のメモリを解放する必要がある
172 180
173 --- 181 ---
174 182
175 ## GearsOSにおけるGC 183 ## GearsOSにおけるGC
176 184 <!-- -->
177 CopyingGCを採用する 185 CopyingGCを採用する
186 - 新しいContextのメモリに新規にコピーする
187 - 古いContextをそのまま全部解放する
178 188
179 --- 189 ---
180 190
181 ## GearsOSにおけるレプリケーション 191 ## GearsOSにおけるレプリケーション
182 192
193 <!-- -->
194
183 単純に木をコピーする 195 単純に木をコピーする
196 複数のストレージに同時に木を置く
197 そのうちの一部は持続的なストレージにする
198 システム起動時には必要な分をメモリにコピーする
199
200 トランザクションも考慮する
201
202 ---
203
204 ## RedBlackTreeのトランザクション
205
206 - 木のルートのすげ替えがトランザクションになる
207 - read
208 - write
184 209
185 --- 210 ---
186 211
187 ## copyRedBlackTreeの実装をした 212 ## copyRedBlackTreeの実装をした
188 213
231 非破壊RedBlackTreeの増大抑制できる 256 非破壊RedBlackTreeの増大抑制できる
232 コピーするだけなので木が持続的 257 コピーするだけなので木が持続的
233 課題点 258 課題点
234 同一Contextへコピーしている 259 同一Contextへコピーしている
235 コピーの正しさ 260 コピーの正しさ
236 261 Stack使っているので余計なメモリを消費する
262 Stackも非破壊であるという問題がある
263 -> 証明しやすさを優先しているから
264 Stackが非破壊である意味があまりない?のでここを破壊でやる。
237 265
238 --- 266 ---
239 267
240 ## 今後の研究方針 268 ## 今後の研究方針
241 269
242 別Contextコピー 270 別Contextコピー
271 GearsAgdaでの記述
272 Stack領域の圧縮
273 - Stackの再利用?
243 GC,レプリケーションの実装 274 GC,レプリケーションの実装
244 多重性以外の機能 275 多重性以外の機能
245 276
246 --- 277 ---
247 278
248 ## まとめ 279 ## まとめ
249 280
250 copyRedBlackTreeを実装した 281 - copyRedBlackTreeを実装した
251 それにより多重性を確保できるようになった 282 - それにより多重性を確保できるようになった
252 多重性はシステムの信頼性を向上させる 283 - 多重性はシステムの信頼性を向上させる
253 非破壊RedBlackTreeの増大抑制により実用的なシステム構築が可能になった 284 - 非破壊RedBlackTreeの増大抑制により実用的なシステム構築が可能になった