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

[OSASK 614] いろいろお返事.



  こんにちは、川合です。


橋 さんは 2000/05/08 01:41:31 の「[OSASK 605] Re: knimu2.」で書
きました:

>川合>す。・・・多分、ASKA/OSASKをリリースするころには、この悪癖は収ま
>川合>るでしょう。なぜなら、僕以外の人がアプリケーションを書くようにな
>川合>れば、ちゃんとシステムコールできるようにしてほしいって周りから急
>川合>かされるようになるでしょうから。
>だうだうだうだう。もしかして私も対象にしている?

  え?違うの???(笑)

>川合>  こういう、プログラム関係の質問や意見もお待ちしておりますから、
>川合>いつでもメールしてください。
>むう、やっぱりアセンブラなお勉強もしなくてはいかんなぁ。

  別にしなくていいよ、嫌ならね。・・・OSASKは、「コンピューター
の都合で人間が苦労しなきゃいけないなんてばかばかしい」っていうの
が信念だから。C言語を待ってもいいんです。・・・もっと他の言語が
ほしければ、誰かに作ってもらえばいいしね(誰も作ってくれなかった
ら自分で作るしかないけどね)。


Myurika さんは 2000/05/08 21:11:10 の「[OSASK 607] Re: knimu1 bu
g.」で書きました:

>>あれがみっともなくて、画面下部への移動を禁止するというごまかし方
>>をosask00bでやりました(全然本質的な解決になってないんですが、そ
>>れでもなんとなく「らしく」見えるようになったと僕は思いました)。
>  笑えたんで、全然オッケーです(笑)。

  ありがとうございます(笑)。

  ついでに・・・。きっとこれもお気づきでしょうが、knimuでウィン
ドウを動かせないのは、オーバーラップ処理ができないせいです。マウ
スカーソルよりも大きいものをオーバーラップして表示するのは大変な
のです。・・・ちなみに、いつしか「ぐいぐい」(今のシェルの名前)
でのウィンドウの重ねあわせ処理をご覧になったときは、Myurikaさん
はまたしても笑わずにはいられないでしょう・・・。

  そんで、シェル班はもっとまともなオーバーラップ処理のために、僕
の代わりに苦労するわけです。・・・って、どんなごまかしかたなのか
は、数ヶ月後のお楽しみ。

  そうそう、きっと誰も気付いていないと思いますが、もう一つばらし
ましょう。実は、文字の表示位置って、Y方向は1dot単位で制御できる
くせに、X方向は8ドット単位なんですよね・・・。もちろん、将来のバ
ージョンでは改善されますが・・・(分かる人には、笑)。

>  描画処理がカウンタアップよりはるかに重い仕事ということは、そのカウンタ
>を描いている間にも、描かれていないカウンタは進んでしまっているということ
>なのでしょうから。
>  マウスカーソル退避の処理を行っているタスクのカウンタが遅くなることから
>も、これはおそらく正しいのではないでしょうか?

  これはですね、僕も最初、うんうん、そうだそうだとうなずいていた
のですが、実は影響していないかもしれません。VRAMのリソース管理の
都合で、VRAMアクセス中はタスク切り替えが抑制されているからです。
つまり、あるタスクがVRAMアクセスに入ってしまったら、その一連のア
クセスが終了するまで、他のタスクは動けないのです。

  では、なぜずれるのかというと、それはタイマー割り込みなどのハー
ドウェア割り込み処理のせいだと思います。ハードウェア割り込みが起
きると、その割り込み処理はその時のタスクが処理時間を負担します。
・・・ええ、もちろん、これをもっと厳密にして割り込み処理の処理時
間をどのタスクからも独立させることは可能です。そうすれば、もっと
「ずれ」は小さくなるかもしれません。が、そのために追加される処理
は割り込み処理時間から見ても無視できるものではなく、なんだか支払
う犠牲が大きすぎるような気がするのです。さらに、そこまでやっても
「ずれ」は残ります。割り込み処理のためにCPU内の実行パイプライン
が乱れ、キャッシュが荒らされ、それによって「実行時間」と「実効命
令数」の比例関係が少し変わります。そうなると、やっぱりその分の「
ずれ」はどうしても生じます。

  OSASKは実行時間比を完璧にするOSではありません。マシンの性能を
引き出すOSです。実行時間比がぴったりそろったところで意味があると
は思えませんしね。・・・時間が気になるなら、タイマー割り込みを使
えば正確に測れます。タスク間で同期を取りたいなら、タスク間通信を
使えばいいわけです。

  ええ、じゃあ、なんで僕が実行時間比が比較的正確に制御できている
ことを示したのかといいますと、それは「そういうこともできる」とい
うことを示したかっただけです。普通、実行時間比はカーネル任せで、
ユーザーが細かく指定したりはできません。OSASKでは(少なくとも「
ぐいぐい」では)、それがある程度は可能だというわけです。


橋 さんは 2000/05/09 01:23:47 の「[OSASK 608] Re: knimu1 bug.」
で書きました:

>川合>  うちは430TXでMyurikaさんは440BXですから、きっと、osask00aとosa
>川合>sk00bはインテルのチップセットでしか動かないのでしょう。まあ、PIC
>川合>の初期化を間違えるというひどいバグが両バージョンには存在しますか
>川合>ら、たとえインテルのチップセットであっても、他の方が試すのはおす
>川合>すめしません。
>うちはNon-Intel。

  うん。だから、osask00aの現象を知ってはいるけど、体験できてはい
なんだよね。あれはね、ショックなのだよ。「うお、マウスカーソル、
裏切ったのか?!」・・・特に、問題の起きない領域を3分間くらいう
ろついて、うんうん、これは立派なマウスカーソルだ、と思い込んでか
らやると、衝撃的なのです・・・。橋さんに体験させられなくて、少し
残念です。

>んと、knimu2、昨日寝る前にPCぶち回しにして、朝まで問題なかったので
>長時間の方も問題なさそうです。
>#えと、5時間は寝たかな?嘘だな、本読んでたし。でも実動6時間くらいだと思います。

  よかった。・・・もう、あんなバグはないと思うから、そんなにがん
ばらなくていいですよ。

  あ、やられると困るから言っておきますが、一千兆年間、実行し続け
ると、INT 0x0Dが起きます、多分。これはバグではなく仕様ですので、
ご心配なく。


橋 さんは 2000/05/11 01:09:20 の「[OSASK 611] Re: マウスに関する
バグ.」で書きました:

>川合>  僕の感触では、マウスの初期化に失敗しているのではないかとみてい
>川合>ます。OSASK ver.0.0〜knimu2では、マウスの初期化の完了を待たずにV
>川合>GAやtimerの初期化を行ない、初期化が完了したものから次々とmainに
>川合>移行しています。マウスの初期化が終わらないと、いつまでたってもマ
>川合>ウスカーソルが表示されず、にもかかわらず他の処理には差し障りない
>川合>のです。
>分離しているってことだね。

  うん。平行に実行しているから、初期化時間も稼げるんだ。linuxの
コードとか見ると、初期化に限っては、平気でソフトウェアアイドリン
グしているんだよね(初期化完了をI/Oポーリングで待っている)。僕
には貴重な起動時間だから、OSASKはそんなことはしません。

>マウスの初期化に関連するような処理は、M/B側なのかな?
>そうでないなら、スペース確保のためにスライドパッドなものを
>予備として購入してもいいかな、とか思ってはいますけど。

  これはきっと障害が出ないと思います。もちろん、原因を特定してい
ないので断言はできませんが、チップセット関係だと、僕はにらんでい
ます。

>今度時間と金があったら、若松とかに近日入荷するという20k円の
>例のPCの購入、考えてみようかなぁ・・・
>#確かタッチパネルのヤツだったような・・・

  OSASKのテストのために、マシンを買ったりはしないでね。・・・も
ちろん、他の目的があって購入して、それでついでにテストしてくれる
のは歓迎だけど。


  それでは。

--
    川合 秀実(KAWAI Hidemi)
川合堂社長 / OSASK計画総指揮 / カーネル開発班
E-mail:kawai !Atmark! imasy.or.jp
Homepage http://www.imasy.or.jp/~kawai/