Introduction to the Scheduler

A fundamental job of the operating system is to arbitrate which processes get
access to the system's resources. The process scheduler, which is also called the
dispatcher, is the portion of the kernel that controls allocation of the CPU
to processes. The scheduler supports the concept of scheduling classes. Each class defines
a scheduling policy that is used to schedule processes within the class. The
default scheduler in the Solaris Operating System, the TS scheduler, tries to give
every process relatively equal access to the available CPUs. However, you might want
to specify that certain processes be given more resources than others.

You can use the fair share scheduler (FSS) to control the allocation of available CPU resources
among workloads, based on their importance. This importance is expressed by the number
of shares of CPU resources that you assign to each workload.

You give each project CPU shares to control the project's entitlement to CPU
resources. The FSS guarantees a fair dispersion of CPU resources among projects that
is based on allocated shares, independent of the number of processes that are
attached to a project. The FSS achieves fairness by reducing a project's entitlement
for heavy CPU usage and increasing its entitlement for light usage, in accordance
with other projects.

The FSS consists of a kernel scheduling class module and class-specific versions of
the dispadmin(1M) and priocntl(1) commands. Project shares used by the FSS are specified
through the project.cpu-shares property in the project(4) database.