[Autogenerated] let's start by looking at the basics of thread scheduling,
we have a bunch of threads that want to execute code and have a
bunch of processors that are able to execute code.
Might have more threads that want to run than processors available.
So one of the main criteria in order to decide which threads should run first,
which threats should run perhaps later.
One thing which is probably the most important factor is the priority.
Every threat has a priority and obviously the higher the priority,
the more important the threat is and when that threat
wants to run it has a better chance of getting a process
story in order to execute code.
Another thing that is used in terms of scheduling something called affinity.
The affinity is the correlation between threats and
processors they're allowed to run on.
In most cases,
every threat can run on any available processor but we can in fact limit
that there are few reasons we might want to do that.
And lastly we have adjustments.
These adjustments are there in order to make things a bit better in some sense,
a bit more balanced because on the one hand,
we have priorities which are unfair on on the other hand,
priorities are unfair by definition,
but still in some cases we might want to perform some
adjustments to thread priorities in order to make the system
more fair in one respect or another.