annotate paper/sigos.tex @ 17:e758335d4729

Paging merit
author tobaru
date Thu, 09 May 2019 22:37:09 +0900
parents 3c086874fe94
children 37de32597955
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
5dbda2e6cb0e add papar sample
tobaru
parents:
diff changeset
1 %%
5dbda2e6cb0e add papar sample
tobaru
parents:
diff changeset
2 %% 研究報告用スイッチ
5dbda2e6cb0e add papar sample
tobaru
parents:
diff changeset
3 %% [techrep]
5dbda2e6cb0e add papar sample
tobaru
parents:
diff changeset
4 %%
5dbda2e6cb0e add papar sample
tobaru
parents:
diff changeset
5 %% 欧文表記無しのスイッチ(etitle,eabstractは任意)
5dbda2e6cb0e add papar sample
tobaru
parents:
diff changeset
6 %% [noauthor]
5dbda2e6cb0e add papar sample
tobaru
parents:
diff changeset
7 %%
5dbda2e6cb0e add papar sample
tobaru
parents:
diff changeset
8
5dbda2e6cb0e add papar sample
tobaru
parents:
diff changeset
9 %\documentclass[submit,techrep]{ipsj}
5dbda2e6cb0e add papar sample
tobaru
parents:
diff changeset
10 \documentclass[submit,techrep,noauthor]{ipsj}
5dbda2e6cb0e add papar sample
tobaru
parents:
diff changeset
11
5dbda2e6cb0e add papar sample
tobaru
parents:
diff changeset
12 \usepackage[dvips]{graphicx}
5dbda2e6cb0e add papar sample
tobaru
parents:
diff changeset
13 \usepackage{latexsym}
5
a276cea215a2 add Discription GearsOS
tobaru
parents: 4
diff changeset
14 \usepackage{pdfpages}
1
5dbda2e6cb0e add papar sample
tobaru
parents:
diff changeset
15
5dbda2e6cb0e add papar sample
tobaru
parents:
diff changeset
16 \def\Underline{\setbox0\hbox\bgroup\let\\\endUnderline}
5dbda2e6cb0e add papar sample
tobaru
parents:
diff changeset
17 \def\endUnderline{\vphantom{y}\egroup\smash{\underline{\box0}}\\}
5dbda2e6cb0e add papar sample
tobaru
parents:
diff changeset
18 \def\|{\verb|}
5dbda2e6cb0e add papar sample
tobaru
parents:
diff changeset
19 %
5dbda2e6cb0e add papar sample
tobaru
parents:
diff changeset
20
5dbda2e6cb0e add papar sample
tobaru
parents:
diff changeset
21 %\setcounter{巻数}{59}%vol59=2018
5dbda2e6cb0e add papar sample
tobaru
parents:
diff changeset
22 %\setcounter{号数}{10}
5dbda2e6cb0e add papar sample
tobaru
parents:
diff changeset
23 %\setcounter{page}{1}
5dbda2e6cb0e add papar sample
tobaru
parents:
diff changeset
24
5dbda2e6cb0e add papar sample
tobaru
parents:
diff changeset
25
5dbda2e6cb0e add papar sample
tobaru
parents:
diff changeset
26 \begin{document}
5dbda2e6cb0e add papar sample
tobaru
parents:
diff changeset
27
5dbda2e6cb0e add papar sample
tobaru
parents:
diff changeset
28 \title{GearsOS の Paging と Segmentation
5dbda2e6cb0e add papar sample
tobaru
parents:
diff changeset
29 }
5dbda2e6cb0e add papar sample
tobaru
parents:
diff changeset
30
5dbda2e6cb0e add papar sample
tobaru
parents:
diff changeset
31 \etitle{Implement Paging and Segmentation on GearsOS }
5dbda2e6cb0e add papar sample
tobaru
parents:
diff changeset
32
15
f4aee7339546 fix affiliate
tobaru
parents: 14
diff changeset
33 \affiliate{IPSJ}{琉球大学 理工学研究科 情報工学専攻
f4aee7339546 fix affiliate
tobaru
parents: 14
diff changeset
34 \\ Ryukyu University }
1
5dbda2e6cb0e add papar sample
tobaru
parents:
diff changeset
35
5dbda2e6cb0e add papar sample
tobaru
parents:
diff changeset
36
15
f4aee7339546 fix affiliate
tobaru
parents: 14
diff changeset
37 \paffiliate{JU}{琉球大学 知能情報コース 准教授\\
f4aee7339546 fix affiliate
tobaru
parents: 14
diff changeset
38 Ryukyu University}
1
5dbda2e6cb0e add papar sample
tobaru
parents:
diff changeset
39
5dbda2e6cb0e add papar sample
tobaru
parents:
diff changeset
40 \author{桃原 優}{Yu Tobaru}{IPSJ}
5dbda2e6cb0e add papar sample
tobaru
parents:
diff changeset
41 \author{東恩納 琢偉}{Takui Higashionna}{IPSJ}
5dbda2e6cb0e add papar sample
tobaru
parents:
diff changeset
42 \author{河野 真治}{Shinji Kono}{IPSJ,JU}
5dbda2e6cb0e add papar sample
tobaru
parents:
diff changeset
43
5dbda2e6cb0e add papar sample
tobaru
parents:
diff changeset
44 \begin{abstract}
3
e63174b29b96 fix abstract
tobaru
parents: 1
diff changeset
45 現代のOSでは, User Space で Page Table Entry による メモリ管理を行えるOSは少ない。
1
5dbda2e6cb0e add papar sample
tobaru
parents:
diff changeset
46 本研究室ではメタレベルの処理を記述できる CbC と CbC を用いて実装する GearsOS の開発を行っている。
5
a276cea215a2 add Discription GearsOS
tobaru
parents: 4
diff changeset
47 CbC を用いることでメモリ管理などの資源管理を行えるようになるが, 現在の GearsOS でのメモリ管理では単に Page Table Entry をコピーする Fork で実装している。さらに, 資源管理を行える CbC で軽量なハードウェアでも動かせるように Arm のバイナリを出力する Xv6 という OS を CbC で書き直して GearsOS を開発する手法も行なっている。本論文ではXv6 を参考に GearsOS にメモリ管理を行う API を考察する。
1
5dbda2e6cb0e add papar sample
tobaru
parents:
diff changeset
48
5dbda2e6cb0e add papar sample
tobaru
parents:
diff changeset
49 \end{abstract}
5dbda2e6cb0e add papar sample
tobaru
parents:
diff changeset
50
14
02c08d07c371 Xv6 and English Abstract
tobaru
parents: 10
diff changeset
51 \begin{eabstract}
02c08d07c371 Xv6 and English Abstract
tobaru
parents: 10
diff changeset
52 In modern OS, there are few OS that can manage memory by Page Table Entry in User Space. In this laboratory, we are developing GearsOS which is implemented using CbC and CbC that can describe meta-level processing. Using CbC enables resource management such as memory management, but with the current memory management with GearsOS, it is implemented by Fork, which simply copies Page Table Entry. In addition, CbC is used to rewrite the OS called Xv6 that outputs Arm binary so that it can run even lightweight hardware that can execute resource management, and also develops GearsOS. In this paper, we will consider the API that manages memory in GearsOS referring to Xv6.
02c08d07c371 Xv6 and English Abstract
tobaru
parents: 10
diff changeset
53
02c08d07c371 Xv6 and English Abstract
tobaru
parents: 10
diff changeset
54
02c08d07c371 Xv6 and English Abstract
tobaru
parents: 10
diff changeset
55 \end{eabstract}
02c08d07c371 Xv6 and English Abstract
tobaru
parents: 10
diff changeset
56
1
5dbda2e6cb0e add papar sample
tobaru
parents:
diff changeset
57
5dbda2e6cb0e add papar sample
tobaru
parents:
diff changeset
58 %
5dbda2e6cb0e add papar sample
tobaru
parents:
diff changeset
59 %\begin{jkeyword}
5dbda2e6cb0e add papar sample
tobaru
parents:
diff changeset
60 %情報処理学会論文誌ジャーナル,\LaTeX,スタイルファイル,べからず集
5dbda2e6cb0e add papar sample
tobaru
parents:
diff changeset
61 %\end{jkeyword}
5dbda2e6cb0e add papar sample
tobaru
parents:
diff changeset
62 %
5dbda2e6cb0e add papar sample
tobaru
parents:
diff changeset
63 %\begin{eabstract}
5dbda2e6cb0e add papar sample
tobaru
parents:
diff changeset
64 %This document is a guide to prepare a draft for submitting to IPSJ
5dbda2e6cb0e add papar sample
tobaru
parents:
diff changeset
65 %Journal, and the final camera-ready manuscript of a paper to appear in
5dbda2e6cb0e add papar sample
tobaru
parents:
diff changeset
66 %IPSJ Journal, using {\LaTeX} and special style files. Since this
5dbda2e6cb0e add papar sample
tobaru
parents:
diff changeset
67 %document itself is produced with the style files, it will help you to
5dbda2e6cb0e add papar sample
tobaru
parents:
diff changeset
68 %refer its source file which is distributed with the style files.
5dbda2e6cb0e add papar sample
tobaru
parents:
diff changeset
69 %\end{eabstract}
5dbda2e6cb0e add papar sample
tobaru
parents:
diff changeset
70 %
5dbda2e6cb0e add papar sample
tobaru
parents:
diff changeset
71 %\begin{ekeyword}
5dbda2e6cb0e add papar sample
tobaru
parents:
diff changeset
72 %IPSJ Journal, \LaTeX, style files, ``Dos and Dont's'' list
5dbda2e6cb0e add papar sample
tobaru
parents:
diff changeset
73 %\end{ekeyword}
5dbda2e6cb0e add papar sample
tobaru
parents:
diff changeset
74
5dbda2e6cb0e add papar sample
tobaru
parents:
diff changeset
75 \maketitle
5dbda2e6cb0e add papar sample
tobaru
parents:
diff changeset
76
3
e63174b29b96 fix abstract
tobaru
parents: 1
diff changeset
77
e63174b29b96 fix abstract
tobaru
parents: 1
diff changeset
78 % 書けるならなぜこれをやっているかを1章に書く
e63174b29b96 fix abstract
tobaru
parents: 1
diff changeset
79
1
5dbda2e6cb0e add papar sample
tobaru
parents:
diff changeset
80 %2
5
a276cea215a2 add Discription GearsOS
tobaru
parents: 4
diff changeset
81
a276cea215a2 add Discription GearsOS
tobaru
parents: 4
diff changeset
82 \section{Gears OS}
a276cea215a2 add Discription GearsOS
tobaru
parents: 4
diff changeset
83 本研究室では並列実行のサポートと, 信頼性を保証する Gears OS の開発を行っている。
a276cea215a2 add Discription GearsOS
tobaru
parents: 4
diff changeset
84 従来の OS が行うメモリ管理や並列実行などは Meta レベルで処理される。メタレベルの処理を行える CbC という言語で Gears OS を実装する事で, ノーマルレベルから 並列実行環境に合わせた記述ができるように設計や実装を行う。
a276cea215a2 add Discription GearsOS
tobaru
parents: 4
diff changeset
85
a276cea215a2 add Discription GearsOS
tobaru
parents: 4
diff changeset
86 \subsection{Continuation based C}
4
54a8bf3bba7b Description CbC
tobaru
parents: 3
diff changeset
87 本研究室では、Code Gear と Data Gear という単位でプログラムを記述する CbC と CbC を用いて実装する Gears OS の研究を行っている。Code Gear は CbC における最も基本的な処理の単位である。 入力と出力を持ち、goto によって Code Gear から次の Code Gear へ遷移する事で継続的に処理を行う事によって並列処理を行うことができる。
54a8bf3bba7b Description CbC
tobaru
parents: 3
diff changeset
88 Data Gear は Gears OS におけるデータの基本的な単位である。Input Data Gear と Output Data Gear があり, Code Gear の遷移の際に Input Data Gear を受け取り, Output Data Gear を書き出す。
3
e63174b29b96 fix abstract
tobaru
parents: 1
diff changeset
89
9
5655fa5ad772 fix space
tobaru
parents: 7
diff changeset
90
5655fa5ad772 fix space
tobaru
parents: 7
diff changeset
91 % \setlength\intextsep{0pt}
5655fa5ad772 fix space
tobaru
parents: 7
diff changeset
92 % \setlength\textfloatsep{0pt}
14
02c08d07c371 Xv6 and English Abstract
tobaru
parents: 10
diff changeset
93
9
5655fa5ad772 fix space
tobaru
parents: 7
diff changeset
94
5
a276cea215a2 add Discription GearsOS
tobaru
parents: 4
diff changeset
95 \begin{figure}[ht]
a276cea215a2 add Discription GearsOS
tobaru
parents: 4
diff changeset
96 \begin{center}
a276cea215a2 add Discription GearsOS
tobaru
parents: 4
diff changeset
97 \includegraphics[width=80mm,bb=0 0 595 642]{../images/codesegment.pdf}
a276cea215a2 add Discription GearsOS
tobaru
parents: 4
diff changeset
98 \end{center}
a276cea215a2 add Discription GearsOS
tobaru
parents: 4
diff changeset
99 \caption{Code Gear 間の継続}
a276cea215a2 add Discription GearsOS
tobaru
parents: 4
diff changeset
100 \label{fig:codegear}
a276cea215a2 add Discription GearsOS
tobaru
parents: 4
diff changeset
101 \end{figure}
1
5dbda2e6cb0e add papar sample
tobaru
parents:
diff changeset
102
5
a276cea215a2 add Discription GearsOS
tobaru
parents: 4
diff changeset
103
a276cea215a2 add Discription GearsOS
tobaru
parents: 4
diff changeset
104 \subsection{Meta Code Gear と Meta Data Gear}
7
e245900649c2 Discription Meta CG DG
tobaru
parents: 5
diff changeset
105 Gears OS ではメタ計算を Meta Code Gear, Meta Data Gear で表現する。CbC でもノーマルレベルとメタ計算を行うメタレベルの記述の2種類がある。この2つのレベルはプログラミング言語レベルでの変換として実現される。メタレベルへの変換は, Perl による変換スクリプトで実装している。
e245900649c2 Discription Meta CG DG
tobaru
parents: 5
diff changeset
106 Gears OS では, Meta Code Gear は通常の Code Gear の直前, 直後に挿入され, メタ計算を実行する。 Code Gear 間の継続はノーマルレベルでは 図\ref{fig:metacodegear} の上のように見えるが, メタレベルでは Code Gear は 図\ref{fig:metacodegear} の下のように継続を行っている。
1
5dbda2e6cb0e add papar sample
tobaru
parents:
diff changeset
107
5dbda2e6cb0e add papar sample
tobaru
parents:
diff changeset
108
3
e63174b29b96 fix abstract
tobaru
parents: 1
diff changeset
109 % Data Gear を Paging , Code Gear を Segmentation として
5
a276cea215a2 add Discription GearsOS
tobaru
parents: 4
diff changeset
110 図\ref{fig:metacodegear} に Gears OS の構成図を示す。
3
e63174b29b96 fix abstract
tobaru
parents: 1
diff changeset
111
9
5655fa5ad772 fix space
tobaru
parents: 7
diff changeset
112
5
a276cea215a2 add Discription GearsOS
tobaru
parents: 4
diff changeset
113 \begin{figure}[ht]
a276cea215a2 add Discription GearsOS
tobaru
parents: 4
diff changeset
114 \begin{center}
a276cea215a2 add Discription GearsOS
tobaru
parents: 4
diff changeset
115 \includegraphics[width=80mm,bb=0 0 595 642]{../images/meta_cg_dg.pdf}
a276cea215a2 add Discription GearsOS
tobaru
parents: 4
diff changeset
116 \end{center}
7
e245900649c2 Discription Meta CG DG
tobaru
parents: 5
diff changeset
117 \caption{ノーマルレベルとメタレベルの継続の見え方}
5
a276cea215a2 add Discription GearsOS
tobaru
parents: 4
diff changeset
118 \label{fig:metacodegear}
a276cea215a2 add Discription GearsOS
tobaru
parents: 4
diff changeset
119 \end{figure}
1
5dbda2e6cb0e add papar sample
tobaru
parents:
diff changeset
120
16
3c086874fe94 Chapter : Paging of GearsOS
tobaru
parents: 15
diff changeset
121 \subsection{Meta Competition}
3c086874fe94 Chapter : Paging of GearsOS
tobaru
parents: 15
diff changeset
122 Gears OS では通常の処理を Computation, Computation のための Computation を Meta Computation として扱う。
3c086874fe94 Chapter : Paging of GearsOS
tobaru
parents: 15
diff changeset
123 Meta Computation の例として, 並列処理の依存関係の解決や, OS が行うネットワーク管理, メモリ管理などの資源制御が挙げられる。GearsOS では Meta Computation を Meta Code Gear, Meta Data Gear で表現する。
3c086874fe94 Chapter : Paging of GearsOS
tobaru
parents: 15
diff changeset
124 Meta Code Gear は通常の Code Gear 直後に遷移され, Meta Computation を実行する。
1
5dbda2e6cb0e add papar sample
tobaru
parents:
diff changeset
125
5dbda2e6cb0e add papar sample
tobaru
parents:
diff changeset
126 %3
14
02c08d07c371 Xv6 and English Abstract
tobaru
parents: 10
diff changeset
127 \section{Paging と Segmentation}
10
440be813ef3c Paging and Segmentation
tobaru
parents: 9
diff changeset
128 メモリ管理の手法に, Paging と Segmentation がある。Paging ではメモリを Page と呼ばれる固定長の単位に分割し, メモリとスワップ領域で Page を入れ替えて管理を行う。Segmentation では可変長の単位に分割するので, Paging と比べてメモリを無駄なく扱うことができる。近年では, Paging を採用している OS が多い。
1
5dbda2e6cb0e add papar sample
tobaru
parents:
diff changeset
129
5dbda2e6cb0e add papar sample
tobaru
parents:
diff changeset
130
14
02c08d07c371 Xv6 and English Abstract
tobaru
parents: 10
diff changeset
131 \section{GearsOS での Paging}
02c08d07c371 Xv6 and English Abstract
tobaru
parents: 10
diff changeset
132
16
3c086874fe94 Chapter : Paging of GearsOS
tobaru
parents: 15
diff changeset
133 Context に必要な Page Table を提供する Interface と User Space からアクセスする API が必要である。
3c086874fe94 Chapter : Paging of GearsOS
tobaru
parents: 15
diff changeset
134 Page Table に相当するデータを Input Data Gear で受け取って変更した後, Context にあるメモリコントロールを担当する Meta Data Gear に goto してアクセスする。Meta Computation レベルで 処理する事で User プログラムでも Page Table を操作することができる。
3c086874fe94 Chapter : Paging of GearsOS
tobaru
parents: 15
diff changeset
135 Meta Computation に戻る際に, Page Table Entry のバリデーションをチェックして反映することで, 他のプロセスから Page Table を書き換えられることを防ぐ。また, サンドボックスにしておいて, 他のプロセスが書き換えられた時にエクセプションを飛ばすようにする。
3c086874fe94 Chapter : Paging of GearsOS
tobaru
parents: 15
diff changeset
136
3c086874fe94 Chapter : Paging of GearsOS
tobaru
parents: 15
diff changeset
137 \subsection{Segmentation の切り替え}
3c086874fe94 Chapter : Paging of GearsOS
tobaru
parents: 15
diff changeset
138 Code Gear を切り替えるたびに Segmentation を切り替えると処理が遅くなる。Context は Thread ごとにあり, Code Gear Data Gear は自由に入れ替えることができる。しかし, Code Gear と Data Gear は煩雑に切り替わるので, Context に沿ってアクセスできる範囲を制限する必要がある。Context と Segmentation を組み合わせることで, Gears OS のPaging を実装する。
3c086874fe94 Chapter : Paging of GearsOS
tobaru
parents: 15
diff changeset
139
3c086874fe94 Chapter : Paging of GearsOS
tobaru
parents: 15
diff changeset
140
14
02c08d07c371 Xv6 and English Abstract
tobaru
parents: 10
diff changeset
141 \section{User Space で Page Table を操作する利点}
17
e758335d4729 Paging merit
tobaru
parents: 16
diff changeset
142 現代の OS では, User Space で Page Table Entry によるメモリ管理が行える OS は少ない。
e758335d4729 Paging merit
tobaru
parents: 16
diff changeset
143 User レベルの操作で Page Table が書き換えられたり, 別の Page にアクセスするのを防ぐためだと考えられる。
e758335d4729 Paging merit
tobaru
parents: 16
diff changeset
144 User Space でメモリ管理を行えるようにする事で, Page のバリデーションをチェックしたり, サンドボックスによる信頼性の保証が行える。また, 適切な記述をすれば最適なメモリ管理を行う事ができるようになる。
1
5dbda2e6cb0e add papar sample
tobaru
parents:
diff changeset
145
16
3c086874fe94 Chapter : Paging of GearsOS
tobaru
parents: 15
diff changeset
146
3c086874fe94 Chapter : Paging of GearsOS
tobaru
parents: 15
diff changeset
147
14
02c08d07c371 Xv6 and English Abstract
tobaru
parents: 10
diff changeset
148 \section{Xv6 からの書き換え}
02c08d07c371 Xv6 and English Abstract
tobaru
parents: 10
diff changeset
149 \subsection{Xv6}
02c08d07c371 Xv6 and English Abstract
tobaru
parents: 10
diff changeset
150 Xv6 とは, マサチューセッツ工科大の大学院生向け講義の教材として使うために, UNIX V6 とい う OS を ANSI-C に書き換え, x86 に移植した Xv6 OS である。Xv6 は Arm のバイナリを出力するので, Raspberry Pi や 携帯など様々なハードウェアで動かすことができる。
1
5dbda2e6cb0e add papar sample
tobaru
parents:
diff changeset
151
14
02c08d07c371 Xv6 and English Abstract
tobaru
parents: 10
diff changeset
152 \subsection{Xv6 を元にした GearsOS の実装}
02c08d07c371 Xv6 and English Abstract
tobaru
parents: 10
diff changeset
153 Gears OS はメモリ管理やCPUの管理を User Space から操作できることを目標に実装しているので, メモリに限りのあるハードウェアで動くように実装できる方が好ましい。ANSI-C で書かれている Xv6 を CbC に書き直し, それを元に Gears OS を実装していく。
02c08d07c371 Xv6 and English Abstract
tobaru
parents: 10
diff changeset
154 Xv6 の新しい要素として Gears OS の Context の部分を User Space 側で実行する。
1
5dbda2e6cb0e add papar sample
tobaru
parents:
diff changeset
155
14
02c08d07c371 Xv6 and English Abstract
tobaru
parents: 10
diff changeset
156
1
5dbda2e6cb0e add papar sample
tobaru
parents:
diff changeset
157
5dbda2e6cb0e add papar sample
tobaru
parents:
diff changeset
158 %4.1
5dbda2e6cb0e add papar sample
tobaru
parents:
diff changeset
159 \subsection{表題・著者名等}
5dbda2e6cb0e add papar sample
tobaru
parents:
diff changeset
160
5dbda2e6cb0e add papar sample
tobaru
parents:
diff changeset
161
5dbda2e6cb0e add papar sample
tobaru
parents:
diff changeset
162
5dbda2e6cb0e add papar sample
tobaru
parents:
diff changeset
163
5dbda2e6cb0e add papar sample
tobaru
parents:
diff changeset
164 \begin{acknowledgment}
14
02c08d07c371 Xv6 and English Abstract
tobaru
parents: 10
diff changeset
165 CbC や Gears OS の説明では, 先行研究を元に本稿を作成した。また, 河野 真治 准教授にさまざまなご教授を頂いた事を感謝する。
1
5dbda2e6cb0e add papar sample
tobaru
parents:
diff changeset
166 \end{acknowledgment}
5dbda2e6cb0e add papar sample
tobaru
parents:
diff changeset
167
5dbda2e6cb0e add papar sample
tobaru
parents:
diff changeset
168
5dbda2e6cb0e add papar sample
tobaru
parents:
diff changeset
169
5dbda2e6cb0e add papar sample
tobaru
parents:
diff changeset
170 \begin{thebibliography}{10}
5dbda2e6cb0e add papar sample
tobaru
parents:
diff changeset
171
5dbda2e6cb0e add papar sample
tobaru
parents:
diff changeset
172 \bibitem{okumura}
17
e758335d4729 Paging merit
tobaru
parents: 16
diff changeset
173 宮城光希 : Gears OS のモジュール化と並列 API,
e758335d4729 Paging merit
tobaru
parents: 16
diff changeset
174 OS研究会(2018).
1
5dbda2e6cb0e add papar sample
tobaru
parents:
diff changeset
175
5dbda2e6cb0e add papar sample
tobaru
parents:
diff changeset
176
5dbda2e6cb0e add papar sample
tobaru
parents:
diff changeset
177
5dbda2e6cb0e add papar sample
tobaru
parents:
diff changeset
178 \end{thebibliography}
5dbda2e6cb0e add papar sample
tobaru
parents:
diff changeset
179
5dbda2e6cb0e add papar sample
tobaru
parents:
diff changeset
180
5dbda2e6cb0e add papar sample
tobaru
parents:
diff changeset
181
5dbda2e6cb0e add papar sample
tobaru
parents:
diff changeset
182
5dbda2e6cb0e add papar sample
tobaru
parents:
diff changeset
183 \end{document}