210 likes | 574 Views
Distributed Computing Systems CSCI 6900/4900 Review Design goals Resource availability to users Transparency Openness Scalability Security and privacy Hardware concepts Multiprocessors Vs. Multicomputers Bus-based Vs. Switch-based Homogenous Vs. Heterogenous Software Concepts
E N D
Distributed Computing Systems CSCI 6900/4900
Review • Design goals • Resource availability to users • Transparency • Openness • Scalability • Security and privacy • Hardware concepts • Multiprocessors Vs. Multicomputers • Bus-based Vs. Switch-based • Homogenous Vs. Heterogenous
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
Multicomputer Operating Systems 1.14 • Communication is only through message passing • Layer on top of local kernels for coordination and management of remote resources
Multicomputer Operating Systems (2) 1.15 • Two buffering places • Four blocking points for sender (S1, S2, S3, S4) • One blocking point for receiver (S3)
Communication Reliability & Synchronization • Message passing semantics also depends upon reliability of communication
Distributed Shared Memory Systems (1) • Programming harder without the notion of shared address space • DSM emulates shared memory using message passing primitives • Pages of address space distributed among four machines • Situation after CPU 1 references page 10 • Situation if page 10 is read only and replication is used
Effect of Page Size on DSM Performance 1.18 • Cost of page transfer is dominated by setup costs • False sharing results in unnecessary data transfers
Network Operating System 1-19 • Collection of heterogeneous systems • Facilitates users to access services on specific machines (rlogin, rcp, etc.)
Network Operating System (2) 1-20 • Global file systems facilitate convenient data sharing • File servers execute requests and send replies
Global File Systems 1.21 • Different clients may mount the servers in different places.
DOS Vs. NOS • DOS • Transparency • Ease of use & security • NOS • Scalability • Openness • Can we have best of both worlds?
Middleware • Layer on top of Network OS services • Hide heterogeneity • Doesn’t manage individual nodes • Provides complete set of services
Middleware Models & Services • Models • File model • Distributed file systems • Remote procedure calls • Distributed objects • Distributed document systems • Services • Communication facilities • Naming • Persistence • Transactions
Middleware and Openness • Common protocols • Common interfaces • Completeness
Comparison between Systems • A comparison between multiprocessor operating systems, multicomputer operating systems, network operating systems, and middleware based distributed systems.