fork() creates a child process with most of the attributes
of the parent process. Both parent and child processes are
executed simultaneously.
exec() replaces the current process with a the executable
pointed by the function. Control never returns to the
original program unless there is an exec() error.
processes began through a process called "fork and exec".
that is when one command starts another, the child process
first forks , the kernel copying over pages of memory from
the present process to a new location for the child process.
The child then execs, executing the new command and
overwriting the data
fork() creates a new child process and subsequently a new
entry in process table is made for the new process.
exec(), if successful, replaces the existing text segnent
of the process with that of new process. and hence, the old
process does not exists in the system any more. i dont
think, any new entry is created in the process table after
successful exec().
fork() created a newly independent process that has it's own
space in memory and also has own permission depends upon
what you assign
Using exec() the created process is a sub thread of calling
process. They also share area in memory and so that also
share all permission and resources.
fork creates a new process where the childs and the parents
address space wil be different
wen we use exec system cal,the child wil be made to share
the pages of the parent..also the permissions wil be shared
between the 2.