26-07-2012, 04:20 PM
Distributed Systems
DS Seminar.doc (Size: 170 KB / Downloads: 24)
ABSTRACT
Distributed operating systems have many aspects in common with centralized ones, but they also differ in certain ways. This paper explains that a distributed system consists of a number of independent processors, storage devices, and databases, ensuring two-way flow of information among them in order to achieve a common goal, such as the massive distributed system, the World Wide Web. Then we also discuss out that the operational failure of the distributed systems is attributed to many reasons, including the architectural design, which is needlessly complicated because the theoretical models are not capable of providing accurate results.
Introduction
Distributed computing is a field of computer science that studies distributed systems.
A distributed system consists of multiple autonomous computers that communicate through a computer network. The computers interact with each other in order to achieve a common goal.
A computer program that runs in a distributed system is called a distributed program, and distributed programming is the process of writing such programs.
Distributed computing also refers to the use of distributed systems to solve computational problems. In distributed computing, a problem is divided into many tasks, each of which is solved by one computer.
A distributed system may have a common goal, such as solving a large computational problem. Alternatively, each computer may have its own user with individual needs, and the purpose of the distributed system is to coordinate the use of shared resources or provide communication services to the users.
History
The word distributed in terms such as "distributed system", "distributed programming", and "distributed algorithm" originally referred to computer networks where individual computers were physically distributed within some geographical area. The terms are nowadays used in a much wider sense, even referring to autonomous processes that run on the same physical computer and interact with each other by message passing.
The use of concurrent processes that communicate by message-passing has its roots in operating system architectures studied in the 1960s. The first widespread distributed systems were local-area networks such as Ethernet that was invented in the 1970s.
ARPANET, the predecessor of the Internet, was introduced in the late 1960s, and ARPANET e-mail was invented in the early 1970s. E-mail became the most successful application of ARPANET, and it is probably the earliest example of a large-scale distributed application.
In addition to ARPANET, and its successor, the Internet, other early worldwide computer networks included Usenet and FidoNet from 1980s, both of which were used to support distributed discussion systems.
The study of distributed computing became its own branch of computer science in the late 1970s and early 1980s.
Characteristics of Distributed Systems
A distributed system consists of a collection of autonomous computers, connected through a network and distribution middleware, which enables computers to coordinate their activities and to share the resources of the system, so that users perceive the system as a single, integrated computing facility.
What are we trying to achieve when we construct a distributed system?
Certain common characteristics can be used to assess distributed systems:
Heterogeneity
Openness
Scalability
Fault Tolerance
Resource Sharing
Concurrency
Security
Transparency
Heterogeneity:
In Distributed Systems there are a Variety and differences in
Networks, Computer hardware, Operating systems, Programming languages & the Implementations by different developers.
Middleware as software layers to provide a programming abstraction as well as masking the heterogeneity of the underlying networks, hardware, OS, and programming languages (e.g., Web service).
Mobile Code to refer to code that can be sent from one computer to another and run at the destination (e.g., Java applets and Java virtual machine).
Openness:
Openness is concerned with extensions and improvements of distributed systems.
Detailed interfaces of components need to be published.
New components have to be integrated with existing components.
Differences in data representation of interface types on different processors (of different vendors) have to be resolved.
Scalability
Adaption of distributed systems to
• accommodate more users
• respond faster (this is the hard one)
Usually done by adding more and/or faster processors. Components should not need to be changed when increases scale of a system.
Fault Tolerance
Hardware, software and networks fail! Distributed systems must maintain availability even at low levels of hardware/software/network reliability.
Fault tolerance is achieved by
• Recovery
• Redundancy