Docsity
Docsity

Prepare for your exams
Prepare for your exams

Study with the several resources on Docsity


Earn points to download
Earn points to download

Earn points by helping other students or get them with a premium plan


Guidelines and tips
Guidelines and tips

Understanding the Pros and Cons of Distributed Systems: Fundamentals and Design Issues, Study notes of Software Engineering

This document, from the university of san francisco's department of computer science, provides an in-depth exploration of distributed systems. It covers definitions, advantages, disadvantages, design issues, transparency, flexibility, reliability, performance, and distributed programming paradigms. The text also discusses various types of process and communication failures. This resource is valuable for students and professionals seeking a comprehensive understanding of distributed systems.

Typology: Study notes

Pre 2010

Uploaded on 07/30/2009

koofers-user-slu-1
koofers-user-slu-1 🇺🇸

10 documents

1 / 3

Toggle sidebar

Related documents


Partial preview of the text

Download Understanding the Pros and Cons of Distributed Systems: Fundamentals and Design Issues and more Study notes Software Engineering in PDF only on Docsity! Distributed Software Development Fundamentals of Distributed Computing Chris Brooks Department of Computer Science University of San Francisco Department of Computer Science — University of San Francisco – p.1/?? 2a-0: Definitions What is a distributed system? (Couloris) “A distributed system is one in which hardware or software components communicate or coordinate their actions only by passing messages.” (Tanenbaum) “A distributed system is a collection of independent computers that appear to the users of the system as a single computer.” (Lamport) “You know you have one when the crash of a computer you’ve never heard of stops you from getting any work done.” All of these get at different aspects of the issue ... Department of Computer Science — University of San Francisco – p.2/?? 2a-1: Advantages of a distributed system Can share expensive resources or data Economics A collection of PCs can provide better price/performance than a single mainframe. Speed A distributed system will often have more computing power than a single mainframe. Inherent distribution Often, your data/users/resources are geographically distributed Department of Computer Science — University of San Francisco – p.3/?? 2a-2: Advantages of a distributed system Reliability If one node fails, the rest of the system can continue Incremental growth Components can be added or replaced in small increments.. Department of Computer Science — University of San Francisco – p.4/?? 2a-3: Disadvantages of distributed systems Software design is much more complicated. Lack of appropriate tools/languages Disagreement on principles: how much should users know about the system? How much the system handle on a user’s behalf? Potential network saturation Privacy and security issues Allowing resources to be shared can lead to data leakage Extra sysadmin work Department of Computer Science — University of San Francisco – p.5/?? 2a-4: Design Issues Transparency Flexibility Dependability Performance Scalability Department of Computer Science — University of San Francisco – p.6/?? 2a-5: Transparency The goal of transparency is a single-system image From the user’s POV, it looks like a single machine. Types of transparency: Location transparency - Users cannot tell where their resources are actually located. Migration transparency - Resources can move without changing their names. Replication transparency - the number of copies of a resource is hidden from users. Concurrency transparency - Users can share resources without being aware of the presence of other users. Parallelism transparency - A task can be run on multiple machines without the user being aware of it. Department of Computer Science — University of San Francisco – p.7/?? 2a-6: Transparency Is transparency always a good thing? What is the downside? Department of Computer Science — University of San Francisco – p.8/?? 2a-7: Flexibility Flexibility refers to how easy or difficult it is to change or reconfigure a system. The research question is how to best provide flexibility. In the OS world, this debate shows up in the comparison of monolithic kernels and microkernels. Monolithic kernel - Provides most services on its own Microkernel - Only handles a simple set of services. Most other services are implemented at the user level. Microkernel is very flexible and modular; services can be added, deleted, or moved without much reconfiguration. Monolithic kernel gives better performance. Department of Computer Science — University of San Francisco – p.9/?? 2a-8: Reliability There are several different aspects of reliability: Availability: what fraction of the time is the system usable? Integrity: Data must be kept consistent. (this sometimes clashes with availability) Security: Unauthorized usage must be prevented. Fault tolerance: How unpleasantly does the system fail? Is data lost? Can recovery happen? Department of Computer Science — University of San Francisco – p.10/?? 2a-9: Performance Performance is trickier than it appears. lots of possible metrics Response time Throughput System utilization Network capacity Typically, communication costs dominate This leads to a coarser-grained parallelism that we would see in a parallel computer. Department of Computer Science — University of San Francisco – p.11/?? 2a-10: Distributed Programming Paradigms Client/server model Remote Procedure Call Distributed Shared Memory Group Communication/multicast/Peer-to-peer Distributed objects Web services Department of Computer Science — University of San Francisco – p.12/??
Docsity logo



Copyright © 2024 Ladybird Srl - Via Leonardo da Vinci 16, 10126, Torino, Italy - VAT 10816460017 - All rights reserved