0% found this document useful (0 votes)
23 views12 pages

Why Take This Course?: Huge Amounts of Computing Are Now Distributed..

This document discusses the importance of distributed systems in modern computing, highlighting their prevalence in various industries such as Hollywood, Wall Street, and gaming. It defines a distributed system as a collection of independent computers that appear as a single coherent system and outlines key characteristics, goals, and types of transparency necessary for effective operation. The document emphasizes the need for resource availability, transparency, openness, and scalability in distributed systems to enhance performance and user experience.

Uploaded by

darivari888
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
23 views12 pages

Why Take This Course?: Huge Amounts of Computing Are Now Distributed..

This document discusses the importance of distributed systems in modern computing, highlighting their prevalence in various industries such as Hollywood, Wall Street, and gaming. It defines a distributed system as a collection of independent computers that appear as a single coherent system and outlines key characteristics, goals, and types of transparency necessary for effective operation. The document emphasizes the need for resource availability, transparency, openness, and scalability in distributed systems to enhance performance and user experience.

Uploaded by

darivari888
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 12

Why take this course?

• Huge amounts of computing are now distributed...


• A few years ago, Intel threw its hands up in the air: couldn’t increase GHz much
more without CPU temperatures reaching solar levels
• But we can still stuff more transistors (Moore’s Law)
• Result: Multi-core and GPUs.
• Result 2: Your computer has become
• a parallel/distributed system

• Oh, yeah, and that whole Internet thing...


• my phone syncs its calendar with google, which I can get on my desktop with a
web browser, ...
• (That phone has the computing power of a desktop from 10 years ago and communicates
wirelessly at a rate 5x faster than the average american home could in 1999.)
• Stunningly impressive capabilities now seem mundane. But lots of great stuff
going on under the hood...
• Most things are distributed, and more each day
If you find yourself ...
• In Hollywood....
• ... rendering videos on clusters of 100s of 10,000s of nodes?
• Or getting terabytes of digital footage from on-location to post-
processing?
• On Wall Street...
• tanking our economy with powerful simulations running on large
clusters of machines
• For 11 years, the NYSE ran software from Cornell systems folks to
update trade data
• In biochem...
• using protein folding models that require supercomputers to run
• In gaming...
• Writing really bad distributed systems to enable MMOs to crash on a
regular basis
• Not to mention the obvious places (Internet-of-Things Anyone?)
What Is A Distributed System?
“A collection of independent computers that appears
to its users as a single coherent system.”

• Features:
• No shared memory – message-based communication
• Each runs its own local OS
• Heterogeneity
• Ideal: to present a single-system image:
• The distributed system “looks like” a single computer
rather than a collection of separate computers.
Characteristics of a DS
• Present a single-system image
• Hide internal organization, communication details
• Provide uniform interface
• Easily expandable
• Adding new servers is hidden from users
• Continuous availability
• Failures in one component can be covered by other
components
• Supported by middleware
Distributed System Layer

Figure 1-1. A distributed system organized as middleware. The


middleware layer runs on all machines, and offers a uniform
interface to the system
Goal 1 – Resource Availability
• Support user access to remote resources (printers,
data files, web pages, CPU cycles) and the fair
sharing of the resources

• Economics of sharing expensive resources

• Performance enhancement – due to multiple


processors; also due to ease of collaboration and
info exchange – access to remote services

• Resource sharing introduces security problems.


Goal 2 – Transparency
• Software hides some of the details of the
distribution of system resources.
• Makes the system more user friendly.
• A distributed system that appears to its users &
applications to be a single computer system is said
to be transparent.
• Users & apps should be able to access remote resources
in the same way they access local resources.
• Transparency has several dimensions.
Types of Transparency
Transparency Description
Access Hide differences in data representation &
resource access (enables interoperability)
Location Hide location of resource (can use resource
without knowing its location)
Migration Hide possibility that a system may change
location of resource (no effect on access)
Replication Hide the possibility that multiple copies of the
resource exist (for reliability and/or availability)
Concurrency Hide the possibility that the resource may be
shared concurrently
Failure Hide failure and recovery of the resource. How
does one differentiate betw. slow and failed?
Relocation Hide that resource may be moved during use
Transparency to Handle Failures?

slide from Jeff Dean, Google


Goal 3 - Openness
• An open distributed system “…offers services
according to standard rules that describe the syntax
and semantics of those services.” In other words, the
interfaces to the system are clearly specified and freely
available.
• Compare to network protocols, Not proprietary
• Interface Definition/Description Languages (IDL): used
to describe the interfaces between software
components, usually in a distributed system
• Definitions are language & machine independent
• Support communication between systems using different
OS/programming languages; e.g. a C++ program running on
Windows communicates with a Java program running on
UNIX
• Communication is usually RPC-based.
Open Systems Support …
• Interoperability: the ability of two different
systems or applications to work together
• A process that needs a service should be able to talk to
any process that provides the service.
• Multiple implementations of the same service may be
provided, as long as the interface is maintained
• Portability: an application designed to run on one
distributed system can run on another system
which implements the same interface.
• Extensibility: Easy to add new components,
features
Goal 4 - Scalability
• Dimensions that may scale:
• With respect to size
• With respect to geographical distribution
• With respect to functionality
• With respect to administration
•…

• A scalable system still performs well as it scales up


along any of the dimensions.

You might also like