Wednesday, August 1, 2007

Distributed Operating Systems

Distributed Operating Systems

The ODP standards, and this text, assume a model where distributed applications are running in multiple processes in multiple computers linked by communications. The application programmer will be supported by a programming environment and run-time system that will make many aspects of distribution in the system transparent. For instance the programmer may not have to worry about where the parts of the application are running, this can all be taken care of, if required; this is called location transparency.

There is another approach to supporting applications in a distributed system, that is by using a distributed operating system. On every computer system with an operating system the O/S provides an interface which the programs use to obtain services, such as input and output.

In a distributed operating system this interface is enhanced so that a program may be run on any computer in the distributed system and access data on any other computer. The operating system provides data, execution and location transparency, often through an extended naming scheme. The advantage of a distributed operating system is that is uses an interface below that of the application program. This means the existing programming environments may be used, the programmer may use the system with little or no extra training, and in some cases existing software may be used. The disadvantage is that a number of problems are left for the programmer and user to handle, for instance concurrency; and because of the advantage above, programmers are given little support for this. Essentially, the Distributed Operating System dictates the policies of distribution for all aspects of programming. This means that the programmer is not able to use the distributed functionality in an application specific way to optimize a solution.

Another major disadvantage is that the distributed system is tied to a style of operating system interface. There are lots of different operating systems today, to meet different requirements (real or imaginary); there is no reason why future distributed systems will not need different operating system interfaces. Consequently it is not possible to build a truly heterogeneous open distributed system by building it on top of an homogeneous distributed operating system.

The ODP model provides an application interface to the distributed system. This interface is extremely simple and is concerned with aspects of distribution only. The application may still be run on any local operating system that is appropriate.

The ODP model does include the use of distributed operating systems, but would require any particular type of distributed operating system to interwork with other types through ODP and with also with non-distributed operating systems. The applications would see no difference. One popular implementors specification for some parts of ODP is the Common Object Request Broker Architecture. This is covered in chapter 7.

Distributed Operating Systems and Algorithms integrates into one text both the theory and implementation aspects of distributed operating systems for the first time. This innovative book provides the reader with knowledge of the important algorithms necessary for an in-depth understanding of distributed systems; at the same time it motivates the study of these algorithms by presenting a systems framework for their practical application.

The first part of the book is intended for use in an advanced course on operating systems and concentrates on parallel systems, distributed systems, real-time systems, and computer networks. The second part of the text is written for a course on distributed algorithms with a focus on algorithms for asynchronous distributed systems. While each of the two parts is self-contained, extensive cross-referencing allows the reader to emphasize either theory or implementation or to cover both elements of selected topics.

Features:

Integrates and balances coverage of the advanced aspects of operating systems with the distributed algorithms used by these systems.

Includes extensive references to commercial and experimental systems to illustrate the concepts and implementation issues.

Provides precise algorithm description and explanation of why these algorithms were developed.

Structures the coverage of algorithms around the creation of a framework for implementing a replicated server-a prototype for implementing a fault-tolerant and highly available distributed system.

Contains programming projects on such topics as sockets, RPC, threads, and implementation of distributed algorithms using these tools.
Includes an extensive annotated bibliography for each chapter, pointing the reader to recent developments.

Solutions to selected exercises, templates to programming problems, a simulator for algorithms for distributed synchronization, and teaching tips for selected topics are available to qualified instructors from Addison Wesley.

No comments: