NAME | FEATURE SUMMARY | API | ATTRIBUTES
A scheduler is a feature which provides scheduling policies . A scheduling policy is a set of rules, procedures, or criteria used in making processor scheduling decisions. Each scheduler feature implements one or more scheduling policies (also known as scheduling classes), interacting with the Core Executive according to a defined kernel internal interface. A scheduler is mandatory in all kernel instances.
Schedulers may base scheduling decisions on thread priorities, task deadlines, quality of service objectives, time sharing response, fairness among groups of threads, or any other paradigm. The Core Executive places no constraints on the type of policy, nor on the data structures used to implement a policy. Run queue structure, for example, is left to the scheduler.
All schedulers manage a certain number of per-thread and per-system parameters and attributes, and export an API for manipulation of this information or for other operations. Several system calls may be involved. threadScheduler is implemented by all schedulers, for manipulation of thread-specific scheduling attributes. Scheduling parameter descriptors defined for threadScheduler are also used in the schedparam argument of the threadCreate system call (see the description of the CORE feature).
schedAdmin is supported in some schedulers for site-wide administration of scheduling parameters.
Any scheduler may export additional system calls for specific operations.
The default basic scheduler implements the CLASS_FIFO scheduling class, which provides simple preemptive scheduling based on thread priorities. The optional ROUND_ROBIN scheduler feature enables THE additional CLASS_RR scheduling class which is similar to CLASS_FIFO but adds round-robin time slicing based on a configurable time quantum.
More detailed information about these scheduling classes is found in the threadScheduler description.
The SCHED features API is summarized in the following table:
Function Comment _FIFO _CLASS schedAdmin Administer scheduling classes + threadScheduler Get/set thread scheduling information + + |
See attributes(5) for descriptions of the following attributes:
ATTRIBUTE TYPE | ATTRIBUTE VALUE |
---|---|
Interface Stability | Evolving |
NAME | FEATURE SUMMARY | API | ATTRIBUTES