# HG changeset patch # User tobaru # Date 1526890699 -32400 # Node ID 5790bdc1d515c10d046c445de3871510f847895c # Parent f275411f458d4bb7ecaabe92600d2f11ceba5735 add gears_structure diff -r f275411f458d -r 5790bdc1d515 Slide/image/gears_structure.png Binary file Slide/image/gears_structure.png has changed diff -r f275411f458d -r 5790bdc1d515 Slide/prosym.html --- a/Slide/prosym.html Sun May 20 21:28:30 2018 +0900 +++ b/Slide/prosym.html Mon May 21 17:18:19 2018 +0900 @@ -86,7 +86,7 @@ @@ -96,10 +96,10 @@
  • 現代のOS では拡張性と信頼性を両立させることが要求されている。
  • -
  • 本研究室では、それらを実現することを目標に Gears OS の開発を行なっている。
  • +
  • 本研究室では、拡張性と信頼性を実現することを目標に Gears OS の開発を行なっている。
  • @@ -121,7 +121,7 @@ @@ -147,7 +147,7 @@

    並列API

    @@ -256,8 +256,19 @@

    Gears OS の構造

    + +
    - Gears OS の構造 + Gears OS の構造
    @@ -317,6 +328,45 @@
    +

    Perl スクリプトによる Meta Data Gear の生成

    + +
    __code code1(struct Context *context, Integer *integer1, Integer *integer2, Integer *output) {
    +    // create context
    +    context->task = NEW(struct Context);
    +    initContext(context->task);
    +
    +    // set task parameter
    +    context->task->next = C_add;
    +    context->task->idgCount = 2;
    +    context->task->idg = context->task->dataNum;
    +    context->task->maxIdg = context->task->idg + 2;
    +    context->task->odg = context->task->maxIdg;
    +    context->task->maxOdg = context->task->odg + 1;
    +
    +    // create Data Gear Queue
    +    GET_META(integer1)->wait = createSynchronizedQueue(context);
    +    GET_META(integer2)->wait = createSynchronizedQueue(context);
    +    GET_META(integer3)->wait = createSynchronizedQueue(context);
    +
    +    // set Input Data Gear
    +    context->task->data[context->task->idg+0] = (union Data*)integer1;
    +    context->task->data[context->task->idg+1] = (union Data*)integer2;
    +
    +    // set Output Data Gear
    +    context->task->data[context->task->odg+0] = (union Data*)integer3;
    +
    +   
    +    // set TaskManager->spawns parameter
    +    Gearef(context, TaskManager)->taskList = context->taskList;
    +    Gearef(context, TaskManager)->next1 = C_code2;
    +    goto parGotoMeta(context, C_code2);
    +}
    +
    + + +
    +
    +

    スライドの流れ

    @@ -105,7 +105,7 @@ @@ -131,7 +131,7 @@

    並列API

    @@ -240,8 +240,19 @@

    Gears OS の構造

    + +
    - Gears OS の構造 + Gears OS の構造
    @@ -301,6 +312,45 @@
    +

    Perl スクリプトによる Meta Data Gear の生成

    + +
    __code code1(struct Context *context, Integer *integer1, Integer *integer2, Integer *output) {
    +    // create context
    +    context->task = NEW(struct Context);
    +    initContext(context->task);
    +
    +    // set task parameter
    +    context->task->next = C_add;
    +    context->task->idgCount = 2;
    +    context->task->idg = context->task->dataNum;
    +    context->task->maxIdg = context->task->idg + 2;
    +    context->task->odg = context->task->maxIdg;
    +    context->task->maxOdg = context->task->odg + 1;
    +
    +    // create Data Gear Queue
    +    GET_META(integer1)->wait = createSynchronizedQueue(context);
    +    GET_META(integer2)->wait = createSynchronizedQueue(context);
    +    GET_META(integer3)->wait = createSynchronizedQueue(context);
    +
    +    // set Input Data Gear
    +    context->task->data[context->task->idg+0] = (union Data*)integer1;
    +    context->task->data[context->task->idg+1] = (union Data*)integer2;
    +
    +    // set Output Data Gear
    +    context->task->data[context->task->odg+0] = (union Data*)integer3;
    +
    +   
    +    // set TaskManager->spawns parameter
    +    Gearef(context, TaskManager)->taskList = context->taskList;
    +    Gearef(context, TaskManager)->next1 = C_code2;
    +    goto parGotoMeta(context, C_code2);
    +}
    +
    + + +
    +
    +

    スライドの流れ