[comp.os.research] The Saguaro OS

norm@arizona.edu (Norm Hutchinson) (03/04/88)

The Saguaro Distributed Operating System

Saguaro is an operating system for computers connected by a local-area
network.  Saguaro is implemented in the SR distributed programming language.
Notable features of Saguaro include:

    channels - an interprocess communication and synchronization facility
	that generalizes UNIX pipes.  Specifically, channels provide the
	communication and synchronization mechanism to connect the input and
	output streams of different commands.  Each channel has one write
	port and one or more read ports.  Data written to a channel's write
	port is buffered on each of the channel's read ports.  More than one
	process can write to a channel's write port, in which case the
	different streams are merged in the order in which the writes are
	serviced by the channel.  Also, more than one process can read from
	the same read port, in which case each process consumes some subset
	of the data buffered on that port.

    reproduction sets and metafiles - In Saguaro, semi-transparent file
	replication and access is supported by two mechanisms: reproduction
	sets and metafiles.  A reproduction set is a collection of
	two or more files that the system attempts to keep identical each
	time a file is closed.  If one member of the reproduction set is
	inaccessible at that time, the user is notified of the error.
	A metafile is a special file that contains symbolic pathnames of
	other files, a generalization of UNIX symbolic links.  When a
	metafile is encountered during the pathname traversal performed upon
	file open, an open is attempted on each of the names contained in
	the metafile until one succeeds.  The open fails only when it has
	been determined that every component file is inaccessible.

    UTS - Saguaro makes extensive use of the Universal Type System (UTS), a
	type system containing a type expression language and an external
	data representation.  The type expression language is used in the
	system to describe user data such as files and to specify the types
	of arguments to commands and procedures; the external data
	representation is used as the basis for representing the data stored
	in system constructs such as files and channels.  These uses of UTS
	enable the system to assist in type checking and leads to a user
	interface in which command-specific templates are available to
	facilitate command invocation.

References:

Andrews, G.R., Schlichting, R.D., Hayes, R., and Purdin, T.D.M.
The design of the Saguaro distributed operating system.
IEEE Trans. on Softw. Eng. SE-13, 1 (Jan. 1987), 104-118.

Schlichting, R.D., Andrews, G.R, and Purdin, T.
Mechanisms to enhance file availability in distributed
systems.
Proc. 16th Int. Symp. on Fault-Tolerant Computing,
Vienna (July 1986), 44-49.

Purdin, T.  Enhancing file availability in distributed systems
(the Saguaro file system).
Ph.D. Dissertation, Dept. of Computer Science,
The University of Arizona, Aug. 1987.

Contact:
	Richard D. Schlichting
	Department of Computer Science
	The University of Arizona
	Tucson, AZ  85721
	602-621-4324
	rick@arizona.edu