390 likes | 404 Views
Learn about the definition, goals, transparency, openness, scalability, and hardware concepts of distributed systems. Explore different operating systems and the concept of middleware.
E N D
Introduction Chapter 1 OS2- Sem1-83; R. Jalili
Definition of a Distributed System (1) • A distributed system is: • A collection of independent computers that appears to its users as a single coherent system. OS2- Sem1-83; R. Jalili
Definition of a Distributed System (2) 1.1 A distributed system organized as middleware.Note that the middleware layer extends over multiple machines. OS2- Sem1-83; R. Jalili
Goals • Connecting Users and Resources • Transparency • Openness • Scalability OS2- Sem1-83; R. Jalili
Transparency in a Distributed System Different forms of transparency in a distributed system. OS2- Sem1-83; R. Jalili
Degree of Transparency • Is transparency good anytime and everywhere? • Tradeoff between transparency and performance. • - Updating a replicated database! OS2- Sem1-83; R. Jalili
Openness • Offering services based on standards. • Services are specified through interfaces, described in IDL (Interface Definition Language) • Interoperability: two implementations of a system to co-exist and work together. • Portability: An application developed to work on A can be executed on another system B. • Separating policy from mechanism OS2- Sem1-83; R. Jalili
Scalability • 3 different dimensions • Size: Adding more users and resources to the system. • Geography: Users and resources can lie far apart. • Administration: Many administration organization! OS2- Sem1-83; R. Jalili
Scalability Problems & Limitations Examples of scalability limitations. OS2- Sem1-83; R. Jalili
Scalability Solutions • 3 Solutions • Hiding communication latencies: try to avoid waiting for responses to remote service requests Use Asynchronous Communication • Many applications cannot run on an asynch communication system • Next slide example. • Distribution: DNS as example • Replication: Caching and consistency! OS2- Sem1-83; R. Jalili
Scaling Techniques (1) 1.4 • The difference between letting: • a server or • a client check forms as they are being filled OS2- Sem1-83; R. Jalili
Scaling Techniques (2) 1.5 An example of dividing the DNS name space into zones. OS2- Sem1-83; R. Jalili
Hardware Concepts 1.6 Different basic organizations and memories in distributed computer systems OS2- Sem1-83; R. Jalili
Multiprocessors (1) • A bus-based multiprocessor. 1.7 • Memory is Coherent. • The bus is overloaded. • Caching: hit-rate? • Scalability? OS2- Sem1-83; R. Jalili
Multiprocessors (2) • A crossbar switch • An omega switching network 1.8 OS2- Sem1-83; R. Jalili
Homogeneous Multicomputer Systems • Grid • Hypercube 1-9 OS2- Sem1-83; R. Jalili
Software Concepts • An overview of • DOS (Distributed Operating Systems) • NOS (Network Operating Systems) • Middleware OS2- Sem1-83; R. Jalili
Uniprocessor Operating Systems • Separating applications from operating system code through • a microkernel. 1.11 OS2- Sem1-83; R. Jalili
Multiprocessor Operating Systems (1) • A monitor to protect an integer against concurrent access. monitor Counter { private: int count = 0; public: int value() { return count;} void incr () { count = count + 1;} void decr() { count = count – 1;} } OS2- Sem1-83; R. Jalili
Multiprocessor Operating Systems (2) • A monitor to protect an integer against concurrent access, but • blocking a process. 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; } } OS2- Sem1-83; R. Jalili
Multicomputer Operating Systems (1) • General structure of a multicomputer operating system • Message Passing 1.14 OS2- Sem1-83; R. Jalili
Multicomputer Operating Systems (2) • Alternatives for blocking and buffering in message passing. 1.15 OS2- Sem1-83; R. Jalili
Multicomputer Operating Systems (3) • Relation between blocking, buffering, and reliable communications. OS2- Sem1-83; R. Jalili
Distributed Shared Memory Systems (1) • 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 OS2- Sem1-83; R. Jalili
Distributed Shared Memory Systems (2) • False sharing of a page between two independent processes. 1.18 False Sharing! OS2- Sem1-83; R. Jalili
Network Operating System (1) • General structure of a network operating system. 1-19 OS2- Sem1-83; R. Jalili
Network Operating System (2) • Two clients and a server in a network operating system. 1-20 OS2- Sem1-83; R. Jalili
Network Operating System (3) • Different clients may mount the servers in different places. 1.21 OS2- Sem1-83; R. Jalili
Positioning Middleware • General structure of a distributed system as middleware. 1-22 OS2- Sem1-83; R. Jalili
Middleware and Openness • In an open middleware-based distributed system, the protocols used by each middleware layer should be the same, as well as the interfaces they offer to applications. 1.23 OS2- Sem1-83; R. Jalili
Comparison between Systems • A comparison between multiprocessor operating systems, multicomputer operating systems, network operating systems, and middleware based distributed systems. OS2- Sem1-83; R. Jalili
Clients and Servers • General interaction between a client and a server. 1.25 OS2- Sem1-83; R. Jalili
An Example Client and Server (1) • The header.h file used by the client and server. OS2- Sem1-83; R. Jalili
An Example Client and Server (2) • A sample server. OS2- Sem1-83; R. Jalili
An Example Client and Server (3) • A client using the server to copy a file. 1-27 b OS2- Sem1-83; R. Jalili
Application Layering:Processing Level • The general organization of an Internet search engine into three different layers 1-28 OS2- Sem1-83; R. Jalili
Multitiered Architectures (1) • Alternative client-server organizations (a) – (e). 1-29 OS2- Sem1-83; R. Jalili
Multitiered Architectures (2) • An example of a server acting as a client. 1-30 OS2- Sem1-83; R. Jalili
Modern Architectures • An example of horizontal distribution of a Web service. 1-31 OS2- Sem1-83; R. Jalili