(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例外ハンドラからは、戻れ
なくても許されるように思います。

高田広章
名古屋大学