annotate midterm.tex @ 7:db1bf12dcbf7

fix
author e165723 <e165723@ie.u-ryukyu.ac.jp>
date Sun, 20 Oct 2019 19:31:07 +0900
parents 191b3bd3ba1d
children 65f4eae5a960
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
61fe443393a5 first commit
e165723 <e165723@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1 \documentclass[twocolumn,twoside,9.5pt]{jarticle}
61fe443393a5 first commit
e165723 <e165723@ie.u-ryukyu.ac.jp>
parents:
diff changeset
2 \usepackage[dvipdfmx]{graphicx}
61fe443393a5 first commit
e165723 <e165723@ie.u-ryukyu.ac.jp>
parents:
diff changeset
3 \usepackage{picins}
61fe443393a5 first commit
e165723 <e165723@ie.u-ryukyu.ac.jp>
parents:
diff changeset
4 \usepackage{fancyhdr}
61fe443393a5 first commit
e165723 <e165723@ie.u-ryukyu.ac.jp>
parents:
diff changeset
5 \usepackage{listings}
61fe443393a5 first commit
e165723 <e165723@ie.u-ryukyu.ac.jp>
parents:
diff changeset
6 \usepackage{caption}
61fe443393a5 first commit
e165723 <e165723@ie.u-ryukyu.ac.jp>
parents:
diff changeset
7 \usepackage{latexsym}
3
f0db7d006b4f add hgignore
e165723 <e165723@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
8 \usepackage{url}
f0db7d006b4f add hgignore
e165723 <e165723@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
9 \usepackage{abstract}
f0db7d006b4f add hgignore
e165723 <e165723@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
10 \usepackage{float}
0
61fe443393a5 first commit
e165723 <e165723@ie.u-ryukyu.ac.jp>
parents:
diff changeset
11
61fe443393a5 first commit
e165723 <e165723@ie.u-ryukyu.ac.jp>
parents:
diff changeset
12 %\pagestyle{fancy}
61fe443393a5 first commit
e165723 <e165723@ie.u-ryukyu.ac.jp>
parents:
diff changeset
13 \lhead{\parpic{\includegraphics[height=1zw,keepaspectratio,bb=0 0 251 246]{pic/emblem-bitmap.pdf}}琉球大学主催 工学部情報工学科 中間発表予稿}
61fe443393a5 first commit
e165723 <e165723@ie.u-ryukyu.ac.jp>
parents:
diff changeset
14 \rhead{}
61fe443393a5 first commit
e165723 <e165723@ie.u-ryukyu.ac.jp>
parents:
diff changeset
15 \cfoot{}
61fe443393a5 first commit
e165723 <e165723@ie.u-ryukyu.ac.jp>
parents:
diff changeset
16
61fe443393a5 first commit
e165723 <e165723@ie.u-ryukyu.ac.jp>
parents:
diff changeset
17 \setlength{\topmargin}{-1in \addtolength{\topmargin}{15mm}}
61fe443393a5 first commit
e165723 <e165723@ie.u-ryukyu.ac.jp>
parents:
diff changeset
18 \setlength{\headheight}{0mm}
61fe443393a5 first commit
e165723 <e165723@ie.u-ryukyu.ac.jp>
parents:
diff changeset
19 \setlength{\headsep}{5mm}
61fe443393a5 first commit
e165723 <e165723@ie.u-ryukyu.ac.jp>
parents:
diff changeset
20 \setlength{\oddsidemargin}{-1in \addtolength{\oddsidemargin}{11mm}}
61fe443393a5 first commit
e165723 <e165723@ie.u-ryukyu.ac.jp>
parents:
diff changeset
21 \setlength{\evensidemargin}{-1in \addtolength{\evensidemargin}{21mm}}
61fe443393a5 first commit
e165723 <e165723@ie.u-ryukyu.ac.jp>
parents:
diff changeset
22 \setlength{\textwidth}{181mm}
61fe443393a5 first commit
e165723 <e165723@ie.u-ryukyu.ac.jp>
parents:
diff changeset
23 \setlength{\textheight}{261mm}
61fe443393a5 first commit
e165723 <e165723@ie.u-ryukyu.ac.jp>
parents:
diff changeset
24 \setlength{\footskip}{0mm}
61fe443393a5 first commit
e165723 <e165723@ie.u-ryukyu.ac.jp>
parents:
diff changeset
25 \pagestyle{empty}
61fe443393a5 first commit
e165723 <e165723@ie.u-ryukyu.ac.jp>
parents:
diff changeset
26
3
f0db7d006b4f add hgignore
e165723 <e165723@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
27 \usepackage{comment}
f0db7d006b4f add hgignore
e165723 <e165723@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
28 \usepackage{listings}
f0db7d006b4f add hgignore
e165723 <e165723@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
29 \lstset{
f0db7d006b4f add hgignore
e165723 <e165723@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
30 language=C,
f0db7d006b4f add hgignore
e165723 <e165723@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
31 tabsize=2,
f0db7d006b4f add hgignore
e165723 <e165723@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
32 frame=single,
f0db7d006b4f add hgignore
e165723 <e165723@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
33 basicstyle={\ttfamily\footnotesize}, %
f0db7d006b4f add hgignore
e165723 <e165723@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
34 identifierstyle={\footnotesize}, %
f0db7d006b4f add hgignore
e165723 <e165723@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
35 commentstyle={\footnotesize\itshape}, %
f0db7d006b4f add hgignore
e165723 <e165723@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
36 keywordstyle={\footnotesize\bfseries}, %
f0db7d006b4f add hgignore
e165723 <e165723@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
37 ndkeywordstyle={\footnotesize}, %
f0db7d006b4f add hgignore
e165723 <e165723@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
38 stringstyle={\footnotesize\ttfamily},
f0db7d006b4f add hgignore
e165723 <e165723@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
39 breaklines=true,
f0db7d006b4f add hgignore
e165723 <e165723@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
40 captionpos=b,
f0db7d006b4f add hgignore
e165723 <e165723@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
41 columns=[l]{fullflexible}, %
f0db7d006b4f add hgignore
e165723 <e165723@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
42 xrightmargin=0zw, %
f0db7d006b4f add hgignore
e165723 <e165723@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
43 xleftmargin=1zw, %
f0db7d006b4f add hgignore
e165723 <e165723@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
44 aboveskip=1zw,
f0db7d006b4f add hgignore
e165723 <e165723@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
45 numberstyle={\scriptsize}, %
f0db7d006b4f add hgignore
e165723 <e165723@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
46 stepnumber=1,
f0db7d006b4f add hgignore
e165723 <e165723@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
47 numbersep=0.5zw, %
f0db7d006b4f add hgignore
e165723 <e165723@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
48 lineskip=-0.5ex,
f0db7d006b4f add hgignore
e165723 <e165723@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
49 }
f0db7d006b4f add hgignore
e165723 <e165723@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
50 \renewcommand{\lstlistingname}{Code}
f0db7d006b4f add hgignore
e165723 <e165723@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
51 \usepackage{caption}
f0db7d006b4f add hgignore
e165723 <e165723@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
52 \captionsetup[lstlisting]{font={small, tt}}
f0db7d006b4f add hgignore
e165723 <e165723@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
53
f0db7d006b4f add hgignore
e165723 <e165723@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
54 \renewcommand{\abstractname}{概要}
f0db7d006b4f add hgignore
e165723 <e165723@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
55
0
61fe443393a5 first commit
e165723 <e165723@ie.u-ryukyu.ac.jp>
parents:
diff changeset
56 \begin{document}
3
f0db7d006b4f add hgignore
e165723 <e165723@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
57 \title{xv6 kernel上でのCbCによるinterfaceの実装\\CbC interface implementation in xv6 kernel}
0
61fe443393a5 first commit
e165723 <e165723@ie.u-ryukyu.ac.jp>
parents:
diff changeset
58 \author{学籍番号 : 165723C 氏名 : 坂本昂弘 {}{} 指導教員 : 河野真治}
61fe443393a5 first commit
e165723 <e165723@ie.u-ryukyu.ac.jp>
parents:
diff changeset
59 \date{}
61fe443393a5 first commit
e165723 <e165723@ie.u-ryukyu.ac.jp>
parents:
diff changeset
60 \maketitle
61fe443393a5 first commit
e165723 <e165723@ie.u-ryukyu.ac.jp>
parents:
diff changeset
61 \thispagestyle{fancy}
61fe443393a5 first commit
e165723 <e165723@ie.u-ryukyu.ac.jp>
parents:
diff changeset
62
3
f0db7d006b4f add hgignore
e165723 <e165723@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
63 \section{研究目的}
6
e165723 <e165723@ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
64 当研究室ではOSの信頼性の保証と拡張性の実現のため, CbCを用いた Gears OSの研究を行なっている.
e165723 <e165723@ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
65 しかし, Gears OS を直接実機に実装することはできなかった為, 前段階としてシンプルであるが基本的な機能を揃えた OS である xv6 を CbC で書き換える.
0
61fe443393a5 first commit
e165723 <e165723@ie.u-ryukyu.ac.jp>
parents:
diff changeset
66
5
f2089431388b add pdf
e165723 <e165723@ie.u-ryukyu.ac.jp>
parents: 4
diff changeset
67 %形式手法
6
e165723 <e165723@ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
68 CbC は 定理証明支援系 Agda に置き換えることができるように構築されている.
e165723 <e165723@ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
69 CbCのinterfaceを使うとモジュール化ができる.また, stackが無い事によってOS内部の明確化も実現できる.
e165723 <e165723@ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
70 本研究ではこれらのことを用い, xv6のinterfaceをCbCで書き換えることによりプロセスごとにkernelの中がどんな状態を保っているかを明確にし, OSの信頼性を保証したい.
4
e165723 <e165723@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
71
6
e165723 <e165723@ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
72 %\section{GearsOS}
5
f2089431388b add pdf
e165723 <e165723@ie.u-ryukyu.ac.jp>
parents: 4
diff changeset
73
f2089431388b add pdf
e165723 <e165723@ie.u-ryukyu.ac.jp>
parents: 4
diff changeset
74 \section{xv6}
6
e165723 <e165723@ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
75 xv6とはMITのオペレーティングコースの教育目的で2006年に開発されたオペレーティングシステムである.
e165723 <e165723@ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
76 xv6 はオリジナルである v6 が非常に古いC言語で書かれている為, ANSI-Cに書き換えられ x86 に再実装された. xv6 はシンプルであるがUnixの概念と構造を持っている.
0
61fe443393a5 first commit
e165723 <e165723@ie.u-ryukyu.ac.jp>
parents:
diff changeset
77 \section{Continuation based C}
4
e165723 <e165723@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
78 xv6 kernel上でinterfaceを実装する際,当研究室で開発されたプログラミング言語 Continuation based C (CbC)を用いる.
e165723 <e165723@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
79 CbC は基本的な処理単位を CodeGearとして定義し,CodeGea間で遷移するようにプログラムを記述するC言語と互換性のあるプログラミング言語である.
5
f2089431388b add pdf
e165723 <e165723@ie.u-ryukyu.ac.jp>
parents: 4
diff changeset
80 CodeGearは返り値を持たない為,関数内で処理が終了すると呼び出し元の関数に戻ることがなく別のCodeGearへ遷移する%図かコードを入れても良いかも
4
e165723 <e165723@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
81 またCbCにおけるCodeGear間の継続にはスタックが使用できず,呼び出し元の環境などを持たない為軽量継続と呼ぶ.
5
f2089431388b add pdf
e165723 <e165723@ie.u-ryukyu.ac.jp>
parents: 4
diff changeset
82 現在CbCはCコンパイラであるGCC及びLLVMをバックエンドとしたclang上で実装されている.
3
f0db7d006b4f add hgignore
e165723 <e165723@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
83
5
f2089431388b add pdf
e165723 <e165723@ie.u-ryukyu.ac.jp>
parents: 4
diff changeset
84
0
61fe443393a5 first commit
e165723 <e165723@ie.u-ryukyu.ac.jp>
parents:
diff changeset
85
4
e165723 <e165723@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
86 \section{CbCのAgdaForm}
5
f2089431388b add pdf
e165723 <e165723@ie.u-ryukyu.ac.jp>
parents: 4
diff changeset
87 %Agdaについて
f2089431388b add pdf
e165723 <e165723@ie.u-ryukyu.ac.jp>
parents: 4
diff changeset
88
f2089431388b add pdf
e165723 <e165723@ie.u-ryukyu.ac.jp>
parents: 4
diff changeset
89 %Agdaでなぜ説明できるか。飽和ロジック
f2089431388b add pdf
e165723 <e165723@ie.u-ryukyu.ac.jp>
parents: 4
diff changeset
90 %CbCはAgdaに変換できるように設計されている為,CbCで実装したプログラムはAgdaによって定理証明が可能である.ー>ってことを書けば良い?
f2089431388b add pdf
e165723 <e165723@ie.u-ryukyu.ac.jp>
parents: 4
diff changeset
91
f2089431388b add pdf
e165723 <e165723@ie.u-ryukyu.ac.jp>
parents: 4
diff changeset
92
f2089431388b add pdf
e165723 <e165723@ie.u-ryukyu.ac.jp>
parents: 4
diff changeset
93 \section{context}
6
e165723 <e165723@ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
94
5
f2089431388b add pdf
e165723 <e165723@ie.u-ryukyu.ac.jp>
parents: 4
diff changeset
95 %CbCのcontextには引数の置き場所が書いてある.contextの中にDatagearが存在し.
f2089431388b add pdf
e165723 <e165723@ie.u-ryukyu.ac.jp>
parents: 4
diff changeset
96 %番号で管理している。
f2089431388b add pdf
e165723 <e165723@ie.u-ryukyu.ac.jp>
parents: 4
diff changeset
97 %dataの保存先と実行するdategearの保存先
f2089431388b add pdf
e165723 <e165723@ie.u-ryukyu.ac.jp>
parents: 4
diff changeset
98
f2089431388b add pdf
e165723 <e165723@ie.u-ryukyu.ac.jp>
parents: 4
diff changeset
99 %パルスさんの修論
f2089431388b add pdf
e165723 <e165723@ie.u-ryukyu.ac.jp>
parents: 4
diff changeset
100
f2089431388b add pdf
e165723 <e165723@ie.u-ryukyu.ac.jp>
parents: 4
diff changeset
101 %コンテキストには引数置き場所が書いてあるー>CodeGear
3
f0db7d006b4f add hgignore
e165723 <e165723@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
102 \section{xv6のinterface}
5
f2089431388b add pdf
e165723 <e165723@ie.u-ryukyu.ac.jp>
parents: 4
diff changeset
103 %呼び出されたCodeGearの番号とcontext上のinterfaceの引数で状態が分かる.
0
61fe443393a5 first commit
e165723 <e165723@ie.u-ryukyu.ac.jp>
parents:
diff changeset
104 \section{今後の課題}
61fe443393a5 first commit
e165723 <e165723@ie.u-ryukyu.ac.jp>
parents:
diff changeset
105
61fe443393a5 first commit
e165723 <e165723@ie.u-ryukyu.ac.jp>
parents:
diff changeset
106 %\begin{thebibliography}{9}
61fe443393a5 first commit
e165723 <e165723@ie.u-ryukyu.ac.jp>
parents:
diff changeset
107
61fe443393a5 first commit
e165723 <e165723@ie.u-ryukyu.ac.jp>
parents:
diff changeset
108 \nocite{*}
3
f0db7d006b4f add hgignore
e165723 <e165723@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
109 \bibliographystyle{ipsjunsrt}
0
61fe443393a5 first commit
e165723 <e165723@ie.u-ryukyu.ac.jp>
parents:
diff changeset
110 \bibliography{reference}
61fe443393a5 first commit
e165723 <e165723@ie.u-ryukyu.ac.jp>
parents:
diff changeset
111
61fe443393a5 first commit
e165723 <e165723@ie.u-ryukyu.ac.jp>
parents:
diff changeset
112 %\end{thebibliography}
61fe443393a5 first commit
e165723 <e165723@ie.u-ryukyu.ac.jp>
parents:
diff changeset
113 \end{document}