Mercurial > hg > Papers > 2018 > mitsuki-sigos
view mindmap.mm @ 22:f83f575b6194
add fig
author | mir3636 |
---|---|
date | Thu, 18 Jan 2018 15:51:04 +0900 |
parents | dc0aa4a22e32 |
children |
line wrap: on
line source
<map version="1.0.1"> <!-- To view this file, download free mind mapping software FreeMind from http://freemind.sourceforge.net --> <node CREATED="1513759933655" ID="ID_1168102505" MODIFIED="1513760030124" TEXT="Code Gear と Data Gear を持つ Gears OS の設計"> <font NAME="SansSerif" SIZE="13"/> <node CREATED="1513760000390" ID="ID_1625648361" MODIFIED="1513760085629" POSITION="right" TEXT="研究目的"> <node CREATED="1513760034116" ID="ID_499932315" MODIFIED="1513760055809" TEXT="OSの拡張性"> <node CREATED="1513760350704" ID="ID_1274406363" MODIFIED="1513760363619" TEXT="通常計算とメタ計算の分離"/> </node> <node CREATED="1513760058670" ID="ID_1355477640" MODIFIED="1513760071840" TEXT="OSの信頼性"/> </node> <node CREATED="1513760087022" ID="ID_857848362" MODIFIED="1513760093612" POSITION="right" TEXT="軽量継続"/> <node CREATED="1513760094654" ID="ID_949226374" MODIFIED="1513760101989" POSITION="right" TEXT="メタ計算"> <node CREATED="1513760705804" ID="ID_1984843423" MODIFIED="1513760711659" TEXT="メモリ管理"/> </node> <node CREATED="1513760103900" ID="ID_468911821" MODIFIED="1513760113547" POSITION="right" TEXT="Context"> <node CREATED="1513760191140" ID="ID_728593308" MODIFIED="1513760198195" TEXT="Data Gear"/> <node CREATED="1513760204385" ID="ID_1993481553" MODIFIED="1513760212491" TEXT="Code Gear number"/> <node CREATED="1513760221528" ID="ID_757603655" MODIFIED="1513760233424" TEXT="Code Gear refarence table"/> <node CREATED="1513760238531" ID="ID_834744506" MODIFIED="1513760244114" TEXT="Data Gear number"/> <node CREATED="1513760260632" ID="ID_1467226180" MODIFIED="1513760263514" TEXT="Task"/> </node> <node CREATED="1513760114290" ID="ID_463257841" MODIFIED="1513760118403" POSITION="right" TEXT="Interface"/> <node CREATED="1513760119556" ID="ID_352808512" MODIFIED="1513760130604" POSITION="right" TEXT="生成スクリプト"/> <node CREATED="1513760132579" ID="ID_452090203" MODIFIED="1513760160532" POSITION="right" TEXT="Stub"/> <node CREATED="1513760160773" ID="ID_1574335740" MODIFIED="1513760178912" POSITION="right" TEXT="goto meta"/> <node CREATED="1513760277419" ID="ID_1532139870" MODIFIED="1513760291499" POSITION="right" TEXT="比較"/> <node CREATED="1513760291805" ID="ID_648740425" MODIFIED="1513760297425" POSITION="right" TEXT="結論"/> <node CREATED="1513760433849" ID="ID_1885184321" MODIFIED="1513762848016" POSITION="left" TEXT="OSの拡張性とメタ計算の関係"> <node CREATED="1513760881706" ID="ID_1909915129" MODIFIED="1513760890818" TEXT="テクノロジートランスファー"> <node CREATED="1513760967299" ID="ID_832179108" MODIFIED="1513760983274" TEXT="アーキテクチャの変更"/> </node> <node CREATED="1513761005939" ID="ID_1324770157" MODIFIED="1513761017754" TEXT="コールスタックとメタ計算の衝突"> <node CREATED="1513761034811" ID="ID_1819778725" MODIFIED="1513761052210" TEXT="軽量継続を使えばメタ計算と衝突しない"> <node CREATED="1513762871331" ID="ID_1845422349" MODIFIED="1513762887774" TEXT="メタ計算との衝突の例"/> </node> </node> </node> <node CREATED="1513760468164" ID="ID_1964491227" MODIFIED="1513762849528" POSITION="left" TEXT="信頼性とメタ計算の関係"> <node CREATED="1513760902250" ID="ID_1975872565" MODIFIED="1513760915018" TEXT="通常計算の検証"/> <node CREATED="1513760925723" ID="ID_394329807" MODIFIED="1513760936714" TEXT="メタ計算を使ったモデル検査"> <node CREATED="1513760939699" ID="ID_265631848" MODIFIED="1513760945290" TEXT="抽象"/> </node> <node CREATED="1513760957591" ID="ID_1884859940" MODIFIED="1513760963282" TEXT="デバッグ"/> </node> <node CREATED="1513760485780" ID="ID_1601229706" MODIFIED="1513762851147" POSITION="left" TEXT="Gearsでのメタ計算"> <node CREATED="1513761059179" ID="ID_1783544646" MODIFIED="1513761615522" TEXT="stub"> <node CREATED="1513761064415" ID="ID_598888032" MODIFIED="1513761099128" TEXT="一般的なData Gear"> <node CREATED="1513761100328" ID="ID_708282593" MODIFIED="1513761125578" TEXT="union data から C の構造体へ変換"/> <node CREATED="1513761144330" ID="ID_1914736492" MODIFIED="1513761169602" TEXT="関数呼出し時のコールフレームに相当する"/> </node> <node CREATED="1513761176818" ID="ID_828563080" MODIFIED="1513761194570" TEXT="引数の型を決めてCode Gearを送り出す"/> </node> <node CREATED="1513761616656" ID="ID_1147781164" MODIFIED="1513761620591" TEXT="goto meta"> <node CREATED="1513761622813" ID="ID_106634878" MODIFIED="1513761649697" TEXT="次のCode Gearに行く途中で挿入されるメタ計算"> <node CREATED="1513761681466" ID="ID_1232236363" MODIFIED="1513761692984" TEXT="タスク切り替え"/> <node CREATED="1513761693690" ID="ID_1712332518" MODIFIED="1513761700625" TEXT="モデル検査"/> <node CREATED="1513761701401" ID="ID_1464555281" MODIFIED="1513761705041" TEXT="デバッグ"/> <node CREATED="1513761706178" ID="ID_126955738" MODIFIED="1513761718843" TEXT="GPUの処理"/> </node> <node CREATED="1513761654926" ID="ID_535636992" MODIFIED="1513761671697" TEXT="実際には次のstubを呼び出す"/> </node> </node> <node CREATED="1513760503884" ID="ID_1687180152" MODIFIED="1513762853601" POSITION="left" TEXT="Contextの必要性"> <node CREATED="1513761218851" ID="ID_933471793" MODIFIED="1513761225560" TEXT="Task"> <node CREATED="1513761230329" ID="ID_206220729" MODIFIED="1513761245634" TEXT="通常のOSのスレッドに対応する"/> <node CREATED="1513761252022" ID="ID_1925811247" MODIFIED="1513761272641" TEXT="実行するCode Gear と Data Gear をすべて持っている"/> <node CREATED="1513761283705" ID="ID_1110011992" MODIFIED="1513761305969" TEXT="Context自体は通常計算からアクセスしない"> <node CREATED="1513761306330" ID="ID_847787492" MODIFIED="1513761313785" TEXT="例えばポインタは出てこない"/> <node CREATED="1513761318679" ID="ID_1073600385" MODIFIED="1513761328625" TEXT="メタレベルではポインタは出てくる"/> </node> </node> <node CREATED="1513761344906" ID="ID_42801685" MODIFIED="1513761361136" TEXT="Code Gear"> <node CREATED="1513761362241" ID="ID_1664184284" MODIFIED="1513762441701" TEXT="入力引数の型"> <icon BUILTIN="full-2"/> </node> <node CREATED="1513761381991" ID="ID_1321956089" MODIFIED="1513761392657" TEXT="引数への処理"/> <node CREATED="1513761397553" ID="ID_147785556" MODIFIED="1513761423673" TEXT="次のCode Gearに決まった引数で移行する"/> <node CREATED="1513761429079" ID="ID_1630285576" MODIFIED="1513761441041" TEXT="Code Gear のメタ情報"> <node CREATED="1513761448097" ID="ID_416876863" MODIFIED="1513761456529" TEXT="Code Gear のアドレス"/> <node CREATED="1513761457298" ID="ID_951936619" MODIFIED="1513761464857" TEXT="Code Gearの実行コード"/> <node CREATED="1513761480714" ID="ID_1686012684" MODIFIED="1513762427877" TEXT="入力の型"> <icon BUILTIN="full-2"/> </node> <node CREATED="1513761495502" ID="ID_1855825436" MODIFIED="1513762431813" TEXT="出力の型"> <icon BUILTIN="full-2"/> </node> <node CREATED="1513761559610" ID="ID_1631298528" MODIFIED="1513762372845" TEXT="Code Gearの番号"> <icon BUILTIN="full-1"/> </node> <node CREATED="1513761594418" ID="ID_1035048411" MODIFIED="1513761600271" TEXT="Stub"/> <node CREATED="1513761601030" ID="ID_439800382" MODIFIED="1513761604399" TEXT="goto meta"/> </node> </node> <node CREATED="1513761519658" ID="ID_1032169357" MODIFIED="1513761526778" TEXT="Data Gear"> <node CREATED="1513761526779" ID="ID_1540589097" MODIFIED="1513761767481" TEXT="Data Gear のメタ情報"> <node CREATED="1513761540242" ID="ID_1640042783" MODIFIED="1513762436533" TEXT="格納する引数の型"> <icon BUILTIN="full-2"/> </node> <node CREATED="1513761552346" ID="ID_1449646410" MODIFIED="1513761558700" TEXT="番号"/> <node CREATED="1513761578738" ID="ID_1026576907" MODIFIED="1513761591929" TEXT="Meta Data Gear へのポインタ"/> </node> </node> <node CREATED="1513761828725" ID="ID_61367354" MODIFIED="1513761836385" TEXT="Meta Data Gear"> <node CREATED="1513761839728" ID="ID_1213178012" MODIFIED="1513761850033" TEXT="メモリのリニアアロケーション用のポインタ"/> <node CREATED="1513761851125" ID="ID_1792364876" MODIFIED="1513761862327" TEXT="Task Queue"/> <node CREATED="1513761874624" ID="ID_152362819" MODIFIED="1513761882688" TEXT="Code Gear table"/> <node CREATED="1513761883521" ID="ID_678500932" MODIFIED="1513761892936" TEXT="Data Gear table"/> </node> </node> <node CREATED="1513760513028" ID="ID_480632406" MODIFIED="1513760522259" POSITION="left" TEXT="Interfaceの必要性"> <node CREATED="1513761940353" ID="ID_248016039" MODIFIED="1513761995064" TEXT="CodeとDataの集合を表すData Gear"/> <node CREATED="1513761997774" ID="ID_1365760236" MODIFIED="1513762013592" TEXT="モジュールとかオブジェクトに対応する"/> <node CREATED="1513762028726" ID="ID_1773732250" MODIFIED="1513762044376" TEXT="決まった引数を持つメソッドのスロット"> <node CREATED="1513762049377" ID="ID_123153703" MODIFIED="1513762072304" TEXT="Code Gear の番号が入る"> <node CREATED="1513762206633" ID="ID_887586608" MODIFIED="1513762217919" TEXT="interface の実装"/> </node> </node> <node CREATED="1513762086838" ID="ID_1683727777" MODIFIED="1513762095576" TEXT="引数を格納するData Gear"> <node CREATED="1513762149149" ID="ID_672075127" MODIFIED="1513762157416" TEXT="特に戻り先がある"/> </node> <node CREATED="1513762165943" ID="ID_1780428913" MODIFIED="1513762175488" TEXT="一段のサブルーチンコール"/> <node CREATED="1513762184705" ID="ID_1142267610" MODIFIED="1513762197176" TEXT="これによってGearsをモジュール化する"/> </node> <node CREATED="1513762235885" ID="ID_1364001043" MODIFIED="1513762257184" POSITION="left" TEXT="stub と Context の生成"> <node CREATED="1513762311768" ID="ID_1756076963" MODIFIED="1513762361198" TEXT="code gear の番号"> <icon BUILTIN="full-1"/> </node> <node CREATED="1513762378721" ID="ID_1309128215" MODIFIED="1513762419478" TEXT="Data Gear の型"> <icon BUILTIN="full-2"/> </node> <node CREATED="1513762489861" ID="ID_756579895" MODIFIED="1513762505055" TEXT="Data Gear の番号"/> <node CREATED="1513762507680" ID="ID_1732211810" MODIFIED="1513762516959" TEXT="Stubの生成"/> </node> <node CREATED="1513760532728" ID="ID_1228592616" MODIFIED="1513760568243" POSITION="left" TEXT="比較"> <node CREATED="1513760568243" ID="ID_1608348636" MODIFIED="1513760578857" TEXT="既存のOS"> <node CREATED="1513762542024" ID="ID_1566570822" MODIFIED="1513762563471" TEXT="ユーザーレベルとシステムレベルを持っている"/> <node CREATED="1513762567376" ID="ID_739022857" MODIFIED="1513762583431" TEXT="システムレベルではメタ計算の分離はない"/> <node CREATED="1513762584728" ID="ID_159373267" MODIFIED="1513762595967" TEXT="Gearsではメタ計算を階層化できる"/> <node CREATED="1513762601944" ID="ID_1769391569" MODIFIED="1513762638905" TEXT="プロセスやファイルが型を持っていない"/> <node CREATED="1513762620744" ID="ID_661511565" MODIFIED="1513762630063" TEXT="Gearsは型を持っている"/> <node CREATED="1513762731812" ID="ID_1655164257" MODIFIED="1513762782265" TEXT="既存のOSでメタ計算を使おうとするとOSを書き換える必要がある"/> </node> <node CREATED="1513760580640" ID="ID_908909110" MODIFIED="1513760591843" TEXT="リアルタイムモニタ"> <node CREATED="1513762640016" ID="ID_1575024579" MODIFIED="1513762653991" TEXT="OSの一種の簡略バージョン"/> <node CREATED="1513762658144" ID="ID_1543870637" MODIFIED="1513762664463" TEXT="Gearsに近い"/> <node CREATED="1513762665184" ID="ID_23077089" MODIFIED="1513762681727" TEXT="APIを使って資源管理を行う"/> <node CREATED="1513762682128" ID="ID_1943328902" MODIFIED="1513762717704" TEXT="Gears OSの場合はメタ計算を使って行う "/> </node> <node CREATED="1513760592628" ID="ID_214777962" MODIFIED="1513760600505" TEXT="GPGPU"/> </node> <node CREATED="1513760606198" ID="ID_396827059" MODIFIED="1513760780939" POSITION="left" TEXT="結論"> <node CREATED="1513760623051" ID="ID_755908511" MODIFIED="1513760643914" TEXT="GearsOSのメタ計算部分の実装例を示した"/> <node CREATED="1513760815807" ID="ID_434575356" MODIFIED="1513760822266" TEXT="メタ計算の有効性"/> <node CREATED="1513760823196" ID="ID_704467311" MODIFIED="1513760836410" TEXT="Interfaceの有用性"/> </node> </node> </map>