Scheduling [Algorithms]

The goal of scheduling is to determine an assignment of tasks to processing elements and an order in which tasks are executed. If there are no precedence relations among the tasks forming a bigger job, then this problem is known as the task allocation problem.


Some commonly used Scheduling Algorithms are...

First-Come, First-Served (FCFS)
Shortest Job Next (SJN) or Shortest Job First (SJF)
Priority Scheduling
Round Robin (RR)
Multi-Level Queue Scheduling
Multi-Level Feedback Queue Scheduling
Priority Inheritance
Fair Share Scheduling
Earliest Deadline First (EDF)
Weighted Round Robin

They work for most parts but they are grossly suboptimal and leave a lot to be desired in terms of efficiency, utilization, costs and experience.

Applications

Job Scheduling
Project Management
Employee Scheduling
Appointment Scheduling
Transportation and Logistics
Academic Timetabling
Resource Allocation
Maintenance Scheduling
CPU Scheduling
Media and Broadcasting
Sports Scheduling
Air Traffic Management
Energy Grid Management
Call Center Scheduling
Healthcare Staff Scheduling
Construction Scheduling

*** Automatski' Scheduling Algorithms can solve these problems at production scale "Today"