180 likes | 326 Views
Distributed Systems: an Introduction. G53ACC Chris Greenhalgh. Contents. Distributed Systems and Parallel Architectures Applications and Motivations Client-Server Systems. Distributed Systems.
E N D
Distributed Systems: an Introduction G53ACC Chris Greenhalgh
Contents • Distributed Systems and Parallel Architectures • Applications and Motivations • Client-Server Systems
Distributed Systems • Def.:"A collection of autonomous computers linked by a computer network and equipped with distributed system software.”
C) MIMD, disjoint memory - “distributed” A) SISD - “standalone” B) MIMD, shared memory - “parallel” Parallel Computer Architectures
Disjoint vs. Shared memory: latencies • Network communication (to “access” remote memory) • ~2 us custom cluster network (e.g MyriNet) • ~ 1 ms Ethernet LAN, • 10s ms WAN, 100s ms dialup/GPRS • Local memory access • ~10 ns • ~100,000 times faster than Ethernet • 1,000,000+ times faster than WAN • CPU instruction time • ~1 ns!
DistributedSystem Programming Implications • Communication is relatively Slow • Requires different programming approaches • Communication is generally achieved by explicit actions rather than shared variables • Sending and receiving “messages” • “Distributed Shared Memory” is technically possible, but not common in use • Computation must be divided into relatively large communication-free chunks • Or most CPU time will be wasted waiting for messages
Distributed System Applications • The Internet • Communication (e.g. electronic mail) • Network Information Retrieval (NIR) services (e.g. WWW) • Resource sharing, e.g. shared printers, shared disks • Collaborative applications (e.g. teleconferencing, networked games) • Supercomputers (implementation and access)
Why build distributed systems (1)?Mirroring Reality • People are distributed • Support, • Collaboration • Information is distributed • Access, • Control, • Performance (mobile code) • Other resources are distributed • Physical devices (e.g. printer, robot)
Why build distributed systems (2)? Performance / Cost • Centralised or distributed? • Law of diminishing returns on single CPU performance • The cost of moving ALL data to/from the centre across a wide-area may be prohibitive • So: distribute processing and communicate only as necessary • Sometimes necessary • Economic
Challenge: Interconnection • Connecting independent components, requires use of common: • Paradigms and models? • i.e. ways of understanding, dividing up and organising distributed operations and activities • Formats • Protocols • Timing • Physical interfaces • Standards? (i.e. networking - see CCN!)
One Common Paradigm: Client-Server Application Clients Application Application TCP/IP TCP/IP TCP/IP (e.g.) Server (e.g. database)
Example:Resource Sharing • Resources include: • hardware components, e.g. disks and printers • software-defined entitiese.g. files, databases, other data objects • But: • physically encapsulated within one computer • remote access requires communication • => Resource manager...
Resource Sharing (cont.) • Resource manager = Software module = server • Manages a set of resources of a particular type • Implements management policies for: • naming, • Concurrency • E.g. • dept. print servers • disk servers (network drives)
The Client-Server Model • = An effective general purpose approach to sharing information and resources: • Shared resources are held and managed by server processes. • Client processes issue requests to servers whenever they need to access one of their resources. • If the request is a valid one, the server performs the requested action and send a reply to the client process.
Example:The X-Window system • A server controls access to the shared resource - the user's display and input(s). • Clients communicate with the server, and ask it to display information to the user (e.g. xterm, netscape, ...) • So: • multiple clients can display information • conflicts are resolved by server (e.g. overlapping windows)
Client-server Comments • Not the only approach to creating distributed systems • See also peer-to-peer, multi-tier, message-oriented • Often complicated by “callback” or “notification” features • Original “client” is sometimes the receiver of requests (callbacks or notifications) originated by the original “server” • But simple, common, powerful and manageable