The major difference between threads and processes is
1.Threads share the address space of the process that
created it; processes have their own address.
2.Threads have direct access to the data segment of its
process; processes have their own copy of the data segment
of the parent process.
3.Threads can directly communicate with other threads of
its process; processes must use interprocess communication
to communicate with sibling processes.
4.Threads have almost no overhead; processes have
considerable overhead.
5.New threads are easily created; new processes require
duplication of the parent process.
6.Threads can exercise considerable control over threads of
the same process; processes can only exercise control over
child processes.
7.Changes to the main thread (cancellation, priority
change, etc.) may affect the behavior of the other threads
of the process; changes to the parent process does not
affect child processes.
process is a execution of a program and program contain set
of instructions but thread is a single sequence stream
within the process.thread is sometime called lightweight
process. single thread alows a os to perform singler task
ata time similarities between process and threads are:
1)share cpu.
2)sequential execution
3)create child
4)if one thread is blocked then the next will be start to
run like process.
dissimilarities:
1)threads are not independent like process.
2)all threads can access every address in the task unlike
process.
3)threads are design to assist onr another and process
might or not might be assisted on one another.
Technically, a thread is defined as an independent stream
of instructions that can be scheduled to run as such by the
operating system.
So, in summary, in the UNIX environment a thread:
o Exists within a process and uses the process
resources
o Has its own independent flow of control as long as
its parent process exists and the OS supports it
o Duplicates only the essential resources it needs to
be independently schedulable
o May share the process resources with other threads
that act equally independently (and dependently)
o Dies if the parent process dies - or something
similar
o Is "lightweight" because most of the overhead has
already been accomplished through the creation of its
process.
Whereas in case of process, every process has its own
memory management, two process cannot communicate without
using IPCS or Sockets, they do not share resources and
every process has its own process ID(pid).
A programm in execution,as mentioned is a process.A time
share user program such as a complier is a process.
A thread is contain a peace of code and each processor
contain the one or more threads.
We are having two seperate LANs(seperate workgroups) in our
company. And configured mail server(Mail domain) in windows
2003 std server in each LAN seperately. And created user
mail Ids also. Both servers working fine, and able to send
mails with in the LAN. Let me know how we can able to send
mail from one mail domain to second mail domain.