{"title":"Operating systems programming: the SR programming language [Book Reviews]","authors":"G. Lippman","doi":"10.1109/M-PDT.1996.532145","DOIUrl":null,"url":null,"abstract":"Operating Systems Programming is a selfcontained guide to classic operating system problems, concurrent programming, and the Synchronizing Resources language. SR, based on C and Pascal, is very understandable to readers with programming knowledge. So, I recommend this book to students studying operating systems and to programmers interested in learning concurrent programming and studying these problems and their solutions in a readily accessible working language. (SR, developed a t the University of Arizona, is fully described in The SR Language, C o m ~ remy in Practice, by Gregory R. Andrews and Ronald A. Olsson [BenjamidCmmings]. For more information on SR, access http:// www.cs.arizona.edu/sr. The compiler and utilities, available by anonymous ftp at ftp:// ftp.cs.arizona.edu/sr, are readily installed on computer systems running Unix, such as a networked Sun system, or on PCs running Linux. Linux is also available by anonymous ftp, at ftp://sunsite.unc.edu/pub/Linux, or on C D ROM. For more information on Linux, access http://www.linux.org.) Stephen Hartley has skillfully woven together a description of the SR language and SR solutions of several classic OS problems, with emphasis on the mutual exclusion of concurrent processes, race conditions, critical sections, process synchronization, interprocess communication, and parallel computing. These solutions use semaphores, monitors, and message-passing techniques on singleand multiple-CPU computer systems. (The solutions are also available by anonymous ftp, to be compiled and run by the reader.) The book has seven chapters, followed by a list of the example programs and a bibliography. Each chapter contains descriptive information, SR programs for solving the OS problems, and laboratory exercises designed to extend these solutions. Chapter 1 reviews OS programming, hardware and software interrupts, hardware protection, and CPU scheduling. Chapter 2 presents SRs sequential features first, so that readers who have not previously written concurrent or parallel programs can see how closely SR resembles the languages they already know. Elementary programs for computing factorial, sorting, and string manipulation make the presentation very concrete. Hartley demonstrates how to use Unix command-line arguments in an SR program, and describes and uses the SR resource, which is effectively equivalent to the object or module in other languages. He then shows how to animate SR programs with the Xtango software system developed by John T. Stasko and Doug Hayes. Xtango has been implemented effcctively on Unixand Linux-based computers. (Xtango is available by anonymous ftp from Georgia Tech University at ftp.cc.gatech.edu/pub/people/stasko.) Chapter 3 introduces concurrent programming in which multiple processes manipulate shared data. T o preserve data integrity, solution of the critical section problem enforces mutual exclusion of the processes relative to this data. Hartley shows how several processes can be launched from a single SR resource or from multiple resources ninning on different virtual or actual CPUs. This chapter provides a concise SR solution to the bounded sharedbuffer producer-consumer problem. It takes the reader through beginning attempts to solve the two-process critical section problem before presenting both T. Dekker’s and Gary Peterson’s solutions, and a solution to the multipleconcurrent-process critical section problem. Chapter 4 introduces the SR implementation of the semaphore ori,ginally designed by Edsger Djikstra to solve the multiple-process critical section problem with the elimination of busy waiting. In SR, semaphores are fully implemented as objects, accessible with the traditional P and V operations. This implementation alleviates the need for Unix system calls in algorithms implementing semaphores. The chapter presents semaphore-based solutions to the producer-consumer, sleepy barber, and readers-writers problems. Hartley uses the binary seinaphort., which can be constructed from tcst-and-set or an equivalent uninterruptible assembly language instruction, to construct the general semaphore. He carefully presents this ccinstruction in four graduated examples, greatly facilitating understanding. ’This chapter also presents an Xtango animation of a solution to the dining philosophers problem. Chapter 5 describes the: monitor, an application of the class found in object-oriented languages. The SR monitor is a more structured tool for protecting shared data or shared hardware such as a disk drive or a printer. The chapter gives monitor-based SR solutions for several problems, including the dining philosophers problem and the balmy problem. Chapter 6 is a tour de hrce of applications of different forins of message passing in SR.","PeriodicalId":325213,"journal":{"name":"IEEE Parallel & Distributed Technology: Systems & Applications","volume":"23 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"1996-01-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"IEEE Parallel & Distributed Technology: Systems & Applications","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/M-PDT.1996.532145","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 0
Abstract
Operating Systems Programming is a selfcontained guide to classic operating system problems, concurrent programming, and the Synchronizing Resources language. SR, based on C and Pascal, is very understandable to readers with programming knowledge. So, I recommend this book to students studying operating systems and to programmers interested in learning concurrent programming and studying these problems and their solutions in a readily accessible working language. (SR, developed a t the University of Arizona, is fully described in The SR Language, C o m ~ remy in Practice, by Gregory R. Andrews and Ronald A. Olsson [BenjamidCmmings]. For more information on SR, access http:// www.cs.arizona.edu/sr. The compiler and utilities, available by anonymous ftp at ftp:// ftp.cs.arizona.edu/sr, are readily installed on computer systems running Unix, such as a networked Sun system, or on PCs running Linux. Linux is also available by anonymous ftp, at ftp://sunsite.unc.edu/pub/Linux, or on C D ROM. For more information on Linux, access http://www.linux.org.) Stephen Hartley has skillfully woven together a description of the SR language and SR solutions of several classic OS problems, with emphasis on the mutual exclusion of concurrent processes, race conditions, critical sections, process synchronization, interprocess communication, and parallel computing. These solutions use semaphores, monitors, and message-passing techniques on singleand multiple-CPU computer systems. (The solutions are also available by anonymous ftp, to be compiled and run by the reader.) The book has seven chapters, followed by a list of the example programs and a bibliography. Each chapter contains descriptive information, SR programs for solving the OS problems, and laboratory exercises designed to extend these solutions. Chapter 1 reviews OS programming, hardware and software interrupts, hardware protection, and CPU scheduling. Chapter 2 presents SRs sequential features first, so that readers who have not previously written concurrent or parallel programs can see how closely SR resembles the languages they already know. Elementary programs for computing factorial, sorting, and string manipulation make the presentation very concrete. Hartley demonstrates how to use Unix command-line arguments in an SR program, and describes and uses the SR resource, which is effectively equivalent to the object or module in other languages. He then shows how to animate SR programs with the Xtango software system developed by John T. Stasko and Doug Hayes. Xtango has been implemented effcctively on Unixand Linux-based computers. (Xtango is available by anonymous ftp from Georgia Tech University at ftp.cc.gatech.edu/pub/people/stasko.) Chapter 3 introduces concurrent programming in which multiple processes manipulate shared data. T o preserve data integrity, solution of the critical section problem enforces mutual exclusion of the processes relative to this data. Hartley shows how several processes can be launched from a single SR resource or from multiple resources ninning on different virtual or actual CPUs. This chapter provides a concise SR solution to the bounded sharedbuffer producer-consumer problem. It takes the reader through beginning attempts to solve the two-process critical section problem before presenting both T. Dekker’s and Gary Peterson’s solutions, and a solution to the multipleconcurrent-process critical section problem. Chapter 4 introduces the SR implementation of the semaphore ori,ginally designed by Edsger Djikstra to solve the multiple-process critical section problem with the elimination of busy waiting. In SR, semaphores are fully implemented as objects, accessible with the traditional P and V operations. This implementation alleviates the need for Unix system calls in algorithms implementing semaphores. The chapter presents semaphore-based solutions to the producer-consumer, sleepy barber, and readers-writers problems. Hartley uses the binary seinaphort., which can be constructed from tcst-and-set or an equivalent uninterruptible assembly language instruction, to construct the general semaphore. He carefully presents this ccinstruction in four graduated examples, greatly facilitating understanding. ’This chapter also presents an Xtango animation of a solution to the dining philosophers problem. Chapter 5 describes the: monitor, an application of the class found in object-oriented languages. The SR monitor is a more structured tool for protecting shared data or shared hardware such as a disk drive or a printer. The chapter gives monitor-based SR solutions for several problems, including the dining philosophers problem and the balmy problem. Chapter 6 is a tour de hrce of applications of different forins of message passing in SR.