540 likes | 726 Views
Introduction. Chapter 1. Examples of Distributed Systems. DNS Hierarchical distributed database WWW Origin servers and web caches Distributed database Cray T3E 2048 tightly coupled homogeneous processors Distributed/parallel computing Condor/RES
E N D
Introduction Chapter 1 Chapter 1 Introduction 1
Examples of Distributed Systems • DNS • Hierarchical distributed database • WWW • Origin servers and web caches • Distributed database • Cray T3E • 2048 tightly coupled homogeneous processors • Distributed/parallel computing • Condor/RES • Loosely coupled heterogeneous workstations • Parallel/distributed computing Chapter 1 Introduction 2
Other Distributed Systems • Email • Electronic banking • Airline reservation system • Peer-to-peer networks • Etc., etc., etc. Chapter 1 Introduction 3
Computer Revolution • Processing power • 50 years ago, $100M for 1 instr/sec • Today, $1K for 107 instructions/sec • Price/perform. improvement of 1012 • If cars had followed same path as computers… • “…a Rolls Royce would now cost 1 dollar and get a billion miles per gallon” • And it would “explode once a year, killing everyone inside” Chapter 1 Introduction 4
Computer Revolution • High speed networks • 30 years ago, networks were unknown • Today, Gigabit networks and the Internet • Before networks, centralized systems • Today, distributed systems • Computers in many locations work as one Chapter 1 Introduction 5
What is a Distributed System? • According to your textbook • “A collection of independent computers that appears to its users as a single coherent system” • Two parts to definition • Hardware machines are autonomous • Softwaremachines appear as one system • Implies that communication hidden from user • Implies that organization hidden from user Chapter 1 Introduction 6
What is a Distributed System? • According to dict.die.net • A collection of (probably heterogeneous) automata whose distribution is transparent to the user so that the system appears as one local machine • This is in contrast to a network, where the user is aware that there are several machines, and their location, storage replication, load balancing and functionality is not transparent • Crucial point is transparency Chapter 1 Introduction 7
How to Implement a Dist. System? • A distributed system is a collection of independent computers… • …that acts like a single system • How to accomplish this? • Middleware • Make distributed system as transparent as possible Chapter 1 Introduction 8
Role of Middleware • Distributed system as middleware • Middleware extends over multiple machines Chapter 1 Introduction 9
Goals • For a distributed system to be worthwhile authors believe it should • Easily connect users to resources • Hide fact that resources are distributed • Be open • Be scalable • First 2 of these about transparency • Transparent, open, scalable Chapter 1 Introduction 10
Transparency • Transparent system “acts” like one computer • Various aspects of transparency listed above Chapter 1 Introduction 11
Degree of Transparency • Cannot hide physical limitations • Time it takes to send packet • May be a tradeoff between transparency and performance • What to do if Web request times out? • Keeping replicated data current Chapter 1 Introduction 12
Openness • Open == standards-based • Provides • Interoperability • Portability • Ideally, flexible, i.e., extensible • But many useful systems follow the “American standard” • Do whatever you want Chapter 1 Introduction 13
Scalability • Scalability issues/limitations Chapter 1 Introduction 14
Scalability • Authors believe centralized is bad • Centralized server is source of congestion, single point of failure • Centralized data leads to congestion, lots of traffic • Centralized algorithm must collect all info and process it (e.g., routing algs) • Google? Napster? Chapter 1 Introduction 15
Scalability • Decentralized algorithms • No machine has complete system state • Decisions based on local info • Failure of one machine does not kill entire algorithm • No assumption of global clock • Examples? Chapter 1 Introduction 16
Geographic Scalability • Big difference between LAN and WAN • LANs have synchronous communication • Client can “block” until server responds • On LAN, global time may be possible (to within a few milliseconds) • WAN unreliable, point-to-point • WAN has different admin domains • A security nightmare Chapter 1 Introduction 17
Scaling Techniques • Scaling problems due to limited capacity of networks and servers • Three possible solutions • Hide latencies do something useful while waiting (asynchronous comm.) • Distribution DNS, for example • Replication allows for load balancing • Replication creates consistency issues Chapter 1 Introduction 18
Scaling Techniques • Server or client check form as it’s filled out? • Having client do more, as in (b), may reduce latency (but may cause security problems) Chapter 1 Introduction 19
Scaling Techniques • DNS name space divided into zones • Goto server in Z1 to find server Z2 and so on • Like a binary search for correct server Chapter 1 Introduction 20
Hardware Issues • For our purposes, 2 kinds of machines • Multiprocessor • Different processors share same memory • Multicomputer • Each processor has it’s own memory • Each of these could use either bus or switched architecture Chapter 1 Introduction 21
Hardware Issues multiprocessor multicomputer Chapter 1 Introduction 22
Multiprocessors • A bus-based multiprocessor • Cache coherence is an issue Chapter 1 Introduction 23
Multiprocessors • A crossbar switch • Omega switching network Chapter 1 Introduction 24
Homogeneous Multicomputer Grid Hypercube Chapter 1 Introduction 25
Software Concepts • DOS Distributed Operating Systems • NOS Network Operating Systems • Middleware self-explanatory Chapter 1 Introduction 26
Uniprocessor OSs • Separate apps from OS code via microkernel Chapter 1 Introduction 27
Multiprocessor OSs • Hoe to protect count from concurrent access? monitor Counter { private: int count = 0; public: int value() { return count;} void incr () { count = count + 1;} void decr() { count = count – 1;} } Chapter 1 Introduction 28
Multiprocessor OSs monitor Counter { private: int count = 0; int blocked_procs = 0; condition unblocked; public: int value () { return count;} void incr () { if (blocked_procs == 0) count = count + 1; else signal (unblocked); } void decr() { if (count ==0) { blocked_procs = blocked_procs + 1; wait (unblocked); blocked_procs = blocked_procs – 1; } else count = count – 1; } } • Protect count from concurrent access • Using blocking Chapter 1 Introduction 29
Multicomputer OSs • Multicomputer OS Chapter 1 Introduction 30
Multicomputer OSs • ??? Chapter 1 Introduction 31
Multicomputer OSs • Huh? Chapter 1 Introduction 32
Programming Issues • Programming multicomputers much harder than multiprocessors • Why? • Message passing • Buffering, blocking, reliable comm., etc. • One option is to emulate shared memory on multicomputer • Large “virtual” address space Chapter 1 Introduction 33
Distributed Shared Memory • Pages of address space distributed among 4 machines • After CPU 1 references pg 10 • If page 10 read only and replication used Chapter 1 Introduction 34
Distributed Shared Memory • False sharing of page between two processes • Two independent processors share same page Chapter 1 Introduction 35
Network OS • Network OS • Each processor has its own OS Chapter 1 Introduction 36
Network OS • Clients and server in a network OS • Global shared file system Chapter 1 Introduction 37
Distributed System • Distributed OS not a distributed system by our definition • Network OS not a distributed system by our definition • What we need is middleware… Chapter 1 Introduction 38
Positioning Middleware • A distributed system as middleware • Individual node managed by local OS • Middleware hides heterogeneity of underlying systems Chapter 1 Introduction 39
Middleware and Openness • Open middleware-based system • Middleware layer should • Use the same protocols • Provide same interfaces to apps Chapter 1 Introduction 40
Comparison of Systems • Middleware rocks! Chapter 1 Introduction 41
Middleware Services • Main goal is access transparency • Hides low level message passing • Naming • Like yellow pages or URL • Persistence • For example, a distributed file system • Distributed transactions • Read and writes are atomic • Security Chapter 1 Introduction 42
Client Server Model • Read this section Chapter 1 Introduction 43
Clients and Servers • Interaction between client and server Chapter 1 Introduction 44
Example Client and Server • header.h • Used by client • And by server Chapter 1 Introduction 45
Example Client and Server • A sample server Chapter 1 Introduction 46
Example Client and Server • Client using server to copy a file Chapter 1 Introduction 47
Processing Level • Internet search engine as 3 layers Chapter 1 Introduction 48
Multitiered Architectures • Alternative client-server organizations Chapter 1 Introduction 49
Multitiered Architectures • A server acting as client Chapter 1 Introduction 50