アカウント名:
パスワード:
Preemptionについては本当にsourceや他のOSの実装を見たのか疑わしいところがあります。現状のLinux kernelではlock primitiveが貧弱です(特に、adaptive/blocking lockで十分なところにspin lockを使っている)。これはkernelのあちこちでinterrupt levelを引き上げることになります。結果として、割込そのものが遅れるために測定不可能なdispatch delayが生じる恐れがあります。
FreeBSDの場合、最も基本となるlockはblocking lock(多くは将来adaptiveに変更予定)です。spin lockはscheduler lockなど4種類しか用いていません。また、割込も、
元記事をもう1ど読んで気になったのですが、そもそも「なぜkernelをpreemptableにするか」という問題意識が元記事からは読み取れません。これではpreemptionがrealtime向けにしかならないというような誤解を与える恐れがあります。
一般に、OSにおけるschedulingの問題は以下の2種類に分けられます。
前者の問題はいわゆるscheduling policyです。これは本来applicationによっていかようにも決められるべきものです(実際、SVR4/MPやSolarisではschedulerを自分で作ることが可能)。一方、後者ではdispatch delayが問題になります。その大きな原因としては(preemptionができないなどlockに依らないものも含めた)優先度逆転があります。解法としてはkernelをpreemptableにする、優先度継承を行うなどの方法が知られています。
まとめると、本来kernel preemptionなどで実現したいのは「ありとあらゆるscheduling policyを支える仕組み」です。preemptionを取り上げるなら、どんなscheduling policyにも応えることができる仕掛けの1つとして書いて欲しかったなぁ...
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
開いた括弧は必ず閉じる -- あるプログラマー
見えないdispatch delayが残りそう (スコア:3, 参考になる)
Preemptionについては本当にsourceや他のOSの実装を見たのか疑わしいところがあります。現状のLinux kernelではlock primitiveが貧弱です(特に、adaptive/blocking lockで十分なところにspin lockを使っている)。これはkernelのあちこちでinterrupt levelを引き上げることになります。結果として、割込そのものが遅れるために測定不可能なdispatch delayが生じる恐れがあります。
FreeBSDの場合、最も基本となるlockはblocking lock(多くは将来adaptiveに変更予定)です。spin lockはscheduler lockなど4種類しか用いていません。また、割込も、
Re:見えないdispatch delayが残りそう (スコア:1)
OSの実装についての知識不十分なため、基本的なところで外した質問かも知れませんが、
簡単に言っちゃうと、記事でリアルタイム機能が実装されている(若
Re:見えないdispatch delayが残りそう (スコア:2, 参考になる)
なぜpreemptionを行うのか (スコア:2, 参考になる)
元記事をもう1ど読んで気になったのですが、そもそも「なぜkernelをpreemptableにするか」という問題意識が元記事からは読み取れません。これではpreemptionがrealtime向けにしかならないというような誤解を与える恐れがあります。
一般に、OSにおけるschedulingの問題は以下の2種類に分けられます。
前者の問題はいわゆるscheduling policyです。これは本来applicationによっていかようにも決められるべきものです(実際、SVR4/MPやSolarisではschedulerを自分で作ることが可能)。一方、後者ではdispatch delayが問題になります。その大きな原因としては(preemptionができないなどlockに依らないものも含めた)優先度逆転があります。解法としてはkernelをpreemptableにする、優先度継承を行うなどの方法が知られています。
まとめると、本来kernel preemptionなどで実現したいのは「ありとあらゆるscheduling policyを支える仕組み」です。preemptionを取り上げるなら、どんなscheduling policyにも応えることができる仕掛けの1つとして書いて欲しかったなぁ...
Re:なぜpreemptionを行うのか (スコア:1)
げっ!そんなことまでできるんだ。確かにタイミングがクリティカルな用途(音楽再生とか、データ収集とか)などでなくとも、そういう機能は欲しいですが、実際に実装するとなると飛んでもないことになるはずなので諦めてたんですが....既にできてたとは。Solaris恐るべし....。
#しかしそうなると、x86のサポートなくなったことがホントに痛いなぁ。