# HG changeset patch # User matac42 # Date 1705053128 -32400 # Node ID f0c0e873e3c100317b5438c522d383f5b5d3bff1 # Parent fadf02ce5925cf491c16121db2c3ef5798e40f43 ... diff -r fadf02ce5925 -r f0c0e873e3c1 Paper/master_paper.lol --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Paper/master_paper.lol Fri Jan 12 18:52:08 2024 +0900 @@ -0,0 +1,6 @@ +\contentsline {lstlisting}{\numberline {2.1}CbCのプログラム例}{8}{}% +\contentsline {lstlisting}{\numberline {3.1}Queueのインターフェース}{12}{}% +\contentsline {lstlisting}{\numberline {3.2}Interfaceの呼び出し}{13}{}% +\contentsline {lstlisting}{\numberline {3.3}Queueのインターフェース}{13}{}% +\contentsline {lstlisting}{\numberline {6.1}CopyRedBlackTreeの実装}{24}{}% +\contentsline {lstlisting}{\numberline {6.2}CopyRedBlackTreeのアルゴリズム}{26}{}% diff -r fadf02ce5925 -r f0c0e873e3c1 Paper/master_paper.pdf Binary file Paper/master_paper.pdf has changed diff -r fadf02ce5925 -r f0c0e873e3c1 Paper/master_paper.tex --- a/Paper/master_paper.tex Fri Jan 12 17:50:36 2024 +0900 +++ b/Paper/master_paper.tex Fri Jan 12 18:52:08 2024 +0900 @@ -85,17 +85,13 @@ %図目次 \listoffigures - - %リスト目次 -% \lstlistoflistings +\lstlistoflistings %chapters \chapter{GearsOSにおけるファイルシステムとDB} - - 情報システムの信頼性を確保することは重要な課題である. 2023年には銀行システムや航空機の旅客システム, 電子決済システムなどで障害が発生した\cite{zengin,ana,glory}. @@ -318,7 +314,14 @@ inputDataGearのnextはCodeGearの処理が終わった際に次にgotoするCodeGearを指定する. よって,take CodeGearの処理が全て終了すると,次にodgCommitCPUWorker4へgotoする. nextは\texttt{next(...)}と引数に\texttt{...}が渡される. -これは +これは仕様を記述する時点では不定である次に遷移するCodeGearのinputDataGearを表現している. +GearsOSでgotoする際は実際にはContextから必要な値を取り出す. +よって,\texttt{...}は必要な値をContextから取り出すことを意味している. + +次にinterfaceの実装似ついて説明する. +Queue interfaceの実装の一つであるSingleLinkedQueueをソースコード\ref{src:SingleLinkedQueue.cbc}に示す. + +\lstinputlisting[label=src:SingleLinkedQueue.cbc, caption=Queueのインターフェース]{src/SingleLinkedQueue.cbc} \section{GearsOSのRedBlackTree} diff -r fadf02ce5925 -r f0c0e873e3c1 Paper/src/SingleLinkedQueue.cbc --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Paper/src/SingleLinkedQueue.cbc Fri Jan 12 18:52:08 2024 +0900 @@ -0,0 +1,35 @@ +#include "context.h" +#include +#impl "Queue.h" as "SingleLinkedQueue.h" +#data "Node.h" +#data "Element.h" + +Queue* createSingleLinkedQueue(struct Context* context) { + struct Queue* queue = new Queue(); + struct SingleLinkedQueue* singleLinkedQueue = new SingleLinkedQueue(); + queue->queue = (union Data*)singleLinkedQueue; + queue->take = C_takeSingleLinkedQueue; + queue->put = C_putSingleLinkedQueue; + queue->isEmpty = C_isEmptySingleLinkedQueue; + queue->clear = C_clearSingleLinkedQueue; + singleLinkedQueue->top = new Element(); + singleLinkedQueue->last = singleLinkedQueue->top; + return queue; +} + +// ~~省略~~ + +__code takeSingleLinkedQueue(struct SingleLinkedQueue* queue, __code next(union Data* data, ...)) { + printf("take\n"); + struct Element* top = queue->top; + struct Element* nextElement = top->next; + if (queue->top == queue->last) { + data = NULL; + } else { + queue->top = nextElement; + data = nextElement->data; + } + goto next(data, ...); +} + +// ~~省略~~ diff -r fadf02ce5925 -r f0c0e873e3c1 backup.sh --- a/backup.sh Fri Jan 12 17:50:36 2024 +0900 +++ b/backup.sh Fri Jan 12 18:52:08 2024 +0900 @@ -1,3 +1,4 @@ #!/bin/zsh -rsync -avP /Users/matac/ws/src/firefly/hg/Papers/2024/matac-master amane87:~/ \ No newline at end of file +rsync -avP /Users/matac/ws/src/firefly/hg/Papers/2024/matac-master amane87:~/ +rsync -avP /Users/matac/ws/src/firefly/hg/Papers/2024/matac-master ui:~/ diff -r fadf02ce5925 -r f0c0e873e3c1 mindmaps/gears_fs_db.mm --- a/mindmaps/gears_fs_db.mm Fri Jan 12 17:50:36 2024 +0900 +++ b/mindmaps/gears_fs_db.mm Fri Jan 12 18:52:08 2024 +0900 @@ -93,6 +93,21 @@ + + + + + + + + + + + + + + + @@ -402,18 +417,21 @@ - - - + + + + + + - + - + @@ -421,11 +439,37 @@ - - + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + @@ -447,15 +491,15 @@ - - + + - + @@ -475,7 +519,7 @@ - + @@ -483,12 +527,41 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -525,43 +598,10 @@ - - - - - - - - - - - - + + + - - - - - - - - - - - - - - - - - - - - - - - -