224
|
1 Fri Jan 13 17:47:40 JST 2017
|
|
2 Task は contextを直接使うことにする
|
|
3 DS には, まっているcontextをListを作る
|
|
4 context に実行中断中のCS の番号をいれるフィールドを用意する
|
|
5 待っているDS のcount
|
|
6 createTaskの手順
|
|
7 新しくcontextを作る
|
|
8 allocate 用のheap も用意
|
|
9 もとのcontextを全部copyする or 必要なものだけcopyする
|
|
10 待ち合わせのDS群を指定する
|
|
11 終わったあとの行き先を指定する(default は task_exit)
|
|
12 exception の行き先も必要な指定する
|
|
13 待っているDSが全部揃っていたら active Queueに入れる
|
|
14 task の実行
|
|
15 taskの実行後、 goto meta する直前で code gear commit を呼んで, Reader list を消化する
|
|
16 複数から参照されるDSは一旦localに書き出して, その後atomic に書き出す
|
|
17 複数から参照されるDSは何かしら宣言が必要
|
|
18 つまり DS には 一つ一つ owner がいる
|
|
19
|
175
|
20 Mon Nov 28 17:39:39 JST 2016
|
|
21
|
|
22 Task,TaskManager,Workerのインターフェースの実装を作成する
|
|
23 Taskを一旦Treeに入れずに直接Queueに入れる
|
|
24
|
|
25 Task
|
|
26 CodeGen
|
223
|
27 IDataSeg
|
|
28 IDataSeg
|
|
29 ...
|
175
|
30 idsCount
|
223
|
31 nextTask(can be C_exit)
|
|
32 ODataSeg?
|
175
|
33
|
|
34 TaskManager
|
|
35 createWorker
|
|
36 spawn (any,cpu,GPU)
|
|
37 taskSend
|
|
38 activeQueue
|
|
39 shutdown
|
|
40 deadlockDetectid
|
|
41
|
|
42 SynchronizedQueue * Workerの数だけ
|
|
43
|
|
44 Worker
|
|
45 execute
|
|
46 taskRecive
|
|
47 shutdown
|