Mercurial > hg > Papers > 2020 > tobaru-master
view paper/GearsOS.tex @ 3:db8087751680
add chapter GearsOS
author | tobaru |
---|---|
date | Mon, 27 Jan 2020 23:08:31 +0900 |
parents | |
children | a4a1a68d8811 |
line wrap: on
line source
\chapter{Geas OS} 信頼性の保証と並列実行のサポートを目的として, Gears OS を開発している. 従来の OS が行うメモリ管理並列実行は Meta レベル(kernel space)で処理される. ノーマルレベルからメタレベルの記述ができる GearsOS を開発している. \section{Code Gear と Data Gear} Gears OS は Code Gear と Data Gear という単位でプログラムを記述する CbC を用いて実装する. Code Gear は CbC における最も基本的な処理の単位である. Code Gear 間で入力(Input Data Gear)と出力(Output Data Gear)を持ち,goto によって Code Gear から次の Code Gear へ遷移し,継続的に処理を行う. 関数呼び出しとは異なり,呼び出し元には戻らない.j Code Gear 間の処理の流れを図 \ref{fig:codegear} に示す. % 状態遷移ベースのプログラミング言語である. % (継続的に処理を行う)ことで検証を容易に余す所なく行うことができる. \begin{figure}[ht] \begin{center} \includegraphics[width=160mm]{./fig/codegear} \end{center} \caption{Code Gear 間の継続} \label{fig:codegear} \end{figure} Data Gear は CbC におけるデータの基本的な単位である.Input Data Gear と Output Data Gear があり,Code Gear の遷移の際に Input Data Gear を受け取り,Output Data Gear を書き出す. \par \section{Meta Code Gear と Meta Data Gear} CbC ではノーマルレベルの記述と別にメタレベルで記述することができる.メタレベルの記述によって User Space 側からメモリ管理を行えるようになる. \par メタ計算は Meta Code Gear と Meta Data Gear を用いる.この2つはノーマルレベルからメタレベルの変換する時に使われる.メタレベルの変換は Perl スクリプトで実装している.Gears OS での Meta Code Gear は Code Gear の直前, 直後に挿入され,メタ計算を実行する. Code Gear 間の継続はノーマルレベルでは 図 \ref{fig:codegear} のように見えるが,メタレベルでの Code Gear は図 \ref{fig:meta_cg_dg } の下のように継続を行っている. \begin{figure}[ht] \begin{center} \includegraphics[width=160mm]{./fig/meta_cg_dg} \end{center} \caption{ノーマルレベルとメタレベルの継続の見え方} \label{fig:meta_cg_dg} \end{figure}