Processes allow for multitasking and isolation on a system. A process contains a program's execution context including memory, open files, and registers. The fork() system call creates a new child process that is a duplicate of the parent, while exec() replaces the current process with a new program. The parent can use wait/waitpid to synchronize with the child process and retrieve its exit status.