Mercurial > hg > Papers > 2019 > tobaru-sigos
changeset 13:a6889c903369
paper plan
author | tobaru |
---|---|
date | Thu, 09 May 2019 20:41:51 +0900 |
parents | a27f076e1dd9 |
children | 02c08d07c371 |
files | GearsOS_Paging_Segmentation.mm |
diffstat | 1 files changed, 64 insertions(+), 17 deletions(-) [+] |
line wrap: on
line diff
--- a/GearsOS_Paging_Segmentation.mm Thu May 09 19:10:53 2019 +0900 +++ b/GearsOS_Paging_Segmentation.mm Thu May 09 20:41:51 2019 +0900 @@ -54,43 +54,90 @@ </node> </node> <node CREATED="1557395565539" ID="ID_1252224066" MODIFIED="1557395581779" POSITION="right" TEXT="論文構成"> -<node CREATED="1557395611435" ID="ID_1268271769" MODIFIED="1557395618821" TEXT="1.User Space でのメモリ管理"/> -<node CREATED="1557395333889" ID="ID_1793192496" MODIFIED="1557395359415" TEXT="Gears OS"> -<node CREATED="1557395429381" ID="ID_582430981" MODIFIED="1557395482644" TEXT="2.1GearsOS"/> -<node CREATED="1557395411507" ID="ID_1259429356" MODIFIED="1557395489772" TEXT="2.2CbC"/> -<node CREATED="1557395435448" ID="ID_351249598" MODIFIED="1557395496283" TEXT="2.3Meta Code Gear Meta Data Gear"/> +<node CREATED="1557395333889" ID="ID_1793192496" MODIFIED="1557398415915" TEXT="1.Gears OS"> +<node CREATED="1557395429381" ID="ID_582430981" MODIFIED="1557398422955" TEXT="1.1GearsOS"/> +<node CREATED="1557395411507" ID="ID_1259429356" MODIFIED="1557398426960" TEXT="1.2CbC"/> +<node CREATED="1557395435448" ID="ID_351249598" MODIFIED="1557398431394" TEXT="1.3Meta Code Gear Meta Data Gear"/> </node> -<node CREATED="1557395360115" ID="ID_965745108" MODIFIED="1557395501770" TEXT="3.PagingとSegmentation"> -<node CREATED="1557395649251" ID="ID_1042648203" MODIFIED="1557395660990" TEXT="intel が生き残ってる"> +<node CREATED="1557395360115" ID="ID_965745108" MODIFIED="1557398731326" TEXT="2.今までのPagingとSegmentationの Survey"> +<node CREATED="1557395649251" ID="ID_1042648203" MODIFIED="1557399053414" TEXT="intel が生き残ってる Segmentation Achitecture"> <node CREATED="1557395703095" ID="ID_3142787" MODIFIED="1557395717884" TEXT="サーベイが必要"/> </node> +<node CREATED="1557399083003" ID="ID_1424199690" MODIFIED="1557399097793" TEXT="アプリケーションの中でもメモリ管理をきめ細かにやりたい"/> <node CREATED="1557395677691" ID="ID_1872255561" MODIFIED="1557395700461" TEXT="Userでもメモリの保護とリロケーションをしたい"> <node CREATED="1557395791827" ID="ID_656543864" MODIFIED="1557395806040" TEXT="アクセスできるのはmmap だけ"> -<node CREATED="1557395806040" ID="ID_1756390550" MODIFIED="1557395818490" TEXT="malockでつかわれてるだけ "/> +<node CREATED="1557395806040" ID="ID_1756390550" MODIFIED="1557399130344" TEXT="mmapもmalockでつかわれてるだけ "/> </node> </node> <node CREATED="1557395822489" ID="ID_1466182511" MODIFIED="1557395866404" TEXT="GearsOS"> -<node CREATED="1557395831698" ID="ID_1173677926" MODIFIED="1557395844311" TEXT="meta compitation "/> -<node CREATED="1557395846680" ID="ID_1669847133" MODIFIED="1557395877755" TEXT="page table に勝手に書き込まれるのはまずい"/> +<node CREATED="1557399148178" ID="ID_490778387" MODIFIED="1557399159610" TEXT="pagingとSegmentationをいれたい"> +<node CREATED="1557399172229" ID="ID_846863244" MODIFIED="1557399177563" TEXT="paging 64k"> +<node CREATED="1557399183164" ID="ID_115202419" MODIFIED="1557399412226" TEXT="インパース page table??"> +<node CREATED="1557399419979" ID="ID_1296826617" MODIFIED="1557399427695" TEXT="個別のページは圧縮"/> +</node> +</node> +<node CREATED="1557399447172" ID="ID_1871609806" MODIFIED="1557399452725" TEXT="Segmentation"> +<node CREATED="1557395752801" ID="ID_365190741" MODIFIED="1557399541968" TEXT="Segmentation が使われてるのはunixだと thread local ぐらい"/> +</node> +<node CREATED="1557399716959" ID="ID_1263686438" MODIFIED="1557399731819" TEXT="Userレベルの時にPagingに直接アクセスすることができない"/> +</node> +<node CREATED="1557395831698" ID="ID_1173677926" MODIFIED="1557399787873" TEXT="meta CompetitionとCompetitionに分離されている"> +<node CREATED="1557399805812" ID="ID_132710327" MODIFIED="1557399892857" TEXT="meta Competition レベルでPage table を操作する事でUserプログラムでもPage table を操作することができる"/> +</node> +<node CREATED="1557395846680" ID="ID_1669847133" MODIFIED="1557395877755" TEXT="page table に勝手に書き込まれるのはまずい"> +<node CREATED="1557399901723" ID="ID_5951082" MODIFIED="1557399913577" TEXT="他のプロセスの物理メモリを読まれたりする"/> +<node CREATED="1557399919675" ID="ID_554476234" MODIFIED="1557399951129" TEXT="Userに渡された資源の範囲で処理する必要があるが可能か?"> +<node CREATED="1557400267540" ID="ID_1198294992" MODIFIED="1557400285193" TEXT="meta compitation でシステムレベルに戻ってやればいい"/> +</node> +</node> <node CREATED="1557395879630" ID="ID_614583572" MODIFIED="1557395896235" TEXT="meta compitationに戻る時にシステムに戻ればいい"> <node CREATED="1557395897123" ID="ID_298696925" MODIFIED="1557395910490" TEXT="どういうAPI を用意すればいいか考える"/> <node CREATED="1557395912217" ID="ID_1954563880" MODIFIED="1557395920290" TEXT="meta data Gear を操作する"> -<node CREATED="1557395922283" ID="ID_27345325" MODIFIED="1557395938738" TEXT="ノーマルレベルから管理"/> +<node CREATED="1557395922283" ID="ID_27345325" MODIFIED="1557395938738" TEXT="ノーマルレベルから管理"> +<node CREATED="1557400322181" ID="ID_1185169876" MODIFIED="1557400363113" TEXT="操作するpage table が提供した資源に収まってるかチェックしてから反映する"/> +</node> </node> <node CREATED="1557395947347" ID="ID_913102475" MODIFIED="1557395969188" TEXT="アクセスできるメモリをダイレクトに渡すのかコピるのかは自由度ある"/> -<node CREATED="1557396004163" ID="ID_1296426699" MODIFIED="1557396035283" TEXT="Code Gearを切り替えるたびにやるのは重くなる"/> +<node CREATED="1557396004163" ID="ID_1296426699" MODIFIED="1557400417831" TEXT="Code Gearを切り替えるたびにSegmantationを切り替えるのは重くなる"> +<node CREATED="1557400467114" ID="ID_1584922231" MODIFIED="1557400508422" TEXT="Contextの中に使用するCG DGは揃っている"/> +<node CREATED="1557400511167" ID="ID_1213784664" MODIFIED="1557400558739" TEXT="ContextはThreadごとにあってCGDGは自由に入れ替えることはできる"> +<node CREATED="1557400563182" ID="ID_336139811" MODIFIED="1557400572730" TEXT="Contextはシステムで保護されるべき"/> +<node CREATED="1557400595631" ID="ID_370602642" MODIFIED="1557400603792" TEXT="煩雑に切り替わる"> +<node CREATED="1557400605611" ID="ID_1444833214" MODIFIED="1557400628136" TEXT="Contextにそって必要なアクセスできる範囲を制限してあげる"/> +<node CREATED="1557400641124" ID="ID_339133162" MODIFIED="1557400671090" TEXT="リニアスペース全部提供するのが現状でそれの方が簡単"/> +<node CREATED="1557400678841" ID="ID_256534439" MODIFIED="1557400711559" TEXT="ContextとSegmentationを組み合わせてGearsOS のPagingを作り上げていくのがいい"/> +</node> +</node> +</node> </node> </node> <node CREATED="1557395724955" ID="ID_1120480389" MODIFIED="1557395737001" TEXT="paging"> <node CREATED="1557395737002" ID="ID_1948709995" MODIFIED="1557395745738" TEXT="圧縮"/> </node> -<node CREATED="1557395746794" ID="ID_1024322884" MODIFIED="1557395752801" TEXT="segmentation"> -<node CREATED="1557395752801" ID="ID_690481971" MODIFIED="1557395771634" TEXT="thread local だとunixでも使われてる"/> +</node> +<node CREATED="1557398081009" ID="ID_850503595" MODIFIED="1557398439981" TEXT="3.GearsOSでのPaging"/> +<node CREATED="1557395374773" ID="ID_485527758" MODIFIED="1557398445136" TEXT="4.UserSpaceでPage Table を操作する利点"> +<node CREATED="1557398174469" ID="ID_1128960835" MODIFIED="1557398192203" TEXT="Code Gear と DG のSegmentation 相性がいい"> +<node CREATED="1557398201182" ID="ID_1420123612" MODIFIED="1557398223087" TEXT="CGとDGが切り替わる時にSegmentationを切り替えるのは重い"> +<node CREATED="1557398228153" ID="ID_1390164932" MODIFIED="1557398265848" TEXT="Contextを使った工夫が必要"/> +</node> </node> </node> -<node CREATED="1557395374773" ID="ID_485527758" MODIFIED="1557395506482" TEXT="4.Xv6"/> -<node CREATED="1557395384030" ID="ID_215353243" MODIFIED="1557395515914" TEXT="5.PagingとSegmentationのGearsOSへの実装"/> -<node CREATED="1557395404797" ID="ID_1759760598" MODIFIED="1557395522555" TEXT="6.今後の課題"/> +<node CREATED="1557398342250" ID="ID_183157737" MODIFIED="1557398451015" TEXT="5.Xv6を書き換えて実装するのがいいのでは"> +<node CREATED="1557400759750" ID="ID_1461178721" MODIFIED="1557400815507" TEXT="kernel内部ではPage table がアクセスできるのでPageTableはユーザーレベルでどうするかって話"/> +<node CREATED="1557401643904" ID="ID_458911797" MODIFIED="1557401688244" TEXT="elfじゃなくてContextを配置してメモリ空間にアクセスする実行の仕組みをxv6に入れる"/> +<node CREATED="1557401692740" ID="ID_1400595796" MODIFIED="1557401729495" TEXT="Xv6の新しい要素としてGearsOSのContextの部分をUserSpace側で実行する"/> +<node CREATED="1557401740625" ID="ID_852415691" MODIFIED="1557401749848" TEXT="Xv6でやるのがいいかは微妙"> +<node CREATED="1557401758943" ID="ID_1036627792" MODIFIED="1557401772393" TEXT="今あるOSでmmapでやるのも悪くはない"> +<node CREATED="1557401776744" ID="ID_1501140156" MODIFIED="1557401793706" TEXT="Page table 直接いじる方が面白いのでそれでやっていく"/> +</node> +<node CREATED="1557401816204" ID="ID_204129092" MODIFIED="1557401913185" TEXT="Contextに必要なPagetableとPage Segmentationを提供するinterfaceとAUserSpaceからアクセスするPIを考える必要がある"> +<node CREATED="1557401891124" ID="ID_1834452223" MODIFIED="1557402014293" TEXT="実際にはPTに相当するデータをInput data Gearで受け取って変更した後、contextにあるメモリコントロールを担当するmeta data gear にgotoしてアクセスする。"> +<node CREATED="1557402017444" ID="ID_1044594446" MODIFIED="1557402032906" TEXT="その時にPage tabel entry のバリデーションをチェックする"/> +</node> +</node> +</node> +</node> </node> </node> </map>