- process scheduling
- interrupt handling
- signaling
- process prioritization
- process switching
- process state
- process memory
A process is an instance of execution that runs on a processor.
task_struct -> process descriptor
parent process -> fork() -> child process -> exec() -> child process
-> exit() -> zombie process -> parent process
Kernel only assgins the new physical page to the child processes when the child
process call exec() which copies the new program to the address space of the
child process.
The child process will not be completely removed unitl the parent process knows
of the termination of its child process by the wait() system call.
A thread is an execution unit generated in a single process. It runs parallel with other threads in the same process.
Thread creation is less expensive than process creation because a thread does not need to copy resources on creation.