240 likes | 252 Views
Explore the fundamental hardware and software concepts of distributed systems, from client-server models to scalability techniques and middleware models. Learn about goals, transparency, scalability challenges, and comparison between different distributed system types.
E N D
Introduction Distributed Systems Goals of Distributed Systems Hardware and Software Concepts Client-Server Model
Distributed System A distributed system is a collection of (1) independent computers that (2) appears to its users as a single coherent system. e.g. • NOW • Workflow information system • WWW
Goals To make them worth the effort • Connecting users and resources • make easy to access remote resources & • share them in a controlled way • Transparency – hide the fact that resources are distributed • Openness – so that they can be • Applications can be portable • Different implementations can interoperate • DS are flexible and extensible • Scalability – world-wide connectivity • Scalable in • Size - # of users/resources • Geographic span • Administratively
Transparency • Kinds of transparency • Degree of transparency
Scalability • Impediments to scalability
Scaling Techniques • Hiding communication latency – avoid waiting for responses to remote service request when possible • Asynchronous communication • Reduce overall communication • Distribution – split a component into parts & distribute them across the system • Replication • Increase availability • Helps balance the load • May hide communication latency
Hardware Concepts Multiprocessors Multicomputers Single address space shared by all
Multiprocessors • Single address space shared by all • Coherency is easy but scalability a problem • Solution – cache – now coherency is an issue
Multiprocessors – switch-based • Competition for the bus is still an issue • Switch-based systems? • Crossbar switch & Omega switching network
Multicomputers • Easier to build – problem is interconnection • Homogenous – System Area Network • Homogeneous nodes rack mounted and • Interconnected by a high-performance network (e.g. grid, hypercube) • Heterogeneous – both in the nodes and the interconnection network • Problem – hiding heterogeneity is hard
Software Concepts • OS for multicomputers/multiprocessors can be divided in two categories • Distributed OS – tightly-coupled systems • Network OS – loosely-coupled systems • From a NOW, to get a distributed system you need middleware
Uniprocessor Operating Systems • OS for distributed systems and uniprocessors are very much alike • They act as resource managers for the underlying hardware • Provide a virtual machine that hide the intricacies of the underlying hardware • Part of enabling resource sharing is protecting apps from each other • Dual mode of operation – monolithic OSs • Microkernels • Pros and cons
Multiprocessors Operating Systems • From uniprocessors to multiprocessors – a natural step • Protect OS data structures against concurrent access to guarantee consistency • Semaphores • Monitors
Multicomputer Operating Systems • No shared memory – communication through message passing • You can • Exposed message passing to application • Hide it through distributed shared memory
Distributed Shared Memory • Since MP seems to be more difficult to program for • Distributed Shared Memory • AS divided into pages • Pages distributed among machines • Performance improvements • Replicate read-only pages • Replicate all pages • Weaker than strict consistency • Larger pages sizes → potential problem of false sharing CPU 1 references page 10 Page 10 is read only and replication is used
Network Operating System • Various machines interconnected; users can access remote resources • No assumptions of • Homogeneous underlying hardware • Managed as a single system • Pros and Cons • Harder to use • Harder to manage • Very easy to scale
Middleware • Remember the definition of a distributed system • Distributed OS – not intended to handle independent machines • Network OS – does not provide a view of a single coherent system • Most distributed systems are built from NOS + middleware
Middleware Models and Services • To make development and integration simple – adopt a paradigm • Everything is a file • Remote Procedure Calls • Distributed Objects • Distributed Documents • Services common to many middleware systems • Communication • Naming • Persistence • Distributed Transaction • Security • Middleware and openness
Comparison between Systems a) High/Low b) Yes/No c) 1/N d) Shared memory/messages/files/model specific e) Global central/global distributed/per node f) No/Yes/So-So g) Closed/Open
Client-Server Model • Clients and Servers as a model for distributed applications • Layering: general organization of an Internet search engine into 3 different layers
Multitiered Architectures • The three logical levels → many physical distributions and potentially multiple tiers • Alternative client-server organizations
Modern Architectures • Distribution can be • Vertical – what we have seen so far • Horizontal – distributing the clients and servers themselves • Distributed web server. • P2P system