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

[OSASK 1765] devers2, lisbon2(Re: devers1, lisbon1).



  こんばんは、川合です。


Koyanagi Masaaki さんは 2001/06/18 20:12:44 の「[OSASK 1763] Re:
 devers1, lisbon1.」で書きました:

>>   これは、タスクの優先順位を設定するコマンドです。"IL"はインナー
>> レベルの略です。
>試してみました。
>(1)setdefaultIL 1 を実行してcountup4を立ち上げる
>(2)setdefaultIL 2 を実行してcountup4を立ち上げる
>こうすると(2)のcountup4が(1)のcountup4の 2倍の処理速度になります。
>なるほど納得です。。
>(3)setdefaultIL 3 を実行してcountup4を立ち上げる
>を追加すると、countup4の表示する処理速度が、かなり大きくふれる
>ようになりましたが、1:2:3にしようとがんばっているようです。

  すごいです。たったあれだけの説明でここまで試されるとは思いませ
んでした(笑)。

  countup4のカウント速度が安定しないのは、おそらく、シグナルが大
量に降りかかってくるせいです。したがって、そんなにシグナルが頻発
しないcountup2を使えば、ある程度は改善するでしょう。・・・と思っ
たのですが、countup2はguide06の新仕様に対応していないので、あま
り試してほしくありません。ということで、countup5を用意しました。
ベーターリリースのページにあります。これは、countup2をguide06の
仕様に対応させただけのものです。

>今日lisbon1で10回やってみて最初の1回だけcountup4で起こりました。
>これがおきる時の特徴は以下の通りです。
>・ディスクアクセスせずにアプリを起動しようとする。
>・taskID=0のアプリを続けて起動すると全て、taskID=0で起動される
>・INSを押してから実行すると正常に起動される

  まず、taskIDが0になってしまうのは、単なるバグのようです。その
タスクは起動していません。起動していないのにtaskIDが割り振られて
いるように見えるのはバグといっていいでしょう。

  この現象は、おそらく、以下の過程で発生していると思われます。

・ディスクアクセスがエラーになったが、lisbon1はそれを検知できな
  いので正常終了したものと思い込んで、そのファイルに「キャッシュ
  済み」のマークを付ける。

・正しく読めていないので、OSASKアプリの実行ファイルではないと判
  定され、起動は取りやめになる。このとき、taskIDが0になってしま
  う。

・該当ファイルはキャッシュ済みになっているので、2度目以降のアク
  セスでは、実メディアへアクセスしない。

・Insertを押せばキャッシュが無効化されるので、メディアにアクセス
  するようになり、エラーがもう一度起きない限りうまくいく。

  さて、現時点での対策です。

  taskIDが0になってしまう問題はOSASKBS2.BINを選んでも起きます。
このバグは簡単に対処できるので、直しておきました。

  ディスクアクセスのエラーの検出は、リトライ処理などを書かなけれ
ばいけないので、ちょっと大変です。そのため、先送りしています。と
りあえず、Insertを押して再チャレンジしてください。頻度が高くなっ
てきたら、リトライ処理の記述を検討いたします。

---

  さて、taskIDが0になるバグを修正したバージョンがdevers2、lisbon
2です。そしてついでに、実行中のタスクのインナーレベルを変更する
ためのコマンドも用意しました。"setIL"です。

poko>setIL タスク番号 インナーレベル値

のように使ってください。タスク番号はtasklistで表示される値のこと
です。


  それでは。

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