Subversion Repositories HelenOS-doc

Compare Revisions

Ignore whitespace Rev 75 → Rev 76

/design/trunk/src/ch_scheduling.xml
37,12 → 37,12
</listitem>
</itemizedlist>
 
<para>The most narrow sence refers to the the synchronous register
<para>The most narrow sense refers to the the synchronous register
context. It includes all the preserved registers as defined by the
architecture. To highlight some, the program counter and stack pointer
take part in the synchronous register context. These are the registers
that must be preserved across a procedure call and during synchronous
context switches.</para>
take part in the synchronous register context. These registers must be
preserved across a procedure call and during synchronous context
switches.</para>
 
<para>The next type of the context understood by the kernel is the
asynchronous register context. On an interrupt, the interrupted execution
255,10 → 255,10
<para>Normally, for the sake of cache locality, threads are scheduled on
one of the processors and don't leave it. Nevertheless, a situation in
which one processor is heavily overloaded while others sit idle can
occur. HelenOS deploys special kernel threads to help to mitigate this
occur. HelenOS deploys special kernel threads to help mitigate this
problem. Each processor is associated with one load balancing thread
called <code>kcpulb</code> that wakes up regularily to see whether its
processor is underbalanced or not. If yes, the thread attempts to
called <code>kcpulb</code> that wakes up regularly to see whether its
processor is underbalanced or not. If it is, the thread attempts to
migrate threads from other overloaded processors to its own processor's
run queues. When the job is done or there is no need for load balancing,
the thread goes to sleep.</para>