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

[OSASK 569] About timer routine type-B for AT.



  こんにちは、川合です。

  ひさびさに、今何を作っているかを紹介します(この機能は、OSASK
ver.0.1に組み込まれる予定です)。

  単刀直入に言って、現在、AT用のタイマールーチン・タイプBという
ものを作っています。

  タイマールーチンといえば、OTASK/ATにも入っていたのですが、あれ
はタイプAという簡単で大した事ないものです。普通のOSと同じ方法で
タイマーを管理していて、プログラムは簡単ですが性能も大した事あり
ません。「タイプA」「タイプB」という呼び方は僕が勝手に付けたも
ので一般的な言い方ではありませんが。

  タイプBは、アルゴリズムからしてタイプAとは異なります。OTASK
のタイプAでは割り込み時刻はミリ秒単位でしたが、今回のタイプBで
は0.838マイクロ秒単位です。実際には、指定時刻より多少ずれて呼び
出されますが、その誤差も数十マイクロ秒です(測定できたら、報告し
ます)。この誤差は自動的に補正されるので累積されません。またタイ
プBは、負荷が軽いのも特徴です。OTASKでの最低負荷は、K6-233のオ
ーバークロックでさえ、0.115%もありました(他のCPUでの負荷などは

    http://www.imasy.org/~kawai/otask/restim.html

をご覧ください)。タイプBなら、この負荷が1/10くらいになります。
かつて、TOWNSでタイプBの割り込みルーチンを作ったことがあったの
ですが、そのときは20MHzのi486SXマシンで、0.023%前後まで行きまし
た([OSASK:037]より)。また、時間に関するプログラムというと2000
年問題が思い出されますが、このルーチンに限れば、一千兆年の間は安
定して動作します(もちろん、ハードウェアの耐久性が十分にあったと
しての話です)。この時間は現在の宇宙の年齢(一般的なビッグバン理
論による)よりも長く、事実上問題はないと考えています。

  タイマールーチンを作り始めた理由は簡単で、これがないと先に進め
ないせいです。マルチタスクにはタイマーが欠かせませんし、ハードウ
ェアの制御にもタイマーは重要です。マウス制御にもタイマーがほしか
ったのです。しょうがないので、タイマーが無いとサポートできない機
能はOSASK ver.0.0eではばっさりと削られています。

  それでは。

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