Mercurial > hg > Papers > 2019 > tobaru-sigos
changeset 22:a1e8e4702416
add table contents
author | tobaru |
---|---|
date | Wed, 29 May 2019 17:48:38 +0900 |
parents | df06f7c00062 |
children | 4f000f6f9fa4 |
files | slide/sig-os2019.md |
diffstat | 1 files changed, 42 insertions(+), 13 deletions(-) [+] |
line wrap: on
line diff
--- a/slide/sig-os2019.md Wed May 29 16:24:02 2019 +0900 +++ b/slide/sig-os2019.md Wed May 29 17:48:38 2019 +0900 @@ -19,8 +19,10 @@ ## スライドの流れ - <font color="red">GearsOS</font> - Paging -- CrossCompile -- 今後の課題 +- Segmentation +- GearsOS での Paging +- User Space で Page Table を操作する利点 +- Xv6からの書き換え @@ -71,10 +73,13 @@ ## スライドの流れ -- <font color="red">GearsOS</font> -- Paging -- CrossCompile -- 今後の課題 +- GearsOS +- <font color="red">Paging</font> +- Segmentation +- GearsOS での Paging +- User Space で Page Table を操作する利点 +- Xv6からの書き換え + ## Paging @@ -104,13 +109,13 @@ - Page と Page Frames は同じサイズを生成する。 - ## スライドの流れ -- <font color="red">GearsOS</font> +- GearsOS - Paging -- CrossCompile -- 今後の課題 - +- <font color="red">Segmentation</font> +- GearsOS での Paging +- User Space で Page Table を操作する利点 +- Xv6からの書き換え ## Descriptor - プログラムがアクセスするファイルなどをOSが識別するための識別子 @@ -131,6 +136,8 @@ ## Descriptor の構成 - Descriptor は Segment の Baseアドレス、Size、その他の情報を含む8バイトで構成されている。 +<div align="center"><img src="./images/x86code.svg" style="center"></div> + ## Segmentが存在しない場合(selector0) - トラップが発生する - 次にハードウェアはオフセットがSegmentの終わりを超えているかどうかをチェックするためにlimitフィールドを使用する。 @@ -138,12 +145,19 @@ ## リニアアドレス - セグメント内のメモリとオフセットが範囲内にあると仮定すると、x86はDescriptor 内の32ビットのBaseフィールドをオフセットに追加してリニアアドレスと呼ばれるものを形成する。 -<div align="center"><img src="./images/x86code.svg" style="center"></div> +<div align="center"><img src="./images/Conversion_of_a_selector_offset_pair_to_a_linear_address.svg" width="30%" height="30%" style="center"></div> ## Pagingが無効にされてる場合 - リニアアドレスは物理アドレスとして解釈され、読み取りまたは書き込みのためにメモリに送信される。 - 従って、Pagingを無効にすると、各セグメントのBaseアドレスをDescriptorで指定した純粋なSegmentation Scheme ができる。 +## スライドの流れ +- GearsOS +- Paging +- Segmentation +- <font color="red">GearsOS での Paging</font> +- User Space で Page Table を操作する利点 +- Xv6からの書き換え ## GearsOS での Paging の実装 - GearsOS で Paging を実装するために必要なもの @@ -171,10 +185,26 @@ - User Space で Page Table Entry によるメモリ管理を行える OS は少ない。 - User レベルの操作で Page Tabel が書き換えられたり、別のPage にアクセスするのを防ぐためだと考えられる。 +## スライドの流れ +- GearsOS +- Paging +- Segmentation +- GearsOS での Paging +- <font color="red">User Space で Page Table を操作する利点</font> +- Xv6からの書き換え + ## User Space で Page Tabel を操作する利点 - User Space でメモリ管理を行えるようにするとこで、Page のバリデーションをチェックしたり、サンドボックスによる信頼性の保証が行える。 - また、適切な記述をすれば最適なメモリ管理を行うことができるようになる +## スライドの流れ +- GearsOS +- Paging +- Segmentation +- GearsOS での Paging +- User Space で Page Table を操作する利点 +- <font color="red">Xv6からの書き換え</font> + ## Xv6 - Xv6 とは、マサチューセッツ工科大の大学院向け講義の教材として使うために、UNIX V6 という OS を ANSI-C に書き換え、x86 に移植した OS である。 - Arm のバイナリを出力するので、Raspberry Pi や携帯電話など様々なハードウェアで動かすことができる @@ -194,5 +224,4 @@ ## 図 -<div align="center"><img src="./images/Conversion_of_a_selector_offset_pair_to_a_linear_address.svg" style="center"></div> <div align="center"><img src="./images/x86code.svg" style="center"></div>