changeset 42:0678e32fff26

xv.6 function
author tobaru
date Thu, 20 Feb 2020 17:24:28 +0900
parents 51170476de39
children 25b7e00fddc6
files paper/Paging.tex paper/Xv6.tex paper/abstract.tex paper/master_paper.pdf paper/master_paper.synctex.gz
diffstat 5 files changed, 22 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/paper/Paging.tex	Tue Feb 18 06:05:28 2020 +0900
+++ b/paper/Paging.tex	Thu Feb 20 17:24:28 2020 +0900
@@ -10,7 +10,9 @@
 \section{Paging}
 実メモリをそのまま使うと様々な問題が生じる。
 ユーザープログラム側で空いているメモリ番地を探す必要がでてきたり、メモリ間にデータとして扱うには小さな隙間ができるフラグメンテーションが起こる。
-  メモリ管理の手法に、Paging がある。
+xv6 ではメモリ管理の手法の1つとして Paging を採用している。
+
+
 Paging ではメモリを Page と呼ばれる固定長の単位に分割し、メモリとスワップ領域で Page を入れ替えて管理を行う。
 Paging を扱うことでブロック単位で管理することによりフラグメンテーションが解消でき、MMUが実メモリを管理することによってプログラム側で空いているメモリを探す必要がなくなる。
 
@@ -28,6 +30,20 @@
 %  \label{fig:MemoryConstitution}
 % \end{figure}
 
+\section{xv6 の Paging の主要関数}
+xv6 の Paging は vm.c で行われる。vm.c で使われる主要関数の役割について説明する。
+
+
+\begin{description}
+  \item[init\_vmm] : 最初に外部ファイルの main.c から呼び出される関数。lock に使う側の id を入れ、誰も使ってなければ 0 を入れる。
+  \item[kpt\_free] : カーネルのメモリを解放する。 
+  \item[kpt\_alloc] : メモリ割り当て。Page Table が NULL なら panic関数を呼び出す。
+  \item[walkpgdir] : Page Table を探してアドレスを返す。loaduvm などの if文内で呼び出される。
+  \item[loaduvm] : スワップ領域から呼び出され、カーネル内をループしながらユーザープロセスを待ち状態にする。
+  \item[allocuvm] : 仮想メモリをユーザープロセスに割り当てる。
+  \item[inituvm] : プロセス側である proc.c から呼び出され、Page ディレクトリを作成する。
+\end{description}
+
 
 \section{CbCXv6 での Paging}
  Context に必要な Page Table を提供する Interface が必要である。
@@ -42,6 +58,6 @@
 \section{Paging の書き換え}
  Xv6 では実メモリ(Physical memory) から仮想メモリ(Virtual memory)の変換を vm.c で行なっている。
 vm.c を CbC で書き換えていく。
-次のチャプターで実際の書き換えについて説明する。
+次の章で実際の書き換えについて説明する。
 
 
--- a/paper/Xv6.tex	Tue Feb 18 06:05:28 2020 +0900
+++ b/paper/Xv6.tex	Thu Feb 20 17:24:28 2020 +0900
@@ -48,5 +48,7 @@
 
 \section{Xv6-rpi}
 Xv6 は Arm のバイナリを出力するので、シングルボードコンピュータである Raspberry Pi や携帯電話など様々なハードウェアで動かすことができる。
-実際に Raspberry Pi 上で動かすために xv6-rpi という OS を用意して動作しているか検証中である。
+実際に Raspberry Pi 上で動かすために xv6-rpi\cite{xv6rpi} という OS を用意して動作しているか検証中である。
 xv6-rpi は CbCXv6 と別で用意している。
+
+
--- a/paper/abstract.tex	Tue Feb 18 06:05:28 2020 +0900
+++ b/paper/abstract.tex	Thu Feb 20 17:24:28 2020 +0900
@@ -6,7 +6,7 @@
 CbC の軽量継続によりOSの動作を
 状態遷移を基本としたモデルに落とし込むことができる。
 これにより状態遷移機械の検証手法をOSに対して適用し信頼性を高めることができるようになると考えられる。
-本研究では小型のOSであるx.v6 をCbCで書き換えること
+本研究では小型のOSであるxv6 をCbCで書き換えること
 の一部を行う。具体的にはOSのメモリ管理を担当するvm.cをCbCに変換する。
 
 CbCではインターフェースを用いたモジュール化を行う。
Binary file paper/master_paper.pdf has changed
Binary file paper/master_paper.synctex.gz has changed