7. Multiprogramming: Separating Processes to Separate Function

If we believe in data structures, we must believe in independent (hence simultaneous) processing. For why else would we collect items within a structure? Why do we tolerate languages that give us the one without the other?

Epigrams in Programming, in ACM SIGPLAN (Vol 17 #9, 1982) —Alan Perlis

The most characteristic program-modularization technique of Unix is splitting large programs into multiple cooperating processes. This has usually been called ’multiprocessing’ in the Unix world, but in this book we revive the older term ’multiprogramming’ to avoid confusion with multiprocessor hardware implementations.

Multiprogramming is a particularly murky area of design, one in which ...

Get The Art of UNIX Programming now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.