---
parent: ArduinOS
title: RTOSとは
date: 2018-4-14
tags: OS
---

RTOSは, 組み込み系のシステムで用いられることが多いです.

一般OSと同様にタスクの切り替えを行う点は同じですが, タスクの切り替え規則に特色があります^[wikipedia-rtos].
タスクの実行可能状態になるまでの時間の最悪値が保証されるように作られています.

===

# RTOSとは
_______________________________________________

    RTOS(Real-time operating system)は, 多数のタスクが並列に実行する点では一般の汎用OSと変わりはありませんが,
    このタスク管理に大きな特徴があります. 各タスクには優先度を設定することができ,
    低い優先度のタスク実行中に高い優先度のタスクが実行可能状態になると,
    速やかに高優先度タスクに処理を回します. このため, タスクが実行可能になってから実行するまでの時間の最悪値が
    保証されている点で"最悪応答時間が決まっている"というReal-time性が保証されています^[wikipedia-rtos].
    
    
    # タスク切り替え
        RTOSは一般OSと同じように, すべてのタスクを順番に処理を行う, つまり, CPUの演算リソースを順番に割り当てます.
        
        ![一般タスク切り替え](CURRENT_DIR/Images/TaskSwitchGeneral.png)
        
        ただし, RTOSにはタスクごとに優先度という値が与えられ, 優先度の高いタスクをまず処理します.
        優先度の高いTaskの処理が終わって(終了, 一時停止状態など)から, 優先度の低いTaskが実行されていきます.

        ![RTOSでのタスク切り替え](CURRENT_DIR/Images/TaskSwitchRTOS.png)
        
---------------------------------------------------------------
[wikipedia-rtos]: [Wikipedia](https://ja.wikipedia.org/wiki/リアルタイムオペレーティングシステム)