(toppers-users 1551) Re: タスクの二重起動防止

y-ton @ mx7.ttcn.ne.jp y-ton @ mx7.ttcn.ne.jp
2004年 7月 19日 (月) 00:31:51 JST


ユートンです。

部外者が口出しするなとおしかりを受けるかも知れませんが(笑)

Masaki Muranaka さんは書きました:
>小難しく説明すると、こんな感じです。
>
>タスクというのは、実行コンテキストを抽象化したものと言えます。
>実行コンテキストというのは、ある時点での実行状態を再現できる情報の束です。
>具体的にはプログラムカウンタやレジスタ(スタック)が保持する情報に該当します。
>// task.h あたりからカーネルソースを追いかけてみると、
>// これらのレジスタの値を保持している構造体を見つけることができます。
>//// 見つけなくてもITRONプログラミングはできます。
>
>1つのタスクIDには1つの実行コンテキストが対応付きます。多重起動するためには

** Cut quoted 8 lines by the mail filter. **

タスクが特定機能を持った1チップCPUとして捉える事は出来ませんか?
スタックもPC(プログラムカウンター)も内蔵メモリで動作していると
仮定すれば、CPU番号をタスクIDに置き直せば同じ処理をするモジュールは
いくつ有っても良くCPU番号(タスクID)で管理する訳ですから2重起動に
ならない。
CPUが動いていても起動が保留されて今の動作には影響を受けず、自身が
スリープになると再び起こされて処理を開始する・・・
但し、処理モジュールが同一の(外部装置を)制御する場合は排他が必要
になるって感じで捕らえる事に無理が有りますか?
ITRON自体もマルチCPUを想定している訳ですから基本的にこんな感じで
もよいとおもいました。
Windowsも同じ機能のスレッドを多数起動して別々の仕事をさせるような事
も出来ますし・・・
考え方が間違っていましたらご容赦下さい。

部外者の独り言でした(笑)

☆・゜・。・゜☆・゜・。・゜☆
ユートン  y-ton @ mx7.ttcn.ne.jp
☆・゜・。・゜☆・゜・。・゜☆