Ok. My turn - User Process - There is nothing like kernel process. Its just user process, which sometimes executes in user mode and sometimes in kernel mode. User Thread - Linux doesnt have the concept of thread. It does not implement threads separately. Thread is just a process for linux. However it shares address space with other processes. Kernel thread - Special process, which always executes in kernel mode.
So while saying THREAD in linux world its meaning maybe KERNEL THREAD or just a flow of control actually. > Please clarify the following quetions? > 1. How many kernel threads will be created for a user space process > consists say 5 threads. Mulyadi wrote - >5 too... it's 1:1...please read Ulrich drepper NPTL paper on the >rationale why it doesn't pick M:N or N:1 approach. So if you create 5 user processes there will be 5 kernel threads. Note that in this context kernel thread is not a special process (what I described above) but it is just the flow of control (the general meaning of thread). - A On 4/16/08, ravikumar <[EMAIL PROTECTED]> wrote: > > Michael Blizek wrote: > > On 09:10 Wed 16 Apr , ravikumar wrote: > > > Michael Blizek wrote: > > > On 20:57 Sun 13 Apr , V.Ravikumar wrote: > > > > Hello all, > > Please clarify the following quetions? > 1. How many kernel threads will be created for a user space process consists > say 5 threads. > > > > Zero. Just 5 kernel stacks - one for every user space thread; This stack is > used when a user space thread executes a syscall. In the kernel this is > software interrupt context. On x86 systems which do not have the syscall > instruction the syscall is executed by moving the arguments in the register > and then executing "int 0x80". Do not mix it with SoftIRQ, this is something > completly different. > > > > > 2. What is the differece btw linux kernel process and kernel thread. I read > in linux there is no differece btw a kernel process and kernel thread > > > > What is a kernel process? I thought Linux is a monolithic kernel and executes > everything in the same address space... > -Michi > > > > what is the diffrence btw process and kernel thread? > > > Threads belonging to the same process share the address space, namespace and > file descriptors. Processes do not. > > Processes can use e.g. STDIN/STDOUT and System V IPC for communicating. > > Threads usually use shared datastructures, which need to be *very* carefully > synchronized. This is often and done richt and leads to racing conditions and > deadlocks. > -Michi > > > > In the book 'Linux Kernel Development Second Edition By Robert Love' i > found the following setence. > "Linux has a unique implementation of threads: It does not differentiate > between threads and processes. To Linux, a thread is just a special kind of > process." > Then how these two were implemented , just by setting necessary flags for > clone() system call.? > And one more question how kernel schedules threads and processes. > > > >