A Large Semaphore Based Operating System

  • Søren Lauesen


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.


Magnetic Tape Test Output Paper Tape Central Logic Request Queue 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Andersen, J., Møller, T., Ravn, A.P., and Stamp, S. Rapport over Effektivt Korende Algol System (In Danish). Projekt 71–9-7. Datalogisk Institut, U of Copenhagen, 1972.Google Scholar
  2. 2.
    Brinch Hansen, P. The nucleus of a multiprogramming system. Comm. ACM13, 4 (Apr. 1970), 238–250.CrossRefGoogle Scholar
  3. 3.
    Brinch Hansen, P. RC 4000 Software, Multiprogramming System. RCSL No. 55-D140. Regnecentralen, Copenhagen, 1971.Google Scholar
  4. 4.
    Denning, P.J. Third generation computer systems. Computing Surveys3, 4 (Dec. 1971), 175–216.zbMATHCrossRefGoogle Scholar
  5. 5.
    Dijkstra, E.W. The structure of the “THE” multiprogramming system. Comm. ACM11, 5 (May 1968), 341–346.zbMATHCrossRefGoogle Scholar
  6. 6.
    Dijkstra, E.W. Cooperating sequential processes. In Programming Languages, F. Genyus (Ed.), Academic Press, New York, 1968, 43–112.Google Scholar
  7. 7.
    Dijkstra, E.W. Hierarchical ordering of sequential processes. In Operating Systems Techniques, C.A.R. Hoare and R.M. Perroth (Eds.), Academic Press, London 1972.Google Scholar
  8. 8.
    Habermann, A.N. Prevention of System Deadlocks. Comm. ACM12, 7 (July 1969), 373–377, 385.zbMATHCrossRefGoogle Scholar
  9. 9.
    Habermann, A.N. On the harmonious cooperation of abstract machines. Technische Hogeschool, Eindhoven, 1967.Google Scholar
  10. 10.
    Horning, JJ., and Randell, B. Process structuring. Computing Surveys 5, 1 (Mar. 1973), 5–30.zbMATHCrossRefGoogle Scholar
  11. 11.
    Lauesen, S. Job scheduling guaranteeing reasonable turn-around times. Acta Informatica 2(1973), 1–11.zbMATHCrossRefGoogle Scholar
  12. 12.
    Lauesen, S. Program control of operating systems. BIT13 3 (1973), 323–337.zbMATHCrossRefGoogle Scholar
  13. 13.
    Lauesen, S. Forelobig Speciflkation af Operativsystemet Boss 2 (in Danish). RCSL No. 55-D153. Regnecentralen, Copenhagen, 1971.Google Scholar
  14. 14.
    Lauesen, S. Boss 2, user’s manual, operator’s manual, installation and maintenance. RCSL No. 31-D211, 31-D230, and 31-D191, Regnecentralen, Copenhagen, 1972.Google Scholar
  15. 15.
    Lauesen, S. Implementation of semaphores and parallel processes. NBB Doc. EC-D4, Nordisk Brown Boveri, Copenhagen, 1973.Google Scholar
  16. 16.
    Lindblad Andersen, P. Monitor 3. RCSL No. 31-D109. Regnecentralen, Copenhagen, 1972.Google Scholar
  17. 17.
    Naur, P. The design of the Gier Algol Compiler. BIT 3(1963), 124–140 and 145–166.MathSciNetzbMATHCrossRefGoogle Scholar
  18. 18.
    Baker, F.T. Chief programmer team management of production programming. IBM Syst J. 1 (1972), 56–73.CrossRefGoogle Scholar

Copyright information

© Springer Science+Business Media New York 2001

Authors and Affiliations

  • Søren Lauesen

There are no affiliations available

Personalised recommendations