The scheduling algorithms can be divided into off-line scheduling algorithms and online scheduling algorithms.

1. Offline

In offline scheduling all decisions about scheduling is taken before the system is started and the scheduler has complete knowledge about all the tasks.

During runtime the tasks are executed in a predetermined order. Offline scheduling is useful if we have a hard-real-time system with complete know-ledge of all the tasks because then a schedule of the tasks can be made which ensures that all tasks will meet their deadlines, if such a schedule exists.

2. Online

In online scheduling the decisions regarding how to schedule tasks are done during the runtime of the system. The scheduling decisions are based on the tasks priorities which are either assigned dynamically or statically.

Static priority driven algorithms assign fixed priorities to the tasks before the start of the system. Dynamic priority driven algorithms assign the priorities to tasks during runtime. Online Scheduling types:

  1. Static priority Scheduling: - Rate Monotonic Algorithm(RMA)
  2. Dynamic priority Scheduling: - Earliest Deadline First Algorithm(EDA)