Mercurial > hg > Game > CbCTaskManager
view memo.txt @ 0:5b089096921f
first commit.
author | kent <kent@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Fri, 18 Dec 2009 21:57:05 +0900 |
parents | |
children | 803d6bf22e6d |
line wrap: on
line source
Task o 一つ一つの仕事を表す o それぞれが別のTaskに対して依存関係を持っている o 一つのTaskは複数のコードセグメントの連なり o コードセグメント毎にスケジューラに処理を渡したい o gotoのリフレクションは今はマクロで? * ユーザーインターフェイス o wait_for (using set_depend of TM) o set_cpu (optional) o spawn TaskManager o 実行環境によらないおなじ処理 o Taskの依存関係をもとに実行に移す o 実際の実行はSchedulerに任せる o activeTaskQとwaitingTaskQをもつ o SchedulerからTaskの終了通知を受け取る o 通知を受けたらそのTaskに依存しているTaskの依存を解消 o 依存がなくなったタスクはactiveTaskQに移される o 実行中のTaskがなく, activeTaskQが0なら終了? * ユーザーインターフェイス o malloc o create_task o ?set_depend (used by wait_for of Task) o spawn_task (used by spawn of Task) Scheduler o TaskManagerに指示されたTaskを実際に実行する o CPU管理 o 実行環境毎にコードがちがう (pthread用、Cell用、クラスタ用、Fifo..) o 一度に指示されたものを実行する必要はない o Taskが終了したらTaskManagerに通知する * TaskManagerのためのインターフェイス o initialize o executeTask(Task *) o checkFInishedTask o numTask o numCPU MailManager o Schedulerとおなじく環境依存 o TaskManagerに終了通知を行う ユーザはTaskのコードセグメントを定義すればいい