1 / 17

Distributed Computing Systems

Explore the definition, organization, and key concepts of distributed systems, including scalability, security, and transparency. Learn about hardware classification, scaling techniques, and software concepts in distributed computing ecosystems.

rgeorge
Download Presentation

Distributed Computing Systems

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. Distributed Computing Systems CSCI 6900/4900

  2. Review • Definition & characteristics of distributed systems • Distributed system organization • Design goals • Resource availability to users • Transparency • Openness • Scalability • Security and privacy

  3. Scalability Techniques • Hiding communication latencies • Asynchronous communication • Reduce amount of data transmitted • Distribution • Spreading work across system • Caching and replication • Make copies of data and services • Balance load • Avoid hot spots

  4. Scaling Techniques 1.4 • The difference between letting: • a server or • a client check forms as they are being filled

  5. Scaling Techniques (2) 1.5 An example of dividing the DNS name space into zones.

  6. Hardware Classification • Based on address space • Multiprocessor • Multicomputer • Based on communication infrastructure • Bus • Switched • Based on uniformity • Homogenous • Heterogeneous

  7. Hardware Concepts 1.6 Different basic organizations and memories in distributed computer systems

  8. Multiprocessors (1) • Key Property: All CPUs have direct access to shared memory • Coherent memory: Reads and writes are sequential 1.7 • Scalability • Ensuring coherency • A bus-based multiprocessor.

  9. Multiprocessors (2) • Omega switching network • Crossbar switch

  10. Homogeneous Multicomputer Systems • Also known as System Area Networks (SANs) • Bus-based (Shared multi-access N/W such as Ethernet) • Switch-based (Massively Parallel Processors, Cluster of Workstations) • Hypercube • Grid

  11. Heterogeneous Multicomputer Systems • Most widely used • Individual computers can vary widely • Some node might be multiprocessor machines or homogenous multicomputer machines • Hierarchical systems (multicomputer systems on top of existing multicomputer systems). • Nodes lack global view • Cannot assume identical or even similar performance • Providing transparency, performance & scalability are key challenges.

  12. Software Concepts • Functionalities • Resource managers • Hiding intricacies and heterogeneity • Two kinds of operating systems • Tightly coupled (distributed operating system) • Loosely coupled (network operating system) • Middleware • Providing transparency for loosely coupled systems

  13. OS for Distributed Systems

  14. Uniprocessor Operating Systems • Virtualize physical devices (manages devices, protects users) • Two modes (User, Kernel) • Two kinds (Monolithic, microkernel) 1.11 • Separating applications from operating system code through • a microkernel.

  15. Multiprocessor Operating Systems • Similar in many aspects to uni-processor systems • Main extension is how shared memory access is handled • Guard against simultaneous access to provide consistency • Two primitives • Semaphores • Two atomic primitives (UP and DOWN) • Monitors

  16. Monitors monitor Counter { private: int count = 0; public: int value() { return count;} void incr () { count = count + 1;} void decr() { count = count – 1;} } • Borrowed from programming languages • Has data and procedures • One process can execute at any point of time

  17. Monitors (2) 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; } } • Monitors can be used to conditionally block processes • Producers/consumers scenario

More Related