Mercurial > hg > Papers > 2020 > anatofuz-sigos
changeset 10:d43b107ad199
fix new line encode
author | anatofuz <anatofuz@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Thu, 30 Apr 2020 14:23:51 +0900 |
parents | 880da2d67bab |
children | 1e8d8d32fe30 |
files | paper/Makefile paper/anatofuz-sigos.md paper/anatofuz-sigos.pdf paper/anatofuz-sigos.tex paper/md2tex.pl |
diffstat | 5 files changed, 119 insertions(+), 27 deletions(-) [+] |
line wrap: on
line diff
--- a/paper/Makefile Thu Apr 30 13:26:49 2020 +0900 +++ b/paper/Makefile Thu Apr 30 14:23:51 2020 +0900 @@ -13,8 +13,10 @@ # Suffixes definitions .SUFFIXES: .md .tex .dvi .pdf +.PRECIOUS: %.tex + .md.tex: - perl md2tex.pl $< > $@ + perl md2tex.pl $< $@ .tex.dvi: $(LATEX) $<
--- a/paper/anatofuz-sigos.md Thu Apr 30 13:26:49 2020 +0900 +++ b/paper/anatofuz-sigos.md Thu Apr 30 14:23:51 2020 +0900 @@ -1,22 +1,22 @@ -# OSの信頼性 -様々なアプリケーションはOSの上で動作するのが当たり前になってきた。 -アプリケーションの信頼性を向上させるのはもとより、 土台となるOS自体の信頼性は高く保証されていなければならない。 -OSそのものも巨大なプログラムであるため、 テストコードを用いた方法で信頼性を確保する事が可能である。 -しかし並列並行処理などに起因する動かしてみないと発見できないバグなどが存在するため、 テストで完全にバグを発見するのは困難である。 -また、OSを構成する処理も巨大であるため、 これら全てをテスト仕切るのも困難である。 -テスト以外の方法でOSの信頼性を高めたい。 - -数学的な背景に基づく形式手法を用いてOSの信頼性を向上させることを検討する。 -OSを構成する要素をモデル検査してデッドロックなどを検知する方法や、 定理証明支援系を利用した証明ベースでの信頼性の確保などの手法が考えられる。 -形式手法で信頼性を確保するには、 まずOSの処理を証明などがしやすい形に変換して実装し直す必要がある。 -これに適した形として、 状態遷移モデルが挙げられる。 -OSの内部処理の状態を明確にし、 状態遷移モデルに落とし込むことでモデル検査などを通して信頼性を向上させたい。 -既存のOSはそのままに処理を状態遷移モデルに落とし込む為には、 まず既存のOSの処理中の状態遷移を分析する必要がある。 -分析の結果を定理証明支援系などによって証明を行うか、 仕様記述言語を用いて再実装することで仕様の整合性を検証する事が可能である。 -しかしこれらの方法では、 実際に動くOSと検証用の実装が別の物となってしまうために、 C言語などの実装の段階で発生するバグを取り除くことができない。 -実装のソースコードと検証用のソースコードは近いセマンティクスでプログラミングする必要がある。 - -実装用の言語と証明用の言語の両方に適した言語としてContinuation Based C(CbC)がある。 -現在小さなunixであるxv6 kernelを状態遷移を基本とした単位でのプログラミングに適した言語、 Continuation Based Cを用いて再実装している。 -再実装の為には、 既存のxv6 kernelの処理の状態遷移を、継続を用いたプログラムに変換していく必要がある。 - +# OSの信頼性 +様々なアプリケーションはOSの上で動作するのが当たり前になってきた。 +アプリケーションの信頼性を向上させるのはもとより、 土台となるOS自体の信頼性は高く保証されていなければならない。 +OSそのものも巨大なプログラムであるため、 テストコードを用いた方法で信頼性を確保する事が可能である。 +しかし並列並行処理などに起因する動かしてみないと発見できないバグなどが存在するため、 テストで完全にバグを発見するのは困難である。 +また、OSを構成する処理も巨大であるため、 これら全てをテスト仕切るのも困難である。 +テスト以外の方法でOSの信頼性を高めたい。 + +数学的な背景に基づく形式手法を用いてOSの信頼性を向上させることを検討する。 +OSを構成する要素をモデル検査してデッドロックなどを検知する方法や、 定理証明支援系を利用した証明ベースでの信頼性の確保などの手法が考えられる。 +形式手法で信頼性を確保するには、 まずOSの処理を証明などがしやすい形に変換して実装し直す必要がある。 +これに適した形として、 状態遷移モデルが挙げられる。 +OSの内部処理の状態を明確にし、 状態遷移モデルに落とし込むことでモデル検査などを通して信頼性を向上させたい。 +既存のOSはそのままに処理を状態遷移モデルに落とし込む為には、 まず既存のOSの処理中の状態遷移を分析する必要がある。 +分析の結果を定理証明支援系などによって証明を行うか、 仕様記述言語を用いて再実装することで仕様の整合性を検証する事が可能である。 +しかしこれらの方法では、 実際に動くOSと検証用の実装が別の物となってしまうために、 C言語などの実装の段階で発生するバグを取り除くことができない。 +実装のソースコードと検証用のソースコードは近いセマンティクスでプログラミングする必要がある。 + +実装用の言語と証明用の言語の両方に適した言語としてContinuation Based C(CbC)がある。 +現在小さなunixであるxv6 kernelを状態遷移を基本とした単位でのプログラミングに適した言語、 Continuation Based Cを用いて再実装している。 +再実装の為には、 既存のxv6 kernelの処理の状態遷移を、継続を用いたプログラムに変換していく必要がある。 +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/paper/anatofuz-sigos.tex Thu Apr 30 14:23:51 2020 +0900 @@ -0,0 +1,81 @@ +%% +%% 研究報告用スイッチ +%% [techrep] +%% +%% 欧文表記無しのスイッチ(etitle,eabstractは任意) +%% [noauthor] +%% + +%\documentclass[submit,techrep]{ipsj} +\documentclass[submit,techrep,noauthor]{ipsj} + + + +\usepackage[dvips]{graphicx} +\usepackage{latexsym} + +\def\Underline{\setbox0\hbox\bgroup\let\\\endUnderline} +\def\endUnderline{\vphantom{y}\egroup\smash{\underline{\box0}}\\} +\def\|{\verb|} +% + +%\setcounter{巻数}{59}%vol59=2018 +%\setcounter{号数}{10} +%\setcounter{page}{1} + + +\begin{document} + + +\title{xv6の構成要素の継続の分析} + +%\etitle{How to Prepare Your Paper for IPSJ SIG Technical Report \\ (version 2018/10/29)} + +\affiliate{KIE}{琉球大学大学院理工学研究科情報工学専攻} +\affiliate{IE}{琉球大学工学部工学科知能情報コース} + + +\author{清水 隆博}{Shimizu Takahiro}{KIE}[anatofuz@cr.ie.u-ryukyu.ac.jp] +\author{河野 真治}{Shinji Kono}{IE}[kono@ie.u-ryukyu.ac.jp] + +\begin{abstract} +OS自体そのものは高い信頼性が求められるが、 OSを構成するすべての処理をテストするのは困難である。 +テストを利用して信頼性を高めるのではなく、 OSの状態を状態遷移を基本としたモデルに変換し形式手法を用いて信頼性を高めたい。 + +状態遷移単位での記述に適した言語であるCbCを用いて、小さなunixであるxv6 kernelの書き換えを行っている。 +このためには現状のxv6 kernelの処理がどのような状態遷移を行うのかを分析し、継続ベースでのプログラミングに変換していく必要がある。 +本稿ではxv6kernelの構成要素の一部に着目し、状態遷移系の分析と状態遷移系を元に継続ベースでxv6の再実装を行う。 +\end{abstract} + + +\maketitle + +\section{OSの信頼性} +様々なアプリケーションはOSの上で動作するのが当たり前になってきた。 +アプリケーションの信頼性を向上させるのはもとより、 土台となるOS自体の信頼性は高く保証されていなければならない。 +OSそのものも巨大なプログラムであるため、 テストコードを用いた方法で信頼性を確保する事が可能である。 +しかし並列並行処理などに起因する動かしてみないと発見できないバグなどが存在するため、 テストで完全にバグを発見するのは困難である。 +また、OSを構成する処理も巨大であるため、 これら全てをテスト仕切るのも困難である。 +テスト以外の方法でOSの信頼性を高めたい。 + +数学的な背景に基づく形式手法を用いてOSの信頼性を向上させることを検討する。 +OSを構成する要素をモデル検査してデッドロックなどを検知する方法や、 定理証明支援系を利用した証明ベースでの信頼性の確保などの手法が考えられる。 +形式手法で信頼性を確保するには、 まずOSの処理を証明などがしやすい形に変換して実装し直す必要がある。 +これに適した形として、 状態遷移モデルが挙げられる。 +OSの内部処理の状態を明確にし、 状態遷移モデルに落とし込むことでモデル検査などを通して信頼性を向上させたい。 +既存のOSはそのままに処理を状態遷移モデルに落とし込む為には、 まず既存のOSの処理中の状態遷移を分析する必要がある。 +分析の結果を定理証明支援系などによって証明を行うか、 仕様記述言語を用いて再実装することで仕様の整合性を検証する事が可能である。 +しかしこれらの方法では、 実際に動くOSと検証用の実装が別の物となってしまうために、 C言語などの実装の段階で発生するバグを取り除くことができない。 +実装のソースコードと検証用のソースコードは近いセマンティクスでプログラミングする必要がある。 + +実装用の言語と証明用の言語の両方に適した言語としてContinuation Based C(CbC)がある。 +現在小さなunixであるxv6 kernelを状態遷移を基本とした単位でのプログラミングに適した言語、 Continuation Based Cを用いて再実装している。 +再実装の為には、 既存のxv6 kernelの処理の状態遷移を、継続を用いたプログラムに変換していく必要がある。 + + +\nocite{*} +\bibliographystyle{ipsjunsrt} +\bibliography{anatofuz-bib} + + +\end{document}
--- a/paper/md2tex.pl Thu Apr 30 13:26:49 2020 +0900 +++ b/paper/md2tex.pl Thu Apr 30 14:23:51 2020 +0900 @@ -1,25 +1,31 @@ #!/usr/bin/env perl use strict; use warnings; +use utf8; + +my $source_md = shift; +my $target_tex = shift; + +open my $texFH, '>', $target_tex; { open my $fh, '<', 'md2tex/first.tex'; while (my $line = <$fh> ) { - print "$line"; + print $texFH $line; } close $fh; } -open my $fh, '<', 'anatofuz-sigos.md'; +open my $fh, '<', $source_md; while (my $line = <$fh>) { if ($line =~/^#/) { $line =~ s/# (.*)/\\section{$1}/; } - print $line; + print $texFH $line; } close $fh; -print <<'EOF'; +print $texFH <<'EOF'; \nocite{*} \bibliographystyle{ipsjunsrt} @@ -28,3 +34,6 @@ \end{document} EOF + + +close $texFH;