Mercurial > hg > Papers > 2017 > tobaru-midterm
changeset 2:69c1099f7849
図追加そのた修正
author | tobaru |
---|---|
date | Thu, 26 Oct 2017 14:36:53 +0900 |
parents | 6508682e0d51 |
children | 3df1de13661e |
files | mid_thesis.aux mid_thesis.bbl mid_thesis.blg mid_thesis.dvi mid_thesis.log mid_thesis.pdf mid_thesis.tex reference.bib |
diffstat | 8 files changed, 94 insertions(+), 57 deletions(-) [+] |
line wrap: on
line diff
--- a/mid_thesis.aux Wed Oct 25 18:46:44 2017 +0900 +++ b/mid_thesis.aux Thu Oct 26 14:36:53 2017 +0900 @@ -10,10 +10,12 @@ \bibdata{reference} \bibcite{kaito:2015}{1} \bibcite{gears}{2} -\bibcite{llvm}{3} -\@writefile{lof}{\contentsline {figure}{\numberline {2}{\ignorespaces Gears OS の構成図}}{2}} -\newlabel{fig:gearsos}{{2}{2}} +\bibcite{kokubo:2016}{3} +\bibcite{llvm}{4} \@writefile{toc}{\contentsline {section}{\numberline {5}Raspberry Pi 上での実装}{2}} -\@writefile{toc}{\contentsline {section}{\numberline {6}xv6}{2}} -\@writefile{toc}{\contentsline {section}{\numberline {7}LLVM CrossCompile}{2}} -\@writefile{toc}{\contentsline {section}{\numberline {8}clang のバージョンアップ}{2}} +\@writefile{toc}{\contentsline {section}{\numberline {6}LLVM CrossCompile}{2}} +\@writefile{toc}{\contentsline {section}{\numberline {7}仮装マシン}{2}} +\@writefile{toc}{\contentsline {section}{\numberline {8}xv6}{2}} +\@writefile{toc}{\contentsline {section}{\numberline {9}clang のバージョンアップ}{2}} +\@writefile{lof}{\contentsline {figure}{\numberline {2}{\ignorespaces clang による コンパイル}}{2}} +\newlabel{fig:cs}{{2}{2}}
--- a/mid_thesis.bbl Wed Oct 25 18:46:44 2017 +0900 +++ b/mid_thesis.bbl Thu Oct 26 14:36:53 2017 +0900 @@ -8,6 +8,10 @@ {伊波立樹, 東恩納琢偉, 河野真治}. \newblock Code gear、data gear に基づく os のプロトタイプ, 2016. +\bibitem{kokubo:2016} +{小久保翔平, 河野真治}. +\newblock Code segment と data segment を持つ gears os の設計, 2016. + \bibitem{llvm} {The LLVM Compiler Infrastructure}. \newblock \url{http://llvm.org}.
--- a/mid_thesis.blg Wed Oct 25 18:46:44 2017 +0900 +++ b/mid_thesis.blg Thu Oct 26 14:36:53 2017 +0900 @@ -3,45 +3,45 @@ The top-level auxiliary file: mid_thesis.aux The style file: junsrt.bst Database file #1: reference.bib -You've used 3 entries, +You've used 4 entries, 2270 wiz_defined-function locations, - 551 strings with 4408 characters, -and the built_in function-call counts, 503 in all, are: -= -- 24 -> -- 12 + 554 strings with 4492 characters, +and the built_in function-call counts, 665 in all, are: += -- 32 +> -- 16 < -- 0 -+ -- 6 -- -- 3 -* -- 4 -:= -- 63 -add.period$ -- 6 -call.type$ -- 3 -change.case$ -- 2 ++ -- 8 +- -- 4 +* -- 5 +:= -- 81 +add.period$ -- 8 +call.type$ -- 4 +change.case$ -- 3 chr.to.int$ -- 0 -cite$ -- 3 -duplicate$ -- 33 -empty$ -- 73 -format.name$ -- 6 -if$ -- 121 +cite$ -- 4 +duplicate$ -- 44 +empty$ -- 97 +format.name$ -- 8 +if$ -- 161 int.to.chr$ -- 0 -int.to.str$ -- 3 +int.to.str$ -- 4 missing$ -- 0 -newline$ -- 15 -num.names$ -- 3 -pop$ -- 34 +newline$ -- 19 +num.names$ -- 4 +pop$ -- 46 preamble$ -- 1 purify$ -- 0 quote$ -- 0 -skip$ -- 32 +skip$ -- 42 stack$ -- 0 substring$ -- 0 -swap$ -- 3 +swap$ -- 4 text.length$ -- 0 text.prefix$ -- 0 top$ -- 0 type$ -- 0 warning$ -- 0 -while$ -- 3 -width$ -- 4 -write$ -- 25 -is.kanji.str$ -- 21 +while$ -- 4 +width$ -- 5 +write$ -- 33 +is.kanji.str$ -- 28
--- a/mid_thesis.log Wed Oct 25 18:46:44 2017 +0900 +++ b/mid_thesis.log Thu Oct 26 14:36:53 2017 +0900 @@ -1,4 +1,4 @@ -This is e-pTeX, Version 3.14159265-p3.7-160201-2.6 (utf8.euc) (TeX Live 2016) (preloaded format=platex 2017.5.28) 25 OCT 2017 18:44 +This is e-pTeX, Version 3.14159265-p3.7-160201-2.6 (utf8.euc) (TeX Live 2016) (preloaded format=platex 2017.5.28) 26 OCT 2017 13:58 entering extended mode restricted \write18 enabled. %&-line parsing enabled. @@ -140,7 +140,11 @@ LaTeX Warning: Unused global option(s): [9.5pt]. -(./mid_thesis.aux) +(./mid_thesis.aux + +LaTeX Warning: Label `fig:cs' multiply defined. + +) \openout1 = `mid_thesis.aux'. LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 24. @@ -177,8 +181,6 @@ File: pic/codesegment.pdf Graphic file (type pdf) <pic/codesegment.pdf> -File: pic/gearsos.pdf Graphic file (type pdf) - <pic/gearsos.pdf> File: pic/emblem-bitmap.pdf Graphic file (type pdf) <pic/emblem-bitmap.pdf> @@ -190,19 +192,25 @@ [1 -] (./mid_thesis.bbl +] +File: pic/compiler.pdf Graphic file (type pdf) + <pic/compiler.pdf> (./mid_thesis.bbl +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <7> on input line 17. LaTeX Font Info: External font `cmex10' loaded for size -(Font) <7> on input line 13. -LaTeX Font Info: External font `cmex10' loaded for size -(Font) <5> on input line 13. -) [2] (./mid_thesis.aux) ) +(Font) <5> on input line 17. +) [2] (./mid_thesis.aux) + +LaTeX Warning: There were multiply-defined labels. + + ) Here is how much of TeX's memory you used: 1194 strings out of 493693 - 14646 string characters out of 6149787 + 14649 string characters out of 6149787 80544 words of memory out of 5000000 4772 multiletter control sequences out of 15000+600000 13256 words of font info for 52 fonts, out of 8000000 for 9000 929 hyphenation exceptions out of 8191 27i,15n,43p,530b,367s stack positions out of 5000i,500n,10000p,200000b,80000s -Output written on mid_thesis.dvi (2 pages, 10392 bytes). +Output written on mid_thesis.dvi (2 pages, 12124 bytes).
--- a/mid_thesis.tex Wed Oct 25 18:46:44 2017 +0900 +++ b/mid_thesis.tex Thu Oct 26 14:36:53 2017 +0900 @@ -57,34 +57,49 @@ Code Gear はプログラムの処理そのものであり、任意の数の Data Gear を参照し、処理が完了すると任意の数の Data Gear に書き込む。Code Gear は接続された Data Gear 以外にアクセスできない。Code Segment と同じように Code Gear から次の Code Gear への処理の移動は goto の後に Code Gear の名前と引数を指定する事で実現できる。 Data Gear はデータそのものを表す。int や 文字列などの Primitive Data Type を持っている。Gear の特徴として処理やデータの構造が Code Gear、Data Gear に閉じている事にある。これにより、実行時間、メモリ使用量などを予測可能なものにすることができる。 -\begin{figure}[htpb] - \begin{center} - \scalebox{0.2}{\includegraphics{pic/gearsos.pdf}} - \end{center} - \caption{Gears OS の構成図} - \label{fig:gearsos} -\end{figure} - \section{Context} 接続可能な Code Gear、Data Gear のリスト、Temporal Data Gear 等のためのメモリ空間を持っており、Context を通してアクセスすることができる。Context にはメインとなる Context と Worker 用の Context がある。Temporal Data Gear のためのメモリ空間は Context 毎に異なり、互いに干渉する事はできない。 \section{Raspberry Pi 上での実装} 本研究では、ARM で動くシングルボードコンピュータである Raspberry Pi 上で Gears OS を動かせるようになる事で、ハードウェア上でも信頼性があり、並列実行ができるプログラミングを を記述できるようになる事を目指している。\\ + Raspberry Pi の OS である Raspbian ではメモリが 256MB なので Raspberry Pi 上で直接 CbC をコンパイルする事ができない。qemu によるメモリの拡張もできないので、別の手法で Raspberry Pi 上に CbC を実装する必要がある。 + + +\section{LLVM CrossCompile} +Raspberri pi 上ではコンパイルするためのメモリが足りないので、OSX 上で CrossCompile する事でこの問題を解決する方法がある。\\ + CrossCompile とは、別の OS で実行可能なコードを生成するコンパイルの手法である。つまり、OSX であらかじめ Raspberry Pi で CbC が動くように CrossCompile を行い、そのコードを Raspberry Pi に移せばよい。\\ +arm-linux-gnueabihf-gcc を使用し、C で書かれたファイルを CrossCompile することで ARM のコードを生成できる事を確認した。今後の課題として、CbC を CrossCompile できるコンパイラを書く必要がある。 + + +\section{仮装マシン} +もう一つの手法として、仮装マシン上での実装がある。\\ +linux 上で実装した後に Raspberry pi に linux の kernel を移植する事で CbC を動かす方法がある。 +linux 用の gcc を CbC に書き直す際に、gcc7 に書き直せば linker がそのまま使えるので、xxv6 で動くようになる。 + + + \section{xv6} xv6とは、マサチューセッツ工科大の大学院生向け講義の教材として使うために、UNIX V6 という OS を ANSI-C に書き換え、x86に移植した OS である。 -xv6 を CbC に書き直す事で、Raspberry Pi で CbC を動かす。 +xv6 は Raspberry Pi に移植する事ができる。ANSI-C で書かれている xv6 を CbC に書き直す事で、Raspberry Pi で CbC を動かせるようになる。 + -\section{LLVM CrossCompile} -Raspberry Pi だとメモリが足りないため、LLVM をコンパイルする事ができない。OSX 上で CrossCimpile する事でこの問題を解決する。 -OSX 上でCrossCimpiler を行える arm-linux-gnueabihf をインストールし、そこに入っている arm-linux-gnueabihf-gcc を指定してコンパイルすることで arm のバイナリを出力することができる。 +% xv6詳しく + \section{clang のバージョンアップ} CbC はバージョン 3.9 の clang を使用している。現在のバージョンの LLVM と clang を使用して、CbCをコンパイラできるように修正を加える必要がある。 +\begin{figure}[htpb] + \begin{center} + \scalebox{0.5}{\includegraphics{pic/compiler.pdf}} + \end{center} + \caption{clang による コンパイル} + \label{fig:cs} +\end{figure} - +% cross compiler 実機 VM への実装を書く \nocite{*} \bibliographystyle{junsrt}
--- a/reference.bib Wed Oct 25 18:46:44 2017 +0900 +++ b/reference.bib Thu Oct 26 14:36:53 2017 +0900 @@ -12,7 +12,15 @@ year = 2016 } +@Misc{kokubo:2016, + author = "{小久保翔平, 河野真治}", + title = "Code Segment と Data Segment を持つ Gears OS の設計", + year = 2016 +} + @Misc{llvm, author = "{The LLVM Compiler Infrastructure}", howpublished = "\url{http://llvm.org}" } + +