Mercurial > hg > Document > Growi
changeset 92:31a558f00ba6
backup 2021-09-29
author | autobackup |
---|---|
date | Wed, 29 Sep 2021 00:10:03 +0900 |
parents | 7c70b573b54f |
children | 04cff9568106 |
files | user/Itsuki/2021/9-28.md user/mizuki/メモ/2021/10-01.md user/riono210/seminar/202109/0928.md |
diffstat | 3 files changed, 121 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/user/Itsuki/2021/9-28.md Wed Sep 29 00:10:03 2021 +0900 @@ -0,0 +1,74 @@ +# 進捗報告 +## 研究目的 +- 当研究室ではOSの信頼性の検証に重きを置いた、GearsOSを開発している。 + - GearsOSはノーマルレベルとメタレベルを分離して記述が行えるCの拡張言語CbC(Continuation based C)で構成されている。 +- GearsOSは現在開発途上であり、OSとして実際に機能するために開発しなくてはならない機能が残っている。 +- 未実装の機能の一つとしてファイルシステムが挙げられる。 + - 当研究室では、CbCとは異なるGearという概念を用いて分散処理を記述することができる分散フレームワークChristieを開発している。 + - GearsOSのファイルシステムをChristieと同様の仕組みを用いて実装したい。 + - そのためにjavaで構成されているChristieをCbCで構成し直していく。 +- GearsOSのファイルシステムは現在使われているOSの問題点を改良した形で構成したい + - 書き足していく + + + +## 進捗内容 +- ジェネリクスの勉強、Atomicをコードを写経しつつ + - 環境変数を任意の型に変更したコードを自動生成することができるはず? + - generate_contextで行われるらしい + - どんな手順で型変数の書き換えをしたコードが生成できるのか? + +書き換え前のジェネリクスを用いたヘッダ(Tが型変数) +``` +typedef struct AtomicT <T>{ + __code checkAndSet(Impl* atomicT,T oldData, T newData, __code next(...), __code fail(...)); + __code set(Impl* atomicT,T newData, __code next(...)); + __code next(...); + __code fail(...); +} AtomicT; +``` + +型変数Tをintとして書き換えた後のヘッダ +``` +typedef struct AtomicT_int <>{ + __code checkAndSet(Impl* atomicT_int, int oldData, int newData, __code next(...), __code fail(...)); + __code set(Impl* atomicT_int ,int newData, __code next(...)); + __code next(...); + __code fail(...); +} AtomicT_int; + +``` + +- WordCountを新しく書き直しています。 + - ファイルのOpen&Put / ファイル内文字列を受け取って表示&Countの二つにプログラムを分割したい。 + - シスプリだけで二つのプログラム間の遷移を試している段階 + - 当然プログラム内でinterfaceを定義すればputとget間で遷移できる。 + - interfaceの定義場所が正しいか分からない。 + +ファイルを開く&文字列を送信する側のコード +``` +__code openFile(struct WordPutImpl* wordPut, __code next(...)) { + printf("%s\n", wordPut->filename); + WordCount* wordCount = createWordCountImpl(context); + goto wordCount->getWord(Put); +} + +__code Put(struct WordPutImpl* wordPut, int lineNum, __code next(...)) { + printf("goto WordPut & lineNum=%d\n", lineNum); + goto next(...); +} +``` + +文字列を受け取る側のコード +``` +__code getWord(struct WordCountImpl* wordCount, __code next(...)) { + printf("getWord\n"); + goto next(1); +} +``` + +- CodeGearのinputDGにchar*を設定するとコンパイルが通らない(仕様?) + +- パルスさんの論文を読んでました + - 清水さんの論文だけでは深く書かれていない部分も書かれている。 + - WorkerやTask,SynchronizedQueueについて詳しい。
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/user/mizuki/メモ/2021/10-01.md Wed Sep 29 00:10:03 2021 +0900 @@ -0,0 +1,10 @@ +### 研究目的 +知能情報コースでは5年に一度システムの更新があり、現在のシステムは去年の夏に更新された。 + +旧システムにはサービス監視、ログ可視化が導入されていたが、現在の学科システムには導入されておらず、トラブルの早期発見や障害発生時の原因部分のログの発見が困難となっている。 + +本研究では障害発生時の対応を円滑に進める為にサービス監視、ログ可視化を実装していく。 + + +### gitlabの移行 +christinaでgitlabを立ち上げ、コンソール接続ができた。 \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/user/riono210/seminar/202109/0928.md Wed Sep 29 00:10:03 2021 +0900 @@ -0,0 +1,37 @@ +## 0928 + +## 研究目的 +* ゲームの通信方式にはクライアントサーバ方式とp2p方式がある +* データの安全性やチート対策などでクライアントサーバ方式が主流 +* サーバに接続してマルチプレイなどのデータ同期を実現させているため、低速 +* 高速かつ安全に通信を行たい + * 並列分散フレームワークChristieがある + * Christieを利用してp2pで通信を行う +* ゲーム開発で主に使用されているUnityに対応するためにChristieをC#へ書き換えを行う + +### 今週の進捗 +* RemoteTakeを動かすサンプルが動きました! + * MessagePackDataGearに変換コードを仕込むことで修正 + * 原因はデシリアライズする時にobjectでデシリアライズしていたため + + + +dictionaryで受け取ったフィールド変数のデータを基に、インスタンス生成する + +```cs +public T MessagePackDataFormed(dynamic deserializedData) { + Dictionary<dynamic,dynamic> dataDictionary = (Dictionary<dynamic, dynamic>) deserializedData; + List<object> valueArray = new List<object>(); + foreach (var VARIABLE in dataDictionary) { + valueArray.Add(VARIABLE.Value); + } + object[] convertArray = valueArray.ToArray(); + + T instance = (T) Activator.CreateInstance(clazz, convertArray); + return instance; +} +``` + + +### 今後の問題点 +* FizzBuzzの例題を動かした所、ソケット通信がうまくいかなくて失敗