Multitasking Systems: Difference between revisions

[unchecked revision][unchecked revision]
Content deleted Content added
Brendan (talk | contribs)
m Typos!
Line 28:
===Kernel Stack Per Task===
 
ForIn most kernels, each task has its own kernel stack whereused when a task moves between user-space (and user stack) and kernel (and kernel stack). ForIn this case, task switches only ever happen after something else (IRQ, exception, system call) has already caused the task to switch to kernel code and kernel stack; which means that task switches can only ever occur between tasks that are running kernel code.
 
For example (NASM syntax, 32-bit 80x86, "cdecl" calling convention, single-CPU only/globals used for "per CPU" variables, no support for FPU/MMX/SSE/AVX, untested):