(toppers-users 22) Re: 複数タスクのdly_tsk実行後の待ち解除順序について

Kimitsugu Nakao kimitsugu.nakao @ gmail.com
2020年 2月 23日 (日) 10:55:31 JST


高田先生へ

亀亀うさぎです。
統合仕様書を確認いたしました。
確認不足でお時間を取らせてしまい、申し訳ありませんでした。

ありがとうございました。

2020年2月23日(日) 5:43 Hiroaki TAKADA <hiro @ ertl.jp>:

> 亀亀うさぎさん
>
> > ほぼ同じタイミングでdly_tskで待ち状態になったタスクの待ち解除は、FIFOではないのでしょうか?
>
> FIFO順になるとは限りません。TOPPERS新世代カーネル統合仕様書の4.6.1節の
> NGKI2343 にそのことが記述されています。
>
> 高田広章
> 名古屋大学
>
> On 2020/02/22 23:26, Kimitsugu Nakao wrote:
> > 亀亀うさぎです。
> >
> > 複数タスクのdly_tskからの起動順序について質問させていただきます。
> > Toppers/ASPをLinux上でシミュレーションで動作させています。
> >
> > 同じ優先度のタスク1~3を順番にdly_tsk(3000);で待ち状態にします。
> >
> 次のサンプルだと3つのタスクはほぼ同じ時刻に待ち状態に入りますが、最初に待ち状態に入ったタスク1から順番に待ちが解除されて実行状態になると考えているのですが、そのようになりません。
> >
> > コンフィギュレーションファイル
> > CRE_TSK(TASK1,{ TA_HLNG, 0, task, MID_PRIORITY, STACK_SIZE, NULL });
> > CRE_TSK(TASK2,{ TA_HLNG, 1, task, MID_PRIORITY, STACK_SIZE, NULL });
> > CRE_TSK(TASK3,{ TA_HLNG, 2, task, MID_PRIORITY, STACK_SIZE, NULL });
> >
> > CRE_TSK(MAIN_TASK, { TA_HLNG | TA_ACT, 0, main_task, MAIN_PRIORITY,
> STACK_SIZE, NULL });
> >
> > ソースコード
> > void task(VP_INT exinf)
> > {
> >
> >          syslog(LOG_INFO, "task[%d] delay start.", exinf);
> >          dly_tsk(3000);
> >          syslog(LOG_INFO, "task[%d] delay end.", exinf);
> >
> > }
> >
> > void main_task(VP_INT exinf)
> > {
> >          syslog_msk_log(LOG_UPTO(LOG_INFO), LOG_UPTO(LOG_EMERG));
> >          syslog(LOG_INFO, "Main-->実行開始");
> >
> >          syslog(LOG_INFO, "Main-->タスクの起動");
> >          act_tsk(TASK1);
> >          act_tsk(TASK2);
> >          act_tsk(TASK3);
> >
> >          syslog(LOG_INFO, "Main-->自タスクの終了");
> >          ext_tsk();
> > }
> >
> > 実行結果
> > System logging task is started on port 1.
> > Main-->実行開始
> > Main-->タスクの起動
> > Main-->自タスクの終了
> > task[0] delay start.
> > task[1] delay start.
> > task[2] delay start.
> > task[0] delay end.
> > task[2] delay end. ⇐ タスク1が実行状態にならない!
> > task[1] delay end.
> >
> > ほぼ同じタイミングでdly_tskで待ち状態になったタスクの待ち解除は、FIFOではないのでしょうか?
> > 以上、どなたか上記動作の理解についてご存じの方がいらっしゃれば、よろしくお願いいたします。
> >
>
>
>
>
>
-------------- next part --------------
HTMLの添付ファイルを保管しました...
URL: <http://www.toppers.jp/pipermail/users/attachments/20200223/e1185c5e/attachment.html>


More information about the USERS mailing list