However, students need to write programs in a language that provides facilities for concurrent programming in order to appreciate fully the above concepts. These notes describe the SR language, which is free, runs on UNIX platforms, and supports the above constructs, and discusses its successful use as an environment for concurrent programming in an undergraduate operating systems course. The main language constructs are resources and operations. SR provides a novel integration of the mechanisms for invoking and servicing operations. Consequently, all of local and remote procedure call, rendezvous, message passing, dynamic process creation, multicast, and semaphores are supported.
SR also supports shared global variables and operations.
An SR program runs on one or more networked machines of the same architecture. True multiprocessing is supported on Silicon Graphics, Intel Paragon, and Sequent Symmetry systems, and on Sun systems running Solaris 2.3. Multiprocessing is simulated on other platforms, which include SunOS 4.x, HP RISC, DEC Alpha and Ultrix, IBM AIX, and Linux. To allow additional hands-on experience, three preprocessors convert notations for CCRs, monitors, and CSP into SR code. The latest implementation of SR is version 2.3, released in October, 1994.