Thank you for your response. I'm wanting the case of kernel 2.4. > In 2.4, a process running in the kernel (whether its a normal process or > a kernel thread) cannot be preempted. It only relinquishes the > processor when it voluntarily does so. You mean a process running in the kernel would be never preempted unless it relinquishes the processor voluntarily? If so, I get to have one concern. There are several kernel threads created at the beginning of kernel processing, aren't there? For instance, keventd or kapm, etc. How are they scheduled? I mean how they are switched to another kernel thread if they doens't have I/O-block or any other block? Do they have to relinquish the CPU share time voluntarily? But they wouldn't know when to relinquish, would they? Thanks, Shinpei Kato. -- Kernelnewbies: Help each other learn about the Linux kernel. Archive: http://mail.nl.linux.org/kernelnewbies/ FAQ: http://kernelnewbies.org/faq/