# HG changeset patch # User KaitoMaeshiro # Date 1643351119 -32400 # Node ID d0eaddc2790144e61e478504f5820664d3dc79cb add template diff -r 000000000000 -r d0eaddc27901 paper/figs/RemoteDGM.jpg Binary file paper/figs/RemoteDGM.jpg has changed diff -r 000000000000 -r d0eaddc27901 paper/figs/ring.png Binary file paper/figs/ring.png has changed diff -r 000000000000 -r d0eaddc27901 paper/figs/sample.png Binary file paper/figs/sample.png has changed diff -r 000000000000 -r d0eaddc27901 paper/ie-thesis.sty --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/paper/ie-thesis.sty Fri Jan 28 15:25:19 2022 +0900 @@ -0,0 +1,103 @@ +% ie-thesis: Standard Thesis Style File @ ie.u-ryukyu +% (based on jsreport.cls) +% (c) Itsuki KUNITA (kunita@ie.u-ryukyu.ac.jp) +% 2021/12/07 +% +% +% packages +\usepackage[dvips]{graphicx} +\usepackage[dvipdfmx]{color} +\usepackage{setspace} +\usepackage{url} +\usepackage{amsmath} +\usepackage{fancyhdr} +\pagestyle{fancy} +\chead{} +\lhead{琉球大学学位論文(学士)} +\rhead[\leftmark]{\leftmark} +\cfoot[\thepage]{\thepage} +\renewcommand{\chaptermark}[1]{\markboth{第\ \normalfont\thechapter\ 章~#1}{}} + +% settings +\setcounter{secnumdepth}{3} +\setcounter{tocdepth}{2} + + +% +% title in Japanese +\def\jtitle#1{\gdef\@jtitle{#1}} +\def\@jtitle{} +% affiliation +\def\affiliation#1{\gdef\@affiliation{#1}} +\def\@affiliation{} +% student ID +\def\studentid#1{\gdef\@studentid{#1}} +\def\@studentid{} +% supervisor +\def\supervisor#1{\gdef\@supervisor{#1}} +\def\@supervisor{} +% abstract, Japanese +\def\Jabstract#1{\gdef\@Jabstract{#1}} +\def\Eabstract#1{\gdef\@Eabstract{#1}} +% +% maketitle +\renewcommand{\maketitle}{% +\newpage\null +\thispagestyle{empty} +%\pagenumbering{roman} %Don't remove. + \begin{center}% + \vskip -7.0em + %\begingroup + \renewcommand{\arraystretch}{1.5} + \begin{tabular}{c} + \textbf{\Large \number\year 年度 卒業論文}\\ + \textbf{\Large Bachelor's Thesis}\\ + \end{tabular}\\ + \vspace{3zw} + \renewcommand{\arraystretch}{3.0} + \begin{tabular}{c} + \begin{minipage}[c]{36zw} \center{\textbf{\LARGE \@jtitle}}\end{minipage}\\ + \begin{minipage}[c]{36zw} \center{\textbf{\LARGE \@title}}\end{minipage}\\ + \end{tabular}\\% + \renewcommand{\arraystretch}{1.5} + \vspace{6zw} + \includegraphics[width=70mm]{logo_u-ryukyu.jpg}\\ + \vspace{6zw} + \renewcommand{\arraystretch}{1.5} + \begin{tabular}{c}% + \textbf{\Large \@affiliation}\\ + \textbf{\Large \@studentid \hspace{1zw} \@author}\\ + \\ + \textbf{\Large 指導教員 \hspace{1zw} \@supervisor} + \end{tabular}% + \end{center}% +\newpage\null +\thispagestyle{empty} + \begin{spacing}{1.5} + \leftline{\textbf{\Large 要旨}} + \end{spacing} + \begin{spacing}{1.2} + \fontsize{12pt}{0mm}\selectfont + \@Jabstract + \end{spacing} +\newpage\null +\thispagestyle{empty} + \begin{spacing}{1.5} + \leftline{\textbf{\Large Abstract}} + \end{spacing} + \begin{spacing}{1.2} + \fontsize{12pt}{0mm}\selectfont + \@Eabstract + \end{spacing} +%\newpage\null +} + +%章 +\renewcommand{\chapter}{% + \if@openright\cleardoublepage\else\clearpage\fi + %\pagenumbering{arabic} %Don't remove. + \thispagestyle{empty}% + \global\@topnum\z@ + \@afterindentfalse + \secdef\@chapter\@schapter +} diff -r 000000000000 -r d0eaddc27901 paper/logo_u-ryukyu.jpg Binary file paper/logo_u-ryukyu.jpg has changed diff -r 000000000000 -r d0eaddc27901 paper/src/HelloWorld.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/paper/src/HelloWorld.java Fri Jan 28 15:25:19 2022 +0900 @@ -0,0 +1,18 @@ +package christie.example.TrialCode; + +import christie.codegear.CodeGearManager; +import christie.codegear.StartCodeGear; + +public class HelloWorld extends StartCodeGear { + + public HelloWorld(CodeGearManager cgm) { + super(cgm); + } + + public static void main(String[] args){ + CodeGearManager cgm = createCGM(10000); + + cgm.setup(new HelloWorldCG()); + cgm.getLocalDGM().put("key_hello","HelloWorld"); + } +} diff -r 000000000000 -r d0eaddc27901 paper/src/HelloWorldCG.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/paper/src/HelloWorldCG.java Fri Jan 28 15:25:19 2022 +0900 @@ -0,0 +1,18 @@ +package christie.example.TrialCode; + +import christie.annotation.Take; +import christie.codegear.CodeGear; +import christie.codegear.CodeGearManager; + + +public class HelloWorldCG extends CodeGear { + + @Take + String key_hello; + + @Override + protected void run(CodeGearManager cgm) { + System.out.print(key_hello); + cgm.getLocalDGM().finish(); + } +} \ No newline at end of file diff -r 000000000000 -r d0eaddc27901 paper/src/test.dot --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/paper/src/test.dot Fri Jan 28 15:25:19 2022 +0900 @@ -0,0 +1,6 @@ +digraph test{ +node0 −> node1[label=”right”] +node1 −> node2[label=”right”] +node2 −> node3[label=”right”] +node3 −> node0[label=”right”] +} \ No newline at end of file diff -r 000000000000 -r d0eaddc27901 paper/text/Eabstract.tex --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/paper/text/Eabstract.tex Fri Jan 28 15:25:19 2022 +0900 @@ -0,0 +1,1 @@ +ここには英語で要旨を記述する.日本語で記述される卒業論文であってもこの項目を省略することはできない.分量規定はないが,日本語用紙と比較して極端に少ないことがないようにする. \ No newline at end of file diff -r 000000000000 -r d0eaddc27901 paper/text/Jabstract.tex --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/paper/text/Jabstract.tex Fri Jan 28 15:25:19 2022 +0900 @@ -0,0 +1,1 @@ +ここには日本語要旨を記述する.分量の目安は全角300文字以上1ページ以内程度である.本文が英語の場合であっても日本語要旨を記述するものとする. diff -r 000000000000 -r d0eaddc27901 paper/text/chapter2.tex --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/paper/text/chapter2.tex Fri Jan 28 15:25:19 2022 +0900 @@ -0,0 +1,103 @@ +\chapter{分散フレームワークChristie} + +\section{Christie} +当研究室で開発を行なっているJava言語で記述された分散フレームワークである.同様に当研究室で開発されているGearsOSを構築している独自のプログラミング言語Continuation based C (以下 CbC 言語) と似たGearと呼ばれるプログラム概念が存在する.GearにはCodeGear(以下CG),DataGear(以下DG),CodeGearManager(以下CGM),DataGearManager(以下DGM)の四つが存在する. + + +\begin{itemize} + \item CodeGear(以下CG) + \item DataGear(以下DG) + \item CodeGearManager(以下CGM) + \item DataGearManager(以下DGM) +\end{itemize} + + +CGは従来のプログラムにおけるクラスに相当し,CG内に記述されたkeyに全てのDGが揃った際に初めてそのCGが実行される. + +DGは従来のプログラムにおける変数に相当する.DGはJava言語のアノテーションを利用することによって記述でき,Take,Peek,TakeFrom,PeekFromの四つが存在する. + + +\begin{itemize} + \item Take 先頭のDGを読み込み,そのDGを削除する. + \item Peek 先頭のDGを読み込むが,そのDGは削除されない. + \item TakeFrom(Remote DGM name) 先頭のDGを読み込み,DGを削除する.Remote DGM nameを指定することで,その接続先 (Remote) のDGMからTake操作をすることができる. + \item PeekFrom(Remote DGM name) 先頭のDGを読み込むが,そのDGは削除されない.Remote DGM nameを指定することで,その接続先 (Remote) のDGMからPeek操作をすることができる. +\end{itemize} + + +CGMは従来のプラグラムにおけるノードに相当し,主にCG,DG,DGMの管理を行う. + +DGMはDGの管理を行うものである.putという操作により変数のkeyと引数にデータを記入することによりDGMにDGを格納することができる. +DGMにはLocalDGMとRemoteDGMが存在する.LocalDGMは各ノードのデータベースである.RemoteDGMは他のLocalDGMに対するproxyの役割を担っており,接続されているノードの数だけ存在する.図\ref{fig1}がLocalDGMとRemoteDGMの関係を視覚的に表した遷移図である.また,他ノードにput操作などを行いたい場合はRemoteDGMに対して操作をすることにより実現できる. + + +\begin{figure}[htbp] + \begin{center} + \includegraphics[width=120mm]{./figs/RemoteDGM.jpg} + \caption[RemoteDGMによるノード接続]{RemoteDGMによるノード接続} + \label{fig1} + \end{center} +\end{figure} + + + + + +\section{プログラミングの例} +以下のソースコード\ref{hello_1},\ref{hello_2}は,Christieを用いたHello Worldの出力を行うプログラムである. + +createCGM()にport番号を指定しCGMの作成を行う.CGMにCGとなるHelloWorldCG()ををsetupすることでCGMがCGを動作させることができる. + +続いてCGMに対してDGのputを行う.ソースコード\ref{hello_1}ではLocalを指定しているので,LocalのCGMが管理しているDGMに対してDGの格納を行う.keyは"key\_hello"を作成し"HelloWorld"というDGをputした.ソースコード\ref{hello_2}はCGとなっている.key"key\_hello"のアノテーションはTakeとなっているためDGの"HelloWorld"が一度だけ取読み込まれ,そのDGは削除される.keyは1つしか記述されていないため,これで全てのDGが読み込まれたことになる.CG内に記述されたkeyに全てのDGが揃ったためここで初めてCGが実行される.System.out.print()にkeyを指定し読み込まれたDGが出力される.CGMは自動に処理が終了しないため,finish()によりCGMを終了させる. + + +\lstinputlisting[caption=HelloWorld.java,label=hello_1]{src/HelloWorld.java} + +\lstinputlisting[caption=HelloWorldCG.java,label=hello_2]{src/HelloWorldCG.java} + + + + + + +\section{Christie\#} + + + + + + + +\section{Christie\#への変換例} + + + + + + +\section{TopologyManager} +ChristieではTopologyManagerと呼ばれるTopologyを形成するために,参加を表明したnode(TopologyNode)にlabelを付与を行ったり,必要であればnode同士の接続を自動的に行う機能がある.TopologyManagerのTopologyの形成手法として静的Topologyと動的Topologyがある. + +静的Topologyはdotファイルを用意し,TopologyManagerに読み込ませるだけでTopologyが構成される. +このdotファイルはDOT言語を用いて記述される.dotファイルのnode数と同等のTopologyNodeがあって初めてCGが実行される. +以下のソースコード\ref{dot}は4台のnodeによってリングTopologyを構成するdotファイルの例である. + +\lstinputlisting[caption=dotファイルの例,label=dot]{src/test.dot} + +\begin{figure}[htbp] + \begin{center} + \includegraphics[width=85mm]{./figs/ring.png} + \caption[dotファイル]{dotファイルを図示化したもの} + \label{fig2} + \end{center} +\end{figure} + +動的Topologyは新たなTopologyNodeが参加を表明するたびに,TopologyManagerからTopologyNodeに対して接続するべきTopologyNodeの情報が渡され順次接続処理が行われる.現在動的に構成されたTopologyはTree型が対応している. + + + + + + +\chapter{TopologyManagerのChristie\#への書き換え} + diff -r 000000000000 -r d0eaddc27901 paper/text/introduction.tex --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/paper/text/introduction.tex Fri Jan 28 15:25:19 2022 +0900 @@ -0,0 +1,3 @@ +\chapter{序論} + + diff -r 000000000000 -r d0eaddc27901 paper/text/reference.tex --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/paper/text/reference.tex Fri Jan 28 15:25:19 2022 +0900 @@ -0,0 +1,41 @@ +\begin{thebibliography}{99} +\bibitem{ref-related-work} +論文の読み方・書き方, 金森 由博, \url{http://kanamori.cs.tsukuba.ac.jp/docs/how_to_read_and_write_papers.html}, 2021/09/28. + +\bibitem{ref-jsps} +研究者のみなさまへ~責任ある研究活動を目指して~, 国立研究開発法人科学技術振興機構, \url{https://www.jst.go.jp/researchintegrity/shiryo/pamph_for_researcher.pdf}, 2020. + +\bibitem{ref-ieice} +和文論文誌投稿のしおり, 電子情報通信学会, \url{https://www.ieice.org/jpn/shiori/iss_2.html#2.6}, 2021/09/28. + +\bibitem{ref-ipsj} +論文誌ジャーナル原稿執筆案内, 情報処理学会, \url{https://www.ipsj.or.jp/journal/submit/ronbun_j_prms.html}, 2021/09/28. + +\bibitem{ref-journal} +著者名, ``論文タイトル,'' 雑誌名, vol, no, page, year. + +\bibitem{ref-journal-ex} +國田 樹, 遠藤聡志, ``学術論文の出典記載例,'' 知能情報学会誌, vol. 3, no. 2, pp.8-13, 2021. + +\bibitem{ref-book} +著者名, ``書籍タイトル,'' (編集者名), 出版社名, 発行都市名, 発行年. + +\bibitem{ref-book-ex} +國田樹, ``著書の出典記載例,'' 知能情報出版, 沖縄, 2021. + +\bibitem{ref-proceedings} +著者名, ``論文タイトル,'' 学会名もしくは会議名, no.論文番号, ページ, 開催都市名, 開催国名, year. + +\bibitem{ref-proceedings-ex} +國田樹, 遠藤聡志, ``学会論文の出典記載例'' 第2回知能情報国際会議, no.2-1234, pp.1-8, Okinawa, Japan, 2021. + +\bibitem{ref-web} +著者名(サイト管理者と同一の場合は省略可), Webページタイトル, サイト管理者名等, URL(url命令を使用すること), 参照年月日. + +\bibitem{ref-report1} +見延庄太郎,理系のためのレポート・論文完全ナビ,講談社, 2016. + +\bibitem{ref-report2} +福地健太郎,理工系のためのよい文章の書き方,翔泳社, 2019. + +\end{thebibliography} diff -r 000000000000 -r d0eaddc27901 paper/thesis.bib --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/paper/thesis.bib Fri Jan 28 15:25:19 2022 +0900 @@ -0,0 +1,77 @@ +@misc{gearsos, + title = {GearsOS}, + author = {並列信頼研究室}, + organization = {琉球大学}, + howpublished = {\url{http://www.cr.ie.u-ryukyu.ac.jp/hg/Gears/Gears/}} +} + +@misc{cbcllvm, + title = {CbC}, + author = {並列信頼研究室}, + organization = {琉球大学}, + howpublished = {\url{http://www.cr.ie.u-ryukyu.ac.jp/hg/CbC/CbC\_llvm/}} +} + +@article{cbc, + author = {河野 真治}, + title = {継続を持つCの下位言語によるシステム記述}, + journal = {日本ソフトウェア科学会第17回大会論文集}, + month = {September}, + year = 2000 +} + +@article{cr, + author = {伊波 立樹}, + title = {GearsOSの並列処理}, + institution = {琉球大学工学部情報工学科, 琉球大学大学院理工学研究科情報工学専攻, 琉球大学工学部情報工学科}, + journal = {修士 (工学) 学位論文}, + month = {March}, + year = 2018 +} + +@article{gears, + author = {清水隆博}, + title = {GearsOSのメタ計算}, + institution = {琉球大学工学部情報工学科, 琉球大学大学院理工学研究科情報工学専攻, 琉球大学工学部情報工学科}, + journal = {修士 (工学) 学位論文}, + month = {March}, + year = 2021 +} + +@article{file, + author = {一木 貴裕, 河野 真治(琉球大学)}, + title = {GearsOSの分散ファイルシステムの設計}, + journal = {情報処理学会システムソフトウェアとオペレーティング・システム研究会(OS)}, + month = {May}, + year = 2021 +} + +@article{modelcheck, + author = {東恩納 琢偉,奥田 光希,河野 真治(琉球大学)}, + title = {Gears OSでモデル検査を実現する手法について}, + journal = {情報処理学会システムソフトウェアとオペレーティング・システム研究会(OS)}, + month = {May}, + year = 2020 +} + +@article{xv6kernel, + author = {坂本 昂弘 (琉球大学工学部情報工学科), 桃原 優 (琉球大学大学院理工学研究科情報工学専攻), 河野 真治 (琉球大学工学部情報工学科)}, + journal = {情報処理学会システムソフトウェアとオペレーティング・システム研究会(OS)}, + title = {継続を用いた xv6 kernel の書き換え}, + month = {May}, + year = 2019 +} + +@article{xv6component, + author = {清水 隆博,河野 真治(琉球大学)}, + journal = {情報処理学会システムソフトウェアとオペレーティング・システム研究会(OS)}, + title = {xv6の構成要素の継続の分析}, + month = {May}, + year = 2020 +} + +@misc{xv6, + author = {{Russ Cox, Frans Kaashoek, Robert Morris}}, + title = {xv6 a simple, Unix-like teaching operating system}, + howpublished = {https://pdos.csail.mit.edu/6.828/2018/xv6/book-rev11.pdf} +} \ No newline at end of file diff -r 000000000000 -r d0eaddc27901 paper/thesis.pdf Binary file paper/thesis.pdf has changed diff -r 000000000000 -r d0eaddc27901 paper/thesis.tex --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/paper/thesis.tex Fri Jan 28 15:25:19 2022 +0900 @@ -0,0 +1,81 @@ +\documentclass[title,12pt]{jsreport} +\usepackage{ie-thesis} +\usepackage{fancyhdr} +\usepackage[dvips]{graphicx} +\usepackage[dvipdfmx]{color} +\usepackage{url} +\usepackage{amsmath} + +\usepackage{listings} + +% ソースコードキャプション名変更 +\renewcommand{\lstlistingname}{ソースコード} + +\lstset{% + language={java}, + basicstyle={\small},% + identifierstyle={\small},% + commentstyle={\small\itshape},% + keywordstyle={\small\bfseries},% + ndkeywordstyle={\small},% + stringstyle={\small\ttfamily}, + frame={tb}, + breaklines=true, + columns=[l]{fullflexible},% + numbers=left,% + xrightmargin=0zw,% + xleftmargin=3zw,% + numberstyle={\scriptsize},% + stepnumber=1, + numbersep=1zw,% + lineskip=-0.5ex% +} + + +\jtitle{Christie-Sharpによるアプリケーション開発法} +\title{A construcrion method of distributit application with Christie-Sharp} + +\affiliation{琉球大学工学部工学科知能情報コース} +\studentid{185722D} +\author{真栄城 魁人} +\supervisor{河野 真治} + +%\Jabstract{\include{./text/Jabstract}} +\Jabstract{\input{./text/Jabstract.tex}} +\Eabstract{\input{./text/Eabstract.tex}} + +\begin{document} +\maketitle %Don't remove. + +% 目次 +\tableofcontents %Don't remove. + +% 図目次,図がある場合のみ +\listoffigures + +% 表も軸,表がある場合のみ +\listoftables + +% pagecounter settings +\setcounter{page}{0} %Don't remove. + +% main text +% introduction +% \include{./text/introduction} + +% ... +\include{./text/chapter2} + + +\chapter{まとめと今後の展望} + +\chapter*{謝辞} + +% reference +\include{./text/reference} + +%付録がある場合のみ +%\appendix +%付録項目ごとに章構成する.章番号は本文とは独立に構成される. + +\end{document} \ No newline at end of file