[Subject Prev][Subject Next][Thread Prev][Thread Next][Subject Index][Thread Index]

[OSASK 1237] Re: ieatta2.



小柳です。

Hidemi KAWAI wrote:
> 
>   こんにちは、川合です。
> 
> Koyanagi Masaaki さんは 2000/11/05 23:03:20 の「[OSASK 1235] Re:
>  ieatta2.」で書きました:
> 
> >・countup2 を起動すると非常に動作が重くなり、アクティブウインドウ
> >の切替(画面の書換が終了するまで)に 3秒くらいかかったりする
> 
>   これは、かなりすごいです。3秒もかかるんですか・・・。それだと
> かなり絶妙なデバッグができそうです。

何かの役に立てるのでしたら、遠慮なく言って下さい。

>   違います。前の処理が完了すると変数jobnowが0になり、すぐに関数r
> unjobnext()が呼び出されてバッファリングしていた処理を開始するよ
> うになっているんです。
> 
>   F9でアクティブなウィンドウを変更した場合、一番最後にwinman0が
> 受け取るシグナルは、新しく一番上に来たウィンドウを制御しているタ
> スクからの「即時再描画完了」のシグナルです。これが来るまで、ユー
> ザーからの要求はwritejob()でバッファにため続けます。そして、「即
> 時再描画完了」を受信すると変数jobnowが0になります。

説明ありがとうございます。
良く分かりました。

>   countup2はcountup系での変わり者で、タイマーシグナルは1秒間に

>   僕の印象では、countup1の方がよっぽどシビアだと思います。なのに
> countup1では起きなくて、countup2では起きる・・・。うーん。

知識が無いので感覚で言いますが、VMware においては、countup の
レジスタカウントする部分の(本当のPC上で実行する場合と比較して)
オーバーヘッドはかなり小さく、逆にタイマーシグナルによって呼び出される
画面描画は、I/Oウエイトが二重にあるために、countup2の方が
countup1に比べて BUSYな状態時間が長いのではないでしょうか?

#昔、FM-7のトレーサ&ディスアセンブラの実装で、Virtual Machineを作って
#その上で全てで監視しながらトレースするのではなく、危険な命令のみを
#トラップしその他はそのまま本物のCPUに実行させるという方法を
#使用していたものがありましたが、私の中ではイメージ的に少し似ています。

--
小柳 雅明(Koyanagi.Masaaki !Atmark! nifty.ne.jp)