Mercurial > hg > Members > innparusu > slides
view 2015_06_16/slide.md @ 0:47676a16ed13
Add Slides
author | Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 14 Jul 2015 17:23:04 +0900 |
parents | |
children |
line wrap: on
line source
title: Monadに基づくMeta計算を基本とするGears OSの設計 author: Tatsuki IHA profile: lang: Japanese code-engine: coderay # 研究目的 - 当研究室では, プログラムをコードセグメント, データセグメントを用いた並列フレームワークの開発を行っている. - Gears OSでは, 並列実行に必要なMetaな機能を関数型言語におけるMonadの原理に基づいて実現する. - また, Code Segment, Data SegmentそれぞれにMeta Code Segment, Meta Data Segmentを付属させ,Many CoreやGPGPU環境でも信頼性の高い並列処理を実現する. - この研究ではGears OSの機能をCbC(Continuation based C)で実装、評価することを目的とする. # 近況 - Data SegmentへのアクセスのsyntaxをList, Synchronized Queueに適応 # 従来のDSへのアクセス - contextからDataの配列にアクセスする # 従来のDSへのアクセス ``` __code code1(struct Context* context) { context->data[Allocate]->allocate.size = .....; context->data[Allocate]->allocate.next = .....; goto meta(context, Allocator); } ``` # stubを経由したDSへのアクセス - Code Segmentは必要なDSを引数として取る - 全てのCSに対してstubを用意し, 必要なDSをstubで指定してCSを呼ぶ - stubは現在は直接書いているが, Compile時に生成されて欲しい # stubを経由したDSへのアクセス ``` __code code1(struct Context* context, struct Allocate* allocate) { allocate->size = .....; allocate->next = .....; goto meta(context, Allocator); } __code code1_stub(struct Context* context) { goto code1(context, &context->data[Allocate]->allocate); } ``` <style scoped> pre { font-size: 20px; } </style>