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