They also study interprocess communication, message passing, the rendezvous, and remote procedure calls. Solutions to classical problems, such as the dining philosophers, bounded buffer producers and consumers, and readers and writers, are presented using the above concepts. 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.