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のコードセグメントを定義すればいい