Mercurial > hg > Events > OSC2009
changeset 6:05e384a4e00b
task
author | aaa |
---|---|
date | Sat, 26 Sep 2009 02:49:43 +0900 |
parents | c6fc9fb5ca9d |
children | e5fb71cb32c3 |
files | presen/presen.html |
diffstat | 1 files changed, 95 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/presen/presen.html Sat Sep 26 01:57:10 2009 +0900 +++ b/presen/presen.html Sat Sep 26 02:49:43 2009 +0900 @@ -144,6 +144,94 @@ <div class="slide" id="id1"> <h1>Task の作り方</h1> +<p>SchedTask を継承した class を作る</p> +<table border="1"> +<tr> +<td> +<pre> +// SpeTask.h + +class SpeTask : public SchedTask { + SchedConstructor( SpeTask ); + + int run(TaskManager *manager, void *rbuf, void *wbuf); +}; + +</pre> +</td> +</tr> +</table> +<p>run 関数は Task における main 関数のようなもの</p> +<p>SchedConstructor() で class 名を登録する</p> +</div> + +<div class="slide" id="id1"> +<h1>Task の作り方(Con't)</h1> +<p>SpeTask.cc で SchedDefineTask( SpeTask ); と書く +<br>spe というディレクトリの下に task_init() という関数を定義したファイルを用意する</p> +<table border="1"><tr><td> +<pre> +#include "Func.h" +#include "SchedTask.h" + +SchedExternTask(SpeTask); + +void +task_init() +{ + SchedRegisterTask(TASK_SPE, SpeTask); +} +</pre> +</td></tr></table> +</div> + +<div class="slide" id="id1"> +<h1>Task の作り方(Con't)</h1> +<p>SchedRegisterTask(TASK_SPE, SpeTask) で SpeTask に TASK_SPE という ID をつけて登録します<br><br> +TASK_SPE は Func.h で enum で定義されています。</p> +<p>これで Task 生成の下準備は終わりです</p> +</div> + + +<div class="slide" id="id1"> +<h1>Task の作り方(Con't)</h1> +<br> +<table border="1"><tr><td> +<pre> +/* 先ほど登録した ID を指定して Task を生成 */ +HTaskPtr task = manager->create_task(TASK_SPE); + +/* 入出力先の指定 */ +task->add_inData(rbuff, rbuff_SIZE); +task->add_outData(wbuff, wbuff_SIZE); + +/* CPU の指定 */ +task->set_cpu(SPE_ANY); + +/* Task の投入 */ +task->spawn(); +</pre> +</td></tr></table> +</div> + +<div class="slide" id="id1"> +<h1>Task の作り方(Con't)</h1> +<p>Task は依存関係を記述する事ができる</p> +<table border="1"><tr><td> +<pre> +/* taskB は taskA が終わるまで待つ */ +taskB->wait_for(taskA); + +/* taskC は taskB が終わるまで待つ */ +taskC->wait_for(taskB); +</pre> +</td></tr></table> + + +</div> + +<div class="slide" id="id1"> +<h1></h1> <p> </p> @@ -155,3 +243,10 @@ </p> </div> + +<div class="slide" id="id1"> +<h1></h1> +<p> + +</p> +</div>