89 - CPU sharing between tasks
Calls to statically ordered threads. Easy to implement but inefficient.
Several processes execute sequentially (threads), each task has a fixed time slice.
A fixed rate clock initiates an interrupt to mark the time slices. Tasks execute until they complete or their execution time expired. Context saved if incomplete.
A higher priority task can "take over" a lower priority task if it interrupts it. Priorities are fixed or dynamic and are assigned based on urgency. Low priority tasks are starved, and in case of shared resources high priority tasks could be bottlenecked