From: shartley@dunx1.ocs.drexel.edu (shartley) Newsgroups: comp.os.misc,misc.books.technical Subject: teaching operating systems Date: 7 Dec 1994 11:34:28 -0500 In late January or early February, Oxford Univ. Press will publish my book "Operating Systems Programming: The SR Programming Language". The ISBN is 0-19-5095790. Contact them at (800) 451-7556 for a copy. Suggested list price is $25.00. The example SR programs used in the book are avaliable by anonymous ftp >from site mcs.drexel.edu in directory pub/shartley; retrieve file book_SR_examples.tar.gz or book_SR_examples.tar.Z (remember to use binary mode) to get a tar archive compressed with the GNU compression program gzip or the UNIX utility compress, respectively. Steve Hartley Drexel University shartley@mcs.drexel.edu Here is the Preface: SR is a language for concurrent programming. This book describes the SR language, presents some examples of SR programs in the context of an operating systems or concurrent programming course, and provides some programming as- signments in the form of open Student Laboratories. The SR language can be used by instructors of concurrent programming or operating systems courses to give students experience in writing concurrent programs that use multiple processes, semaphores, monitors, message passing, remote procedure calls, and the rendezvous. The language can also be used for parallel computing in a shared-memory multiprocessor or a distributed memory cluster environment. The intended audience is undergraduate and graduate students enrolled in concurrent programming and operating systems classes. Prerequisites for stu- dents are knowledge of a high-level programming language like C or Pascal and operating systems concepts. See the Instructor's Manual for more detailed prerequisites. This book is designed to be used during an operating systems course in conjunction with one of the standard texts to provide concurrent programming experience. The book can also be used in a full semester follow- on course to operating systems to provide more extensive programming experi- ence. Since most concepts and terms are defined, the book can be used as the sole text in an introductory concurrent programming course that precedes the operating systems course. The required computing environment is a UNIX platform such as a Sun 3, Sun 4, Sequent Symmetry, DECstation, SGI Iris, NeXT, HP RISC, or PC compatible running Linux. The SR examples and programming assignments in this book have been used suc- cessfully in undergraduate concurrent programming and operating systems courses at Drexel University, Philadelphia, Pennsylvania, and Trinity Univer- sity, San Antonio, Texas. The book arose out of a collection of handouts and class notes distributed to students during 1991-94 and is a greatly expanded version of [some earlier journal papers]. This book has several important features. * The material is keyed to four standard operating systems texts: Deitel, Silberschatz and Galvin, Stallings, and Tanenbaum. The relevant sections of these texts for the major concepts, such as semaphores and monitors, are indi- cated. * Each of the numerous example programs in this book includes output from one or two sample runs to show how the program works. * Algorithm animation using the animator interpreter from the XTANGO sys- tem is described and used in several of the examples. * Numerous programming assignments in the form of open Student Labora- tories are given. The example programs in this book will be made available by anonymous ftp at site mcs.drexel.edu. Contact the author for further details. Here is the TOC: Operating Systems Programming Hardware Basics Hardware and Software Interrupts Hardware Protection CPU Scheduling The SR Programming Language Sequential Features Additional Sequential Examples and Features Lab: Sequential SR Multiple Resources Lab: Resources and Capabilities Additional Features Animating Programs with XTANGO Lab: XTANGO Animation Concurrent Programming Multiple Processes in One Resource Multiple Processes in Multiple Resources Simulated versus Real Concurrency Debugging Techniques Race Conditions and Process Synchronization Lab: Race Conditions Architecture and Shared Memory Systems The Mutual Exclusion Problem Semaphores SR Semaphores Classical Operating Systems Problems Semaphore Solutions The Producers and Consumers The Sleeping Barber The Dining Philosophers The Readers and Writers Binary Semaphores Lab: Semaphores Assignment: Fix Race Condition Assignment: Multiple Producers and Consumers Assignment: Another Classical Problem Assignment: Multiple Sleeping Barbers Assignment: Dining Philosophers Assignment: Fair Readers and Writers Assignment: Baboons Crossing a Canyon Assignment: Fraternity Party Assignment: Jurassic Park Animating Operating Systems Algorithms Lab: Classical Problem Animation Monitors Monitors and SR The Producers and Consumers The Dining Philosophers The Readers and Writers Implementing Monitors with Semaphores Lab: Monitors Assignment: Fair Baboons Assignment: Sleeping Barber Assignment: Fair Dining Philosophers Assignment: Fraternity Party Assignment: Bakery Message Passing and the Rendezvous Message Passing Message Passing in SR Concurrent Programs and Message Passing Distributed Mutual Exclusion Miscellaneous Examples Lab: Message Passing Assignment: Merge Sort Assignment: Pipeline Sieve of Eratosthenes Assignment: Compare/Exchange Sort Assignment: Speedup Assignment: Algorithm Animation Rendezvous Classical Problems Using Rendezvous Nested in Statements A Lock Resource The Distributed Dining Philosophers RPC and Client-Server Programming Summary of Operations and Invocations Lab: Rendezvous Assignment: Fair Baboons Assignment: Sleeping Barber Assignment: Fair Readers and Writers Assignment: Fair Dining Philosophers Assignment: Fraternity Party Assignment: Bakery Assignment: Banker's Algorithm More Animation with XTANGO Lab: Algorithm Animation Parallel Computing Coarse-Grained Concurrency in SR Patterns of Communication Data Parallelism Shared Memory Examples Message Passing Examples Integrating Animator into SR Lab: Parallel Computing Assignment: Speedup Assignment: Race Condition Assignment: No Race Condition Instructor's Manual Sample Lab Solutions Semaphores Monitors Message Passing Rendezvous Parallel Computing