comparison paper/sigos.tex @ 14:02c08d07c371

Xv6 and English Abstract
author tobaru
date Thu, 09 May 2019 21:15:45 +0900
parents 440be813ef3c
children f4aee7339546
comparison
equal deleted inserted replaced
13:a6889c903369 14:02c08d07c371
47 CbC を用いることでメモリ管理などの資源管理を行えるようになるが, 現在の GearsOS でのメモリ管理では単に Page Table Entry をコピーする Fork で実装している。さらに, 資源管理を行える CbC で軽量なハードウェアでも動かせるように Arm のバイナリを出力する Xv6 という OS を CbC で書き直して GearsOS を開発する手法も行なっている。本論文ではXv6 を参考に GearsOS にメモリ管理を行う API を考察する。 47 CbC を用いることでメモリ管理などの資源管理を行えるようになるが, 現在の GearsOS でのメモリ管理では単に Page Table Entry をコピーする Fork で実装している。さらに, 資源管理を行える CbC で軽量なハードウェアでも動かせるように Arm のバイナリを出力する Xv6 という OS を CbC で書き直して GearsOS を開発する手法も行なっている。本論文ではXv6 を参考に GearsOS にメモリ管理を行う API を考察する。
48 48
49 49
50 \end{abstract} 50 \end{abstract}
51 51
52 \begin{eabstract}
53 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.
54
55
56 \end{eabstract}
57
52 58
53 % 59 %
54 %\begin{jkeyword} 60 %\begin{jkeyword}
55 %情報処理学会論文誌ジャーナル,\LaTeX,スタイルファイル,べからず集 61 %情報処理学会論文誌ジャーナル,\LaTeX,スタイルファイル,べからず集
56 %\end{jkeyword} 62 %\end{jkeyword}
70 \maketitle 76 \maketitle
71 77
72 78
73 % 書けるならなぜこれをやっているかを1章に書く 79 % 書けるならなぜこれをやっているかを1章に書く
74 80
75 \section{User Space でのメモリ管理}
76 基本、メモリやスレッド, CPUの管理は OS が行なっている。時代とともに急速に進歩するハードウェアやソフトウェアに対して、OS も
77
78
79 %2 81 %2
80 82
81 \section{Gears OS} 83 \section{Gears OS}
82 本研究室では並列実行のサポートと, 信頼性を保証する Gears OS の開発を行っている。 84 本研究室では並列実行のサポートと, 信頼性を保証する Gears OS の開発を行っている。
83 従来の OS が行うメモリ管理や並列実行などは Meta レベルで処理される。メタレベルの処理を行える CbC という言語で Gears OS を実装する事で, ノーマルレベルから 並列実行環境に合わせた記述ができるように設計や実装を行う。 85 従来の OS が行うメモリ管理や並列実行などは Meta レベルで処理される。メタレベルの処理を行える CbC という言語で Gears OS を実装する事で, ノーマルレベルから 並列実行環境に合わせた記述ができるように設計や実装を行う。
87 Data Gear は Gears OS におけるデータの基本的な単位である。Input Data Gear と Output Data Gear があり, Code Gear の遷移の際に Input Data Gear を受け取り, Output Data Gear を書き出す。 89 Data Gear は Gears OS におけるデータの基本的な単位である。Input Data Gear と Output Data Gear があり, Code Gear の遷移の際に Input Data Gear を受け取り, Output Data Gear を書き出す。
88 90
89 91
90 % \setlength\intextsep{0pt} 92 % \setlength\intextsep{0pt}
91 % \setlength\textfloatsep{0pt} 93 % \setlength\textfloatsep{0pt}
92 \vspace{-20zh} 94
93 95
94 \begin{figure}[ht] 96 \begin{figure}[ht]
95 \begin{center} 97 \begin{center}
96 \includegraphics[width=80mm,bb=0 0 595 642]{../images/codesegment.pdf} 98 \includegraphics[width=80mm,bb=0 0 595 642]{../images/codesegment.pdf}
97 \end{center} 99 \end{center}
117 \label{fig:metacodegear} 119 \label{fig:metacodegear}
118 \end{figure} 120 \end{figure}
119 121
120 122
121 %3 123 %3
122 \section{PagingとSegmentation} 124 \section{Paging と Segmentation}
123 メモリ管理の手法に, Paging と Segmentation がある。Paging ではメモリを Page と呼ばれる固定長の単位に分割し, メモリとスワップ領域で Page を入れ替えて管理を行う。Segmentation では可変長の単位に分割するので, Paging と比べてメモリを無駄なく扱うことができる。近年では, Paging を採用している OS が多い。 125 メモリ管理の手法に, Paging と Segmentation がある。Paging ではメモリを Page と呼ばれる固定長の単位に分割し, メモリとスワップ領域で Page を入れ替えて管理を行う。Segmentation では可変長の単位に分割するので, Paging と比べてメモリを無駄なく扱うことができる。近年では, Paging を採用している OS が多い。
124 126
125 127
126 \section{Xv6} 128 \section{GearsOS での Paging}
127 129
128 130 \section{User Space で Page Table を操作する利点}
129 %4 131
130 \section{PagingとSegmentationのGearsOSへの実装} 132 \section{Xv6 からの書き換え}
131 \label{config} 133 \subsection{Xv6}
132 134 Xv6 とは, マサチューセッツ工科大の大学院生向け講義の教材として使うために, UNIX V6 とい う OS を ANSI-C に書き換え, x86 に移植した Xv6 OS である。Xv6 は Arm のバイナリを出力するので, Raspberry Pi や 携帯など様々なハードウェアで動かすことができる。
133 ファイルは次のようになる.下線部は投稿時に省略可能なもの. 135
136 \subsection{Xv6 を元にした GearsOS の実装}
137 Gears OS はメモリ管理やCPUの管理を User Space から操作できることを目標に実装しているので, メモリに限りのあるハードウェアで動くように実装できる方が好ましい。ANSI-C で書かれている Xv6 を CbC に書き直し, それを元に Gears OS を実装していく。
138 Xv6 の新しい要素として Gears OS の Context の部分を User Space 側で実行する。
139
140 \subsection{メモリコントロール}
141 Context に必要な Page Table を提供する Interface と User Space からアクセスする API が必要である。
142 Page Table に相当するデータを Input Data Gear で受け取って変更した後, Context にあるメモリコントロールを担当する Meta Data Gear に goto してアクセスする。
143 その際に, Page Table Entry のバリデーションをチェックして反映することで, 他のプロセスから Page Table を書き換えられることを防ぐ。
144
134 145
135 146
136 147
137 %4.1 148 %4.1
138 \subsection{表題・著者名等} 149 \subsection{表題・著者名等}
139 150
140 151
141 152
142 153
143
144
145 \begin{acknowledgment} 154 \begin{acknowledgment}
146 A4横型に対するガイドを基に,本稿を作成した. 155 CbC や Gears OS の説明では, 先行研究を元に本稿を作成した。また, 河野 真治 准教授にさまざまなご教授を頂いた事を感謝する。
147 クラスファイルの作成においては,
148 京都大学の中島 浩氏にさまざまなご教示を頂き,
149 さらにBiB\TeX 関連ファイルの利用についても快諾頂いたことを深謝する.
150 また,A4横型に対するガイドを作成された当時の編集委員会の担当者に深謝する.
151 \end{acknowledgment} 156 \end{acknowledgment}
152 157
153 158
154 159
155 \begin{thebibliography}{10} 160 \begin{thebibliography}{10}