(toppers-users 1567) Re: dispatch()内部でのCPU例外について
Hiroaki TAKADA
hiro @ ertl.jp
2004年 8月 6日 (金) 12:57:17 JST
酔漢様
> TOPPERS/JSP 1.4のポーティング中に疑問が生じました。お教えいただければ幸
> いです。
>
> 1) m68k
> m68kのexc_sense_contextを読むと、例外発生前のsrをチェックしてマスタース
> テートであればタスクコンテキストだったと判断しているようです。ところが
> dispatch()はマスターステートで実行されますので、タスクspがTCBに保存され
> た後もタスクコンテキストと認識するように思えます。この理解は正しいでしょ
> うか。
>
** Cut quoted 9 lines by the mail filter. **
基本的には、カーネル内部でのCPU例外は致命的で復帰不可能だと思います。
さらに言いますと、CPUロック状態で発生したCPU例外から復帰するのは非常に
困難です(少なくとも、ターゲットプロセッサ非依存に回復する手段はないと
思います)。
そのため、CPU例外ハンドラ内で vsns_loc が TRUE を返した場合には、シス
テムを安全な状態に落して、リブートするか、停止状態にするのが一般的な対
処ではないかと思います。
個人的な意見ですが、CPUロック状態で発生したCPU例外ハンドラからは、戻れ
なくても許されるように思います。
高田広章
名古屋大学