Mercurial > hg > Members > kono > Cerium
changeset 797:45c141669de7
SchedTask instance variable clean up
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 18 May 2010 17:57:19 +0900 |
parents | 67443b781404 |
children | 30f84915713b |
files | TaskManager/kernel/schedule/SchedMail.h TaskManager/kernel/schedule/SchedTask.h TaskManager/kernel/schedule/SchedTaskArray.h TaskManager/kernel/schedule/SchedTaskArrayLoad.h TaskManager/kernel/schedule/SchedTaskArrayNop.cc TaskManager/kernel/schedule/SchedTaskArrayNop.h TaskManager/kernel/schedule/SchedTaskBase.h TaskManager/kernel/schedule/SchedTaskList.h example/post_function/Makefile.macosx example/share_task/Makefile.macosx example/word_count/main.cc |
diffstat | 11 files changed, 36 insertions(+), 54 deletions(-) [+] |
line wrap: on
line diff
--- a/TaskManager/kernel/schedule/SchedMail.h Tue May 11 17:23:37 2010 +0900 +++ b/TaskManager/kernel/schedule/SchedMail.h Tue May 18 17:57:19 2010 +0900 @@ -12,17 +12,9 @@ /* constructor */ BASE_NEW_DELETE(SchedMail); - /* variables */ - memaddr params_addr; - /* functions */ SchedTaskBase* next(Scheduler *, SchedTaskBase *); -#if DEBUG - void read(void) { __debug("[SchedMail:%s]\n", __FUNCTION__); } - void exec(void) { __debug("[SchedMail:%s]\n", __FUNCTION__); } - void write(void) { __debug("[SchedMail:%s]\n", __FUNCTION__); } -#endif }; #endif
--- a/TaskManager/kernel/schedule/SchedTask.h Tue May 11 17:23:37 2010 +0900 +++ b/TaskManager/kernel/schedule/SchedTask.h Tue May 18 17:57:19 2010 +0900 @@ -1,8 +1,6 @@ #ifndef INCLUDED_SCHED_TASK #define INCLUDED_SCHED_TASK -#include <stdio.h> -#include <stdlib.h> #include "base.h" #include "Scheduler.h" #include "SchedTaskBase.h" @@ -19,24 +17,10 @@ BASE_NEW_DELETE(SchedTask); - // Task Array しか使わないが、たいした大きさではないのでいいか... - ListData inListData; - ListData outListData; - /* variables */ private: - /** - * read データ、write 用のバッファ - * readbuf には タスク登録時に設定した入力データが入っている。 - * writebuf にデータを描き込んでおくと、 - * タスク登録時に設定した出力先に書き込む - */ - void *readbuf; - void *writebuf; - - /* functions */ // override @@ -124,13 +108,6 @@ Scheduler* get_scheduler(); long get_random(); - - /* system call */ - - FILE *stdout_; - FILE *stderr_; - FILE *stdin_; - int printf(const char * format, ...); };
--- a/TaskManager/kernel/schedule/SchedTaskArray.h Tue May 11 17:23:37 2010 +0900 +++ b/TaskManager/kernel/schedule/SchedTaskArray.h Tue May 18 17:57:19 2010 +0900 @@ -24,10 +24,6 @@ private: /* variables */ - TaskPtr atask; - void *readbuf; - void *writebuf; - /* functions */ Task *last();
--- a/TaskManager/kernel/schedule/SchedTaskArrayLoad.h Tue May 11 17:23:37 2010 +0900 +++ b/TaskManager/kernel/schedule/SchedTaskArrayLoad.h Tue May 18 17:57:19 2010 +0900 @@ -18,9 +18,6 @@ private: /* variables */ - void *readbuf; - SimpleTask *task; - /* functions */ // override
--- a/TaskManager/kernel/schedule/SchedTaskArrayNop.cc Tue May 11 17:23:37 2010 +0900 +++ b/TaskManager/kernel/schedule/SchedTaskArrayNop.cc Tue May 18 17:57:19 2010 +0900 @@ -5,8 +5,8 @@ SchedTaskArrayNop::SchedTaskArrayNop(Scheduler *s, SchedTaskBase *savedTask_, Task *curTask_, Task *_array) { savedTask = savedTask_; - atask = (memaddr)savedTask->task->self; - array = _array; + params_addr = (memaddr)savedTask->task->self; + atask = _array; scheduler = s; inListData.bound = 0; @@ -55,8 +55,8 @@ SchedTaskArrayNop::write() { - scheduler->mail_write((memaddr)atask); - free(array); + scheduler->mail_write((memaddr)params_addr); + free(atask); }
--- a/TaskManager/kernel/schedule/SchedTaskArrayNop.h Tue May 11 17:23:37 2010 +0900 +++ b/TaskManager/kernel/schedule/SchedTaskArrayNop.h Tue May 18 17:57:19 2010 +0900 @@ -15,15 +15,9 @@ virtual ~SchedTaskArrayNop(); - - SchedTaskBase *savedTask; - Task *array; - private: /* variables */ - memaddr atask; - /* functions */ // override
--- a/TaskManager/kernel/schedule/SchedTaskBase.h Tue May 11 17:23:37 2010 +0900 +++ b/TaskManager/kernel/schedule/SchedTaskBase.h Tue May 18 17:57:19 2010 +0900 @@ -3,6 +3,9 @@ #include "base.h" #include "Scheduler.h" +#include <stdio.h> +#include <stdlib.h> + class Scheduler; @@ -28,16 +31,41 @@ /* variables */ + // SchedTask は、すべて同じ大きさであるべきなので、継承するクラスには、 + // 変数を置かない。ここに、すべて置く。 + // Task を実行するスケジューラ自身 Scheduler *scheduler; SimpleTaskPtr task; + TaskPtr atask; + SchedTaskBase *savedTask; // 現在スケジューラが実行している TaskList と、このタスクに対応する Task TaskListPtr list; // Task の、Tasklist での位置。(task = &list[cur_index-1]) int cur_index; + memaddr params_addr; + + /** + * read データ、write 用のバッファ + * readbuf には タスク登録時に設定した入力データが入っている。 + * writebuf にデータを描き込んでおくと、 + * タスク登録時に設定した出力先に書き込む + */ + void *readbuf; + void *writebuf; + + /* system call */ + + FILE *stdout_; + FILE *stderr_; + FILE *stdin_; + + // Task Array しか使わないが、たいした大きさではないのでいいか... + ListData inListData; + ListData outListData; };
--- a/TaskManager/kernel/schedule/SchedTaskList.h Tue May 11 17:23:37 2010 +0900 +++ b/TaskManager/kernel/schedule/SchedTaskList.h Tue May 18 17:57:19 2010 +0900 @@ -15,9 +15,6 @@ BASE_NEW_DELETE(SchedTaskList); - /* variables */ - memaddr params_addr; - /* override functions */ void read(); void exec();
--- a/example/post_function/Makefile.macosx Tue May 11 17:23:37 2010 +0900 +++ b/example/post_function/Makefile.macosx Tue May 18 17:57:19 2010 +0900 @@ -12,7 +12,7 @@ TASK_OBJS = $(TASK_SRCS:.cc=.o) LIBS += -lFifoManager `sdl-config --libs` -CC += -m64 +CC += -m32 .SUFFIXES: .cc .o
--- a/example/share_task/Makefile.macosx Tue May 11 17:23:37 2010 +0900 +++ b/example/share_task/Makefile.macosx Tue May 18 17:57:19 2010 +0900 @@ -12,7 +12,7 @@ TASK_OBJS = $(TASK_SRCS:.cc=.o) LIBS += -lFifoManager `sdl-config --libs` -CC += -m64 +CC += -m32 .SUFFIXES: .cc .o
--- a/example/word_count/main.cc Tue May 11 17:23:37 2010 +0900 +++ b/example/word_count/main.cc Tue May 18 17:57:19 2010 +0900 @@ -122,11 +122,12 @@ int index = 0; int array_task_num = 32; for (int i = 0; i < task_num; i += array_task_num) { + if (task_num-i < array_task_num) array_task_num = task_num-i; HTask *task_main = manager->create_task_array(TASK_EXEC,array_task_num,2,1,1); t_print->wait_for(task_main); int j ; Task *t_exec = 0; - for(j = 0; j < array_task_num; j++) { + for(j = 0; j < array_task_num ; j++) { t_exec = task_main->next_task_array(TASK_EXEC,t_exec); // t_exec = manager->create_task(TASK_EXEC);