いろいろと調べてみたので、頭の整理も兼ねたまとめ。
現在のLinuxの基本はプリエンプションありだけれども、クリティカルセクションの最中などは
常に特定の処理が走るため、必ずしも一定時間で応答がかえってくるとは限らない。
この点でLinuxにはリアルタイム性がないとなっている。
当然、Linuxも組み込み用途で使いたいという需要から、リアルタイム(RT)化するパッチが出ている。
それがPREEMPTRTのパッチ。
厳密なリアルタイム性を保証しているわけではないが、リアルタイムにできるだけ近いものになっている。
(いわゆるソフトリアルタイム)
この、PREEMPTRTのパッチが何をやっているかに関しては、以下のスライドの前半がわかりやすい。
http://events.linuxfoundation.org/sites/events/files/slides/rtmux_1.pdf
やっていることは、
簡単に言うと、とにかくどこでもプリエンプション可能にして、処理をぶった斬れるようにすること。
Linuxの場合、どのプログラム(ドライバ)が何やっているかを気にしていると
キリがないので、どのプログラムが実行してようがとにかく実行権を取り上げる、って思想だと思う。
それ以上のリアルタイム性(いわゆるハードリアルタイム)が欲しい場合、
Xenomaiや別のOSを同時に動かすことなどがあげられる。