The main features of schesim are as follows.

  • Fast simulation

    • By focusing on task scheduling algorithms, simulations can be quickly done without preparing any hardware and RTOS modifications.
    • If you need higher accurate simulation environments, you should try other simulation environments, for example, RTOS simulations (e.g., TOPPERS simulation environment) and hardware model simulation such as HILS (Hardware in the Loop simulation).

  • Supporting for popular scheduling algorithms

    • For single-core processor architectures
      • Basic scheduling algorithms
        • Fixed-priority scheduling (rate monotonic, deadline monotonic, static priority assignment)
        • EDF (Earliest Deadline First)
      • Two-level hierarchical scheduling algorithms (*)
        • BSS (Bandwidth Sharing Server)
        • Temporal protection algorithm
          • (*) A two-level hierarchical scheduling consists of global scheduling to schedule applications and local scheduling to schedule tasks of each application.
    • For multi-core processor architectures
      • schesim supports only a partitioning scheduling algorithm in which tasks are scheduled independently on each core. 
      • Global scheduling algorithms, in which tasks are automatically scheduled among all cores, will be supported in the future.

  • Flexible application model

    • Before schesim simulation, you have to create a model of a target application.
    • In the application model, the parameters of tasks of each application are written in a JSON file called system configuration file, and the bodies of tasks are modeled as Ruby language functions.
    • For the flexible application model, you can model a complex application more accurately.

    • In order to visualize and analysis of a simulation log of schesim, you can use TLV.
    • TLV has been developed as a visualization tool for trace logs of the TOPPERS kernel, and released as open-source from TOPPERS Project.

  • Open-source

    • Source code of schesim has been distributed with Apache License Version 2.0.
    • You can modify source code and add your original scheduling algorithms for free.

  • Works on popular OSes

    • Since schesim are implemented by Ruby language, you can execute it on Windows, Linux, and Mac OS.
    • We have confirmed that schesim works with Ruby version 1.9.3 or later.