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 ...