A real-time computer system requires that results arrive within a deadline period; results arriving after the deadline has passed are useless.
Hard real-time systems must guarantee that real-time tasks are serviced within their deadline periods.
Soft real-time systems are less restrictive, assigning real-time tasks higher scheduling priority than other tasks.
Real-time scheduling algorithms include rate-monotonic and earliestdeadline first scheduling.
Rate-monotonic scheduling assigns tasks that require the CPU more often a higher priority than tasks that require the CPU less often.
Earliest-deadline-first scheduling assigns priority according to upcoming deadlines—the earlier the deadline, the higher the priority.
Proportional share scheduling divides up processor time into shares and assigning each process a number of shares, thus guaranteeing each process a proportional share of CPU time.
The POSIX Pthread API provides various features for scheduling real-time threads as well.