Mercurial > hg > Document > Growi
view user/Itsuki/2021/8-31.md @ 134:e965a4b3e697 default tip
backup 2023-11-14
author | autobackup |
---|---|
date | Tue, 14 Nov 2023 00:10:04 +0900 |
parents | 3c2e8f9be2c2 |
children |
line wrap: on
line source
# 進捗報告 ## 研究目的 - 当研究室ではOSの信頼性の検証に重きを置いた、GearsOSを開発している。 - GearsOSはノーマルレベルとメタレベルを分離して記述が行えるCの拡張言語CbC(Continuation based C)で構成されている。 - GearsOSは現在開発途上であり、OSとして実際に機能するために開発しなくてはならない機能が残っている。 - 未実装の機能の一つとしてファイルシステムが挙げられる。 - 当研究室では、CbCとは異なるGearという概念を用いて分散処理を記述することができる分散フレームワークChristieを開発している。 - GearsOSのファイルシステムをChristieと同様の仕組みを用いて実装したい。 - そのためにjavaで構成されているChristieをCbCで構成し直していく。 - GearsOSのファイルシステムは現在使われているOSの問題点を改良した形で構成したい - 書き足していく ## 進捗内容 - 内定を1社からいただきました。一旦は安心。 - お騒がせしました。 - 9月中はある程度続ける予定。 - rbtree+SynchronizedQueueに挑戦中 - とりあえずrbtree_testのvalueをIntegerから付け替えてみる。 - nodeのvalueはinterfaceを指定できる - SynchronizedQueueのinterfaceであるQueueに置き換えた。 - いずれはnew記述に書き換える。 - また、stubを直書きしているので最新の書き方にしたい。 - (気付き)SychronizedQueueはCMakeListに書く際にはAtomicReference.cbcも一緒に追加する必要がある。 - エラーが教えてくれる。 - Union data* の理解が浅いので勉強する Queueインターフェース ``` typedef struct Queue<>{ union Data* queue; union Data* data; __code whenEmpty(...); __code clear(Impl* queue, __code next(...)); __code put(Impl* queue, union Data* data, __code next(...)); __code take(Impl* queue, __code next(union Data* data, ...)); __code isEmpty(Impl* queue, __code next(...), __code whenEmpty(...)); __code next(...); } Queue; ```