# HG changeset patch # User mir3636 # Date 1523599639 -32400 # Node ID 6076ec5e33dec9d926b6f9744298f1d5cfc918d5 # Parent e23c914e27b4d4163951a7048ec688db2f1bd31e fix diff -r e23c914e27b4 -r 6076ec5e33de Paper/sigos.pdf Binary file Paper/sigos.pdf has changed diff -r e23c914e27b4 -r 6076ec5e33de Paper/sigos.tex --- a/Paper/sigos.tex Fri Apr 13 14:40:40 2018 +0900 +++ b/Paper/sigos.tex Fri Apr 13 15:07:19 2018 +0900 @@ -400,11 +400,15 @@ Gears OS の並列構文は par goto文で用意されている。 par goto の引数には Input/Output Data Gear と 実行後に継続する \_\_exit を渡す。 par goto で生成された Task は \_\_exit に継続することで終了する。 +par goto文でも 通常の goto 分と同様にメタへの goto 文へ置き換えられるが、par goto 文では通常の goto 文とは異なるメタへと継続する。 Gears OS の Task は Output Data Gear を生成した時点で終了するので、par goto では直接 \_\_exit に継続するのではなく、 Output Data Gear への書き出し処理(Commit)に継続される。 +Code Gear は Input に指定した Data Gear が全て書き込まれると実行され、実行した結果を Output に指定した Data Gear に書き出しを行う。 +Code Gear の引数である\_\_next が持つ引数の Data Gear が Output Data Gear となる。 + 書き出し処理は Data Gear の Queue から、依存関係にある Task を参照する。 -参照した Task が持つは実行に必要な Input Data Gear カウンタのデクリメントを行う。 +参照した Task が持つ実行に必要な Input Data Gear カウンタのデクリメントを行う。 カウンタが0になると Task が待っている Input Data Gear が揃ったことになり、 その Task を TaskManager 経由で 実行される Worker に送信する。