schesimの主な特徴は、以下の通りです。

  • タスクスケジューリングに特化することでシミュレーションを高速に

    • シミュレーション対象をタスクスケジューリングアルゴリズムに特化することで、RTOSやハードウェアの動作を意識することなく(*1)、高速にシミュレーションできます。
      • (*1)RTOSやハードウェアの動作を含めた、より精度の高いシミュレーションをしたい場合には、RTOSのシミュレーション環境(例えば、TOPPERSシミュレーション環境)や、ハードウェアのモデルを含むシミュレーション環境を利用する方法があります。

  • 多様なスケジューリングアルゴリズムをサポート

    • シングルコア向けのスケジューリングアルゴリズム
      • 古典的なアルゴリズム
        • 固定優先度スケジューリング(レートモノトニック、デッドラインモノトニック、静的優先度割当て)
        • EDF(Earliest Deadline First)
      • 階層型スケジューリンクアルゴリズム(*2)
        • BSS(Bandwidth Sharing Server)
        • 時間保護アルゴリズム
        • (*2)シングルプロセッサで複数のアプリケーションをスケジュールする場合に、アプリケーションをスケジュールするグローバルスケジューリングと、アプリケーション毎のタスクをスケジュールするローカルスケジューリングを、階層的にスケジュールするアルゴリズムです。
    • マルチプロセッサ向けスケジューリング
      • 現在は、実行前に、各コアにタスクを割り当てるパーティションスケジューリングのみサポートしています。
      • 実行するタスクを自動的にコアに割り当てるグローバルスケジューリングは、今後サポートする予定です。

  • 柔軟なアプリケーションモデルを採用

    • アプリケーションをシミュレータで動作させるために、アプリケーションのモデルを作成します。
    • アプリケーションモデルには、アプリケーションに含まれるタスクのパラメータと、その処理内容をテキストファイルに記述します。
    • タスクの処理内容を(Rubyの関数として)プログラム形式で記述できるので、とても柔軟に記述できます。
    • 柔軟なアプリケーションモデルを採用することで、複雑なアプリケーションもより正確に記述することができます。

    • シミュレータの出力した動作ログを、TLVに入力することでアプリケーションの動作を可視化することができます。
      • (*3)TOPPERSプロジェクトからオープンソースとして公開されている、TOPPERSカーネル向けトレースログ可視化ツールです。

  • シミュレータのソースコードの閲覧、変更が可能

    • schesimのソースコードを公開しています。
    • ソフトウェアライセンス(利用許諾)は、Apache License, Version 2.0です。
    • 無償で利用できますし、ソースコードの閲覧、変更もできます。

  • さまざまなOSで動作

    • schesimはRubyで実装されていますので、Windows、Linux、MacOS等さまざまなOS上で動作します。
    • 動作が確認されているRubyのバージョンは、1.9.3, 2.0.0です。