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> |