[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)