# HG changeset patch # User anatofuz # Date 1588817155 -32400 # Node ID 698ba8f724d3a21b05e9996384d696ab2254bf8e # Parent b0757b4dbbe4cc8feb924f84a0c9b428e3db6ef0 update diff -r b0757b4dbbe4 -r 698ba8f724d3 paper/anatofuz-sigos.md --- a/paper/anatofuz-sigos.md Thu May 07 10:37:02 2020 +0900 +++ b/paper/anatofuz-sigos.md Thu May 07 11:05:55 2020 +0900 @@ -304,9 +304,22 @@ contextを管理する方法として、 各context間でメッセージなどをやりとりする方法や、 cotnextを主軸にして割り込みなどの処理を再検討するものがある。 他にはkernelそのもののcontextを定義し、 kernel全体の状態とプロセスの状態をそれぞれ別のcotnextで処理をするというのも検討している。 +現状はxv6の全ての機能をまだCbCを用いて再実装をしていない。 +ファイルシステムや仮想メモリにまつわる処理などはAPI単位では再実装しているが、 APIを呼び出す箇所はCの関数上で部分的に呼び出している。 +そのためにOSそのものを状態遷移単位で完全に書き直す必要が存在し、 そのためには全ての処理に対して状態を定義していく必要がある。 +xv6にはアセンブラで記述されている処理も複数存在するため、 CodeGrarの表現においてこのような処理の扱いも決定する必要がある。 + +またOS上でDataGearとCodeGearの位置づけを明確に定義する必要も存在する。 +現在は関数を分割した状態としてCodeGearを定義している。 +DataGearの依存関係やCodeGearの並列実行など、 プロセスベースで実装していた処理をCodeGearなどで意味がある形式にする必要がある。 + +またxv6にはユーザーコマンドも存在しているために、 ユーザーコマンド向けのCbCのAPIなども考慮したい。 + # まとめ 本稿ではxv6を継続を用いた単位での再実装を検討し、 実際にいくつかの処理を再実装した。 -現状はまだxv6の完全な再実装や、 実装を利用したxv6の証明は行っていないので今後は証明を行いたい。 +現状はまだxv6の実装を利用した証明は行っていない。 +今後はモデル検査などを行い、 OSの信頼性を向上させていきたい。 それに伴って、 xv6自体にモデル検査機能の組み込みなども行っていく。 -またAgdaなどの定理証明支援系で証明された処理から、 CbCのCodeGearに変換する処理系の実装なども検討する。 \ No newline at end of file +またAgdaなどの定理証明支援系で証明された処理から、 CbCのCodeGearに変換する処理系の実装なども検討する。 + diff -r b0757b4dbbe4 -r 698ba8f724d3 paper/anatofuz-sigos.pdf Binary file paper/anatofuz-sigos.pdf has changed diff -r b0757b4dbbe4 -r 698ba8f724d3 paper/anatofuz-sigos.tex --- a/paper/anatofuz-sigos.tex Thu May 07 10:37:02 2020 +0900 +++ b/paper/anatofuz-sigos.tex Thu May 07 11:05:55 2020 +0900 @@ -410,12 +410,26 @@ contextを管理する方法として、 各context間でメッセージなどをやりとりする方法や、 cotnextを主軸にして割り込みなどの処理を再検討するものがある。 他にはkernelそのもののcontextを定義し、 kernel全体の状態とプロセスの状態をそれぞれ別のcotnextで処理をするというのも検討している。 +現状はxv6の全ての機能をまだCbCを用いて再実装をしていない。 +ファイルシステムや仮想メモリにまつわる処理などはAPI単位では再実装しているが、 APIを呼び出す箇所はCの関数上で部分的に呼び出している。 +そのためにOSそのものを状態遷移単位で完全に書き直す必要が存在し、 そのためには全ての処理に対して状態を定義していく必要がある。 +xv6にはアセンブラで記述されている処理も複数存在するため、 CodeGrarの表現においてこのような処理の扱いも決定する必要がある。 + +またOS上でDataGearとCodeGearの位置づけを明確に定義する必要も存在する。 +現在は関数を分割した状態としてCodeGearを定義している。 +DataGearの依存関係やCodeGearの並列実行など、 プロセスベースで実装していた処理をCodeGearなどで意味がある形式にする必要がある。 + +またxv6にはユーザーコマンドも存在しているために、 ユーザーコマンド向けのCbCのAPIなども考慮したい。 + \section{まとめ} 本稿ではxv6を継続を用いた単位での再実装を検討し、 実際にいくつかの処理を再実装した。 -現状はまだxv6の完全な再実装や、 実装を利用したxv6の証明は行っていないので今後は証明を行いたい。 +現状はまだxv6の実装を利用した証明は行っていない。 +今後はモデル検査などを行い、 OSの信頼性を向上させていきたい。 それに伴って、 xv6自体にモデル検査機能の組み込みなども行っていく。 またAgdaなどの定理証明支援系で証明された処理から、 CbCのCodeGearに変換する処理系の実装なども検討する。 + + \nocite{*} \bibliographystyle{ipsjunsrt} \bibliography{anatofuz-bib}