Biography Per Brinch Hansen
Total Page:16
File Type:pdf, Size:1020Kb
Biographies Thomas Haigh, Editor University of Pennsylvania Biography used the simplest possible techniques to solve an unfa- miliar problem of modest size. Per Brinch Hansen The RC 4000 multiprogramming system introduced the novel idea of a system kernel for parallel processes and message communication that can be extended with a variety of operating systems.2 Brinch Hansen left the computer industry in 1970 and became a university researcher in the US. The implementation techniques of operating systems were reasonably well understood in the late sixties. But most systems were too large and poorly described to be studied in detail. While Edsger Dijkstra had clarified fun- Per Brinch Hansen was born 13 November 1938, in damental aspects of process synchronization, most of the Copenhagen, Denmark. He is a pioneer in the develop- literature on operating systems emphasized implementa- ment of operating system principles and parallel pro- tion details of particular systems rather than general con- gramming languages. cepts. The terminology was unsystematic and incomplete. At the time there really were no suitable textbooks on Significant work operating systems. Universities were therefore unable to Written over a period of more than 30 years, Brinch teach core courses on the subject. In 1970 Alan Perlis Hansen’s technical papers and textbooks describe a relent- invited Brinch Hansen to spend a year at Carnegie Mellon less search for simplicity exemplified by the RC 4000 mul- University where he wrote the first comprehensive text- tiprogramming system; the Solo operating system; the book on the principles of operating systems, Operating monitor notation for modular parallel programming; the System Principles.3 parallel programming languages Concurrent Pascal, Of the process of understanding operating systems he Edison, Joyce, and SuperPascal; and his scientific programs said: for parallel architectures. Throughout his career, Brinch Hansen attempted to recognize the essence of complex While writing the book I reached the conclusion that operat- software problems and express them in terms of a small ing systems are not radically different from other programs. number of abstract concepts. The technical ideas he rec- They are just large programs based on the principles of a more ognized are now standard material in textbooks on oper- fundamental subject: parallel programming. ating systems and parallel programming. His scientific Starting from a concise definition of the purpose of an oper- work can be divided into three phases: operating system ating system, I divided the subject into five major areas. First, principles (1966–1972), parallel programming languages I presented the principles of parallel programming as the (1972–1988), and computational science (1988–1998). In essence of operating systems. Then I described processor man- recent years, he has devoted increasing energy toward agement, memory management, scheduling algorithms, and documenting the historical origins of modern operating resource protection as techniques for implementing parallel systems and concurrent programming concepts. processes. Brinch Hansen studied electrical engineering at the I defined operating system concepts by algorithms written Technical University of Denmark. After graduating in in Pascal extended with an (unimplemented) notation for 1963 he joined the Danish computer company structured multiprogramming. The book includes a concise Regnecentralen. There he was a member of a Cobol com- vocabulary of operating system terminology, which is used piler group headed by Peter Naur and Jorn Jensen. He dis- consistently throughout the text.3 covered that writing is a rigorous test of simplicity: “It is just not possible to write convincingly about ideas that The combined work of Dijkstra, Tony Hoare, and cannot be understood.”1 At Regnecentralen he was Brinch Hansen on programming notation for operating responsible for the architecture and software of the RC system concepts led to the initial development of paral- 4000 minicomputer. The RC 4000 real-time control sys- lel programming languages. It began in 1971 with Hoare’s tem was his first experience with multiprogramming and notation for a conditional critical region that delays one semaphores (1967). The project succeeded because they or more processes until a Boolean expression is true. 80 IEEE Annals of the History of Computing Published by the IEEE Computer Society 1058-6180/03/$17.00 © 2003 IEEE Unfortunately, this elegant idea is inefficient processors with shared memory toward multi- because it requires periodic reevaluation of the computers with distributed memory. For micro- expression as long as it is false. One of Brinch computer networks, Brinch Hansen proposed a Hansen’s first papers on programming language combination of processes and monitors called concepts proposed an (equally inefficient) vari- distributed processes, which communicate by ant of conditional critical regions for priority means of synchronized “remote procedure scheduling. A more original idea was his intro- calls.”7 duction of scheduling queues, which eliminat- After Concurrent Pascal, Brinch Hansen ed superfluous evaluation (but complicated the designed the parallel programming languages, programming somewhat).4 Edison and Joyce, to experiment with Hoare’s Dijkstra, Hoare, and Brinch Hansen suggest- concepts of conditional critical regions and ed another parallel programming concept in synchronous message communication, 1971: the monitor, which combines synchro- respectively.8,9 nization procedures with the shared variables At the end of the preface to his collection upon which they operate. Brinch Hansen’s oper- of classic papers,1 Brinch Hansen said of his ating system book3 introduced a programming activities: notation for monitors (shared classes), based on the class concept of Simula 67. Somewhat later, In the 1990s the programming problems of oper- Hoare published a similar notation for monitors. ating systems have surfaced again in parallel sci- His proposal included a variant of Brinch entific computing: there is a serious need for Hansen’s scheduling queues (“conditions”). machine-independent programming languages By the fall of 1972 Brinch Hansen was and algorithms. To understand this challenge I already committed to the goal of developing a spent five years writing portable multicomputer parallel programming language with a modu- algorithms for typical problems in science and lar (“object-oriented”) notation for processes engineering. My book, Studies in Computational and monitors. At the California Institute of Science,10 describes this work. Technology he defined the programming lan- guage Concurrent Pascal, which supports mon- In 2002, the IEEE Computer Society award- itors and parallel processes for implementation ed Brinch Hansen its IEEE Computer Pioneer of modular operating systems. Because syn- Award for his accomplishments in operating chronization errors can be extremely difficult systems and concurrent programming. to locate by program testing, Concurrent Pascal Fittingly, this recognition came after several was designed to permit the detection of such years of work on his part to document histori- errors during compilation. With the help of a cal developments in these areas, and to cele- couple of students, a portable implementation brate and illuminate the accomplishments of of the language was running on a PDP-11 mini- his fellow pioneers. His efforts in this area have computer at the end of 1974. Concurrent already produced two edited volumes, one Pascal had obvious limitations by today’s stan- focused on classic operating systems11 and the dards. But, in 1975, it laid the foundation for other on the major breakthroughs in concur- the development of programming languages rent programming.12 Brinch Hansen recently with abstract concepts for parallelism. joined the editorial board of the IEEE Annals of Brinch Hansen used Concurrent Pascal to the History of Computing, where we hope to ben- program the portable operating system Solo as efit from his expertise and enthusiasm. a realistic test of the new programming lan- guage. The most significant contribution of Solo Quotations was undoubtedly that the program text was “Writing is a rigorous test of simplicity: It is short enough to be published in its entirety in just not possible to write convincingly about a computer journal.5 The portable implementa- ideas that cannot be understood.”1 tion of Concurrent Pascal and Solo was highly successful in spreading the software to almost “Programming is the art of writing essays in 200 installations worldwide. The time was now crystal clear prose and making them ripe for a book about the principles of abstract executable.”6 parallel programming, and so he produced The Architecture of Concurrent Programs6 while at the “Although the practical demands of soft- University of Southern California. The book ware design make simplicity essential, a more includes the complete text of three model oper- profound reason is to be found in the nature of ating systems written in Concurrent Pascal. creative work. The joy of discovery and the Technology was now moving from multi- pleasure of making something work are the January–March 2003 81 Biographies Biographical bibliography Background of Per Brinch Hansen P. Brinch Hansen, “The Programmer as a Young Dog,” Education: Brinch Hansen earned an MS in electrical engineer- The Search for Simplicity: Essays in Parallel ing in 1963 from Technical University of Denmark. Professional