Announcing!
In March 1995,
Oxford University Press
published 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. About 236 pages.
Paperback.
The source code for all of the SR program examples in the book is available by
anonymous ftp
in file book_SR_examples.tar.gz
(remember to use binary retrieval mode).
This is a `tar' archive file that has been compressed with the GNU
gzip utility.
The SR language is available by
anonymous ftp
in file sr.tar.Z.
An Instructor's Manual is available from the publisher,
ISBN 0-19-5095782.
It contains example solution programs to many of the Laboratory
programming assignments.
Errata
Errata information is available.
Steve Hartley
Drexel University
shartley@mcs.drexel.edu
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
assignments 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
students 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
followon course to operating systems to provide more extensive programming
experience. 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
successfully in undergraduate concurrent programming and operating systems
courses at Drexel University, Philadelphia, Pennsylvania, and Trinity
University, 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
indicated.
- 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
system is described and used in several of the examples.
- Numerous programming assignments in the form of open Student
Laboratories are given.
The example programs in this book will be made available by anonymous ftp at
site ftp.mcs.drexel.edu. Contact the author for further details.
Table Of Contents
- 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
SJH
shartley@mcs.drexel.edu