A Large Semaphore Based Operating System The paper describes the internal structure of a large operating system as a set of cooperating sequential processes. The processes synchronize by means of semaphores and extended semaphores (queue semaphores). The number of parallel processes is carefully justified, and the various semaphore constructions are explained. The system is proved to be free of "deadly embrace" (deadlock). The design principle is an alternative to Dijkstra's hierarchical structuring of operating systems. The project management and the performance are discussed, too. The operating system is the first large one using the RC 4000 multiprogramming system. CACM July, 1975 Lauesen, S. cooperating processes, operating system, semaphores, semaphore applications, queue semaphores, deadlock, deadly embrace, hierarchical structuring, multiprogramming, operating system structure, asynchronous structuring, buffering, parallel processes, synchronizing primitives, reentrant code, RC 4000, project management, time schedule, debugging, project planning, project scheduling, reliability, program proving, coroutines, correctness, program maintenance, software paging 4.30 4.31 4.32 4.42 4.43 5.24 CA750702 JB January 9, 1978 10:32 AM 1828 4 2740 1854 4 2740 1877 4 2740 1960 4 2740 2150 4 2740 2228 4 2740 2280 4 2740 2317 4 2740 2319 4 2740 2319 4 2740 2377 4 2740 2378 4 2740 2342 4 2740 2376 4 2740 2379 4 2740 2379 4 2740 2320 4 2740 2424 4 2740 2482 4 2740 2482 4 2740 2618 4 2740 2632 4 2740 2632 4 2740 2704 4 2740 2723 4 2740 2738 4 2740 2738 4 2740 2740 4 2740 2740 4 2740 2740 4 2740 2741 4 2740 2851 4 2740 2867 4 2740 2868 4 2740 2920 4 2740 3127 4 2740 3184 4 2740 1749 5 2740 1877 5 2740 2080 5 2740 2740 5 2740 2740 5 2740 2740 5 2740