1 / 54

Understanding Distributed Systems: An Overview

Delve into the world of distributed systems through this comprehensive guide. Learn about various examples, the computer revolution, transparency, openness, scalability, and crucial implementation aspects like middleware and more.

tower
Download Presentation

Understanding Distributed Systems: An Overview

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Introduction Chapter 1 Chapter 1  Introduction 1

  2. 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

  3. Other Distributed Systems • Email • Electronic banking • Airline reservation system • Peer-to-peer networks • Etc., etc., etc. Chapter 1  Introduction 3

  4. 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

  5. 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

  6. 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 • Softwaremachines appear as one system • Implies that communication hidden from user • Implies that organization hidden from user Chapter 1  Introduction 6

  7. 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

  8. 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

  9. Role of Middleware • Distributed system as middleware • Middleware extends over multiple machines Chapter 1  Introduction 9

  10. 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

  11. Transparency • Transparent system “acts” like one computer • Various aspects of transparency listed above Chapter 1  Introduction 11

  12. 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

  13. 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

  14. Scalability • Scalability issues/limitations Chapter 1  Introduction 14

  15. 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

  16. 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

  17. 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

  18. 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

  19. 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

  20. 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

  21. 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

  22. Hardware Issues multiprocessor multicomputer Chapter 1  Introduction 22

  23. Multiprocessors • A bus-based multiprocessor • Cache coherence is an issue Chapter 1  Introduction 23

  24. Multiprocessors • A crossbar switch • Omega switching network Chapter 1  Introduction 24

  25. Homogeneous Multicomputer Grid Hypercube Chapter 1  Introduction 25

  26. Software Concepts • DOS  Distributed Operating Systems • NOS  Network Operating Systems • Middleware  self-explanatory Chapter 1  Introduction 26

  27. Uniprocessor OSs • Separate apps from OS code via microkernel Chapter 1  Introduction 27

  28. Multiprocessor OSs • How 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

  29. 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

  30. Multicomputer OSs • Multicomputer OS Chapter 1  Introduction 30

  31. Multicomputer OSs • ??? Chapter 1  Introduction 31

  32. Multicomputer OSs • Huh? Chapter 1  Introduction 32

  33. 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

  34. 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

  35. Distributed Shared Memory • False sharing of page between two processes • Two independent processors share same page Chapter 1  Introduction 35

  36. Network OS • Network OS • Each processor has its own OS Chapter 1  Introduction 36

  37. Network OS • Clients and server in a network OS • Global shared file system Chapter 1  Introduction 37

  38. 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

  39. Positioning Middleware • A distributed system as middleware • Individual node managed by local OS • Middleware hides heterogeneity of underlying systems Chapter 1  Introduction 39

  40. Middleware and Openness • Open middleware-based system • Middleware layer should • Use the same protocols • Provide same interfaces to apps Chapter 1  Introduction 40

  41. Comparison of Systems • Middleware rocks! Chapter 1  Introduction 41

  42. 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

  43. Client Server Model • Read this section Chapter 1  Introduction 43

  44. Clients and Servers • Interaction between client and server Chapter 1  Introduction 44

  45. Example Client and Server • header.h • Used by client • And by server Chapter 1  Introduction 45

  46. Example Client and Server • A sample server Chapter 1  Introduction 46

  47. Example Client and Server • Client using server to copy a file Chapter 1  Introduction 47

  48. Processing Level • Internet search engine as 3 layers Chapter 1  Introduction 48

  49. Multitiered Architectures • Alternative client-server organizations Chapter 1  Introduction 49

  50. Multitiered Architectures • A server acting as client Chapter 1  Introduction 50

More Related