Mercurial > hg > Papers > 2020 > tobaru-master
changeset 3:db8087751680
add chapter GearsOS
author | tobaru |
---|---|
date | Mon, 27 Jan 2020 23:08:31 +0900 |
parents | e3f6ba6126b5 |
children | a4a1a68d8811 |
files | .hgignore paper/GearsOS.tex paper/Paging.tex paper/abstract.tex paper/fig/codegear.pdf paper/fig/codesegment.graffle paper/fig/meta_cg_dg.graffle paper/fig/meta_cg_dg.pdf paper/master_paper.aux paper/master_paper.lof paper/master_paper.log paper/master_paper.lot paper/master_paper.pdf paper/master_paper.synctex.gz paper/master_paper.tex paper/master_paper.toc paper/memory_manage.tex thsis_paging.mm |
diffstat | 18 files changed, 1221 insertions(+), 19 deletions(-) [+] |
line wrap: on
line diff
--- a/.hgignore Thu Jan 23 14:17:22 2020 +0900 +++ b/.hgignore Mon Jan 27 23:08:31 2020 +0900 @@ -14,3 +14,4 @@ *.cpt + −*.swo +GearsOS_Paging_Segmentation.mm
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/paper/GearsOS.tex Mon Jan 27 23:08:31 2020 +0900 @@ -0,0 +1,43 @@ +\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} + +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/paper/Paging.tex Mon Jan 27 23:08:31 2020 +0900 @@ -0,0 +1,2 @@ +\chapter{Gears OS での Paging} + メモリ管理の手法に, Paging がある.Paging ではメモリを Page と呼ばれる固定長の単位に分割し,メモリとスワップ領域で Page を入れ替えて管理を行う.
--- a/paper/abstract.tex Thu Jan 23 14:17:22 2020 +0900 +++ b/paper/abstract.tex Mon Jan 27 23:08:31 2020 +0900 @@ -1,4 +1,6 @@ \chapter*{要旨} + 時代とともに進歩するハードウェアやソフトウェアに対して, OS 自体に信頼性が求められる. メモリ管理は OS の信頼性の基本であるが, 現代の OS では, User Space で Page Table Entry によるメモリ管理を行える OS は少ない, 本研究室で開発したメタレベルの記述ができる CbC という言語を用いて, OS の信頼性の基本であるメモリ管理を行える OS を実装することで, OS の信頼性を保証したい. +既存の Gears OS でのメモリ管理では単に Page Table Entry をコピーする Fork を実装しているが, さらに資源管理を行える CbC で軽量なハードウェアでも動かせるように Arm のバイナリを 出力する Xv6 を参考に GearsOS にメモリ管理を行う API を考察する。 \chapter*{Abstract} % 英語
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/paper/fig/codesegment.graffle Mon Jan 27 23:08:31 2020 +0900 @@ -0,0 +1,1045 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>ActiveLayerIndex</key> + <integer>0</integer> + <key>ApplicationVersion</key> + <array> + <string>com.omnigroup.OmniGraffle6</string> + <string>163.7.0.243167</string> + </array> + <key>AutoAdjust</key> + <true/> + <key>BackgroundGraphic</key> + <dict> + <key>Bounds</key> + <string>{{0, 0}, {559, 783}}</string> + <key>Class</key> + <string>SolidGraphic</string> + <key>ID</key> + <integer>2</integer> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + </dict> + <key>BaseZoom</key> + <integer>0</integer> + <key>CanvasOrigin</key> + <string>{0, 0}</string> + <key>ColumnAlign</key> + <integer>1</integer> + <key>ColumnSpacing</key> + <real>36</real> + <key>CreationDate</key> + <string>2011-11-12 11:03:25 +0000</string> + <key>Creator</key> + <string>Nobuyasu Oshiro</string> + <key>DisplayScale</key> + <string>1 in = 1.00000 in</string> + <key>GraphDocumentVersion</key> + <integer>12</integer> + <key>GraphicsList</key> + <array> + <dict> + <key>Bounds</key> + <string>{{315.5, 89.625}, {45.933593999999999, 18.375}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>32</integer> + <key>Magnets</key> + <array> + <string>{1, 1}</string> + <string>{1, -1}</string> + <string>{-1, -1}</string> + <string>{-1, 1}</string> + <string>{0, 1}</string> + <string>{0, -1}</string> + <string>{1, 0}</string> + <string>{-1, 0}</string> + <string>{-0.5, -0.233518}</string> + <string>{-0.49144199, 0.26006298999999999}</string> + <string>{0.50711799000000002, -0.22408600000000001}</string> + <string>{0.50711799000000002, 0.26717900999999999}</string> + <string>{-0.27430999, -0.47402799000000001}</string> + <string>{0.27977999999999997, -0.47847801000000001}</string> + <string>{0.29393801000000003, 0.54304397000000004}</string> + <string>{-0.28623198999999999, 0.55380397999999997}</string> + </array> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg1252\cocoartf2511 +\cocoatextscaling0\cocoaplatform0{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc + +\f0\fs24 \cf0 goto}</string> + <key>VerticalPad</key> + <real>0.0</real> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{315.5, 171}, {45.933593999999999, 18.375}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>31</integer> + <key>Magnets</key> + <array> + <string>{1, 1}</string> + <string>{1, -1}</string> + <string>{-1, -1}</string> + <string>{-1, 1}</string> + <string>{0, 1}</string> + <string>{0, -1}</string> + <string>{1, 0}</string> + <string>{-1, 0}</string> + <string>{-0.5, -0.233518}</string> + <string>{-0.49144199, 0.26006298999999999}</string> + <string>{0.50711799000000002, -0.22408600000000001}</string> + <string>{0.50711799000000002, 0.26717900999999999}</string> + <string>{-0.27430999, -0.47402799000000001}</string> + <string>{0.27977999999999997, -0.47847801000000001}</string> + <string>{0.29393801000000003, 0.54304397000000004}</string> + <string>{-0.28623198999999999, 0.55380397999999997}</string> + </array> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg1252\cocoartf2511 +\cocoatextscaling0\cocoaplatform0{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc + +\f0\fs24 \cf0 goto}</string> + <key>VerticalPad</key> + <real>0.0</real> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{190.20312000000001, 167}, {45.933593999999999, 18.375}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>30</integer> + <key>Magnets</key> + <array> + <string>{1, 1}</string> + <string>{1, -1}</string> + <string>{-1, -1}</string> + <string>{-1, 1}</string> + <string>{0, 1}</string> + <string>{0, -1}</string> + <string>{1, 0}</string> + <string>{-1, 0}</string> + <string>{-0.5, -0.233518}</string> + <string>{-0.49144199, 0.26006298999999999}</string> + <string>{0.50711799000000002, -0.22408600000000001}</string> + <string>{0.50711799000000002, 0.26717900999999999}</string> + <string>{-0.27430999, -0.47402799000000001}</string> + <string>{0.27977999999999997, -0.47847801000000001}</string> + <string>{0.29393801000000003, 0.54304397000000004}</string> + <string>{-0.28623198999999999, 0.55380397999999997}</string> + </array> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg1252\cocoartf2511 +\cocoatextscaling0\cocoaplatform0{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc + +\f0\fs24 \cf0 goto}</string> + <key>VerticalPad</key> + <real>0.0</real> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{405.93358999999998, 125}, {54, 18}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>29</integer> + <key>Magnets</key> + <array> + <string>{1, 1}</string> + <string>{1, -1}</string> + <string>{-1, -1}</string> + <string>{-1, 1}</string> + <string>{0, 1}</string> + <string>{0, -1}</string> + <string>{1, 0}</string> + <string>{-1, 0}</string> + <string>{-0.5, -0.233518}</string> + <string>{-0.49144199, 0.26006298999999999}</string> + <string>{0.50711799000000002, -0.22408600000000001}</string> + <string>{0.50711799000000002, 0.26717900999999999}</string> + <string>{-0.27430999, -0.47402799000000001}</string> + <string>{0.27977999999999997, -0.47847801000000001}</string> + <string>{0.29393801000000003, 0.54304397000000004}</string> + <string>{-0.28623198999999999, 0.55380397999999997}</string> + </array> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg1252\cocoartf2511 +\cocoatextscaling0\cocoaplatform0{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc + +\f0\fs24 \cf0 goto}</string> + <key>VerticalPad</key> + <real>0.0</real> + </dict> + </dict> + <dict> + <key>AllowLabelDrop</key> + <false/> + <key>Class</key> + <string>LineGraphic</string> + <key>ID</key> + <integer>28</integer> + <key>Points</key> + <array> + <string>{412.93358999999998, 143.02043}</string> + <string>{462.43358999999998, 143}</string> + </array> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>HeadArrow</key> + <string>FilledArrow</string> + <key>HeadScale</key> + <real>1.4285709857940674</real> + <key>Legacy</key> + <true/> + <key>TailArrow</key> + <string>0</string> + <key>TailScale</key> + <real>0.5</real> + </dict> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{90, 126}, {54, 18}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>27</integer> + <key>Magnets</key> + <array> + <string>{1, 1}</string> + <string>{1, -1}</string> + <string>{-1, -1}</string> + <string>{-1, 1}</string> + <string>{0, 1}</string> + <string>{0, -1}</string> + <string>{1, 0}</string> + <string>{-1, 0}</string> + <string>{-0.5, -0.233518}</string> + <string>{-0.49144199, 0.26006298999999999}</string> + <string>{0.50711799000000002, -0.22408600000000001}</string> + <string>{0.50711799000000002, 0.26717900999999999}</string> + <string>{-0.27430999, -0.47402799000000001}</string> + <string>{0.27977999999999997, -0.47847801000000001}</string> + <string>{0.29393801000000003, 0.54304397000000004}</string> + <string>{-0.28623198999999999, 0.55380397999999997}</string> + </array> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg1252\cocoartf2511 +\cocoatextscaling0\cocoaplatform0{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc + +\f0\fs24 \cf0 goto}</string> + <key>VerticalPad</key> + <real>0.0</real> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{252, 134.3125}, {45.933593999999999, 18.375}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>26</integer> + <key>Magnets</key> + <array> + <string>{1, 1}</string> + <string>{1, -1}</string> + <string>{-1, -1}</string> + <string>{-1, 1}</string> + <string>{0, 1}</string> + <string>{0, -1}</string> + <string>{1, 0}</string> + <string>{-1, 0}</string> + <string>{-0.5, -0.233518}</string> + <string>{-0.49144199, 0.26006298999999999}</string> + <string>{0.50711799000000002, -0.22408600000000001}</string> + <string>{0.50711799000000002, 0.26717900999999999}</string> + <string>{-0.27430999, -0.47402799000000001}</string> + <string>{0.27977999999999997, -0.47847801000000001}</string> + <string>{0.29393801000000003, 0.54304397000000004}</string> + <string>{-0.28623198999999999, 0.55380397999999997}</string> + </array> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg1252\cocoartf2511 +\cocoatextscaling0\cocoaplatform0{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc + +\f0\fs24 \cf0 goto}</string> + <key>VerticalPad</key> + <real>0.0</real> + </dict> + </dict> + <dict> + <key>AllowLabelDrop</key> + <false/> + <key>Class</key> + <string>LineGraphic</string> + <key>Head</key> + <dict> + <key>ID</key> + <integer>3</integer> + </dict> + <key>ID</key> + <integer>23</integer> + <key>Points</key> + <array> + <string>{97, 144.03550999999999}</string> + <string>{146.49998746293761, 144.0150711098278}</string> + </array> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>HeadArrow</key> + <string>FilledArrow</string> + <key>HeadScale</key> + <real>1.4285709857940674</real> + <key>Legacy</key> + <true/> + <key>TailArrow</key> + <string>0</string> + <key>TailScale</key> + <real>0.5</real> + </dict> + </dict> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>Head</key> + <dict> + <key>ID</key> + <integer>5</integer> + </dict> + <key>ID</key> + <integer>11</integer> + <key>Points</key> + <array> + <string>{307.07500585205361, 98.999918754825828}</string> + <string>{348.43055951567175, 125.99525685193555}</string> + </array> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>HeadArrow</key> + <string>FilledArrow</string> + <key>Legacy</key> + <true/> + <key>LineType</key> + <integer>1</integer> + <key>TailArrow</key> + <string>0</string> + </dict> + </dict> + <key>Tail</key> + <dict> + <key>ID</key> + <integer>1</integer> + </dict> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>Head</key> + <dict> + <key>ID</key> + <integer>5</integer> + </dict> + <key>ID</key> + <integer>10</integer> + <key>Points</key> + <array> + <string>{307.26186043637682, 188.16336425137919}</string> + <string>{348.23813950009429, 161.83663569266628}</string> + </array> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>HeadArrow</key> + <string>FilledArrow</string> + <key>Legacy</key> + <true/> + <key>LineType</key> + <integer>1</integer> + <key>TailArrow</key> + <string>0</string> + </dict> + </dict> + <key>Tail</key> + <dict> + <key>ID</key> + <integer>4</integer> + </dict> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>Head</key> + <dict> + <key>ID</key> + <integer>4</integer> + </dict> + <key>ID</key> + <integer>9</integer> + <key>Points</key> + <array> + <string>{210.76185626929413, 161.83663320940951}</string> + <string>{251.73814335207351, 188.16336712407889}</string> + </array> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>HeadArrow</key> + <string>FilledArrow</string> + <key>Legacy</key> + <true/> + <key>LineType</key> + <integer>1</integer> + <key>TailArrow</key> + <string>0</string> + </dict> + </dict> + <key>Tail</key> + <dict> + <key>ID</key> + <integer>3</integer> + </dict> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>Head</key> + <dict> + <key>ID</key> + <integer>1</integer> + </dict> + <key>ID</key> + <integer>8</integer> + <key>Points</key> + <array> + <string>{210.57341994033268, 125.99869997041526}</string> + <string>{251.92658014046799, 99.001300099634591}</string> + </array> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>HeadArrow</key> + <string>FilledArrow</string> + <key>Legacy</key> + <true/> + <key>LineType</key> + <integer>1</integer> + <key>TailArrow</key> + <string>0</string> + </dict> + </dict> + <key>Tail</key> + <dict> + <key>ID</key> + <integer>3</integer> + </dict> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>Head</key> + <dict> + <key>ID</key> + <integer>4</integer> + </dict> + <key>ID</key> + <integer>7</integer> + <key>Points</key> + <array> + <string>{293.55569627859614, 106.37834050302079}</string> + <string>{315.5, 146}</string> + <string>{294.53436892560063, 180.94271845733229}</string> + </array> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>HeadArrow</key> + <string>FilledArrow</string> + <key>Legacy</key> + <true/> + <key>LineType</key> + <integer>1</integer> + <key>TailArrow</key> + <string>0</string> + </dict> + </dict> + <key>Tail</key> + <dict> + <key>ID</key> + <integer>1</integer> + </dict> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>Head</key> + <dict> + <key>ID</key> + <integer>1</integer> + </dict> + <key>ID</key> + <integer>6</integer> + <key>Points</key> + <array> + <string>{263.99039783562887, 181.10804590903402}</string> + <string>{239, 141}</string> + <string>{262.95578718585557, 105.50994490984354}</string> + </array> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>HeadArrow</key> + <string>FilledArrow</string> + <key>Legacy</key> + <true/> + <key>LineType</key> + <integer>1</integer> + <key>TailArrow</key> + <string>0</string> + </dict> + </dict> + <key>Tail</key> + <dict> + <key>ID</key> + <integer>4</integer> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{340, 117}, {72, 54}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>5</integer> + <key>Shape</key> + <string>Circle</string> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg1252\cocoartf2511 +\cocoatextscaling0\cocoaplatform0{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc + +\f0\fs24 \cf0 Code Gear}</string> + <key>VerticalPad</key> + <real>0.0</real> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{243.5, 179}, {72, 54}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>4</integer> + <key>Shape</key> + <string>Circle</string> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg1252\cocoartf2511 +\cocoatextscaling0\cocoaplatform0{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc + +\f0\fs24 \cf0 Code Gear}</string> + <key>VerticalPad</key> + <real>0.0</real> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{147, 117}, {72, 54}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>3</integer> + <key>Shape</key> + <string>Circle</string> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg1252\cocoartf2511 +\cocoatextscaling0\cocoaplatform0{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc + +\f0\fs24 \cf0 Code Gear}</string> + <key>VerticalPad</key> + <real>0.0</real> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{243.5, 54}, {72, 54}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>1</integer> + <key>Shape</key> + <string>Circle</string> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg1252\cocoartf2511 +\cocoatextscaling0\cocoaplatform0{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc + +\f0\fs24 \cf0 Code Gear}</string> + <key>VerticalPad</key> + <real>0.0</real> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{197.56640999999999, 98.625}, {45.933593999999999, 18.375}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>25</integer> + <key>Magnets</key> + <array> + <string>{1, 1}</string> + <string>{1, -1}</string> + <string>{-1, -1}</string> + <string>{-1, 1}</string> + <string>{0, 1}</string> + <string>{0, -1}</string> + <string>{1, 0}</string> + <string>{-1, 0}</string> + <string>{-0.5, -0.233518}</string> + <string>{-0.49144199, 0.26006298999999999}</string> + <string>{0.50711799000000002, -0.22408600000000001}</string> + <string>{0.50711799000000002, 0.26717900999999999}</string> + <string>{-0.27430999, -0.47402799000000001}</string> + <string>{0.27977999999999997, -0.47847801000000001}</string> + <string>{0.29393801000000003, 0.54304397000000004}</string> + <string>{-0.28623198999999999, 0.55380397999999997}</string> + </array> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg1252\cocoartf2511 +\cocoatextscaling0\cocoaplatform0{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc + +\f0\fs24 \cf0 goto}</string> + <key>VerticalPad</key> + <real>0.0</real> + </dict> + </dict> + </array> + <key>GridInfo</key> + <dict/> + <key>GuidesLocked</key> + <string>NO</string> + <key>GuidesVisible</key> + <string>YES</string> + <key>HPages</key> + <integer>1</integer> + <key>ImageCounter</key> + <integer>1</integer> + <key>KeepToScale</key> + <false/> + <key>Layers</key> + <array> + <dict> + <key>Lock</key> + <string>NO</string> + <key>Name</key> + <string>Layer 1</string> + <key>Print</key> + <string>YES</string> + <key>View</key> + <string>YES</string> + </dict> + </array> + <key>LayoutInfo</key> + <dict> + <key>Animate</key> + <string>NO</string> + <key>circoMinDist</key> + <real>18</real> + <key>circoSeparation</key> + <real>0.0</real> + <key>layoutEngine</key> + <string>dot</string> + <key>neatoLineLength</key> + <real>0.20000000298023224</real> + <key>neatoSeparation</key> + <real>0.0</real> + <key>twopiSeparation</key> + <real>0.0</real> + </dict> + <key>LinksVisible</key> + <string>NO</string> + <key>MagnetsVisible</key> + <string>NO</string> + <key>MasterSheets</key> + <array/> + <key>ModificationDate</key> + <string>2020-01-27 09:07:33 +0000</string> + <key>Modifier</key> + <string>桃原優</string> + <key>NotesVisible</key> + <string>NO</string> + <key>Orientation</key> + <integer>2</integer> + <key>OriginVisible</key> + <string>NO</string> + <key>PageBreaks</key> + <string>YES</string> + <key>PrintInfo</key> + <dict> + <key>NSBottomMargin</key> + <array> + <string>float</string> + <string>41</string> + </array> + <key>NSHorizonalPagination</key> + <array> + <string>coded</string> + <string>BAtzdHJlYW10eXBlZIHoA4QBQISEhAhOU051bWJlcgCEhAdOU1ZhbHVlAISECE5TT2JqZWN0AIWEASqEhAFxlwCG</string> + </array> + <key>NSLeftMargin</key> + <array> + <string>float</string> + <string>18</string> + </array> + <key>NSPaperSize</key> + <array> + <string>size</string> + <string>{595, 842}</string> + </array> + <key>NSPrintReverseOrientation</key> + <array> + <string>coded</string> + <string>BAtzdHJlYW10eXBlZIHoA4QBQISEhAhOU051bWJlcgCEhAdOU1ZhbHVlAISECE5TT2JqZWN0AIWEASqEhAFxlwCG</string> + </array> + <key>NSRightMargin</key> + <array> + <string>float</string> + <string>18</string> + </array> + <key>NSTopMargin</key> + <array> + <string>float</string> + <string>18</string> + </array> + </dict> + <key>PrintOnePage</key> + <false/> + <key>ReadOnly</key> + <string>NO</string> + <key>RowAlign</key> + <integer>1</integer> + <key>RowSpacing</key> + <real>36</real> + <key>SheetTitle</key> + <string>Canvas 1</string> + <key>SmartAlignmentGuidesActive</key> + <string>YES</string> + <key>SmartDistanceGuidesActive</key> + <string>YES</string> + <key>UniqueID</key> + <integer>1</integer> + <key>UseEntirePage</key> + <false/> + <key>VPages</key> + <integer>1</integer> + <key>WindowInfo</key> + <dict> + <key>CurrentSheet</key> + <integer>0</integer> + <key>Expanded_Canvases</key> + <array/> + <key>Frame</key> + <string>{{205, 0}, {989, 877}}</string> + <key>ShowInfo</key> + <true/> + <key>ShowRuler</key> + <true/> + <key>Sidebar</key> + <true/> + <key>SidebarWidth</key> + <integer>200</integer> + <key>TopSlabHeight</key> + <real>33</real> + <key>VisibleRegion</key> + <string>{{15, 0}, {460, 703}}</string> + <key>Zoom</key> + <real>1</real> + <key>ZoomValues</key> + <array> + <array> + <string>Canvas 1</string> + <real>1</real> + <real>1</real> + </array> + </array> + </dict> +</dict> +</plist>
--- a/paper/master_paper.aux Thu Jan 23 14:17:22 2020 +0900 +++ b/paper/master_paper.aux Mon Jan 27 23:08:31 2020 +0900 @@ -1,2 +1,17 @@ \relax -\@writefile{toc}{\contentsline {chapter}{付録}{1}\protected@file@percent } +\@writefile{toc}{\contentsline {chapter}{\numberline {第1章}メモリ管理による信頼性の保証}{2}\protected@file@percent } +\@writefile{lof}{\addvspace {10\p@ }} +\@writefile{lot}{\addvspace {10\p@ }} +\@writefile{toc}{\contentsline {chapter}{\numberline {第2章}Geas OS}{3}\protected@file@percent } +\@writefile{lof}{\addvspace {10\p@ }} +\@writefile{lot}{\addvspace {10\p@ }} +\@writefile{toc}{\contentsline {section}{\numberline {2.1}Code Gear と Data Gear}{3}\protected@file@percent } +\@writefile{lof}{\contentsline {figure}{\numberline {2.1}{\ignorespaces Code Gear 間の継続}}{3}\protected@file@percent } +\newlabel{fig:codegear}{{2.1}{3}} +\@writefile{toc}{\contentsline {section}{\numberline {2.2}Meta Code Gear と Meta Data Gear}{4}\protected@file@percent } +\@writefile{lof}{\contentsline {figure}{\numberline {2.2}{\ignorespaces ノーマルレベルとメタレベルの継続の見え方}}{5}\protected@file@percent } +\newlabel{fig:meta_cg_dg}{{2.2}{5}} +\@writefile{toc}{\contentsline {chapter}{\numberline {第3章}Gears OS での Paging}{6}\protected@file@percent } +\@writefile{lof}{\addvspace {10\p@ }} +\@writefile{lot}{\addvspace {10\p@ }} +\@writefile{toc}{\contentsline {chapter}{付録}{6}\protected@file@percent }
--- a/paper/master_paper.lof Thu Jan 23 14:17:22 2020 +0900 +++ b/paper/master_paper.lof Mon Jan 27 23:08:31 2020 +0900 @@ -0,0 +1,5 @@ +\addvspace {10\p@ } +\addvspace {10\p@ } +\contentsline {figure}{\numberline {2.1}{\ignorespaces Code Gear 間の継続}}{3}% +\contentsline {figure}{\numberline {2.2}{\ignorespaces ノーマルレベルとメタレベルの継続の見え方}}{5}% +\addvspace {10\p@ }
--- a/paper/master_paper.log Thu Jan 23 14:17:22 2020 +0900 +++ b/paper/master_paper.log Mon Jan 27 23:08:31 2020 +0900 @@ -1,4 +1,4 @@ -This is e-pTeX, Version 3.14159265-p3.8.2-190131-2.6 (utf8.euc) (TeX Live 2019) (preloaded format=platex 2020.1.16) 23 JAN 2020 14:09 +This is e-pTeX, Version 3.14159265-p3.8.2-190131-2.6 (utf8.euc) (TeX Live 2019) (preloaded format=platex 2020.1.16) 27 JAN 2020 20:36 entering extended mode restricted \write18 enabled. file:line:error style messages enabled. @@ -346,21 +346,68 @@ \tf@lol=\write7 \openout7 = `master_paper.lol'. - [1 + (./memory_manage.tex [1 + +] +第 1 章(2ページ) +) (./GearsOS.tex [2 + +] +第 2 章(3ページ) +LaTeX Font Info: Font shape `JT1/hmc/m/n' will be +(Font) scaled to size 16.62714pt on input line 6. +LaTeX Font Info: Font shape `JY1/hmc/m/n' will be +(Font) scaled to size 16.62714pt on input line 6. +LaTeX Font Info: Font shape `JT1/hmc/bx/n' will be +(Font) scaled to size 16.62714pt on input line 6. +LaTeX Font Info: Font shape `JY1/hmc/bx/n' will be +(Font) scaled to size 16.62714pt on input line 6. +File: ./fig/codegear.pdf Graphic file (type pdf) +<./fig/codegear.pdf> +[3 + +] + +LaTeX Warning: Reference `fig:meta_cg_dg ' on page 4 undefined on input line 33 +. + +File: ./fig/meta_cg_dg.pdf Graphic file (type pdf) +<./fig/meta_cg_dg.pdf> + +LaTeX Warning: Float too large for page by 43.27322pt on input line 41. + +) (./Paging.tex +LaTeX Font Info: Font shape `JT1/hmc/m/n' will be +(Font) scaled to size 10.53629pt on input line 1. +LaTeX Font Info: Font shape `JY1/hmc/m/n' will be +(Font) scaled to size 10.53629pt on input line 1. +LaTeX Font Info: Font shape `JT1/hmc/bx/n' will be +(Font) scaled to size 10.53629pt on input line 1. +LaTeX Font Info: Font shape `JY1/hmc/bx/n' will be +(Font) scaled to size 10.53629pt on input line 1. + [4] [5] +第 3 章(6ページ) +) [6 ] (./master_paper.aux) LaTeX Font Warning: Size substitutions with differences (Font) up to 1.28pt have occurred. + +LaTeX Warning: There were undefined references. + + +LaTeX Warning: Label(s) may have changed. Rerun to get cross-references right. + ) Here is how much of TeX's memory you used: - 5994 strings out of 493985 - 86669 string characters out of 6166648 - 129089 words of memory out of 5000000 - 10339 multiletter control sequences out of 15000+600000 - 14725 words of font info for 72 fonts, out of 8000000 for 9000 + 6034 strings out of 493985 + 87286 string characters out of 6166648 + 130106 words of memory out of 5000000 + 10363 multiletter control sequences out of 15000+600000 + 16141 words of font info for 82 fonts, out of 8000000 for 9000 107 hyphenation exceptions out of 8191 - 30i,5n,36p,310b,992s stack positions out of 5000i,500n,10000p,200000b,80000s + 30i,10n,36p,481b,992s stack positions out of 5000i,500n,10000p,200000b,80000s -Output written on master_paper.dvi (8 pages, 3140 bytes). +Output written on master_paper.dvi (13 pages, 11528 bytes).
--- a/paper/master_paper.lot Thu Jan 23 14:17:22 2020 +0900 +++ b/paper/master_paper.lot Mon Jan 27 23:08:31 2020 +0900 @@ -0,0 +1,3 @@ +\addvspace {10\p@ } +\addvspace {10\p@ } +\addvspace {10\p@ }
--- a/paper/master_paper.tex Thu Jan 23 14:17:22 2020 +0900 +++ b/paper/master_paper.tex Mon Jan 27 23:08:31 2020 +0900 @@ -11,7 +11,7 @@ %\input{dummy.tex} %% font -\jtitle{GearsOS によるコンテナと VM} +\jtitle{GearsOS の Paging} \etitle{} % 英文例題まだ \year{2020年 3月} \eyear{March 2020} @@ -94,13 +94,11 @@ % %chapters % \input{introduction.tex} -% \input{meta_computation.tex} -% \input{GearsOS} -% \input{interface.tex} -% \input{generate_code.tex} -% \input{xv6.tex} -% \input{evaluation.tex} -% \input{conclusion.tex} + \input{memory_manage.tex} +\input{GearsOS.tex} +\input{Paging.tex} + + % % %謝辞 % \addcontentsline{toc}{chapter}{謝辞}
--- a/paper/master_paper.toc Thu Jan 23 14:17:22 2020 +0900 +++ b/paper/master_paper.toc Mon Jan 27 23:08:31 2020 +0900 @@ -1,1 +1,6 @@ -\contentsline {chapter}{付録}{1}% +\contentsline {chapter}{\numberline {第1章}メモリ管理による信頼性の保証}{2}% +\contentsline {chapter}{\numberline {第2章}Geas OS}{3}% +\contentsline {section}{\numberline {2.1}Code Gear と Data Gear}{3}% +\contentsline {section}{\numberline {2.2}Meta Code Gear と Meta Data Gear}{4}% +\contentsline {chapter}{\numberline {第3章}Gears OS での Paging}{6}% +\contentsline {chapter}{付録}{6}%
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/paper/memory_manage.tex Mon Jan 27 23:08:31 2020 +0900 @@ -0,0 +1,6 @@ +\chapter{メモリ管理による信頼性の保証} +メモリ管理は OS の信頼性の基本であるが, 現代の OS では, User Space で Page Table Entry によるメモリ管理を行える OS は少ない. これは User レベルの操作で Page Table が書き換えられたり,別の Page にアクセスするのを防ぐためだと考えられる.しかし,User Space でメモリ管理を行えるようにすることで, Page のバリデーションをチェックしたり,サンドボックスによる信頼性の保証を行えるようになる.また,適切な記述をすれば最適なメモリ管理にも繋がる. +\par + 本研究室で開発したメタレベルの記述ができる CbC という言語を用いて, OS の信頼性の基本であるメモリ管理を行える OS を実装することで, OS の信頼性を保証したい. +既存の Gears OS でのメモリ管理では単に Page Table Entry をコピーする Fork を実装 +しているが, さらに資源管理を行える CbC で軽量なハードウェアでも動かせるように Arm のバイナリを 出力する Xv6 を参考に GearsOS にメモリ管理を行う API を考察する.
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/thsis_paging.mm Mon Jan 27 23:08:31 2020 +0900 @@ -0,0 +1,30 @@ +<map version="1.0.1"> +<!-- To view this file, download free mind mapping software FreeMind from http://freemind.sourceforge.net --> +<node CREATED="1580099260489" ID="ID_1614065797" MODIFIED="1580099491048" TEXT="Gears OS におけるメモリ管理"> +<node CREATED="1578979732696" ID="ID_457372106" MODIFIED="1580108656805" POSITION="right" TEXT="OS のメモリ管理"/> +<node CREATED="1578979768846" ID="ID_738890313" MODIFIED="1578979773340" POSITION="right" TEXT="Gears OS について"> +<node CREATED="1580108790756" ID="ID_1503553728" MODIFIED="1580108794363" TEXT="CbC"> +<node CREATED="1580112360401" ID="ID_614891804" MODIFIED="1580112368387" TEXT="記述例"/> +<node CREATED="1580112406576" ID="ID_174277035" MODIFIED="1580112413544" TEXT="Code Gear の継続遷移図"/> +</node> +<node CREATED="1580108797610" ID="ID_1365788482" MODIFIED="1580108810835" TEXT="Code Gear, Data Gear"/> +<node CREATED="1580107798502" ID="ID_1870725834" MODIFIED="1580107827464" TEXT="Meta の説明と遷移図"/> +<node CREATED="1580107483687" ID="ID_1285374455" MODIFIED="1580107511777" TEXT="Context"/> +<node CREATED="1580107513101" ID="ID_1602648466" MODIFIED="1580107516575" TEXT="Interface"/> +</node> +<node CREATED="1580107585579" ID="ID_1626415670" MODIFIED="1580107610152" POSITION="right" TEXT="Xv6 から GearsOS への書き換え"> +<node CREATED="1580107648436" ID="ID_422947198" MODIFIED="1580108849848" TEXT="Raspberry Pi は必要ない??"/> +<node CREATED="1580107690139" ID="ID_749171993" MODIFIED="1580107697425" TEXT="System call"/> +</node> +<node CREATED="1578979785550" ID="ID_1231580257" MODIFIED="1580108902791" POSITION="right" TEXT="Gearsでの Paging"> +<node CREATED="1580108224152" ID="ID_1755476855" MODIFIED="1580108236817" TEXT="pagingとは"> +<node CREATED="1580125177715" ID="ID_1450928772" MODIFIED="1580125182834" TEXT="図"/> +</node> +<node CREATED="1580108238553" ID="ID_824612440" MODIFIED="1580108266050" TEXT="User Space でPagingをする利点"/> +<node CREATED="1580108966482" ID="ID_509498115" MODIFIED="1580109016862" TEXT="設計 ??"/> +</node> +<node CREATED="1578979824759" ID="ID_158250428" MODIFIED="1580108938645" POSITION="right" TEXT="Paging の実装"/> +<node CREATED="1578979830870" ID="ID_251771531" MODIFIED="1580108616451" POSITION="right" TEXT="Paging の評価"/> +<node CREATED="1578979834269" ID="ID_614747960" MODIFIED="1580108630937" POSITION="right" TEXT="結論"/> +</node> +</map>