(toppers-users 643) Re: config.txt について

Takayuki WAKABAYASHI takayuki @ ertl.ics.tut.ac.jp
2002年 11月 26日 (火) 13:57:42 JST


豊橋技科大の若林です。

Naoki Saito [mailto:saito @ nmiri.city.nagoya.jp] さんは書きました:
 > ただ,  dispatch() が「CPUロック状態」で呼ばれるとすると,
 > μITRON4.0仕様で「CPUロック状態ではディスパッチが起こらない」というこ
 > ととあわせると, これはどのように理解すればよいのでしょう?
 > 
 > ディスパッチャは「ディスパッチの起こらないシステム状態」のときに起動
さ
 > れる.ということになってしまいそうなのですが.

私個人の勝手な解釈ですが...

CPUロック状態が言うところの「ディスパッチが起らない」というのは、「プリ
エンプトされない」(邪魔されない)と解釈する方がよいと思います。優先度の高
い処理が起動され、現在実行中のタスクがプリエンプトされることで広義のディ
スパッチが起るわけですが、ここでいう「ディスパッチ禁止」は「プリエンプト
禁止 (というか延期)」を意味していると解釈しています。

つまり、「dispatch()がCPUロック状態で起動される」というのは、
「dispatch()の処理を邪魔するカーネル管理下のルーチンはどこにもいない」と
言う意味であり、ディスパッチ自体が起らないという意味ではないと解釈してい
ます。

CPUロック状態という状態が必要な最大の理由が「邪魔されたくない処理
(Critical section) があるから」なので、そんなに的外れな解釈ではないと
思っていますが... (^^;

--------
  わかばやし たかゆき (mailto:takayuki @ ertl.ics.tut.ac.jp)