リアルタイム性について坂井さんの以下に示したサイトをみれば理解が深まるわけですが、リンクはるだけでこのページ終わらすのもなんなんで内容を引用しつつ情報を整理したいと思います。
http://kozos.jp/kozos/kozos26.html


■応答時間を見積もる手段
エアバッグ制御などは、衝突センサが衝突を検地してから、必ず一定時間内で処理を開始する必要があります。このような時間保証が行えるかどうかを、OSのリアルタイム性といいます。

また、「ある入力を与えたときに,応答までにかかる時間が見積もれる」という言い換えもできるようです。


(坂井さんサイトの記述引用)
まあまずよく言われることなのだけど,「リアルタイム = 軽くて速い」 ということではない.まあたいていのリアルタイムOSは軽くて速いのだけど, 軽くて速いOSをリアルタイムOSというわけではない. たとえ高速でもリアルタイム性の無いOSもあれば, 低速だがリアルタイム性のあるOSもある.
リアルタイム性というのは,正確には, 応答時間を見積もるための手段をOSが提供していて, アプリを気をつけて書くならば,応答時間を*必ず*確保できる, ということだ.




■OSにどんな見積もる手段があるんだ?
またOSの上で動作するサービス(スレッド)にリアルタイム性を提供するOSをリアルタイムOSと呼びます。

それでOSとしてはどんな工夫するのというところですが、リアルタイム性を考えるとき、スレッドに優先度というパラメータを設けて複数のスレッドが動作可能になっているときに、どちらが優先して動作するのかの選択を実施するロジックを設けたいからだということで本章の実装テーマになっています。

優先度の高いスレッドは優先度の低いスレッドに割り込んで動作することが可能になり、リアルタイム性が確保できますとある。

逆にいえば、自身の優先度よりも優先度の高いスレッドが動作可能になっている際には、そのスレッドのリアルタイム性は保証できないということだ。

CPUは1つの場合、同時に実施できるスレッドは常に1つであるのも「優先度」をもうける背景として認識しておいたほうがよさそうだ。

(★感想★)
本当に優先度設けるだけでリアルタイム性確保できるの?というとそうではないとおもうが強力な観点には違いない。

今もっている情報の範囲だけからいうと、僕的にはリアルタイムOSは、リアルタイム性を実現するための処理の1つの工夫としてスレッドに優先度を設けて先に処理を実施させるスレッドを決める仕組みを提供しているに過ぎないのではないのかなぁと思ってしまう。

たしかスレッドのサービスをある一定時間以内に収めるように記述するとか聞いたことあるが、あれもあんまりあてにならんのだよなぁ。

だってCPUが処理する速度が遅ければそれである一定時間以内に収めるなんていう保証なんてできないし。

だから当たり前だけどOSがどうのこうので議論するのと一緒に前提となるハード条件やアプリ記載の条件も認識した上でリアルタイム性を話さなくてはいけないのではないのかなぁ。(当たり前すぎてハード条件は持ち出さないのかなぁ)

また、リアルタイム性を求めるスレッド(サービス)が一気に何個も出てくる可能性があるなら、本当に時間保証できるの?というところだよなぁ。処理できるCPUは同時に1つしか処理できないわけだし。



■汎用OSのリアルタイム性?(マッピング切替は時間が食うよを坂井さんコメント引用しました)
また組み込み機器では,メモリを保護する必要はさほど無い. というよりリアルタイム性が求められることも多いため, むしろ仮想メモリを使うべきではない,ということも多い (仮想メモリを実装せずに,局所的にメモリ保護を行う場合は多いが, この場合はタスク単位でメモリが保護されるわけではない). これは仮想メモリのマッピング切替えに時間がかかるということもあるが, ページングによりリアルタイム性がまったく確保できなくなる,という理由が大きい.