title: How can a kernel be non preemptive and still have multiple control paths
body: <p>In an operating systems course I took a while ago we were working on an old, non-preemptive kernel of Linux (2.4.X).  However, we were told that there could be multiple control paths in the kernel simultaneously. Doesn't that contradict the non-preemptive nature of the kernel? 
  <strong>EDIT: I mean, there is no context switch <em>inside</em> the kernel. Last time I tried asking this question I got the response "well, the Linux kernel <em>is</em> preemptive, so there's no problem".</strong></p>