[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re:Query regarding Linuc Kernel Threads



|I have a query about linux process and thread model.
|Every process has a 8KB of kernel stack, out of which
|some 960 bytes are reserved for task_struct. Now,
|task_struct uniquely identifies a process.

Correct, for Linux process and threads are identical and every process (or
thread) has its own task_struct. every process is a child to some other
process except for init. threads differs only in the sense that the share
process address space.

|That means,if any kernel thread of currently running process
|wants to access task_struct of the process, then it
|has to retrieve the corresponding task_struct by
|manipulating esp register, since task_struct lies at
|the bottom of the stack area allocated to every
|process. Now, above scenario is only possible if all
|the kernel threads of currently running process share
|the same kernel stack area allocated to the process.
|Is this true that kernel threads share kernel stack
|area allocated to a process?

since every process has its own task_strct and hence own kernel stack. if a
thread wants to access its parent process's task struct it should  make use
of task_struct->parent.

regards
lk




--
Kernelnewbies: Help each other learn about the Linux kernel.
Archive:       http://mail.nl.linux.org/kernelnewbies/
FAQ:           http://kernelnewbies.org/faq/