Run-to-completion scheduling or nonpreemptive scheduling is a
scheduling
A schedule (, ) or a timetable, as a basic time-management tool, consists of a list of times at which possible tasks, events, or actions are intended to take place, or of a sequence of events in the chronological order in which such things ...
model in which each task runs until it either finishes, or explicitly yields control back to the scheduler.
Run-to-completion systems typically have an
event queue
In computer science, message queues and mailboxes are software-engineering components typically used for inter-process communication (IPC), or for inter- thread communication within the same process. They use a queue for messaging – the ...
which is serviced either in strict order of admission by an
event loop
In computer science, the event loop (also known as message dispatcher, message loop, message pump, or run loop) is a programming construct or design pattern that waits for and dispatches events or messages in a program. The event loop works by m ...
, or by an
admission scheduler which is capable of scheduling events out of order, based on other constraints such as
deadlines.
Some
preemptive multitasking
In computing, preemption is the act performed by an external scheduler — without assistance or cooperation from the task — of temporarily interrupting an executing task, with the intention of resuming it at a later time. This preemptive sc ...
scheduling systems behave as run-to-completion schedulers in regard to scheduling tasks at one particular
process priority level, at the same time as those processes still preempt other lower priority tasks and are themselves preempted by higher priority tasks.
See also
*
Preemptive multitasking
In computing, preemption is the act performed by an external scheduler — without assistance or cooperation from the task — of temporarily interrupting an executing task, with the intention of resuming it at a later time. This preemptive sc ...
*
Cooperative multitasking
Cooperative multitasking, also known as non-preemptive multitasking, is a computer multitasking technique in which the operating system never initiates a context switch from a running Process (computing), process to another process. Instead, in o ...
References
Algorithms
{{compsci-stub