With multitasking being the norm these days, modern operating systems need to deal with more than one processes. As such, your operating system kernel already provides primitives for writing concurrent programs in one of the following forms:
- Processes: In this approach, we can run different parts of a program by spawning separate replicas of themselves. On Linux, this can be achieved using the fork system call. To communicate any data with the spawned processes, one can use various Inter Process Communication (IPC) facilities such as pipes and FIFOs. Process based concurrency provides you with features such as fault isolation, but also has the overhead of starting a whole new process. There's a limited number of processes you ...