Mercurial > hg > Papers > 2024 > matac-master
diff 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 |
line wrap: on
line diff
--- a/marp-slide/slide.md Tue Feb 13 20:25:58 2024 +0900 +++ b/marp-slide/slide.md Wed Feb 14 09:44:07 2024 +0900 @@ -110,7 +110,7 @@ - find完了、insert証明中 - GearsOSの構造はRedBlackTreeが多くを占める -GearsAgdaでRedBlackTreeが証明できれば、GearsOSの大部分を証明したことになる +GearsAgdaでRedBlackTreeが証明できれば、GearsOSのファイルシステムの大部分を証明したことになる --- @@ -149,8 +149,11 @@ ## メモリ管理や多重性の機能がない +<!-- それぞれが何のためにあるのか説明する感じでやると良い --> + メモリ管理 +- アロケーション - GC(ガベージコレクション) 多重性 @@ -163,24 +166,46 @@ ## メモリ管理や多重性の機能の要件 +<!-- 照明のしやすさの維持が唐突な感じ +動作の正しさがわかりやすい実装で証明しやすく --> + +- 信頼性を上げたい + - 証明のしやすい実装 - データの持続性 - - 証明のしやすさの維持 - - データを破壊しない -- 非破壊RedBlackTreeの増大抑制 + - 持続性のあるストレージにちゃんとコピーする + - 適切なタイミングでコピーを行う +- 非破壊RedBlackTreeのメモリ管理 - 非破壊RedBlackTreeは履歴を全て持つ - - そのままにすると増大し、メモリを圧迫する + - 過去の履歴分のメモリを解放する必要がある --- ## GearsOSにおけるGC - +<!-- --> CopyingGCを採用する +- 新しいContextのメモリに新規にコピーする +- 古いContextをそのまま全部解放する --- ## GearsOSにおけるレプリケーション +<!-- --> + 単純に木をコピーする +複数のストレージに同時に木を置く +そのうちの一部は持続的なストレージにする +システム起動時には必要な分をメモリにコピーする + +トランザクションも考慮する + +--- + +## RedBlackTreeのトランザクション + +- 木のルートのすげ替えがトランザクションになる +- read +- write --- @@ -233,13 +258,19 @@ 課題点 同一Contextへコピーしている コピーの正しさ - +Stack使っているので余計なメモリを消費する +Stackも非破壊であるという問題がある +-> 証明しやすさを優先しているから +Stackが非破壊である意味があまりない?のでここを破壊でやる。 --- ## 今後の研究方針 別Contextコピー +GearsAgdaでの記述 +Stack領域の圧縮 +- Stackの再利用? GC,レプリケーションの実装 多重性以外の機能 @@ -247,7 +278,7 @@ ## まとめ -copyRedBlackTreeを実装した -それにより多重性を確保できるようになった -多重性はシステムの信頼性を向上させる -非破壊RedBlackTreeの増大抑制により実用的なシステム構築が可能になった +- copyRedBlackTreeを実装した +- それにより多重性を確保できるようになった +- 多重性はシステムの信頼性を向上させる +- 非破壊RedBlackTreeの増大抑制により実用的なシステム構築が可能になった