changeset 10:a7d96c2f588b

Update
author one
date Sat, 22 Apr 2017 16:51:58 +0900
parents 8e5011d1947d
children 9920afa285ef
files paper/sigos.tex paper/src/par_goto.c
diffstat 2 files changed, 6 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/paper/sigos.tex	Sat Apr 22 16:23:28 2017 +0900
+++ b/paper/sigos.tex	Sat Apr 22 16:51:58 2017 +0900
@@ -71,6 +71,8 @@
 
 % 和文概要
 \begin{abstract}
+   現代の OS では拡張性と信頼性を両立させることが要求されている。
+   信頼性をノーマルレベルの計算に対して保証し、拡張性をメタレベルの計算で実現することを目標に Gears OS を設計中である。
    Gears OS は継続を中心とした言語で記述されており、メタ計算をノーマルレベルと分けて記述することができる。並列処理はメタ計算によって記述されており、CbC自体には並列処理の機能はない。Gears OS のプログラムはCode Gear とData Gear の集まりであるinterfaceによって行われる。Gears OSでのスレッドはinterfaceの集合で出来ており、code gear data gearを接続するcontextというmeta data gear を持つ。 並行実行する場合は新しくcontextを生成し、それを時分割または、物理的なCPUに割り当てることによって実現される。 つまり、contextそのものがスレッドとなる。
 
   Gears OSでの同期機構はdata gear を待ち合わせることによって行われる。例えば、GPU上で実行する場合は必要なdata gearをGPU内部に転送し、それらが揃った時点で並列実行される。data gear の待ち合わせはメモリ上のdata gearのmeta data gear に待ち合わせ用のキューを作ることによって行われる。キューにはGears OSのスレッドつまりcontext meta data gearが入る。
@@ -232,6 +234,7 @@
 GPUへのデータ転送及びGPU側でのTaskの実行はTaskのMeta Code Gear で行われる。
 
 % session 名変えたい
+% __exit は そのcontext(thread)での終わりを示している(説明追加)
 \section{Task の設定の Meta Computation の問題}
 現在の Gears OS では 並列実行する Task の設定を Code\ref{src:setting_task} のように行っている。
 Code\ref{src:setting_task} では 実行する CodeGear、揃っていない Input Data Gear の数、Input/Output Data Gear への参照等の設定をノーマルレベルで記述している。
--- a/paper/src/par_goto.c	Sat Apr 22 16:23:28 2017 +0900
+++ b/paper/src/par_goto.c	Sat Apr 22 16:51:58 2017 +0900
@@ -1,3 +1,4 @@
-__code createTask(Integer *integer1, Integer *integer2, Integer *output) {
-    par goto add(integer1, integer2, output);
+__code createTask(Integer *integer1, Integer *integer2, Integer *output, __code next(...)) {
+    par goto add(integer1, integer2, output, __exit);
+    goto next(...);
 }