# HG changeset patch # User mir3636 # Date 1492851785 -32400 # Node ID 20b0ecfe114e8a7bad9a778a2954771dbdac66c3 # Parent 52b6be8721f8c1217bce1dcdea12806d47f6efc5 add diff -r 52b6be8721f8 -r 20b0ecfe114e paper/pic/gears_structure.graffle Binary file paper/pic/gears_structure.graffle has changed diff -r 52b6be8721f8 -r 20b0ecfe114e paper/pic/gears_structure.pdf Binary file paper/pic/gears_structure.pdf has changed diff -r 52b6be8721f8 -r 20b0ecfe114e paper/sigos.aux --- a/paper/sigos.aux Sat Apr 22 16:51:51 2017 +0900 +++ b/paper/sigos.aux Sat Apr 22 18:03:05 2017 +0900 @@ -11,16 +11,14 @@ \newlabel{interface}{{3}{4}} \@writefile{lol}{\contentsline {lstlisting}{\numberline {3}Interface}{4}} \newlabel{gearef1}{{4}{4}} -\@writefile{lol}{\contentsline {lstlisting}{\numberline {4}Gearef1}{4}} +\@writefile{lol}{\contentsline {lstlisting}{\numberline {4}disableGearef}{4}} \newlabel{gearef2}{{5}{4}} -\@writefile{lol}{\contentsline {lstlisting}{\numberline {5}Gearef2}{4}} -\newlabel{stack_cbc}{{6}{5}} -\@writefile{lol}{\contentsline {lstlisting}{\numberline {6}exampleCG}{5}} -\newlabel{stack_c}{{7}{5}} -\@writefile{lol}{\contentsline {lstlisting}{\numberline {7}stub}{5}} +\@writefile{lol}{\contentsline {lstlisting}{\numberline {5}enableGearef}{4}} +\newlabel{stack_c}{{6}{4}} +\@writefile{lol}{\contentsline {lstlisting}{\numberline {6}stub}{4}} \newlabel{fig:gc}{{3}{5}} -\newlabel{init_context}{{8}{5}} -\@writefile{lol}{\contentsline {lstlisting}{\numberline {8}init-context}{5}} +\newlabel{init_context}{{7}{5}} +\@writefile{lol}{\contentsline {lstlisting}{\numberline {7}initContext}{5}} \citation{*} \bibstyle{ipsjunsrt} \bibdata{sigos} diff -r 52b6be8721f8 -r 20b0ecfe114e paper/sigos.dvi Binary file paper/sigos.dvi has changed diff -r 52b6be8721f8 -r 20b0ecfe114e paper/sigos.log --- a/paper/sigos.log Sat Apr 22 16:51:51 2017 +0900 +++ b/paper/sigos.log Sat Apr 22 18:03:05 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.2.4) 22 APR 2017 16:43 +This is e-pTeX, Version 3.14159265-p3.7-160201-2.6 (utf8.euc) (TeX Live 2016) (preloaded format=platex 2017.2.4) 22 APR 2017 17:58 entering extended mode restricted \write18 enabled. %&-line parsing enabled. @@ -173,19 +173,19 @@ LaTeX Font Info: ... okay on input line 35. \c@lstlisting=\count114 LaTeX Font Info: Font shape `JT1/mc/bx/n' in size <14.4> not available -(Font) Font shape `JT1/gt/m/n' tried instead on input line 87. +(Font) Font shape `JT1/gt/m/n' tried instead on input line 89. LaTeX Font Info: Font shape `JY1/mc/bx/n' in size <14.4> not available -(Font) Font shape `JY1/gt/m/n' tried instead on input line 87. +(Font) Font shape `JY1/gt/m/n' tried instead on input line 89. LaTeX Font Info: External font `cmex10' loaded for size -(Font) <10.95> on input line 87. +(Font) <10.95> on input line 89. LaTeX Font Info: External font `cmex10' loaded for size -(Font) <8> on input line 87. +(Font) <8> on input line 89. LaTeX Font Info: Font shape `JT1/mc/bx/n' in size <12> not available -(Font) Font shape `JT1/gt/m/n' tried instead on input line 87. +(Font) Font shape `JT1/gt/m/n' tried instead on input line 89. LaTeX Font Info: Font shape `JY1/mc/bx/n' in size <12> not available -(Font) Font shape `JY1/gt/m/n' tried instead on input line 87. +(Font) Font shape `JY1/gt/m/n' tried instead on input line 89. LaTeX Font Info: External font `cmex10' loaded for size -(Font) <7> on input line 87. +(Font) <7> on input line 89. [1 @@ -207,57 +207,47 @@ []\OT1/cmr/m/n/9 Context [] - +[3] Overfull \hbox (73.97826pt too wide) in paragraph at lines 245--245 []\OT1/cmr/m/n/9 stack.cbc [] -[3] + Overfull \hbox (72.41156pt too wide) in paragraph at lines 262--262 []\OT1/cmr/m/n/9 Interface [] -Overfull \hbox (68.36577pt too wide) in paragraph at lines 274--274 -[]\OT1/cmr/m/n/9 Gearef1 +Overfull \hbox (91.54547pt too wide) in paragraph at lines 274--274 +[]\OT1/cmr/m/n/9 disableGearef [] -Overfull \hbox (68.36577pt too wide) in paragraph at lines 275--275 -[]\OT1/cmr/m/n/9 Gearef2 +Overfull \hbox (89.442pt too wide) in paragraph at lines 275--275 +[]\OT1/cmr/m/n/9 enableGearef [] [4] -Overfull \hbox (84.27539pt too wide) in paragraph at lines 298--298 -[]\OT1/cmr/m/n/9 exampleCG - [] - - -Overfull \hbox (54.70755pt too wide) in paragraph at lines 299--299 +Overfull \hbox (54.70755pt too wide) in paragraph at lines 294--294 []\OT1/cmr/m/n/9 stub [] File: ./pic/generate_context3.pdf Graphic file (type pdf) <./pic/generate_context3.pdf> -Overfull \hbox (54.14227pt too wide) in paragraph at lines 329--329 -[]\OT1/cmr/m/n/9 init- - [] - - -Overfull \hbox (66.99287pt too wide) in paragraph at lines 329--329 -\OT1/cmr/m/n/9 context +Overfull \hbox (83.43721pt too wide) in paragraph at lines 324--324 +[]\OT1/cmr/m/n/9 initContext [] [5] (./sigos.bbl) [6 ] (./sigos.aux) ) Here is how much of TeX's memory you used: - 3182 strings out of 493683 - 43735 string characters out of 6149654 - 327711 words of memory out of 5000000 - 6736 multiletter control sequences out of 15000+600000 + 3180 strings out of 493683 + 43718 string characters out of 6149654 + 304711 words of memory out of 5000000 + 6735 multiletter control sequences out of 15000+600000 17676 words of font info for 69 fonts, out of 8000000 for 9000 929 hyphenation exceptions out of 8191 - 30i,10n,49p,213b,1484s stack positions out of 5000i,500n,10000p,200000b,80000s + 30i,10n,49p,202b,1565s stack positions out of 5000i,500n,10000p,200000b,80000s -Output written on sigos.dvi (6 pages, 53576 bytes). +Output written on sigos.dvi (6 pages, 52560 bytes). diff -r 52b6be8721f8 -r 20b0ecfe114e paper/sigos.pdf Binary file paper/sigos.pdf has changed diff -r 52b6be8721f8 -r 20b0ecfe114e paper/sigos.tex --- a/paper/sigos.tex Sat Apr 22 16:51:51 2017 +0900 +++ b/paper/sigos.tex Sat Apr 22 18:03:05 2017 +0900 @@ -100,8 +100,6 @@ % きょだいなCDGの上で動かすと既存のアプリケーションを動かすことができる \section{メタ計算の重要性} -% 今ま - プログラムを記述する際、ノーマルレベルの処理の他に、メモリ管理、スレッド管理、CPU や GPU の資源管理等、記述しなければならない処理が存在する。 これらの計算をメタ計算と呼ぶ。 @@ -176,7 +174,7 @@ \begin{center} \includegraphics[width=70mm]{./pic/codesegment.pdf} \end{center} - \caption{goto による code gear 間の継続} + \caption{goto による Code Gear 間の継続} \label{fig:cs} \end{figure} @@ -266,30 +264,26 @@ \section{Gearef、GearImpl} Context には Allocation 等で生成した Data Gear へのポインタが格納されている。 -Code Gear が Context にアクセスする際、ポインタを使用してデータを取り出すため、リスト\ref{gearef1} のようにコードが煩雑になってしまう。 +Code Gear が Context にアクセスする際、ポインタを使用してデータを取り出すため、Code\ref{gearef1} のようにコードが煩雑になってしまう。 そこで Code Gear がデータを参照するための Gearef というマクロを定義した。 Gearef に Context と型を渡すことでデータの参照が行える。 また impliment のデータを参照する際も、ポインタでの記述が複雑になってしまうため 同様に GearImpl を定義した。 GearImpl は Context と interface 名、interface の変数名を指定して参照する。 -Gearef と GearImpl を用いたコードがリスト\ref{gearef2}である。 +Gearef と GearImpl を用いたコードが Code\ref{gearef2}である。 -\lstinputlisting[label=gearef1, caption=Gearef1]{./src/ex_code1} -\lstinputlisting[label=gearef2, caption=Gearef2]{./src/ex_code2} +\lstinputlisting[label=gearef1, caption=disableGearef]{./src/ex_code1} +\lstinputlisting[label=gearef2, caption=enableGearef]{./src/ex_code2} \section{stub Code Gear} Code Gear が必要とする Data Gear を取り出す際に Context を通す必要があるが、 Context を直接扱うのはセキュリティ上好ましくない。 そこで Context から必要なデータを取り出して Code Gear に接続する stub Code Gear を定義し、これを介して間接的に必要な Data Gear にアクセスする。 stub Code Gear は Code Gear 毎に生成され、次の Code Gear へと継続する間に挟まれる。 -\section{Context、stub Code Segment の自動生成} -Gears OS では 通常の計算の他に Context や stub などのメタ計算を記述する必要があが、Gears OS を現在の CbC の機能のみを用いて記述するとこのメタ計算の記述を行わなくてはならず、これには多くの労力を要する。 -この記述を助けるために Context を生成する generate\_context と stub Code Gear を生成する generate\_stub を Perl スクリプトで作成した。 - -\section{stub Code Segment の生成} +\section{stub Code Gear の生成} stub Code Gear は Code Gear 間の継続に挟まれる Code Gear が必要な Data Gear を Context から取り出す処理を行うものである。 Code Gear 毎に記述する必要があり、そのCode Gear の引数を見て取り出す Data Gear を選択する。 -stub Code Gear を 自動生成することによって Code Gear の記述量を約半分にすることができる。 +stub Code Gear を 自動生成する generate stub を Perl スクリプトで作成することによって Code Gear の記述量を約半分にすることができる。 stub を生成するために generate\_stub は指定された cbc ファイルの \_\_code型である Code Gear を取得し、引数から必要な Data Gear を選択する。 generate\_stub は引数と interface を照らし合わせ、Gearef または GearImpl を決定する。 @@ -297,11 +291,10 @@ cbc ファイルから、生成した stub Code Gear を加えて stub を加えたコードに変換を行う。(Code\ref{stack_c}) -\lstinputlisting[label=stack_cbc, caption=exampleCG]{./src/ex_cbc} -\lstinputlisting[label=stack_c, caption=stub]{./src/ex_stub} +\lstinputlisting[label=stack_c, caption= stub]{./src/ex_stub} \section{Context の生成} -generate\_context は Context.h、Interface.cbc、generate\_stub で生成されたImpl.cbc を見て Context を生成する。 +generate\_context は Context.h、Interface.cbc、generate\_stub で生成されたImpl.cbc を見て Context を生成する Perl スクリプトである。 \begin{figure}[ht] \begin{center} @@ -312,8 +305,8 @@ \end{figure} Context は Meta Data Gear に相当し、Code Gear や Data Gear を管理している。 -Data Gear を取得するために generate\_context は context の定義 (Code\ref{context}) を読み宣言されている Data Gear を取得する。 +generate\_context は context の定義 (Code\ref{context}) を読み宣言されている Data Gear を取得する。 Code Gear の取得は指定された generate\_stub で生成されたコードから \_\_code 型を見て行う。 取得した Code Gear、Data Gear の enum の定義は enumCode.h、enumData.h に生成される。 @@ -328,7 +321,7 @@ Context には Data Gear の Data Type の情報が格納されている。 この情報から確保される Data Gear のサイズなどを決定する。 -\lstinputlisting[label=init_context, caption=init-context]{./src/context2.c} +\lstinputlisting[label=init_context, caption=initContext]{./src/context2.c} \section{今後の課題} 本研究では LLVM/Clang のデバッグ、interface の記述、CbC ファイルから Gears OS の記述に必要な Context と stub の生成を行う Perl スクリプトの生成を行なった。 @@ -338,16 +331,6 @@ また、今回 Perl スクリプトによって Context や stub の生成を行なったが、LLVM/clang 上で実装しコンパイラで直接 CbC を実行できるようにすることを目的とする。 -%\begin{figure}[ht] -% \begin{center} -% \includegraphics[width=70mm]{./pic/cbc_goto.pdf} -% \end{center} -% \caption{gotoによる Code Segment 間の接続} -% \label{fig:cbc_goto} -%\end{figure} - -%\lstinputlisting[label=src:initContext, caption=initContext]{./src/context.c} - \nocite{*} \bibliographystyle{ipsjunsrt} \bibliography{sigos}