herewith I am putin some furious statements, but it has led me entagled for 2 weeks so plz help me out... Now as i know every thread run in the same address space of parent(correct me if goin wrong). now process address space consist of 1) Executable code (e.g., the program's instructions), 2) Stack space for local variables and 3) Heap space for global variables and dynamically allocated memory and In Unix, heap space is further broken down into BSS (contains variables initialized to 0) and DATA sections (initialized variables and other constants). now which part of this address space is shared with thread? or in which part of address space thread will run. Now the programming mechanism of thread is somewhat as follows, call to pthread_create(id,attr,fuc-pointer,args) now when a thread is created the apprpriate function is called thru that func-pointer right. then how come v say that thread is running in parent address space because the programme code is diffrent in that function body then wat it would be in parent. its ok that thread must have local stack for the local variables..also it would share the heap for dynamically allocated memory...I meant why we say thread say as lightweight process... Now another confusion is suppose if we have forked multiple processes then would the all share the global memory or get a unique copy of that? how about threads? last but not least, is ther any difference between heap memory and wat we say global memoey.. plz reply me ASAP..thanx in anticipation. Regards, Jaydeep. __________________________________ Do you Yahoo!? Yahoo! Mail - 250MB free storage. Do more. Manage less. http://info.mail.yahoo.com/mail_250 -- Kernelnewbies: Help each other learn about the Linux kernel. Archive: http://mail.nl.linux.org/kernelnewbies/ FAQ: http://kernelnewbies.org/faq/