Mercurial > hg > Papers > 2019 > mitsuki-master
changeset 14:c72a09342aae
update
author | mir3636 |
---|---|
date | Sat, 26 Jan 2019 19:03:52 +0900 |
parents | 73f42f02f419 |
children | 02e26b44b515 |
files | mindmap.mm paper/introduction.tex paper/master_paper.pdf paper/xv6.tex |
diffstat | 4 files changed, 104 insertions(+), 27 deletions(-) [+] |
line wrap: on
line diff
--- a/mindmap.mm Sat Jan 26 16:16:36 2019 +0900 +++ b/mindmap.mm Sat Jan 26 19:03:52 2019 +0900 @@ -1,40 +1,118 @@ <map version="1.0.1"> <!-- To view this file, download free mind mapping software FreeMind from http://freemind.sourceforge.net --> -<node CREATED="1548148132447" ID="ID_675463996" MODIFIED="1548148296965" TEXT="継続を中心とした言語 Gears OS "> -<node CREATED="1548148340376" ID="ID_178117645" MODIFIED="1548148342567" POSITION="right" TEXT="OS の拡張性と信頼性の両立"> -<node CREATED="1548148862511" ID="ID_1718534025" MODIFIED="1548148868026" TEXT="モデル検査"/> -<node CREATED="1548148889450" ID="ID_1533316026" MODIFIED="1548148897356" TEXT="ノーマルレベルとメタレベル"/> +<node CREATED="1548148132447" ID="ID_675463996" MODIFIED="1548489761000" TEXT="継続を中心とした言語 Gears OS "> +<font NAME="SansSerif" SIZE="12"/> +<node CREATED="1548148340376" ID="ID_178117645" MODIFIED="1548487347733" POSITION="right" TEXT="OS の拡張性と信頼性の両立"> +<icon BUILTIN="full-1"/> +<node CREATED="1548487592202" ID="ID_1664909329" MODIFIED="1548487601034" TEXT="信頼性の保証"> +<node CREATED="1548148862511" ID="ID_1718534025" MODIFIED="1548487557659" TEXT="証明とモデル検査による OS の検証"/> </node> -<node CREATED="1548148373157" ID="ID_1788429805" MODIFIED="1548148505239" POSITION="right" TEXT="Gears におけるメタ計算"> -<node CREATED="1548148399058" ID="ID_1400405695" MODIFIED="1548148400739" TEXT="Continuation based C"> +<node CREATED="1548148889450" ID="ID_1533316026" MODIFIED="1548148897356" TEXT="ノーマルレベルとメタレベル"> +<node CREATED="1548487725405" ID="ID_1198600533" MODIFIED="1548487737076" TEXT="信頼性をノーマルレベルで保証"/> +<node CREATED="1548487747627" ID="ID_8461463" MODIFIED="1548487759053" TEXT="拡張性をメタレベルで保証"/> +<node CREATED="1548487799216" ID="ID_981159466" MODIFIED="1548487819999" TEXT="CbC を用いて実現"/> +</node> +</node> +<node CREATED="1548148373157" ID="ID_1788429805" MODIFIED="1548487352245" POSITION="right" TEXT="Gears におけるメタ計算"> +<icon BUILTIN="full-2"/> +<node CREATED="1548148399058" ID="ID_1400405695" MODIFIED="1548487580852" TEXT="Continuation based C"> +<icon BUILTIN="full-1"/> <node CREATED="1548148946394" ID="ID_894925375" MODIFIED="1548148955475" TEXT="軽量継続"/> <node CREATED="1548148959342" ID="ID_1325269629" MODIFIED="1548148971925" TEXT="LLVMとGCC"/> </node> -<node CREATED="1548148407844" ID="ID_1692311296" MODIFIED="1548148409101" TEXT="Code Gear "/> -<node CREATED="1548148415658" ID="ID_853478672" MODIFIED="1548148417013" TEXT="Data Gear"/> -<node CREATED="1548148424608" ID="ID_704536440" MODIFIED="1548148425847" TEXT="Meta Code Gear、Meta Data Gear"> -<node CREATED="1548148799631" ID="ID_415509042" MODIFIED="1548148817238" TEXT="Code の自動生成もこっちで書いたほうがいいかも?"/> +<node CREATED="1548148407844" ID="ID_1692311296" MODIFIED="1548487383902" TEXT="Code Gear "> +<icon BUILTIN="full-2"/> +</node> +<node CREATED="1548148415658" ID="ID_853478672" MODIFIED="1548487387438" TEXT="Data Gear"> +<icon BUILTIN="full-3"/> +</node> +<node CREATED="1548148424608" ID="ID_704536440" MODIFIED="1548487391838" TEXT="Meta Code Gear、Meta Data Gear"> +<icon BUILTIN="full-4"/> +</node> +</node> +<node CREATED="1548148561107" ID="ID_64989911" MODIFIED="1548487357599" POSITION="right" TEXT="Interface"> +<icon BUILTIN="full-3"/> +<node CREATED="1548487279772" ID="ID_49344231" MODIFIED="1548487396094" TEXT="Interface の実装"> +<icon BUILTIN="full-1"/> </node> </node> -<node CREATED="1548148561107" ID="ID_64989911" MODIFIED="1548148562500" POSITION="right" TEXT="Interface"/> -<node CREATED="1548148507487" ID="ID_411737141" MODIFIED="1548148509192" POSITION="right" TEXT="Gears OS の構成"> -<node CREATED="1548148513234" ID="ID_1709470781" MODIFIED="1548148521802" TEXT="Context"/> -<node CREATED="1548148525599" ID="ID_1398170145" MODIFIED="1548148533748" TEXT="TaskManager"/> -<node CREATED="1548148539827" ID="ID_191621067" MODIFIED="1548148540876" TEXT="TaskQueue"/> -<node CREATED="1548148546353" ID="ID_1800166056" MODIFIED="1548148547679" TEXT="Workers"/> +<node CREATED="1548148507487" ID="ID_411737141" MODIFIED="1548487360789" POSITION="right" TEXT="Gears OS の構成"> +<icon BUILTIN="full-4"/> +<node CREATED="1548148513234" ID="ID_1709470781" MODIFIED="1548487400695" TEXT="Context"> +<icon BUILTIN="full-1"/> +</node> +<node CREATED="1548148525599" ID="ID_1398170145" MODIFIED="1548487404439" TEXT="TaskManager"> +<icon BUILTIN="full-2"/> +</node> +<node CREATED="1548148539827" ID="ID_191621067" MODIFIED="1548487407623" TEXT="TaskQueue"> +<icon BUILTIN="full-3"/> </node> -<node CREATED="1548148575453" ID="ID_1492357762" MODIFIED="1548148576687" POSITION="right" TEXT="コードの自動生成"> -<node CREATED="1548148581455" ID="ID_1609724677" MODIFIED="1548148593015" TEXT="stub Code Gear の生成"/> -<node CREATED="1548148599118" MODIFIED="1548148599118" TEXT="Context の生成"/> +<node CREATED="1548148546353" ID="ID_1800166056" MODIFIED="1548487411271" TEXT="Workers"> +<icon BUILTIN="full-4"/> +</node> +</node> +<node CREATED="1548148575453" ID="ID_1492357762" MODIFIED="1548487366125" POSITION="right" TEXT="コードの自動生成"> +<icon BUILTIN="full-5"/> +<node CREATED="1548148581455" ID="ID_1609724677" MODIFIED="1548487414879" TEXT="Meta Code Gear の生成"> +<icon BUILTIN="full-1"/> +</node> +<node CREATED="1548148599118" ID="ID_1714604107" MODIFIED="1548487418480" TEXT="Context の生成"> +<icon BUILTIN="full-2"/> +</node> </node> <node CREATED="1548148619125" ID="ID_1489559909" MODIFIED="1548148623576" POSITION="right" TEXT="Gears OSの並列処理?"/> -<node CREATED="1548148627901" ID="ID_1160861787" MODIFIED="1548148638482" POSITION="right" TEXT="xv6 の CbC への書き換え"> -<node CREATED="1548148645276" ID="ID_1309677491" MODIFIED="1548148646628" TEXT="xv6-rpi"/> -<node CREATED="1548148652887" ID="ID_427195004" MODIFIED="1548148653908" TEXT="xv6-rpi の CbC 対応"/> -<node CREATED="1548148660032" ID="ID_1036569649" MODIFIED="1548148661150" TEXT="システムコールの書き換え"> +<node CREATED="1548148627901" ID="ID_1160861787" MODIFIED="1548487371913" POSITION="right" TEXT="xv6 の CbC への書き換え"> +<icon BUILTIN="full-6"/> +<node CREATED="1548148652887" ID="ID_427195004" MODIFIED="1548487422536" TEXT="xv6-rpi の CbC 対応"> +<icon BUILTIN="full-1"/> +</node> +<node CREATED="1548148660032" ID="ID_1036569649" MODIFIED="1548487427545" TEXT="システムコールの書き換え"> +<icon BUILTIN="full-2"/> <node CREATED="1548148671398" ID="ID_1733143845" MODIFIED="1548148681319" TEXT="システムコールのInterface?"/> </node> </node> -<node CREATED="1548148689201" ID="ID_1458028381" MODIFIED="1548148701854" POSITION="right" TEXT="結論?"/> +<node CREATED="1548148689201" ID="ID_1458028381" MODIFIED="1548487375742" POSITION="right" TEXT="結論?"> +<icon BUILTIN="full-7"/> +<node CREATED="1548489043347" ID="ID_1409047163" MODIFIED="1548489070315" TEXT="信頼性の向上に近づいた?"/> +</node> +<node CREATED="1548489932220" ID="ID_757950681" MODIFIED="1548490011362" POSITION="left" TEXT="インターフェース"> +<node CREATED="1548489953215" ID="ID_277212330" MODIFIED="1548491097911" TEXT="Data Gear がノーマルとメタで見え方が違う"> +<node CREATED="1548490061907" ID="ID_949514665" MODIFIED="1548490290605" TEXT="ノーマルレベルでは引数の集合に見える"/> +<node CREATED="1548491177494" ID="ID_938068961" MODIFIED="1548491219048" TEXT="メタレベルでは構造体に見える"/> +<node CREATED="1548491230226" ID="ID_619445051" MODIFIED="1548491489772" TEXT="このずれはstubによって調整されている"/> +</node> +<node CREATED="1548489985750" ID="ID_478331297" MODIFIED="1548490010332" TEXT="関数呼び出しでのスタックフレーム"> +<node CREATED="1548491543337" ID="ID_787064228" MODIFIED="1548491570179" TEXT="通常はスタックフレームを引き上げて引数を入れる"/> +<node CREATED="1548491591272" ID="ID_1468376764" MODIFIED="1548491631278" TEXT="CbC は置き場所がない"> +<node CREATED="1548491658311" ID="ID_748287856" MODIFIED="1548491746688" TEXT="Context で Data Gear を確保している"/> +</node> +<node CREATED="1548495614972" ID="ID_868990103" MODIFIED="1548495669304" TEXT="Code Gear の ABI を提供する Data Gear がいる"/> +</node> +<node CREATED="1548490030177" ID="ID_618100705" MODIFIED="1548490051646" TEXT="実装と API の分離"/> +</node> +<node CREATED="1548489764103" ID="ID_394002748" MODIFIED="1548489787308" POSITION="left" TEXT="OS の構成"> +<arrowlink DESTINATION="ID_394002748" ENDARROW="Default" ENDINCLINATION="0;0;" ID="Arrow_ID_1421895392" STARTARROW="None" STARTINCLINATION="0;0;"/> +<linktarget COLOR="#b0b0b0" DESTINATION="ID_394002748" ENDARROW="Default" ENDINCLINATION="0;0;" ID="Arrow_ID_1421895392" SOURCE="ID_394002748" STARTARROW="None" STARTINCLINATION="0;0;"/> +<node CREATED="1548489789146" ID="ID_674925361" MODIFIED="1548489798735" TEXT="スケジューラー"> +<node CREATED="1548489836881" ID="ID_1149997812" MODIFIED="1548489843289" TEXT="プロセスリスト"/> +</node> +<node CREATED="1548489802860" ID="ID_279936784" MODIFIED="1548489811367" TEXT="デバイス"> +<node CREATED="1548489846970" ID="ID_421100883" MODIFIED="1548489851481" TEXT="CPU"/> +<node CREATED="1548489856858" ID="ID_462651457" MODIFIED="1548489864802" TEXT="tty"/> +<node CREATED="1548489868900" ID="ID_1534478744" MODIFIED="1548489871991" TEXT="file"> +<node CREATED="1548495747264" ID="ID_1518415708" MODIFIED="1548495756897" TEXT="User"> +<node CREATED="1548495769468" ID="ID_1833789134" MODIFIED="1548495773314" TEXT="Buff"/> +<node CREATED="1548495777669" ID="ID_1499560097" MODIFIED="1548495780284" TEXT="fd"/> +</node> +<node CREATED="1548495760343" ID="ID_1439536994" MODIFIED="1548495764802" TEXT="System"> +<node CREATED="1548495796274" ID="ID_533525371" MODIFIED="1548495798805" TEXT="inode"/> +<node CREATED="1548495805783" ID="ID_171856887" MODIFIED="1548495827272" TEXT="console port"/> +</node> +</node> +</node> +<node CREATED="1548489815075" ID="ID_1074840646" MODIFIED="1548489828447" TEXT="メモリ"> +<node CREATED="1548489890668" ID="ID_665796263" MODIFIED="1548489904983" TEXT="pte"/> +</node> +</node> </node> </map>
--- a/paper/introduction.tex Sat Jan 26 16:16:36 2019 +0900 +++ b/paper/introduction.tex Sat Jan 26 19:03:52 2019 +0900 @@ -50,5 +50,4 @@ \label{fig:MetaGear} \end{figure} -本論文では Interface と par goto の実装を行なった。 -%実際の修正は考えてない +本研究では Gears OS のモジュール化の仕組みである Interface を用いた Gears OS の構築を行った。
--- a/paper/xv6.tex Sat Jan 26 16:16:36 2019 +0900 +++ b/paper/xv6.tex Sat Jan 26 19:03:52 2019 +0900 @@ -4,7 +4,7 @@ xv6 は UNIX V6 を x86 へ再実装したものであるが、 ここでは Xv6 を Raspberry pi 用に移植した xv6\_rpi\cite{xv6rpi} を用いて実装する。 -\section{xv6-rpi の CbC 書き換え} +\section{xv6-rpi の CbC 対応} Xv6 は 2006 年に MIT のオペレーティングシステムコースで教育用の目的として開発されたオペレーティングシステムである。 Xv6 はプロセス、仮想メモリ、カーネルとユーザの分離、割り込み、ファイルシステムなどの Unix の構造を持つにも関わらず、 シンプルで学習しやすい。