[Subject Prev][Subject Next][Thread Prev][Thread Next][Subject Index][Thread Index]
[OSASK 646] TAPIの仕様変更.
こんにちは、川合です。
まだTAPIをいじっているのですが、仕様が少し変わりそうです。その
部分だけについて簡単に説明します。
(旧仕様)
・1タスクにつき、ローカルレベルは8個まで持てる。
・外部タスクからのシグナルで、自動的に任意のローカルレベルに変更
できる(シグナルとローカルレベルの対応を事前に登録しておく必要
がある)。
(新仕様)
・1タスク当たりのローカルレベル数の上限はなくなった。
・外部タスクからのシグナルでは、特定のローカルレベルにしか変更で
きない。もし、他のレベルへ移行させたい場合、外部タスクからメッ
セージを送り、受け取ったタスクが自発的にローカルレベルを変更す
る、という手順になる。
新仕様に変更された主な理由は、ローカルレベルが外部から不意にい
じられると、その管理がややこしくなってしまう、というそれだけのた
めです。ローカルレベルの変更に応じるか応じないかはタスク次第なの
ですが、これは暴走に対する備えがおろそかになるわけではありません
。ローカルレベルの具体的な内容(グローバルレベルとインナーレベル
)の制御の全てをシェルが握っていることに変りはなく、今回の仕様変
更はプログラムを書くのがちょっと面倒になるだけで、本質的には何も
変わっていません。
外部からローカルレベルの指定を許していたことと、ローカルレベル
の自動変更管理のせいでローカルレベル数に制限があったのですが、そ
れをあきらめたせいで上限がなくなりました。ローカルレベルは、本来
タスク側がコントロールすべきもので、OSが管理するべきではなかった
という、たったそれだけのことに、今ごろ気付いたのです。
なお、ssizz1では、ローカルレベル、グローバルレベルの両方がサポ
ートされます。インナーレベルの完全なサポートはもうちょっと先にな
りそうです。
それでは。
--
川合 秀実(KAWAI Hidemi)
川合堂社長 / OSASK計画総指揮 / カーネル開発班
E-mail:kawai !Atmark! imasy.or.jp
Homepage http://www.imasy.or.jp/~kawai/