170 likes | 177 Views
Distributed Computing Systems. CSCI 6900/4900. Review. Definition & characteristics of distributed systems Distributed system organization Design goals Resource availability to users Transparency Openness Scalability Security and privacy. Scalability Techniques.
E N D
Distributed Computing Systems CSCI 6900/4900
Review • Definition & characteristics of distributed systems • Distributed system organization • Design goals • Resource availability to users • Transparency • Openness • Scalability • Security and privacy
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
Scaling Techniques 1.4 • The difference between letting: • a server or • a client check forms as they are being filled
Scaling Techniques (2) 1.5 An example of dividing the DNS name space into zones.
Hardware Classification • Based on address space • Multiprocessor • Multicomputer • Based on communication infrastructure • Bus • Switched • Based on uniformity • Homogenous • Heterogeneous
Hardware Concepts 1.6 Different basic organizations and memories in distributed computer systems
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.
Multiprocessors (2) • Omega switching network • Crossbar switch
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
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.
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
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.
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
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
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