Thanks for the information. It helps a lot!
Just want to make sure I understand it. Could you please confirm or correct me on the following two questions:
- on a lk2.4 uni-processor box. Can we say only one function, which could be kernel's or my module's (my module is part of kernel any way), can run at a time and that function execution must complete before another kernel function can be invoked, correct?
Exactly,
- on a lk2.6 ("Preemptive kernel") uni-processor box, kernel can switch back and forth between two kernel function executions before they complete (i.e. using time sharing), right?
Yes,
But not always. There are times where kernel premption is not possible. In places where preemption causes race conditions. preemption is disabled using
preempt_disable()
preempt_enable()
get_cpu()
put_cpu()
regards manish
_________________________________________________________________
Tired of spam? Get advanced junk mail protection with MSN 8. http://join.msn.com/?page=features/junkmail
-- Kernelnewbies: Help each other learn about the Linux kernel. Archive: http://mail.nl.linux.org/kernelnewbies/ FAQ: http://kernelnewbies.org/faq/