390 likes | 703 Views
Distributed Systems Alexis Delis ad@di.uoa.gr Monday 6:00-9:00 Spring 2002 www.di.uoa.gr/~ad/MDE519.html Grades - Evaluation Final Examination: 35% In-class Presentations & Homeworks: 30% Project(s): 35% Book: A.S. Tanenbaum, M. van Steen, Distributed Systems , Prentice Hall, 2002.
E N D
Distributed Systems Alexis Delis ad@di.uoa.gr Monday 6:00-9:00 Spring 2002 www.di.uoa.gr/~ad/MDE519.html
Grades - Evaluation Final Examination: 35% In-class Presentations & Homeworks: 30% Project(s): 35% Book: A.S. Tanenbaum, M. van Steen, Distributed Systems, Prentice Hall, 2002. Other: Papers (available from the course’s WWW site)
Definition of a Distributed System • A distributed system is: • A collection of independent computers that appears to its users as a single coherent system.
Definition of a Distributed System 1.1 A distributed system is organized as middleware.Note that the middleware layer may extend over multiple machines. Examples: Workflow Systems, WWW-services (URL)
Goals of Distributed Systems • connecting users with resources • transparency • openess • scalability
Transparency in a Distributed System Different forms of transparency in a distributed system.
Openness • Open DS: a system that offer services • according to Standard Rules. • Such rules are described in terms of protocols • IDLs help in the description of such protocols. • Interoperability? • Portability? • Difference between the two?
Scalability • Numerous “definitions” of scalability • system can be scalable in terms of size • Add more users/resources into the system • Geographically Scalable system • Users/resources may lie far apart • Administratively Scalable • Easy to manage even if it spans multiple orgs. GOLDEN RULE: as system becomes scalable in one of these three dimension exhibits loss in performance.
Scalability Problems Examples of scalability limitations.
Scaling Techniques • asynchronous communication • filling (database) forms. • distribution (take a component, break into smaller pieces, spread these components across the system Example: DNS – Domain Name Service. • Division in (non-overlapping) zones – domains
Scaling Techniques 1.4 • The difference between letting: • a server (character/string-based communication) or • a client check forms as they are being filled (bulk uploading).
Scaling Techniques 1.5 An example of dividing the DNS name space into zones.
Scalability - Caching • Generally Good Idea: Replicate (data/services) • Replication increases availability (of systems) • Caching (difference from replication?) • Main problem with caching/replication? • Is this a serious problem? • CDNs (how do they do it?)
Hardware Concepts 1.6 Different basic organizations and memories in distributed computer systems
Multiprocessors 1.7 • A bus-based multiprocessor.
Multiprocessors 1.8 • A crossbar switch (n*n crosspoint switches needed) • An omega switching network (low latency problem) • How to avoid latency? use hierarchical schemes: NUMA (NonUniform Memory Access)
Homogeneous Multicomputer Systems(building is “easy”-problem:interconnection network) Homogeneous Multi-computers: System Area Networks (SANs) 1-9 • Bus-based (FDDI/ Fast-Ethernet /Gigabit network ) • Grid (switched based; messages are routed via the interconnection network) • Hypercube(switched based; four dimensional (b); two ordinary cubes with 8 vertices and 12 edges)
Switched Multi-computers • Can vary significantly… • From… • Massively Parallel Processors ($$ MPP – CM5, IBM SP2 etc.) • To.. • Clusters/Networks of Workstations (cheap$ - COWs or NOWs)
Software Concepts • An overview between • DOS (Distributed Operating Systems) • NOS (Network Operating Systems) • Middleware
Uniprocessor Operating Systems 1.11 • Separating applications from operating system code through a microkernel.
Multiprocessor Operating Systems monitor Counter { private: int count = 0; public: int value() { return count;} void incr () { count = count + 1;} void decr() { count = count – 1;} } • A monitor to protect an integer against concurrent access.
Multiprocessor Operating Systems (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; } } • A monitor to protect an integer against concurrent access, but blocking a process.
Distributed Shared Memory Systems (DSM) Trick: replicate pages that are referenced frequently! Another: replicate all pages (??) – problems? Solutions? • 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
Distributed Shared Memory Systems • Always an issue: size of a page in DSM – why? • Large sized page are potentially good but they may • entail false sharing • Having data belonging to two independent processes in the • same page…
Network Operating System 1-19 • General structure of a network operating system.
Network Operating System 1-20 • Two clients and a server in a network operating system. • Services allowed to users… • rlogin machineA • rcp machineA:file1 machineB:file2 • ftp, http, sftp, ssh, etc.
Network Operating System • Issue of FS mount-ing 1.21 • Different clients may mount the servers in different places.
Positioning Middleware 1-22 • General structure of a distributed system as middleware.
Middleware and Openness 1.23 • 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.
Comparison between Systems • A comparison between multiprocessor operating systems, multicomputer operating systems, network operating systems, and middleware based distributed systems.
Clients and Servers 1.25 • General interaction between a client and a server.
An Example Client and Server • The header.h file used by the client and server.
An Example: The Server • A sample server.
An Example: The Client 1-27 b • A client using the server to copy a file.
Three Processing Levels 1-28 • The general organization of an Internet Search Engine into three different layers
Multitiered Architectures 1-29 • Alternative client-server organizations (a) – (e).
Multitiered Architectures 1-30 • An example of a server acting as a client.
Modern Architectures 1-31 • An example of horizontal distribution of a Web service.
Ongoing (Research) Work • DSs based on Horizontal Distribution(of data/services) • DSs based on Horizontal and/or Vertical Distribution (of data/services) • Peer-to-Peer • Distributions of data • Services (indexing, querying, TP processing) • Self-organizing systems