Mercurial > hg > Papers > 2018 > mitsuki-sigos
changeset 26:8a177b87a3f7
update
author | mir3636 |
---|---|
date | Sat, 20 Jan 2018 14:36:12 +0900 |
parents | 39f38ed9c7a2 |
children | da3022f9122e |
files | Slide/prosym.md |
diffstat | 1 files changed, 24 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/Slide/prosym.md Fri Jan 19 18:33:56 2018 +0900 +++ b/Slide/prosym.md Sat Jan 20 14:36:12 2018 +0900 @@ -12,7 +12,7 @@ - 信頼性をノーマルレベルの計算に対して保証し、拡張性をメタレベルの計算で実現することを目標に Gears OS を設計中である。 - ノーマルレベルの計算とメタレベルの計算を切り離して記述するために Code Gear と Data Gear という単位を用いている。 - Gears OS は Continuation based C(CbC) によってアプリケーションと OS そのものを記述する。 -- 本研究では、CbC を用いた Gears OS の実装と、メタ計算の実例を示す。 +- 本研究では、CbC を用いた Gears OS の実装を示す。 <!-- # OS の拡張性と信頼性の両立 @@ -46,12 +46,12 @@ - goto の後に Code Gear 名と引数を並べて、次の Code Gear の遷移を記述する。 - この goto の行き先を継続と呼び、このときの a+b が次の Code Gear への出力となる。 ```Code_Gear -__code cs0(int a, int b){ - goto cs1(a+b); +__code cg0(int a, int b){ + goto cg1(a+b); } -__code cs1(int c){ - goto cs2(c); +__code cg1(int c){ + goto cg2(c); } ``` @@ -99,7 +99,7 @@ ```contexr /* context define */ struct Context { - int codeNum; //実行可能な code の数 + int codeNum; //実行可能な Code Gear の数 __code (**code) (struct Context*); //実行可能な code Gear のリスト void* heapStart; //Data Gear の Allocate用のヒープ void* heap; @@ -109,6 +109,23 @@ }; ``` +#Context +- Code/Data Gear の名前は enum で定義される。 +- Code/Data Gear の名前とポインタの対応は enum を使って行われる。 + +```code +enum Code { + C_cg1, + C_cg2, +}; +``` + +```data +enum Data { + D_dg1, + D_dg2, +}; +``` <!-- # CbC による Gears OS 記述の問題点 - Gears OS を CbC で実装する上でメタ計算の記述が煩雑であることがわかった。 @@ -226,7 +243,7 @@ - Context は Meta Data Gear に相当し、Code Gear や Data Gear を管理している。 - generate_context は context.h から Data Gear、generate_stub から生成されたファイルから Code Gear を取得し、以下を生成する。 - - リストで管理している Code/Data の名前とポインタを対応させるための enumCode.h、enumData.h + - Code/Data Gear を enum で定義した enumCode.h、enumData.h - 取得した Code/Data Gear から Context の生成を行う target-context - Context を生成する際の Data Gear の Allocation を行う dataGearInit.c