リアルタイムオペレーティングシステム(RTOS

twcritique

OSの本質である資源管理のうち、時間資源の保護および実行時間の予測可能性を提供することに特化したものを指す。
リアルタイムオペレーティングシステム – Wikipedia

リアルタイムオペレーティングシステム(以下RTOS)は、実行コンテキストを保持するオブジェクト(タスクもしくはスレッドと呼ばれる事が多い。以下タスクで統一する)と、タスク間の同期通信機構を提供する。 同期通信機構により特定のタスクに待ち状態が発生したときのスケジューリングを行うのも一般的なOSと同様RTOSの仕事であるが、このスケジューリング規則にRTOSの大きな特色がある。

RTOSに要求される一般的な要求指標の一例として以下のようなものが挙げられる。
ユーザアプリケーションから、待ちが発生しないサービスコールを呼出した場合に要する最悪値
ハードウェア割込みが発生してから、処理ルーチンを呼出すまでの最悪値
高優先度のタスクが確実に実行されることを保証するスケジューリング規則
全ては、時間制約を守ることが最優先される。
リアルタイムオペレーティングシステム – Wikipedia

タスクのマスク

マルチタスクシステムでは、複数のタスク間でデータやハードウェアリソースを共有するという問題に対処しなければならない
リアルタイムオペレーティングシステム – Wikipedia

汎用OSではユーザープログラムが割り込みをマスクすることはできないのが一般的である。
リアルタイムオペレーティングシステム – Wikipedia

というのもCPUモードによってユーザーができることは限られているためである。最近のCPUは割り込みマスクのレジスタや命令をユーザーモードでアクセスできないようにしている。しかし、組み込みシステムやRTOSの多くはアプリケーションをカーネルモードで実行可能であり、システムコールを効率化したり、OSの介入なしで動作環境の制御ができるようになっている。

タスク間のリソース共有の別の方法として「メッセージ渡し」がある。
リアルタイムオペレーティングシステム – Wikipedia

この場合、あるリソースは直接的には特定の1つのタスクのみが管理し、他のタスクがそのリソースにアクセスしたい場合は、管理タスクにメッセージを送信する。この方式でも優先順位の逆転やデッドロックは発生する可能性がある。しかし、システムが単純であればデッドロックが発生しないように設計可能であるため、性能的にはセマフォよりも不利だが、動作を予測し易い。

リアルタイムオペレーティングシステムの例 [編集]

CP/Q
eCos
Enea OSE
FreeRTOS
INtime
iRMX
LynxOS
OS-9
PowerMAX OS
QNX
RedHawk Linux
REX OS
RSX-11
RT-11
RTEMS
Smalight OS
T-Kernel
THEOS
TOPPERS
Ubuntu Studio
VRTX
VxWorks
Windows CE
μITRON

悪実行時間(さいあくじっこうじかん、英: Worst-case execution time, WCET)は、特定のハードウェアで特定の計算タスクを実行するのにかかる最長の時間を指す。最悪実行時間を知ることは、リアルタイムシステムのタイミング解析にとって最重要とされている。
最悪実行時間 – Wikipedia

汎用OSとRTOSには、以下のような違いがあります。
【第2回】リアルタイムOS(RTOS)とは(2/4):CodeZine

https://www.youtube.com/watch?v=oWmTJdYYRTg
https://www.youtube.com/watch?v=ECEvUEkSSLg
https://www.youtube.com/watch?v=TEq3-p0GWGI
https://matome.naver.jp/odai/2135958192851174501
2019年07月25日